1 // SPDX-License-Identifier: GPL-2.0
2 #include "bcm47xx_private.h"
4 #include <linux/leds.h>
5 #include <bcm47xx_board.h>
7 /**************************************************
9 **************************************************/
11 #define BCM47XX_GPIO_LED(_gpio, _color, _function, _active_low, \
14 .name = "bcm47xx:" _color ":" _function, \
16 .active_low = _active_low, \
17 .default_state = _default_state, \
20 #define BCM47XX_GPIO_LED_TRIGGER(_gpio, _color, _function, _active_low, \
23 .name = "bcm47xx:" _color ":" _function, \
25 .active_low = _active_low, \
26 .default_state = LEDS_GPIO_DEFSTATE_OFF, \
27 .default_trigger = _default_trigger, \
32 static const struct gpio_led
33 bcm47xx_leds_asus_rtn10u
[] __initconst
= {
34 BCM47XX_GPIO_LED(5, "green", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
35 BCM47XX_GPIO_LED(6, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
36 BCM47XX_GPIO_LED(7, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF
),
37 BCM47XX_GPIO_LED(8, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF
),
40 static const struct gpio_led
41 bcm47xx_leds_asus_rtn12
[] __initconst
= {
42 BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
43 BCM47XX_GPIO_LED(7, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
46 static const struct gpio_led
47 bcm47xx_leds_asus_rtn15u
[] __initconst
= {
48 /* TODO: Add "wlan" LED */
49 BCM47XX_GPIO_LED(3, "blue", "wan", 1, LEDS_GPIO_DEFSTATE_OFF
),
50 BCM47XX_GPIO_LED(4, "blue", "lan", 1, LEDS_GPIO_DEFSTATE_OFF
),
51 BCM47XX_GPIO_LED(6, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
52 BCM47XX_GPIO_LED(9, "blue", "usb", 0, LEDS_GPIO_DEFSTATE_OFF
),
55 static const struct gpio_led
56 bcm47xx_leds_asus_rtn16
[] __initconst
= {
57 BCM47XX_GPIO_LED(1, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
58 BCM47XX_GPIO_LED(7, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
61 static const struct gpio_led
62 bcm47xx_leds_asus_rtn66u
[] __initconst
= {
63 BCM47XX_GPIO_LED(12, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
64 BCM47XX_GPIO_LED(15, "blue", "usb", 1, LEDS_GPIO_DEFSTATE_OFF
),
67 static const struct gpio_led
68 bcm47xx_leds_asus_wl300g
[] __initconst
= {
69 BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
72 static const struct gpio_led
73 bcm47xx_leds_asus_wl320ge
[] __initconst
= {
74 BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
75 BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
76 BCM47XX_GPIO_LED(11, "unk", "link", 1, LEDS_GPIO_DEFSTATE_OFF
),
79 static const struct gpio_led
80 bcm47xx_leds_asus_wl330ge
[] __initconst
= {
81 BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
84 static const struct gpio_led
85 bcm47xx_leds_asus_wl500g
[] __initconst
= {
86 BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
89 static const struct gpio_led
90 bcm47xx_leds_asus_wl500gd
[] __initconst
= {
91 BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
94 static const struct gpio_led
95 bcm47xx_leds_asus_wl500gpv1
[] __initconst
= {
96 BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
99 static const struct gpio_led
100 bcm47xx_leds_asus_wl500gpv2
[] __initconst
= {
101 BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
102 BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
105 static const struct gpio_led
106 bcm47xx_leds_asus_wl500w
[] __initconst
= {
107 BCM47XX_GPIO_LED(5, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
110 static const struct gpio_led
111 bcm47xx_leds_asus_wl520gc
[] __initconst
= {
112 BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
113 BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
116 static const struct gpio_led
117 bcm47xx_leds_asus_wl520gu
[] __initconst
= {
118 BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
119 BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
122 static const struct gpio_led
123 bcm47xx_leds_asus_wl700ge
[] __initconst
= {
124 BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
), /* Labeled "READY" (there is no "power" LED). Originally ON, flashing on USB activity. */
127 static const struct gpio_led
128 bcm47xx_leds_asus_wlhdd
[] __initconst
= {
129 BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
130 BCM47XX_GPIO_LED(2, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF
),
135 static const struct gpio_led
136 bcm47xx_leds_belkin_f7d4301
[] __initconst
= {
137 BCM47XX_GPIO_LED(10, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
138 BCM47XX_GPIO_LED(11, "amber", "power", 1, LEDS_GPIO_DEFSTATE_OFF
),
139 BCM47XX_GPIO_LED(12, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
140 BCM47XX_GPIO_LED(13, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
141 BCM47XX_GPIO_LED(14, "unk", "usb0", 1, LEDS_GPIO_DEFSTATE_OFF
),
142 BCM47XX_GPIO_LED(15, "unk", "usb1", 1, LEDS_GPIO_DEFSTATE_OFF
),
147 static const struct gpio_led
148 bcm47xx_leds_buffalo_whr2_a54g54
[] __initconst
= {
149 BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
152 static const struct gpio_led
153 bcm47xx_leds_buffalo_whr_g125
[] __initconst
= {
154 BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF
),
155 BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
156 BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF
),
157 BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
158 BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
161 static const struct gpio_led
162 bcm47xx_leds_buffalo_whr_g54s
[] __initconst
= {
163 BCM47XX_GPIO_LED(1, "green", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF
),
164 BCM47XX_GPIO_LED(2, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
165 BCM47XX_GPIO_LED(3, "green", "internal", 1, LEDS_GPIO_DEFSTATE_OFF
),
166 BCM47XX_GPIO_LED(6, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
167 BCM47XX_GPIO_LED(7, "red", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
170 static const struct gpio_led
171 bcm47xx_leds_buffalo_whr_hp_g54
[] __initconst
= {
172 BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF
),
173 BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
174 BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF
),
175 BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
176 BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
179 static const struct gpio_led
180 bcm47xx_leds_buffalo_wzr_g300n
[] __initconst
= {
181 BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF
),
182 BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
183 BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
186 static const struct gpio_led
187 bcm47xx_leds_buffalo_wzr_rs_g54
[] __initconst
= {
188 BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
189 BCM47XX_GPIO_LED(1, "unk", "vpn", 1, LEDS_GPIO_DEFSTATE_OFF
),
190 BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
193 static const struct gpio_led
194 bcm47xx_leds_buffalo_wzr_rs_g54hp
[] __initconst
= {
195 BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
196 BCM47XX_GPIO_LED(1, "unk", "vpn", 1, LEDS_GPIO_DEFSTATE_OFF
),
197 BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
202 static const struct gpio_led
203 bcm47xx_leds_dell_tm2300
[] __initconst
= {
204 BCM47XX_GPIO_LED(6, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
205 BCM47XX_GPIO_LED(7, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
210 static const struct gpio_led
211 bcm47xx_leds_dlink_dir130
[] __initconst
= {
212 BCM47XX_GPIO_LED_TRIGGER(0, "green", "status", 1, "timer"), /* Originally blinking when device is ready, separated from "power" LED */
213 BCM47XX_GPIO_LED(6, "blue", "unk", 1, LEDS_GPIO_DEFSTATE_OFF
),
216 static const struct gpio_led
217 bcm47xx_leds_dlink_dir330
[] __initconst
= {
218 BCM47XX_GPIO_LED_TRIGGER(0, "green", "status", 1, "timer"), /* Originally blinking when device is ready, separated from "power" LED */
219 BCM47XX_GPIO_LED(4, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF
),
220 BCM47XX_GPIO_LED(6, "blue", "unk", 1, LEDS_GPIO_DEFSTATE_OFF
),
225 static const struct gpio_led
226 bcm47xx_leds_huawei_b593u_12
[] __initconst
= {
227 BCM47XX_GPIO_LED(5, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
230 static const struct gpio_led
231 bcm47xx_leds_huawei_e970
[] __initconst
= {
232 BCM47XX_GPIO_LED(0, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
237 static const struct gpio_led
238 bcm47xx_leds_linksys_e1000v1
[] __initconst
= {
239 BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
240 BCM47XX_GPIO_LED(1, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
241 BCM47XX_GPIO_LED(2, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
242 BCM47XX_GPIO_LED(4, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
245 static const struct gpio_led
246 bcm47xx_leds_linksys_e1000v21
[] __initconst
= {
247 BCM47XX_GPIO_LED(5, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
248 BCM47XX_GPIO_LED(6, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
249 BCM47XX_GPIO_LED(7, "amber", "wps", 0, LEDS_GPIO_DEFSTATE_OFF
),
250 BCM47XX_GPIO_LED(8, "blue", "wps", 0, LEDS_GPIO_DEFSTATE_OFF
),
253 static const struct gpio_led
254 bcm47xx_leds_linksys_e2000v1
[] __initconst
= {
255 BCM47XX_GPIO_LED(1, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
256 BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
257 BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
258 BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
261 static const struct gpio_led
262 bcm47xx_leds_linksys_e3000v1
[] __initconst
= {
263 BCM47XX_GPIO_LED(0, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
264 BCM47XX_GPIO_LED(1, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
265 BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
266 BCM47XX_GPIO_LED(5, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
267 BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF
),
270 static const struct gpio_led
271 bcm47xx_leds_linksys_e3200v1
[] __initconst
= {
272 BCM47XX_GPIO_LED(3, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
275 static const struct gpio_led
276 bcm47xx_leds_linksys_e4200v1
[] __initconst
= {
277 BCM47XX_GPIO_LED(5, "white", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
280 static const struct gpio_led
281 bcm47xx_leds_linksys_wrt150nv1
[] __initconst
= {
282 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
283 BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
284 BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
287 static const struct gpio_led
288 bcm47xx_leds_linksys_wrt150nv11
[] __initconst
= {
289 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
290 BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
291 BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
294 static const struct gpio_led
295 bcm47xx_leds_linksys_wrt160nv1
[] __initconst
= {
296 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
297 BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
298 BCM47XX_GPIO_LED(5, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
301 static const struct gpio_led
302 bcm47xx_leds_linksys_wrt160nv3
[] __initconst
= {
303 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
304 BCM47XX_GPIO_LED(2, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
305 BCM47XX_GPIO_LED(4, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
308 static const struct gpio_led
309 bcm47xx_leds_linksys_wrt300n_v1
[] __initconst
= {
310 BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
311 BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
312 BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
315 static const struct gpio_led
316 bcm47xx_leds_linksys_wrt300nv11
[] __initconst
= {
317 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
318 BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
319 BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
322 static const struct gpio_led
323 bcm47xx_leds_linksys_wrt310nv1
[] __initconst
= {
324 BCM47XX_GPIO_LED(1, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
325 BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
326 BCM47XX_GPIO_LED(9, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
329 static const struct gpio_led
330 bcm47xx_leds_linksys_wrt320n_v1
[] __initconst
= {
331 BCM47XX_GPIO_LED(1, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
332 BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
333 BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
336 static const struct gpio_led
337 bcm47xx_leds_linksys_wrt54g_generic
[] __initconst
= {
338 BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF
),
339 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
340 BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
341 BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
344 static const struct gpio_led
345 bcm47xx_leds_linksys_wrt54g3gv2
[] __initconst
= {
346 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
347 BCM47XX_GPIO_LED(2, "green", "3g", 0, LEDS_GPIO_DEFSTATE_OFF
),
348 BCM47XX_GPIO_LED(3, "blue", "3g", 0, LEDS_GPIO_DEFSTATE_OFF
),
351 /* Verified on: WRT54GS V1.0 */
352 static const struct gpio_led
353 bcm47xx_leds_linksys_wrt54g_type_0101
[] __initconst
= {
354 BCM47XX_GPIO_LED(0, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
355 BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
356 BCM47XX_GPIO_LED(7, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF
),
359 /* Verified on: WRT54GL V1.1 */
360 static const struct gpio_led
361 bcm47xx_leds_linksys_wrt54g_type_0467
[] __initconst
= {
362 BCM47XX_GPIO_LED(0, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
363 BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
364 BCM47XX_GPIO_LED(2, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
365 BCM47XX_GPIO_LED(3, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
366 BCM47XX_GPIO_LED(7, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF
),
369 static const struct gpio_led
370 bcm47xx_leds_linksys_wrt610nv1
[] __initconst
= {
371 BCM47XX_GPIO_LED(0, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF
),
372 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_OFF
),
373 BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
374 BCM47XX_GPIO_LED(9, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
377 static const struct gpio_led
378 bcm47xx_leds_linksys_wrt610nv2
[] __initconst
= {
379 BCM47XX_GPIO_LED(0, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
380 BCM47XX_GPIO_LED(1, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
381 BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
382 BCM47XX_GPIO_LED(5, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
383 BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF
),
386 static const struct gpio_led
387 bcm47xx_leds_linksys_wrtsl54gs
[] __initconst
= {
388 BCM47XX_GPIO_LED(0, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF
),
389 BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
390 BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
391 BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
396 static const struct gpio_led
397 bcm47xx_leds_luxul_abr_4400_v1
[] __initconst
= {
398 BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF
),
399 BCM47XX_GPIO_LED_TRIGGER(15, "green", "status", 0, "timer"),
402 static const struct gpio_led
403 bcm47xx_leds_luxul_xap_310_v1
[] __initconst
= {
404 BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
407 static const struct gpio_led
408 bcm47xx_leds_luxul_xap_1210_v1
[] __initconst
= {
409 BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
412 static const struct gpio_led
413 bcm47xx_leds_luxul_xap_1230_v1
[] __initconst
= {
414 BCM47XX_GPIO_LED(3, "blue", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF
),
415 BCM47XX_GPIO_LED(4, "green", "bridge", 0, LEDS_GPIO_DEFSTATE_OFF
),
416 BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
419 static const struct gpio_led
420 bcm47xx_leds_luxul_xap_1240_v1
[] __initconst
= {
421 BCM47XX_GPIO_LED(3, "blue", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF
),
422 BCM47XX_GPIO_LED(4, "green", "bridge", 0, LEDS_GPIO_DEFSTATE_OFF
),
423 BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
426 static const struct gpio_led
427 bcm47xx_leds_luxul_xap_1500_v1
[] __initconst
= {
428 BCM47XX_GPIO_LED_TRIGGER(13, "green", "status", 1, "timer"),
431 static const struct gpio_led
432 bcm47xx_leds_luxul_xap1500_v1_extra
[] __initconst
= {
433 BCM47XX_GPIO_LED(44, "green", "5ghz", 0, LEDS_GPIO_DEFSTATE_OFF
),
434 BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF
),
437 static const struct gpio_led
438 bcm47xx_leds_luxul_xbr_4400_v1
[] __initconst
= {
439 BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF
),
440 BCM47XX_GPIO_LED_TRIGGER(15, "green", "status", 0, "timer"),
443 static const struct gpio_led
444 bcm47xx_leds_luxul_xvw_p30_v1
[] __initconst
= {
445 BCM47XX_GPIO_LED_TRIGGER(0, "blue", "status", 1, "timer"),
446 BCM47XX_GPIO_LED(1, "green", "link", 1, LEDS_GPIO_DEFSTATE_OFF
),
449 static const struct gpio_led
450 bcm47xx_leds_luxul_xwr_600_v1
[] __initconst
= {
451 BCM47XX_GPIO_LED(3, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF
),
452 BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
453 BCM47XX_GPIO_LED(9, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF
),
456 static const struct gpio_led
457 bcm47xx_leds_luxul_xwr_1750_v1
[] __initconst
= {
458 BCM47XX_GPIO_LED(5, "green", "5ghz", 0, LEDS_GPIO_DEFSTATE_OFF
),
459 BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF
),
460 BCM47XX_GPIO_LED_TRIGGER(13, "green", "status", 0, "timer"),
461 BCM47XX_GPIO_LED(15, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF
),
464 static const struct gpio_led
465 bcm47xx_leds_luxul_xwr1750_v1_extra
[] __initconst
= {
466 BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF
),
471 static const struct gpio_led
472 bcm47xx_leds_microsoft_nm700
[] __initconst
= {
473 BCM47XX_GPIO_LED(6, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
478 static const struct gpio_led
479 bcm47xx_leds_motorola_we800g
[] __initconst
= {
480 BCM47XX_GPIO_LED(1, "amber", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
481 BCM47XX_GPIO_LED(2, "unk", "unk", 1, LEDS_GPIO_DEFSTATE_OFF
), /* There are only 3 LEDs: Power, Wireless and Device (ethernet) */
482 BCM47XX_GPIO_LED(4, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
485 static const struct gpio_led
486 bcm47xx_leds_motorola_wr850gp
[] __initconst
= {
487 BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
488 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
489 BCM47XX_GPIO_LED(6, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF
),
490 BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
493 static const struct gpio_led
494 bcm47xx_leds_motorola_wr850gv2v3
[] __initconst
= {
495 BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
496 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
497 BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF
),
502 static const struct gpio_led
503 bcm47xx_leds_netgear_wndr3400v1
[] __initconst
= {
504 BCM47XX_GPIO_LED(2, "green", "usb", 1, LEDS_GPIO_DEFSTATE_OFF
),
505 BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
506 BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF
),
509 static const struct gpio_led
510 bcm47xx_leds_netgear_wndr4500v1
[] __initconst
= {
511 BCM47XX_GPIO_LED(1, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
512 BCM47XX_GPIO_LED(2, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
513 BCM47XX_GPIO_LED(3, "amber", "power", 1, LEDS_GPIO_DEFSTATE_OFF
),
514 BCM47XX_GPIO_LED(8, "green", "usb1", 1, LEDS_GPIO_DEFSTATE_OFF
),
515 BCM47XX_GPIO_LED(9, "green", "2ghz", 1, LEDS_GPIO_DEFSTATE_OFF
),
516 BCM47XX_GPIO_LED(11, "blue", "5ghz", 1, LEDS_GPIO_DEFSTATE_OFF
),
517 BCM47XX_GPIO_LED(14, "green", "usb2", 1, LEDS_GPIO_DEFSTATE_OFF
),
520 static const struct gpio_led
521 bcm47xx_leds_netgear_wnr1000_v3
[] __initconst
= {
522 BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
523 BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF
),
526 static const struct gpio_led
527 bcm47xx_leds_netgear_wnr3500lv1
[] __initconst
= {
528 BCM47XX_GPIO_LED(0, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
529 BCM47XX_GPIO_LED(1, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF
),
530 BCM47XX_GPIO_LED(2, "green", "wan", 1, LEDS_GPIO_DEFSTATE_OFF
),
531 BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
532 BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF
),
535 static const struct gpio_led
536 bcm47xx_leds_netgear_wnr3500lv2
[] __initconst
= {
537 BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF
),
538 BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF
),
539 BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
540 BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF
),
543 static const struct gpio_led
544 bcm47xx_leds_netgear_wnr834bv2
[] __initconst
= {
545 BCM47XX_GPIO_LED(2, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON
),
546 BCM47XX_GPIO_LED(3, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF
),
547 BCM47XX_GPIO_LED(7, "unk", "connected", 0, LEDS_GPIO_DEFSTATE_OFF
),
551 static const struct gpio_led
552 bcm47xx_leds_siemens_se505v2
[] __initconst
= {
553 BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF
),
554 BCM47XX_GPIO_LED(3, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF
),
555 BCM47XX_GPIO_LED(5, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON
),
560 static const struct gpio_led
561 bcm47xx_leds_simpletech_simpleshare
[] __initconst
= {
562 BCM47XX_GPIO_LED(1, "unk", "status", 1, LEDS_GPIO_DEFSTATE_OFF
), /* "Ready" LED */
565 /**************************************************
567 **************************************************/
569 static struct gpio_led_platform_data bcm47xx_leds_pdata __initdata
;
571 #define bcm47xx_set_pdata(dev_leds) do { \
572 bcm47xx_leds_pdata.leds = dev_leds; \
573 bcm47xx_leds_pdata.num_leds = ARRAY_SIZE(dev_leds); \
576 static struct gpio_led_platform_data bcm47xx_leds_pdata_extra __initdata
= {};
577 #define bcm47xx_set_pdata_extra(dev_leds) do { \
578 bcm47xx_leds_pdata_extra.leds = dev_leds; \
579 bcm47xx_leds_pdata_extra.num_leds = ARRAY_SIZE(dev_leds); \
582 void __init
bcm47xx_leds_register(void)
584 enum bcm47xx_board board
= bcm47xx_board_get();
587 case BCM47XX_BOARD_ASUS_RTN10U
:
588 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn10u
);
590 case BCM47XX_BOARD_ASUS_RTN12
:
591 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn12
);
593 case BCM47XX_BOARD_ASUS_RTN15U
:
594 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn15u
);
596 case BCM47XX_BOARD_ASUS_RTN16
:
597 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn16
);
599 case BCM47XX_BOARD_ASUS_RTN66U
:
600 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn66u
);
602 case BCM47XX_BOARD_ASUS_WL300G
:
603 bcm47xx_set_pdata(bcm47xx_leds_asus_wl300g
);
605 case BCM47XX_BOARD_ASUS_WL320GE
:
606 bcm47xx_set_pdata(bcm47xx_leds_asus_wl320ge
);
608 case BCM47XX_BOARD_ASUS_WL330GE
:
609 bcm47xx_set_pdata(bcm47xx_leds_asus_wl330ge
);
611 case BCM47XX_BOARD_ASUS_WL500G
:
612 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500g
);
614 case BCM47XX_BOARD_ASUS_WL500GD
:
615 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gd
);
617 case BCM47XX_BOARD_ASUS_WL500GPV1
:
618 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gpv1
);
620 case BCM47XX_BOARD_ASUS_WL500GPV2
:
621 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gpv2
);
623 case BCM47XX_BOARD_ASUS_WL500W
:
624 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500w
);
626 case BCM47XX_BOARD_ASUS_WL520GC
:
627 bcm47xx_set_pdata(bcm47xx_leds_asus_wl520gc
);
629 case BCM47XX_BOARD_ASUS_WL520GU
:
630 bcm47xx_set_pdata(bcm47xx_leds_asus_wl520gu
);
632 case BCM47XX_BOARD_ASUS_WL700GE
:
633 bcm47xx_set_pdata(bcm47xx_leds_asus_wl700ge
);
635 case BCM47XX_BOARD_ASUS_WLHDD
:
636 bcm47xx_set_pdata(bcm47xx_leds_asus_wlhdd
);
639 case BCM47XX_BOARD_BELKIN_F7D3301
:
640 case BCM47XX_BOARD_BELKIN_F7D3302
:
641 case BCM47XX_BOARD_BELKIN_F7D4301
:
642 case BCM47XX_BOARD_BELKIN_F7D4302
:
643 case BCM47XX_BOARD_BELKIN_F7D4401
:
644 bcm47xx_set_pdata(bcm47xx_leds_belkin_f7d4301
);
647 case BCM47XX_BOARD_BUFFALO_WHR2_A54G54
:
648 bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr2_a54g54
);
650 case BCM47XX_BOARD_BUFFALO_WHR_G125
:
651 bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_g125
);
653 case BCM47XX_BOARD_BUFFALO_WHR_G54S
:
654 bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_g54s
);
656 case BCM47XX_BOARD_BUFFALO_WHR_HP_G54
:
657 bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_hp_g54
);
659 case BCM47XX_BOARD_BUFFALO_WZR_G300N
:
660 bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_g300n
);
662 case BCM47XX_BOARD_BUFFALO_WZR_RS_G54
:
663 bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_rs_g54
);
665 case BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP
:
666 bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_rs_g54hp
);
669 case BCM47XX_BOARD_DELL_TM2300
:
670 bcm47xx_set_pdata(bcm47xx_leds_dell_tm2300
);
673 case BCM47XX_BOARD_DLINK_DIR130
:
674 bcm47xx_set_pdata(bcm47xx_leds_dlink_dir130
);
676 case BCM47XX_BOARD_DLINK_DIR330
:
677 bcm47xx_set_pdata(bcm47xx_leds_dlink_dir330
);
680 case BCM47XX_BOARD_HUAWEI_B593U_12
:
681 bcm47xx_set_pdata(bcm47xx_leds_huawei_b593u_12
);
683 case BCM47XX_BOARD_HUAWEI_E970
:
684 bcm47xx_set_pdata(bcm47xx_leds_huawei_e970
);
687 case BCM47XX_BOARD_LINKSYS_E1000V1
:
688 bcm47xx_set_pdata(bcm47xx_leds_linksys_e1000v1
);
690 case BCM47XX_BOARD_LINKSYS_E1000V21
:
691 bcm47xx_set_pdata(bcm47xx_leds_linksys_e1000v21
);
693 case BCM47XX_BOARD_LINKSYS_E2000V1
:
694 bcm47xx_set_pdata(bcm47xx_leds_linksys_e2000v1
);
696 case BCM47XX_BOARD_LINKSYS_E3000V1
:
697 bcm47xx_set_pdata(bcm47xx_leds_linksys_e3000v1
);
699 case BCM47XX_BOARD_LINKSYS_E3200V1
:
700 bcm47xx_set_pdata(bcm47xx_leds_linksys_e3200v1
);
702 case BCM47XX_BOARD_LINKSYS_E4200V1
:
703 bcm47xx_set_pdata(bcm47xx_leds_linksys_e4200v1
);
705 case BCM47XX_BOARD_LINKSYS_WRT150NV1
:
706 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt150nv1
);
708 case BCM47XX_BOARD_LINKSYS_WRT150NV11
:
709 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt150nv11
);
711 case BCM47XX_BOARD_LINKSYS_WRT160NV1
:
712 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt160nv1
);
714 case BCM47XX_BOARD_LINKSYS_WRT160NV3
:
715 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt160nv3
);
717 case BCM47XX_BOARD_LINKSYS_WRT300N_V1
:
718 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt300n_v1
);
720 case BCM47XX_BOARD_LINKSYS_WRT300NV11
:
721 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt300nv11
);
723 case BCM47XX_BOARD_LINKSYS_WRT310NV1
:
724 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1
);
726 case BCM47XX_BOARD_LINKSYS_WRT320N_V1
:
727 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt320n_v1
);
729 case BCM47XX_BOARD_LINKSYS_WRT54G3GV2
:
730 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2
);
732 case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101
:
733 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_type_0101
);
735 case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467
:
736 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_type_0467
);
738 case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708
:
739 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_generic
);
741 case BCM47XX_BOARD_LINKSYS_WRT610NV1
:
742 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv1
);
744 case BCM47XX_BOARD_LINKSYS_WRT610NV2
:
745 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv2
);
747 case BCM47XX_BOARD_LINKSYS_WRTSL54GS
:
748 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrtsl54gs
);
751 case BCM47XX_BOARD_LUXUL_ABR_4400_V1
:
752 bcm47xx_set_pdata(bcm47xx_leds_luxul_abr_4400_v1
);
754 case BCM47XX_BOARD_LUXUL_XAP_310_V1
:
755 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_310_v1
);
757 case BCM47XX_BOARD_LUXUL_XAP_1210_V1
:
758 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1210_v1
);
760 case BCM47XX_BOARD_LUXUL_XAP_1230_V1
:
761 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1230_v1
);
763 case BCM47XX_BOARD_LUXUL_XAP_1240_V1
:
764 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1240_v1
);
766 case BCM47XX_BOARD_LUXUL_XAP_1500_V1
:
767 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1500_v1
);
768 bcm47xx_set_pdata_extra(bcm47xx_leds_luxul_xap1500_v1_extra
);
770 case BCM47XX_BOARD_LUXUL_XBR_4400_V1
:
771 bcm47xx_set_pdata(bcm47xx_leds_luxul_xbr_4400_v1
);
773 case BCM47XX_BOARD_LUXUL_XVW_P30_V1
:
774 bcm47xx_set_pdata(bcm47xx_leds_luxul_xvw_p30_v1
);
776 case BCM47XX_BOARD_LUXUL_XWR_600_V1
:
777 bcm47xx_set_pdata(bcm47xx_leds_luxul_xwr_600_v1
);
779 case BCM47XX_BOARD_LUXUL_XWR_1750_V1
:
780 bcm47xx_set_pdata(bcm47xx_leds_luxul_xwr_1750_v1
);
781 bcm47xx_set_pdata_extra(bcm47xx_leds_luxul_xwr1750_v1_extra
);
784 case BCM47XX_BOARD_MICROSOFT_MN700
:
785 bcm47xx_set_pdata(bcm47xx_leds_microsoft_nm700
);
788 case BCM47XX_BOARD_MOTOROLA_WE800G
:
789 bcm47xx_set_pdata(bcm47xx_leds_motorola_we800g
);
791 case BCM47XX_BOARD_MOTOROLA_WR850GP
:
792 bcm47xx_set_pdata(bcm47xx_leds_motorola_wr850gp
);
794 case BCM47XX_BOARD_MOTOROLA_WR850GV2V3
:
795 bcm47xx_set_pdata(bcm47xx_leds_motorola_wr850gv2v3
);
798 case BCM47XX_BOARD_NETGEAR_WNDR3400V1
:
799 bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr3400v1
);
801 case BCM47XX_BOARD_NETGEAR_WNDR4500V1
:
802 bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr4500v1
);
804 case BCM47XX_BOARD_NETGEAR_WNR1000_V3
:
805 bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr1000_v3
);
807 case BCM47XX_BOARD_NETGEAR_WNR3500L
:
808 bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv1
);
810 case BCM47XX_BOARD_NETGEAR_WNR3500L_V2
:
811 bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv2
);
813 case BCM47XX_BOARD_NETGEAR_WNR834BV2
:
814 bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr834bv2
);
817 case BCM47XX_BOARD_SIEMENS_SE505V2
:
818 bcm47xx_set_pdata(bcm47xx_leds_siemens_se505v2
);
821 case BCM47XX_BOARD_SIMPLETECH_SIMPLESHARE
:
822 bcm47xx_set_pdata(bcm47xx_leds_simpletech_simpleshare
);
826 pr_debug("No LEDs configuration found for this device\n");
830 gpio_led_register_device(-1, &bcm47xx_leds_pdata
);
831 if (bcm47xx_leds_pdata_extra
.num_leds
)
832 gpio_led_register_device(0, &bcm47xx_leds_pdata_extra
);