xref: /openbmc/linux/Documentation/leds/leds-blinkm.rst (revision 0898782247ae533d1f4e47a06bc5d4870931b284)
1*8dab9197SMauro Carvalho Chehab==================
2*8dab9197SMauro Carvalho ChehabLeds BlinkM driver
3*8dab9197SMauro Carvalho Chehab==================
4*8dab9197SMauro Carvalho Chehab
5*8dab9197SMauro Carvalho ChehabThe leds-blinkm driver supports the devices of the BlinkM family.
6*8dab9197SMauro Carvalho Chehab
7*8dab9197SMauro Carvalho ChehabThey are RGB-LED modules driven by a (AT)tiny microcontroller and
8*8dab9197SMauro Carvalho Chehabcommunicate through I2C. The default address of these modules is
9*8dab9197SMauro Carvalho Chehab0x09 but this can be changed through a command. By this you could
10*8dab9197SMauro Carvalho Chehabdasy-chain up to 127 BlinkMs on an I2C bus.
11*8dab9197SMauro Carvalho Chehab
12*8dab9197SMauro Carvalho ChehabThe device accepts RGB and HSB color values through separate commands.
13*8dab9197SMauro Carvalho ChehabAlso you can store blinking sequences as "scripts" in
14*8dab9197SMauro Carvalho Chehabthe controller and run them. Also fading is an option.
15*8dab9197SMauro Carvalho Chehab
16*8dab9197SMauro Carvalho ChehabThe interface this driver provides is 2-fold:
17*8dab9197SMauro Carvalho Chehab
18*8dab9197SMauro Carvalho Chehaba) LED class interface for use with triggers
19*8dab9197SMauro Carvalho Chehab############################################
20*8dab9197SMauro Carvalho Chehab
21*8dab9197SMauro Carvalho ChehabThe registration follows the scheme::
22*8dab9197SMauro Carvalho Chehab
23*8dab9197SMauro Carvalho Chehab  blinkm-<i2c-bus-nr>-<i2c-device-nr>-<color>
24*8dab9197SMauro Carvalho Chehab
25*8dab9197SMauro Carvalho Chehab  $ ls -h /sys/class/leds/blinkm-6-*
26*8dab9197SMauro Carvalho Chehab  /sys/class/leds/blinkm-6-9-blue:
27*8dab9197SMauro Carvalho Chehab  brightness  device  max_brightness  power  subsystem  trigger  uevent
28*8dab9197SMauro Carvalho Chehab
29*8dab9197SMauro Carvalho Chehab  /sys/class/leds/blinkm-6-9-green:
30*8dab9197SMauro Carvalho Chehab  brightness  device  max_brightness  power  subsystem  trigger  uevent
31*8dab9197SMauro Carvalho Chehab
32*8dab9197SMauro Carvalho Chehab  /sys/class/leds/blinkm-6-9-red:
33*8dab9197SMauro Carvalho Chehab  brightness  device  max_brightness  power  subsystem  trigger  uevent
34*8dab9197SMauro Carvalho Chehab
35*8dab9197SMauro Carvalho Chehab(same is /sys/bus/i2c/devices/6-0009/leds)
36*8dab9197SMauro Carvalho Chehab
37*8dab9197SMauro Carvalho ChehabWe can control the colors separated into red, green and blue and
38*8dab9197SMauro Carvalho Chehabassign triggers on each color.
39*8dab9197SMauro Carvalho Chehab
40*8dab9197SMauro Carvalho ChehabE.g.::
41*8dab9197SMauro Carvalho Chehab
42*8dab9197SMauro Carvalho Chehab  $ cat blinkm-6-9-blue/brightness
43*8dab9197SMauro Carvalho Chehab  05
44*8dab9197SMauro Carvalho Chehab
45*8dab9197SMauro Carvalho Chehab  $ echo 200 > blinkm-6-9-blue/brightness
46*8dab9197SMauro Carvalho Chehab  $
47*8dab9197SMauro Carvalho Chehab
48*8dab9197SMauro Carvalho Chehab  $ modprobe ledtrig-heartbeat
49*8dab9197SMauro Carvalho Chehab  $ echo heartbeat > blinkm-6-9-green/trigger
50*8dab9197SMauro Carvalho Chehab  $
51*8dab9197SMauro Carvalho Chehab
52*8dab9197SMauro Carvalho Chehab
53*8dab9197SMauro Carvalho Chehabb) Sysfs group to control rgb, fade, hsb, scripts ...
54*8dab9197SMauro Carvalho Chehab#####################################################
55*8dab9197SMauro Carvalho Chehab
56*8dab9197SMauro Carvalho ChehabThis extended interface is available as folder blinkm
57*8dab9197SMauro Carvalho Chehabin the sysfs folder of the I2C device.
58*8dab9197SMauro Carvalho ChehabE.g. below /sys/bus/i2c/devices/6-0009/blinkm
59*8dab9197SMauro Carvalho Chehab
60*8dab9197SMauro Carvalho Chehab  $ ls -h /sys/bus/i2c/devices/6-0009/blinkm/
61*8dab9197SMauro Carvalho Chehab  blue  green  red  test
62*8dab9197SMauro Carvalho Chehab
63*8dab9197SMauro Carvalho ChehabCurrently supported is just setting red, green, blue
64*8dab9197SMauro Carvalho Chehaband a test sequence.
65*8dab9197SMauro Carvalho Chehab
66*8dab9197SMauro Carvalho ChehabE.g.::
67*8dab9197SMauro Carvalho Chehab
68*8dab9197SMauro Carvalho Chehab  $ cat *
69*8dab9197SMauro Carvalho Chehab  00
70*8dab9197SMauro Carvalho Chehab  00
71*8dab9197SMauro Carvalho Chehab  00
72*8dab9197SMauro Carvalho Chehab  #Write into test to start test sequence!#
73*8dab9197SMauro Carvalho Chehab
74*8dab9197SMauro Carvalho Chehab  $ echo 1 > test
75*8dab9197SMauro Carvalho Chehab  $
76*8dab9197SMauro Carvalho Chehab
77*8dab9197SMauro Carvalho Chehab  $ echo 255 > red
78*8dab9197SMauro Carvalho Chehab  $
79*8dab9197SMauro Carvalho Chehab
80*8dab9197SMauro Carvalho Chehab
81*8dab9197SMauro Carvalho Chehab
82*8dab9197SMauro Carvalho Chehabas of 6/2012
83*8dab9197SMauro Carvalho Chehab
84*8dab9197SMauro Carvalho Chehabdl9pf <at> gmx <dot> de
85