1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/leds/leds-lp50xx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: LED driver for LP50XX RGB LED from Texas Instruments.
8
9maintainers:
10  - Andrew Davis <afd@ti.com>
11
12description: |
13  The LP50XX is multi-channel, I2C RGB LED Drivers that can group RGB LEDs into
14  a LED group or control them individually.
15
16  The difference in these RGB LED drivers is the number of supported RGB
17  modules.
18
19  For more product information please see the link below:
20  https://www.ti.com/lit/ds/symlink/lp5012.pdf
21  https://www.ti.com/lit/ds/symlink/lp5024.pdf
22  https://www.ti.com/lit/ds/symlink/lp5036.pdf
23
24properties:
25  compatible:
26    enum:
27      - ti,lp5009
28      - ti,lp5012
29      - ti,lp5018
30      - ti,lp5024
31      - ti,lp5030
32      - ti,lp5036
33
34  reg:
35    maxItems: 1
36    description:
37      I2C slave address
38      lp5009/12 - 0x14, 0x15, 0x16, 0x17
39      lp5018/24 - 0x28, 0x29, 0x2a, 0x2b
40      lp5030/36 - 0x30, 0x31, 0x32, 0x33
41
42  enable-gpios:
43    maxItems: 1
44    description: GPIO pin to enable/disable the device.
45
46  vled-supply:
47    description: LED supply.
48
49  '#address-cells':
50    const: 1
51
52  '#size-cells':
53    const: 0
54
55patternProperties:
56  '^multi-led@[0-9a-f]$':
57    type: object
58    $ref: leds-class-multicolor.yaml#
59    unevaluatedProperties: false
60
61    properties:
62      reg:
63        minItems: 1
64        maxItems: 12
65        description:
66          This property denotes the LED module number(s) that is used on the
67          for the child node.  The LED modules can either be used stand alone
68          or grouped into a module bank.
69
70      '#address-cells':
71        const: 1
72
73      '#size-cells':
74        const: 0
75
76    patternProperties:
77      "^led@[0-9a-f]+$":
78        type: object
79        $ref: common.yaml#
80
81required:
82  - compatible
83  - reg
84
85additionalProperties: false
86
87examples:
88  - |
89    #include <dt-bindings/gpio/gpio.h>
90    #include <dt-bindings/leds/common.h>
91
92    i2c {
93        #address-cells = <1>;
94        #size-cells = <0>;
95
96        led-controller@14 {
97            compatible = "ti,lp5009";
98            reg = <0x14>;
99            #address-cells = <1>;
100            #size-cells = <0>;
101            enable-gpios = <&gpio1 16>;
102
103            multi-led@1 {
104                #address-cells = <1>;
105                #size-cells = <0>;
106                reg = <0x1>;
107                color = <LED_COLOR_ID_RGB>;
108                function = LED_FUNCTION_CHARGING;
109
110                led@0 {
111                     reg = <0x0>;
112                     color = <LED_COLOR_ID_RED>;
113                };
114
115                led@1 {
116                     reg = <0x1>;
117                     color = <LED_COLOR_ID_GREEN>;
118                };
119
120                led@2 {
121                     reg = <0x2>;
122                     color = <LED_COLOR_ID_BLUE>;
123                };
124            };
125
126            multi-led@3 {
127                #address-cells = <1>;
128                #size-cells = <0>;
129                reg = <0x3>, <0x4>, <0x5>;
130                color = <LED_COLOR_ID_RGB>;
131                function = LED_FUNCTION_STANDBY;
132
133                led@3 {
134                    reg = <0x3>;
135                    color = <LED_COLOR_ID_RED>;
136                };
137
138                led@4 {
139                    reg = <0x4>;
140                    color = <LED_COLOR_ID_GREEN>;
141                };
142
143                led@5 {
144                    reg = <0x5>;
145                    color = <LED_COLOR_ID_BLUE>;
146                };
147            };
148        };
149    };
150
151...
152