xref: /freebsd/sys/contrib/device-tree/Bindings/leds/leds-lp55xx.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1Binding for TI/National Semiconductor LP55xx Led Drivers
2
3Required properties:
4- compatible: one of
5	national,lp5521
6	national,lp5523
7	ti,lp55231
8	ti,lp5562
9	ti,lp8501
10
11- reg: I2C slave address
12- clock-mode: Input clock mode, (0: automode, 1: internal, 2: external)
13
14Each child has own specific current settings
15- led-cur: Current setting at each led channel (mA x10, 0 if led is not connected)
16- max-cur: Maximun current at each led channel.
17
18Optional properties:
19- enable-gpio: GPIO attached to the chip's enable pin
20- label: Used for naming LEDs
21- pwr-sel: LP8501 specific property. Power selection for output channels.
22         0: D1~9 are connected to VDD
23         1: D1~6 with VDD, D7~9 with VOUT
24         2: D1~6 with VOUT, D7~9 with VDD
25         3: D1~9 are connected to VOUT
26
27Alternatively, each child can have a specific channel name and trigger:
28- chan-name (optional): name of channel
29- linux,default-trigger (optional): see
30  Documentation/devicetree/bindings/leds/common.txt
31
32example 1) LP5521
333 LED channels, external clock used. Channel names are 'lp5521_pri:channel0',
34'lp5521_pri:channel1' and 'lp5521_pri:channel2', with a heartbeat trigger
35on channel 0.
36
37lp5521@32 {
38	compatible = "national,lp5521";
39	reg = <0x32>;
40	label = "lp5521_pri";
41	clock-mode = /bits/ 8 <2>;
42
43	chan0 {
44		led-cur = /bits/ 8 <0x2f>;
45		max-cur = /bits/ 8 <0x5f>;
46		linux,default-trigger = "heartbeat";
47	};
48
49	chan1 {
50		led-cur = /bits/ 8 <0x2f>;
51		max-cur = /bits/ 8 <0x5f>;
52	};
53
54	chan2 {
55		led-cur = /bits/ 8 <0x2f>;
56		max-cur = /bits/ 8 <0x5f>;
57	};
58};
59
60example 2) LP5523
619 LED channels with specific name. Internal clock used.
62The I2C slave address is configurable with ASEL1 and ASEL0 pins.
63Available addresses are 32/33/34/35h.
64
65ASEL1    ASEL0    Address
66-------------------------
67 GND      GND       32h
68 GND      VEN       33h
69 VEN      GND       34h
70 VEN      VEN       35h
71
72lp5523@32 {
73	compatible = "national,lp5523";
74	reg = <0x32>;
75	clock-mode = /bits/ 8 <1>;
76
77	chan0 {
78		chan-name = "d1";
79		led-cur = /bits/ 8 <0x14>;
80		max-cur = /bits/ 8 <0x20>;
81	};
82
83	chan1 {
84		chan-name = "d2";
85		led-cur = /bits/ 8 <0x14>;
86		max-cur = /bits/ 8 <0x20>;
87	};
88
89	chan2 {
90		chan-name = "d3";
91		led-cur = /bits/ 8 <0x14>;
92		max-cur = /bits/ 8 <0x20>;
93	};
94
95	chan3 {
96		chan-name = "d4";
97		led-cur = /bits/ 8 <0x14>;
98		max-cur = /bits/ 8 <0x20>;
99	};
100
101	chan4 {
102		chan-name = "d5";
103		led-cur = /bits/ 8 <0x14>;
104		max-cur = /bits/ 8 <0x20>;
105	};
106
107	chan5 {
108		chan-name = "d6";
109		led-cur = /bits/ 8 <0x14>;
110		max-cur = /bits/ 8 <0x20>;
111	};
112
113	chan6 {
114		chan-name = "d7";
115		led-cur = /bits/ 8 <0x14>;
116		max-cur = /bits/ 8 <0x20>;
117	};
118
119	chan7 {
120		chan-name = "d8";
121		led-cur = /bits/ 8 <0x14>;
122		max-cur = /bits/ 8 <0x20>;
123	};
124
125	chan8 {
126		chan-name = "d9";
127		led-cur = /bits/ 8 <0x14>;
128		max-cur = /bits/ 8 <0x20>;
129	};
130};
131
132example 3) LP5562
1334 channels are defined.
134
135lp5562@30 {
136	compatible = "ti,lp5562";
137	reg = <0x30>;
138	clock-mode = /bits/8 <2>;
139
140	chan0 {
141		chan-name = "R";
142		led-cur = /bits/ 8 <0x20>;
143		max-cur = /bits/ 8 <0x60>;
144	};
145
146	chan1 {
147		chan-name = "G";
148		led-cur = /bits/ 8 <0x20>;
149		max-cur = /bits/ 8 <0x60>;
150	};
151
152	chan2 {
153		chan-name = "B";
154		led-cur = /bits/ 8 <0x20>;
155		max-cur = /bits/ 8 <0x60>;
156	};
157
158	chan3 {
159		chan-name = "W";
160		led-cur = /bits/ 8 <0x20>;
161		max-cur = /bits/ 8 <0x60>;
162	};
163};
164
165example 4) LP8501
1669 channels are defined. The 'pwr-sel' is LP8501 specific property.
167Others are same as LP5523.
168
169lp8501@32 {
170	compatible = "ti,lp8501";
171	reg = <0x32>;
172	clock-mode = /bits/ 8 <2>;
173	pwr-sel = /bits/ 8 <3>;	/* D1~9 connected to VOUT */
174
175	chan0 {
176		chan-name = "d1";
177		led-cur = /bits/ 8 <0x14>;
178		max-cur = /bits/ 8 <0x20>;
179	};
180
181	chan1 {
182		chan-name = "d2";
183		led-cur = /bits/ 8 <0x14>;
184		max-cur = /bits/ 8 <0x20>;
185	};
186
187	chan2 {
188		chan-name = "d3";
189		led-cur = /bits/ 8 <0x14>;
190		max-cur = /bits/ 8 <0x20>;
191	};
192
193	chan3 {
194		chan-name = "d4";
195		led-cur = /bits/ 8 <0x14>;
196		max-cur = /bits/ 8 <0x20>;
197	};
198
199	chan4 {
200		chan-name = "d5";
201		led-cur = /bits/ 8 <0x14>;
202		max-cur = /bits/ 8 <0x20>;
203	};
204
205	chan5 {
206		chan-name = "d6";
207		led-cur = /bits/ 8 <0x14>;
208		max-cur = /bits/ 8 <0x20>;
209	};
210
211	chan6 {
212		chan-name = "d7";
213		led-cur = /bits/ 8 <0x14>;
214		max-cur = /bits/ 8 <0x20>;
215	};
216
217	chan7 {
218		chan-name = "d8";
219		led-cur = /bits/ 8 <0x14>;
220		max-cur = /bits/ 8 <0x20>;
221	};
222
223	chan8 {
224		chan-name = "d9";
225		led-cur = /bits/ 8 <0x14>;
226		max-cur = /bits/ 8 <0x20>;
227	};
228};
229