mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 19:01:37 +00:00
5fd752b6b3
This patch adds a new LED trigger that LED device can configure to employ software or hardware pattern engine. Consumers can write 'pattern' file to enable the software pattern which alters the brightness for the specified duration with one software timer. Moreover consumers can write 'hw_pattern' file to enable the hardware pattern for some LED controllers which can autonomously control brightness over time, according to some preprogrammed hardware patterns. Signed-off-by: Raphael Teysseyre <rteysseyre@gmail.com> Signed-off-by: Baolin Wang <baolin.wang@linaro.org> Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
83 lines
3.0 KiB
Plaintext
83 lines
3.0 KiB
Plaintext
What: /sys/class/leds/<led>/pattern
|
|
Date: September 2018
|
|
KernelVersion: 4.20
|
|
Description:
|
|
Specify a software pattern for the LED, that supports altering
|
|
the brightness for the specified duration with one software
|
|
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.
|
|
|
|
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 brigntess value to another,
|
|
we should use 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
|
|
Date: September 2018
|
|
KernelVersion: 4.20
|
|
Description:
|
|
Specify a hardware pattern for the LED, for LED hardware that
|
|
supports autonomously controlling brightness over time, according
|
|
to some preprogrammed hardware patterns. It deactivates any active
|
|
software pattern.
|
|
|
|
Since different LED hardware can have different semantics of
|
|
hardware patterns, each driver is expected to provide its own
|
|
description for the hardware patterns in their ABI documentation
|
|
file.
|
|
|
|
What: /sys/class/leds/<led>/repeat
|
|
Date: September 2018
|
|
KernelVersion: 4.20
|
|
Description:
|
|
Specify a pattern repeat number. -1 means repeat indefinitely,
|
|
other negative numbers and number 0 are invalid.
|
|
|
|
This file will always return the originally written repeat
|
|
number.
|