Merge tag 'leds-for-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
Pull LED updates from Jacek Anaszewski: - finalize previously announced support for initialization of pattern triggers from Device Tree - fix for null deref on firmware load failure in leds-lp55xx-common.c * tag 'leds-for-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: leds: lp55xx: fix null deref on firmware load failure leds: trigger: timer: Add initialization from Device Tree leds: trigger: oneshot: Add initialization from Device Tree leds: trigger: pattern: Add pattern initialization from Device Tree leds: Add helper for getting default pattern from Device Tree dt-bindings: leds: Add pattern initialization from Device Tree
This commit is contained in:
@@ -37,6 +37,18 @@ Optional properties for child nodes:
|
||||
"ide-disk" - LED indicates IDE disk activity (deprecated),
|
||||
in new implementations use "disk-activity"
|
||||
"timer" - LED flashes at a fixed, configurable rate
|
||||
"pattern" - LED alters the brightness for the specified duration with one
|
||||
software timer (requires "led-pattern" property)
|
||||
|
||||
- led-pattern : Array of integers with default pattern for certain triggers.
|
||||
Each trigger may parse this property differently:
|
||||
- one-shot : two numbers specifying delay on and delay off (in ms),
|
||||
- timer : two numbers specifying delay on and delay off (in ms),
|
||||
- pattern : the pattern is given by a series of tuples, of
|
||||
brightness and duration (in ms). The exact format is
|
||||
described in:
|
||||
Documentation/devicetree/bindings/leds/leds-trigger-pattern.txt
|
||||
|
||||
|
||||
- led-max-microamp : Maximum LED supply current in microamperes. This property
|
||||
can be made mandatory for the board configurations
|
||||
|
@@ -0,0 +1,49 @@
|
||||
* Pattern format for LED pattern trigger
|
||||
|
||||
The pattern is given by a series of tuples, of brightness and duration (ms).
|
||||
The LED is expected to traverse the series and each brightness value for the
|
||||
specified duration. Duration of 0 means brightness should immediately change to
|
||||
new value, and writing malformed pattern deactivates any active one.
|
||||
|
||||
1. For gradual dimming, the dimming interval now is set as 50 milliseconds. So
|
||||
the tuple with duration less than dimming interval (50ms) is treated as a step
|
||||
change of brightness, i.e. the subsequent brightness will be applied without
|
||||
adding intervening dimming intervals.
|
||||
|
||||
The gradual dimming format of the software pattern values should be:
|
||||
"brightness_1 duration_1 brightness_2 duration_2 brightness_3 duration_3 ...".
|
||||
For example (using sysfs interface):
|
||||
|
||||
echo 0 1000 255 2000 > pattern
|
||||
|
||||
It will make the LED go gradually from zero-intensity to max (255) intensity in
|
||||
1000 milliseconds, then back to zero intensity in 2000 milliseconds:
|
||||
|
||||
LED brightness
|
||||
^
|
||||
255-| / \ / \ /
|
||||
| / \ / \ /
|
||||
| / \ / \ /
|
||||
| / \ / \ /
|
||||
0-| / \/ \/
|
||||
+---0----1----2----3----4----5----6------------> time (s)
|
||||
|
||||
2. To make the LED go instantly from one brightness value to another, we should
|
||||
use zero-time lengths (the brightness must be same as the previous tuple's). So
|
||||
the format should be: "brightness_1 duration_1 brightness_1 0 brightness_2
|
||||
duration_2 brightness_2 0 ...".
|
||||
For example (using sysfs interface):
|
||||
|
||||
echo 0 1000 0 0 255 2000 255 0 > pattern
|
||||
|
||||
It will make the LED stay off for one second, then stay at max brightness for
|
||||
two seconds:
|
||||
|
||||
LED brightness
|
||||
^
|
||||
255-| +---------+ +---------+
|
||||
| | | | |
|
||||
| | | | |
|
||||
| | | | |
|
||||
0-| -----+ +----+ +----
|
||||
+---0----1----2----3----4----5----6------------> time (s)
|
Reference in New Issue
Block a user