blob: 13e375a580f94d2319a68d7d1375bd9de271674c [file] [log] [blame]
David Lechnere3813222016-09-16 14:16:48 -05001Userspace LEDs
2==============
3
4The uleds driver supports userspace LEDs. This can be useful for testing
5triggers and can also be used to implement virtual LEDs.
6
7
8Usage
9=====
10
11When the driver is loaded, a character device is created at /dev/uleds. To
12create a new LED class device, open /dev/uleds and write a uleds_user_dev
13structure to it (found in kernel public header file linux/uleds.h).
14
15 #define LED_MAX_NAME_SIZE 64
16
17 struct uleds_user_dev {
18 char name[LED_MAX_NAME_SIZE];
19 };
20
21A new LED class device will be created with the name given. The name can be
22any valid sysfs device node name, but consider using the LED class naming
23convention of "devicename:color:function".
24
25The current brightness is found by reading a single byte from the character
26device. Values are unsigned: 0 to 255. Reading will block until the brightness
27changes. The device node can also be polled to notify when the brightness value
28changes.
29
30The LED class device will be removed when the open file handle to /dev/uleds
31is closed.
32
33Multiple LED class devices are created by opening additional file handles to
34/dev/uleds.
35
36See tools/leds/uledmon.c for an example userspace program.