forked from Minki/linux
dt-bindings: leds: Add pattern initialization from Device Tree
Document new led-pattern property for initialization of LED triggers. The property format is trigger-specific (except being array of integers). For pattern trigger, the explanation of pattern format was moved to a common file shared with sysfs ABI. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Pavel Machek <pavel@ucw.cz> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
This commit is contained in:
parent
bfeffd1552
commit
1dd7093742
@ -7,55 +7,10 @@ Description:
|
||||
timer. It can do gradual dimming and step change of brightness.
|
||||
|
||||
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.
|
||||
duration (ms).
|
||||
|
||||
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:
|
||||
|
||||
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:
|
||||
|
||||
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)
|
||||
The exact format is described in:
|
||||
Documentation/devicetree/bindings/leds/leds-trigger-pattern.txt
|
||||
|
||||
What: /sys/class/leds/<led>/hw_pattern
|
||||
Date: September 2018
|
||||
|
@ -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)
|
Loading…
Reference in New Issue
Block a user