summaryrefslogtreecommitdiffstats
path: root/Documentation/ABI/testing/sysfs-class-led-trigger-pattern
blob: 1e5d172e064624d96216eae51a4be60c02a29979 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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 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
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.