xref: /linux/Documentation/leds/ledtrig-oneshot.rst (revision 34dc1baba215b826e454b8d19e4f24adbeb7d00d)
1====================
2One-shot LED Trigger
3====================
4
5This is a LED trigger useful for signaling the user of an event where there are
6no clear trap points to put standard led-on and led-off settings.  Using this
7trigger, the application needs only to signal the trigger when an event has
8happened, then the trigger turns the LED on and then keeps it off for a
9specified amount of time.
10
11This trigger is meant to be usable both for sporadic and dense events.  In the
12first case, the trigger produces a clear single controlled blink for each
13event, while in the latter it keeps blinking at constant rate, as to signal
14that the events are arriving continuously.
15
16A one-shot LED only stays in a constant state when there are no events.  An
17additional "invert" property specifies if the LED has to stay off (normal) or
18on (inverted) when not rearmed.
19
20The trigger can be activated from user space on led class devices as shown
21below::
22
23  echo oneshot > trigger
24
25This adds sysfs attributes to the LED that are documented in:
26Documentation/ABI/testing/sysfs-class-led-trigger-oneshot
27
28Example use-case: network devices, initialization::
29
30  echo oneshot > trigger # set trigger for this led
31  echo 33 > delay_on     # blink at 1 / (33 + 33) Hz on continuous traffic
32  echo 33 > delay_off
33
34interface goes up::
35
36  echo 1 > invert # set led as normally-on, turn the led on
37
38packet received/transmitted::
39
40  echo 1 > shot # led starts blinking, ignored if already blinking
41
42interface goes down::
43
44  echo 0 > invert # set led as normally-off, turn the led off
45