blob: e9d4514d0166defdb6a64f4b8e73b17ce10a0d46 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
69 ti,charge-pump-mode:
70 description:
71 Set the operating mode of the internal charge pump as defined in
72 <dt-bindings/leds/leds-lp55xx.h>.
73 $ref: /schemas/types.yaml#/definitions/uint32
74 default: 3 # auto
75 maximum: 3
76
77patternProperties:
78 '^multi-led@[0-8]$':
79 type: object
80 $ref: leds-class-multicolor.yaml#
81 unevaluatedProperties: false
82
83 properties:
84 reg:
85 maximum: 8
86
87 '#address-cells':
88 const: 1
89
90 '#size-cells':
91 const: 0
92
93 patternProperties:
94 "^led@[0-8]$":
95 type: object
96 $ref: common.yaml#
97 unevaluatedProperties: false
98
99 properties:
100 led-cur:
101 $ref: /schemas/types.yaml#/definitions/uint8
102 description: |
103 Current setting at each LED channel (mA x10, 0 if LED is not connected)
104 minimum: 0
105 maximum: 255
106
107 max-cur:
108 $ref: /schemas/types.yaml#/definitions/uint8
109 description: Maximum current at each LED channel.
110
111 reg:
112 maximum: 8
113
114 required:
115 - reg
116
117 "^led@[0-8]$":
118 type: object
119 $ref: common.yaml#
120 unevaluatedProperties: false
121
122 properties:
123 led-cur:
124 $ref: /schemas/types.yaml#/definitions/uint8
125 description: |
126 Current setting at each LED channel (mA x10, 0 if LED is not connected)
127 minimum: 0
128 maximum: 255
129
130 max-cur:
131 $ref: /schemas/types.yaml#/definitions/uint8
132 description: Maximum current at each LED channel.
133
134 reg:
135 description: |
136 Output channel for the LED. This is zero based channel identifier and
137 the data sheet is a one based channel identifier.
138 reg value to output to LED output number
139 enum:
140 - 0 # LED output D1
141 - 1 # LED output D2
142 - 2 # LED output D3
143 - 3 # LED output D4
144 - 4 # LED output D5
145 - 5 # LED output D6
146 - 6 # LED output D7
147 - 7 # LED output D8
148 - 8 # LED output D9
149
150 chan-name:
151 $ref: /schemas/types.yaml#/definitions/string
152 description: name of channel
153
154required:
155 - compatible
156 - reg
157
158additionalProperties: false
159
160examples:
161 - |
162 #include <dt-bindings/leds/common.h>
163 #include <dt-bindings/leds/leds-lp55xx.h>
164
165 i2c {
166 #address-cells = <1>;
167 #size-cells = <0>;
168
169 led-controller@32 {
170 #address-cells = <1>;
171 #size-cells = <0>;
172 compatible = "ti,lp8501";
173 reg = <0x32>;
174 clock-mode = /bits/ 8 <2>;
175 pwr-sel = /bits/ 8 <3>; /* D1~9 connected to VOUT */
176 ti,charge-pump-mode = <LP55XX_CP_BYPASS>;
177
178 led@0 {
179 reg = <0>;
180 chan-name = "d1";
181 led-cur = /bits/ 8 <0x14>;
182 max-cur = /bits/ 8 <0x20>;
183 };
184
185 led@1 {
186 reg = <1>;
187 chan-name = "d2";
188 led-cur = /bits/ 8 <0x14>;
189 max-cur = /bits/ 8 <0x20>;
190 };
191
192 led@2 {
193 reg = <2>;
194 chan-name = "d3";
195 led-cur = /bits/ 8 <0x14>;
196 max-cur = /bits/ 8 <0x20>;
197 };
198
199 led@3 {
200 reg = <3>;
201 chan-name = "d4";
202 led-cur = /bits/ 8 <0x14>;
203 max-cur = /bits/ 8 <0x20>;
204 };
205
206 led@4 {
207 reg = <4>;
208 chan-name = "d5";
209 led-cur = /bits/ 8 <0x14>;
210 max-cur = /bits/ 8 <0x20>;
211 };
212
213 led@5 {
214 reg = <5>;
215 chan-name = "d6";
216 led-cur = /bits/ 8 <0x14>;
217 max-cur = /bits/ 8 <0x20>;
218 };
219
220 led@6 {
221 reg = <6>;
222 chan-name = "d7";
223 led-cur = /bits/ 8 <0x14>;
224 max-cur = /bits/ 8 <0x20>;
225 };
226
227 led@7 {
228 reg = <7>;
229 chan-name = "d8";
230 led-cur = /bits/ 8 <0x14>;
231 max-cur = /bits/ 8 <0x20>;
232 };
233
234 led@8 {
235 reg = <8>;
236 chan-name = "d9";
237 led-cur = /bits/ 8 <0x14>;
238 max-cur = /bits/ 8 <0x20>;
239 };
240 };
241
242 led-controller@33 {
243 #address-cells = <1>;
244 #size-cells = <0>;
245 compatible = "national,lp5523";
246 reg = <0x33>;
247 clock-mode = /bits/ 8 <0>;
248
249 multi-led@2 {
250 #address-cells = <1>;
251 #size-cells = <0>;
252 reg = <0x2>;
253 color = <LED_COLOR_ID_RGB>;
254 function = LED_FUNCTION_STANDBY;
255 linux,default-trigger = "heartbeat";
256
257 led@0 {
258 led-cur = /bits/ 8 <50>;
259 max-cur = /bits/ 8 <100>;
260 reg = <0x0>;
261 color = <LED_COLOR_ID_GREEN>;
262 };
263
264 led@1 {
265 led-cur = /bits/ 8 <50>;
266 max-cur = /bits/ 8 <100>;
267 reg = <0x1>;
268 color = <LED_COLOR_ID_BLUE>;
269 };
270
271 led@6 {
272 led-cur = /bits/ 8 <50>;
273 max-cur = /bits/ 8 <100>;
274 reg = <0x6>;
275 color = <LED_COLOR_ID_RED>;
276 };
277 };
278 };
279 };
280
281...