Back to home page

OSCL-LXR

 
 

    


0001 ====================
0002 One-shot LED Trigger
0003 ====================
0004 
0005 This is a LED trigger useful for signaling the user of an event where there are
0006 no clear trap points to put standard led-on and led-off settings.  Using this
0007 trigger, the application needs only to signal the trigger when an event has
0008 happened, than the trigger turns the LED on and than keeps it off for a
0009 specified amount of time.
0010 
0011 This trigger is meant to be usable both for sporadic and dense events.  In the
0012 first case, the trigger produces a clear single controlled blink for each
0013 event, while in the latter it keeps blinking at constant rate, as to signal
0014 that the events are arriving continuously.
0015 
0016 A one-shot LED only stays in a constant state when there are no events.  An
0017 additional "invert" property specifies if the LED has to stay off (normal) or
0018 on (inverted) when not rearmed.
0019 
0020 The trigger can be activated from user space on led class devices as shown
0021 below::
0022 
0023   echo oneshot > trigger
0024 
0025 This adds sysfs attributes to the LED that are documented in:
0026 Documentation/ABI/testing/sysfs-class-led-trigger-oneshot
0027 
0028 Example use-case: network devices, initialization::
0029 
0030   echo oneshot > trigger # set trigger for this led
0031   echo 33 > delay_on     # blink at 1 / (33 + 33) Hz on continuous traffic
0032   echo 33 > delay_off
0033 
0034 interface goes up::
0035 
0036   echo 1 > invert # set led as normally-on, turn the led on
0037 
0038 packet received/transmitted::
0039 
0040   echo 1 > shot # led starts blinking, ignored if already blinking
0041 
0042 interface goes down::
0043 
0044   echo 0 > invert # set led as normally-off, turn the led off