u-boot/doc/device-tree-bindings/leds/leds-lp5562.txt
Doug Zobel f9dc67d18e led: add TI LP5562 LED driver
Driver for the TI LP5562 4 channel LED controller. Supports
independent on/off control of all 4 channels. Supports LED_BLINK on 3
independent channels: blue/green/red. The white channel can blink, but
shares the blue channel blink rate.

Heavily based on patch originally from Doug Zobel [1].

I have modified it so it matches the DT bindings in the linux tree,
and also follows the linux driver implementation more closely. This
should address Tom's concerns, and also matches my goal of making the
U-Boot driver work with our existing .dts which is known to work in
linux.

As our boards only have the R,G,B outputs connected, I have not
actually tested how the white channel behaves, but the R,G,B work
exactly as expected.

[1] https://lore.kernel.org/u-boot/1547150757-1561-1-git-send-email-douglas.zobel@climate.com/

Cc: Doug Zobel <douglas.zobel@climate.com>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2023-12-13 11:35:16 -05:00

63 lines
2 KiB
Text

LEDs connected to TI LP5562 controller
This driver works with a TI LP5562 4-channel LED controller.
CONFIG_LED_BLINK is supported using the controller engines. However
there are only 3 engines available for the 4 channels. This means
that the blue and white channels share the same engine. When both
blue and white LEDs are set to blink, they will share the same blink
rate. Changing the blink rate of the blue LED will affect the white
LED and vice-versa. Manual on/off is handled independently for all 4
channels.
Required properties:
- compatible : should be "ti,lp5562".
- #address-cells : must be 1.
- #size-cells : must be 0.
- reg : LP5562 LED controller I2C address.
Optional properties:
- enable-gpios : Enable GPIO
- clock-mode : u8, configures the clock mode:
- 0 # automode
- 1 # internal
- 2 # external
Each LED is represented as a sub-node of the ti,lp5562 device.
LED sub-node required properties:
- reg : Zero-based channel identifier:
- 0 red
- 1 green
- 2 blue
- 3 white
LED sub-node optional properties:
- chan-name : name of LED
- max-cur : LED current at max brightness in 100uA steps (0x00 - 0xFF)
Default : 100 (10 mA)
Example:
leds0: lp5562@30 {
compatible = "ti,lp5562";
#address-cells = <1>;
#size-cells = <0>;
enable-gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>;
reg = <0x30>;
clock-mode = /bits/8 <1>;
led@0 {
reg = <0>;
chan-name = "red";
max-cur = /bits/ 8 <200>; /* 20mA */
};
led@1 {
reg = <1>;
chan-name = "green";
max-cur = /bits/ 8 <200>; /* 20mA */
};
led@2 {
reg = <2>;
chan-name = "blue";
max-cur = /bits/ 8 <200>; /* 20mA */
};
};