mirror of https://gitee.com/openkylin/linux.git
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.
|
timer. It can do gradual dimming and step change of brightness.
|
||||||
|
|
||||||
The pattern is given by a series of tuples, of brightness and
|
The pattern is given by a series of tuples, of brightness and
|
||||||
duration (ms). The LED is expected to traverse the series and
|
duration (ms).
|
||||||
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
|
The exact format is described in:
|
||||||
milliseconds. So the tuple with duration less than dimming
|
Documentation/devicetree/bindings/leds/leds-trigger-pattern.txt
|
||||||
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)
|
|
||||||
|
|
||||||
What: /sys/class/leds/<led>/hw_pattern
|
What: /sys/class/leds/<led>/hw_pattern
|
||||||
Date: September 2018
|
Date: September 2018
|
||||||
|
|
|
@ -37,6 +37,18 @@ Optional properties for child nodes:
|
||||||
"ide-disk" - LED indicates IDE disk activity (deprecated),
|
"ide-disk" - LED indicates IDE disk activity (deprecated),
|
||||||
in new implementations use "disk-activity"
|
in new implementations use "disk-activity"
|
||||||
"timer" - LED flashes at a fixed, configurable rate
|
"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
|
- led-max-microamp : Maximum LED supply current in microamperes. This property
|
||||||
can be made mandatory for the board configurations
|
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