Re: [PATCH v8 7/9] dt: bindings: lp50xx: Introduce the lp50xx family of RGB drivers

Dan Murphy
2019-09-23T15:24:24Z

Jacek

On 9/21/19 10:13 AM, Jacek Anaszewski wrote:
> Dan,
>
> On 9/20/19 7:41 PM, Dan Murphy wrote:
>> Introduce the bindings for the Texas Instruments LP5036, LP5030, LP5024,
>> LP5018, LP5012 and LP5009 RGB LED device driver. The LP5036/30/24/18/12/9
>> can control RGB LEDs individually or as part of a control bank group.
>> These devices have the ability to adjust the mixing control for the RGB
>> LEDs to obtain different colors independent of the overall brightness of
>> the LED grouping.
>>
>> Datasheet:
>> http://www.ti.com/lit/ds/symlink/lp5012.pdf
>> http://www.ti.com/lit/ds/symlink/lp5024.pdf
>> http://www.ti.com/lit/ds/symlink/lp5036.pdf
>>
>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>> ---
>> .../devicetree/bindings/leds/leds-lp50xx.txt | 148 ++++++++++++++++++
>> 1 file changed, 148 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/leds/leds-lp50xx.txt
>>
>> diff --git a/Documentation/devicetree/bindings/leds/leds-lp50xx.txt b/Documentation/devicetree/bindings/leds/leds-lp50xx.txt
>> new file mode 100644
>> index 000000000000..9d05f43042e0
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/leds/leds-lp50xx.txt
>> @@ -0,0 +1,148 @@
>> +* Texas Instruments - LP5009/12/18/24/30/36 RGB LED driver
>> +
>> +The LP50XX is multi-channel, I2C RGB LED Drivers that can group RGB LEDs into
>> +a LED group or control them individually.
>> +
>> +The difference in these RGB LED drivers is the number of supported RGB modules.
>> +
>> +Required parent properties:
>> + - compatible:
>> + "ti,lp5009"
>> + "ti,lp5012"
>> + "ti,lp5018"
>> + "ti,lp5024"
>> + "ti,lp5030"
>> + "ti,lp5036"
>> + - reg : I2C slave address
>> + lp5009/12 - 0x28
>> + lp5018/24 - 0x28
>> + lp5030/36 - 0x30
>> + - #address-cells : 1
>> + - #size-cells : 0
>> +
>> +Optional parent properties:
>> + - enable-gpios : gpio pin to enable/disable the device.
>> + - vled-supply : LED supply
>> +
>> +Required child properties:
>> + - #address-cells : 1
>> + - #size-cells : 0
>> + - reg : This is the LED module number.
>> + - color : see Documentation/devicetree/bindings/leds/common.txt
>> + - function : see Documentation/devicetree/bindings/leds/common.txt
>> +
>> +Required child properties only is LED modules will be banked:
>> + - ti,led-bank : This property denotes the LED module numbers that will
>> + be controlled as a single RGB cluster. Each LED module
>> + number will be controlled by a single LED class instance.
>> + There can only be one instance of the ti,led-bank
>> + property for each device node.
>> +
>> +Required grandchildren properties:
>> + - reg : A single entry denoting the LED module that controls
>> + the RGB cluster.
>> + - color : see Documentation/devicetree/bindings/leds/leds-multicolor.txt
>> + - led-sources : see Documentation/devicetree/bindings/leds/common.txt
>> +
>> +The LED outputs associated with the LED modules are defined in Table 1 of the
>> +corresponding data sheets.
> We must enclose this information here.

That will make this doc pretty messy especially with the LP5036 entries.

I would have to do ascii art to make it understandable and basically
there is not a delta in the lesser devices in the outputs

I don't see value in reproducing this data sheet contents in the
dt-bindings.

For example (LP5012) and then for the LP5036 multiply this by 3

Table 1.

Bank Number and LED Number Assignment
OUT NUMBER BANK NUMBER  RGB LED MODULE NUMBER
OUT0                    Bank A
OUT1                    Bank B                        LED0
OUT2                    Bank C

OUT3                    Bank A
OUT4                    Bank B                        LED1
OUT5                    Bank C

OUT6                    Bank A
OUT7                    Bank B                        LED2
OUT8                    Bank C

OUT9 (LP5012 only) Bank A
OUT10 (LP5012 only) Bank B                  LED3
OUT11 (LP5012 only) Bank C

>
>> +
>> +LP5009 - 2 Total RGB cluster LED outputs 0-1

This should be 3 total not 2

Dan

>> +LP5012 - 4 Total RGB cluster LED outputs 0-3
>> +LP5018 - 6 Total RGB cluster LED outputs 0-5
>> +LP5024 - 8 Total RGB cluster LED outputs 0-7
>> +LP5030 - 10 Total RGB cluster LED outputs 0-9
>> +LP5036 - 12 Total RGB cluster LED outputs 0-11
>> +
>> +Optional child properties:
>> + - label : see Documentation/devicetree/bindings/leds/common.txt
>> + - linux,default-trigger :
>> + see Documentation/devicetree/bindings/leds/common.txt
>> +
>> +Examples:
>> +led-controller@29 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + compatible = "ti,lp5024";
>> + reg = <0x29>;
>> + enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
>> + vled-supply = <&vmmcsd_fixed>;
>> +
>> + multi-led@1 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + reg = <1>;
>> + color = <LED_COLOR_ID_MULTI>;
>> + function = LED_FUNCTION_STATUS;
>> +
>> + led@3 {
>> + reg = <3>;
>> + color = <LED_COLOR_ID_RED>;
>> + };
>> +
>> + led@4 {
>> + reg = <4>;
>> + color = <LED_COLOR_ID_GREEN>;
>> + };
>> +
>> + led@5 {
>> + reg = <5>;
>> + color = <LED_COLOR_ID_BLUE>;
>> + };
>> + };
>> +
>> + multi-led@2 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + reg = <2>;
>> + color = <LED_COLOR_ID_MULTI>;
>> + function = LED_FUNCTION_STANDBY;
>> + ti,led-bank = <2 3 5>;
>> +
>> + led@6 {
>> + reg = <0x6>;
>> + color = <LED_COLOR_ID_RED>;
>> + led-sources = <6 9 15>;
>> + };
>> +
>> + led@7 {
>> + reg = <0x7>;
>> + color = <LED_COLOR_ID_GREEN>;
>> + led-sources = <7 10 16>;
>> + };
>> +
>> + led@8 {
>> + reg = <0x8>;
>> + color = <LED_COLOR_ID_BLUE>;
>> + led-sources = <8 11 17>;
>> + };
>> + };
>> +
>> + multi-led@4 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + reg = <4>;
>> + color = <LED_COLOR_ID_MULTI>;
>> + function = LED_FUNCTION_ACTIVITY;
>> +
>> + led@12 {
>> + reg = <12>;
>> + color = <LED_COLOR_ID_RED>;
>> + };
>> +
>> + led@13 {
>> + reg = <13>;
>> + color = <LED_COLOR_ID_GREEN>;
>> + };
>> +
>> + led@14 {
>> + reg = <14>;
>> + color = <LED_COLOR_ID_BLUE>;
>> + };
>> + };
>> +};
>> +
>> +For more product information please see the link below:
>> +http://www.ti.com/lit/ds/symlink/lp5012.pdf
>> +http://www.ti.com/lit/ds/symlink/lp5024.pdf
>> +http://www.ti.com/lit/ds/symlink/lp5036.pdf
>>