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-lp55xx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: TI/National Semiconductor LP55xx and LP8501 LED Drivers
8
9maintainers:
10  - Jacek Anaszewski <jacek.anaszewski@gmail.com>
11  - Pavel Machek <pavel@ucw.cz>
12
13description: |
14  Bindings for the TI/National Semiconductor LP55xx and LP8501 multi channel
15  LED Drivers.
16
17  For more product information please see the link below:
18    https://www.ti.com/lit/gpn/lp5521
19    https://www.ti.com/lit/gpn/lp5523
20    https://www.ti.com/lit/gpn/lp55231
21    https://www.ti.com/lit/gpn/lp5562
22    https://www.ti.com/lit/gpn/lp8501
23
24properties:
25  compatible:
26    enum:
27      - national,lp5521
28      - national,lp5523
29      - ti,lp55231
30      - ti,lp5562
31      - ti,lp8501
32
33  reg:
34    maxItems: 1
35    description: I2C slave address
36
37  clock-mode:
38    $ref: /schemas/types.yaml#/definitions/uint8
39    description: |
40      Input clock mode
41    enum:
42      - 0 # automode
43      - 1 # internal
44      - 2 # external
45
46  enable-gpios:
47    maxItems: 1
48    description: |
49      GPIO attached to the chip's enable pin
50
51  label: true
52
53  pwr-sel:
54    $ref: /schemas/types.yaml#/definitions/uint8
55    description: |
56      LP8501 specific property. Power selection for output channels.
57    enum:
58      - 0 # D1~9 are connected to VDD
59      - 1 # D1~6 with VDD, D7~9 with VOUT
60      - 2 # D1~6 with VOUT, D7~9 with VDD
61      - 3 # D1~9 are connected to VOUT
62
63  '#address-cells':
64    const: 1
65
66  '#size-cells':
67    const: 0
68
69patternProperties:
70  '^multi-led@[0-8]$':
71    type: object
72    $ref: leds-class-multicolor.yaml#
73    unevaluatedProperties: false
74
75    properties:
76      reg:
77        maximum: 8
78
79      '#address-cells':
80        const: 1
81
82      '#size-cells':
83        const: 0
84
85    patternProperties:
86      "^led@[0-8]$":
87        type: object
88        $ref: common.yaml#
89        unevaluatedProperties: false
90
91        properties:
92          led-cur:
93            $ref: /schemas/types.yaml#/definitions/uint8
94            description: |
95              Current setting at each LED channel (mA x10, 0 if LED is not connected)
96            minimum: 0
97            maximum: 255
98
99          max-cur:
100            $ref: /schemas/types.yaml#/definitions/uint8
101            description: Maximun current at each LED channel.
102
103          reg:
104            maximum: 8
105
106        required:
107          - reg
108
109  "^led@[0-8]$":
110    type: object
111    $ref: common.yaml#
112    unevaluatedProperties: false
113
114    properties:
115      led-cur:
116        $ref: /schemas/types.yaml#/definitions/uint8
117        description: |
118          Current setting at each LED channel (mA x10, 0 if LED is not connected)
119        minimum: 0
120        maximum: 255
121
122      max-cur:
123        $ref: /schemas/types.yaml#/definitions/uint8
124        description: Maximun current at each LED channel.
125
126      reg:
127        description: |
128          Output channel for the LED.  This is zero based channel identifier and
129          the data sheet is a one based channel identifier.
130          reg value to output to LED output number
131        enum:
132          - 0 # LED output D1
133          - 1 # LED output D2
134          - 2 # LED output D3
135          - 3 # LED output D4
136          - 4 # LED output D5
137          - 5 # LED output D6
138          - 6 # LED output D7
139          - 7 # LED output D8
140          - 8 # LED output D9
141
142      chan-name:
143        $ref: /schemas/types.yaml#/definitions/string
144        description: name of channel
145
146required:
147  - compatible
148  - reg
149
150additionalProperties: false
151
152examples:
153  - |
154    #include <dt-bindings/leds/common.h>
155
156    i2c {
157        #address-cells = <1>;
158        #size-cells = <0>;
159
160        led-controller@32 {
161            #address-cells = <1>;
162            #size-cells = <0>;
163            compatible = "ti,lp8501";
164            reg = <0x32>;
165            clock-mode = /bits/ 8 <2>;
166            pwr-sel = /bits/ 8 <3>;	/* D1~9 connected to VOUT */
167
168            led@0 {
169                reg = <0>;
170                chan-name = "d1";
171                led-cur = /bits/ 8 <0x14>;
172                max-cur = /bits/ 8 <0x20>;
173            };
174
175            led@1 {
176                reg = <1>;
177                chan-name = "d2";
178                led-cur = /bits/ 8 <0x14>;
179                max-cur = /bits/ 8 <0x20>;
180            };
181
182            led@2 {
183                reg = <2>;
184                chan-name = "d3";
185                led-cur = /bits/ 8 <0x14>;
186                max-cur = /bits/ 8 <0x20>;
187            };
188
189            led@3 {
190                reg = <3>;
191                chan-name = "d4";
192                led-cur = /bits/ 8 <0x14>;
193                max-cur = /bits/ 8 <0x20>;
194            };
195
196            led@4 {
197                reg = <4>;
198                chan-name = "d5";
199                led-cur = /bits/ 8 <0x14>;
200                max-cur = /bits/ 8 <0x20>;
201            };
202
203            led@5 {
204                reg = <5>;
205                chan-name = "d6";
206                led-cur = /bits/ 8 <0x14>;
207                max-cur = /bits/ 8 <0x20>;
208            };
209
210            led@6 {
211                reg = <6>;
212                chan-name = "d7";
213                led-cur = /bits/ 8 <0x14>;
214                max-cur = /bits/ 8 <0x20>;
215            };
216
217            led@7 {
218                reg = <7>;
219                chan-name = "d8";
220                led-cur = /bits/ 8 <0x14>;
221                max-cur = /bits/ 8 <0x20>;
222            };
223
224            led@8 {
225                reg = <8>;
226                chan-name = "d9";
227                led-cur = /bits/ 8 <0x14>;
228                max-cur = /bits/ 8 <0x20>;
229            };
230        };
231
232        led-controller@33 {
233            #address-cells = <1>;
234            #size-cells = <0>;
235            compatible = "national,lp5523";
236            reg = <0x33>;
237            clock-mode = /bits/ 8 <0>;
238
239            multi-led@2 {
240                #address-cells = <1>;
241                #size-cells = <0>;
242                reg = <0x2>;
243                color = <LED_COLOR_ID_RGB>;
244                function = LED_FUNCTION_STANDBY;
245                linux,default-trigger = "heartbeat";
246
247                led@0 {
248                    led-cur = /bits/ 8 <50>;
249                    max-cur = /bits/ 8 <100>;
250                    reg = <0x0>;
251                    color = <LED_COLOR_ID_GREEN>;
252                };
253
254                led@1 {
255                    led-cur = /bits/ 8 <50>;
256                    max-cur = /bits/ 8 <100>;
257                    reg = <0x1>;
258                    color = <LED_COLOR_ID_BLUE>;
259                };
260
261                led@6 {
262                    led-cur = /bits/ 8 <50>;
263                    max-cur = /bits/ 8 <100>;
264                    reg = <0x6>;
265                    color = <LED_COLOR_ID_RED>;
266                };
267            };
268        };
269    };
270
271...
272