brcm47xx: add new led and button support
[openwrt.git] / target / linux / brcm47xx / patches-3.10 / 123-MIPS-BCM47XX-Import-LEDs-database-from-OpenWrt.patch
1 From 6d4b22bc843c9de0f6acdbdcfb9b91b897a39e9c Mon Sep 17 00:00:00 2001
2 From: Rafa? Mi?ecki <zajec5@gmail.com>
3 Date: Thu, 2 Jan 2014 12:32:57 +0100
4 Subject: [PATCH 032/110] MIPS: BCM47XX: Import LEDs database from OpenWrt
5
6 Signed-off-by: Rafa? Mi?ecki <zajec5@gmail.com>
7 Acked-by: John Crispin <blogic@openwrt.org>
8 Patchwork: http://patchwork.linux-mips.org/patch/6298/
9 ---
10  arch/mips/bcm47xx/leds.c |  494 ++++++++++++++++++++++++++++++++++++++++++++++
11  1 file changed, 494 insertions(+)
12
13 --- a/arch/mips/bcm47xx/leds.c
14 +++ b/arch/mips/bcm47xx/leds.c
15 @@ -3,6 +3,334 @@
16  #include <linux/leds.h>
17  #include <bcm47xx_board.h>
18  
19 +/**************************************************
20 + * Database
21 + **************************************************/
22 +
23 +#define BCM47XX_GPIO_LED(_gpio, _color, _function, _active_low,                \
24 +                        _default_state)                                \
25 +       {                                                               \
26 +               .name           = "bcm47xx:" _color ":" _function,      \
27 +               .gpio           = _gpio,                                \
28 +               .active_low     = _active_low,                          \
29 +               .default_state  = _default_state,                       \
30 +       }
31 +
32 +/* Asus */
33 +
34 +static const struct gpio_led
35 +bcm47xx_leds_asus_rtn12[] __initconst = {
36 +       BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
37 +       BCM47XX_GPIO_LED(7, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
38 +};
39 +
40 +static const struct gpio_led
41 +bcm47xx_leds_asus_rtn16[] __initconst = {
42 +       BCM47XX_GPIO_LED(1, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
43 +       BCM47XX_GPIO_LED(7, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
44 +};
45 +
46 +static const struct gpio_led
47 +bcm47xx_leds_asus_rtn66u[] __initconst = {
48 +       BCM47XX_GPIO_LED(12, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
49 +       BCM47XX_GPIO_LED(15, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
50 +};
51 +
52 +static const struct gpio_led
53 +bcm47xx_leds_asus_wl300g[] __initconst = {
54 +       BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
55 +};
56 +
57 +static const struct gpio_led
58 +bcm47xx_leds_asus_wl320ge[] __initconst = {
59 +       BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
60 +       BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
61 +       BCM47XX_GPIO_LED(11, "unk", "link", 1, LEDS_GPIO_DEFSTATE_OFF),
62 +};
63 +
64 +static const struct gpio_led
65 +bcm47xx_leds_asus_wl330ge[] __initconst = {
66 +       BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
67 +};
68 +
69 +static const struct gpio_led
70 +bcm47xx_leds_asus_wl500gd[] __initconst = {
71 +       BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
72 +};
73 +
74 +static const struct gpio_led
75 +bcm47xx_leds_asus_wl500gpv1[] __initconst = {
76 +       BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
77 +};
78 +
79 +static const struct gpio_led
80 +bcm47xx_leds_asus_wl500gpv2[] __initconst = {
81 +       BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
82 +       BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
83 +};
84 +
85 +static const struct gpio_led
86 +bcm47xx_leds_asus_wl500w[] __initconst = {
87 +       BCM47XX_GPIO_LED(5, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
88 +};
89 +
90 +static const struct gpio_led
91 +bcm47xx_leds_asus_wl520gc[] __initconst = {
92 +       BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
93 +       BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
94 +};
95 +
96 +static const struct gpio_led
97 +bcm47xx_leds_asus_wl520gu[] __initconst = {
98 +       BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
99 +       BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
100 +};
101 +
102 +static const struct gpio_led
103 +bcm47xx_leds_asus_wl700ge[] __initconst = {
104 +       BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON), /* Labeled "READY" (there is no "power" LED). Originally ON, flashing on USB activity. */
105 +};
106 +
107 +static const struct gpio_led
108 +bcm47xx_leds_asus_wlhdd[] __initconst = {
109 +       BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
110 +       BCM47XX_GPIO_LED(2, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
111 +};
112 +
113 +/* Belkin */
114 +
115 +static const struct gpio_led
116 +bcm47xx_leds_belkin_f7d4301[] __initconst = {
117 +       BCM47XX_GPIO_LED(10, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
118 +       BCM47XX_GPIO_LED(11, "amber", "power", 1, LEDS_GPIO_DEFSTATE_OFF),
119 +       BCM47XX_GPIO_LED(12, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
120 +       BCM47XX_GPIO_LED(13, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
121 +       BCM47XX_GPIO_LED(14, "unk", "usb0", 1, LEDS_GPIO_DEFSTATE_OFF),
122 +       BCM47XX_GPIO_LED(15, "unk", "usb1", 1, LEDS_GPIO_DEFSTATE_OFF),
123 +};
124 +
125 +/* Buffalo */
126 +
127 +static const struct gpio_led
128 +bcm47xx_leds_buffalo_whr2_a54g54[] __initconst = {
129 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
130 +};
131 +
132 +static const struct gpio_led
133 +bcm47xx_leds_buffalo_whr_g125[] __initconst = {
134 +       BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
135 +       BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
136 +       BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
137 +       BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
138 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
139 +};
140 +
141 +static const struct gpio_led
142 +bcm47xx_leds_buffalo_whr_g54s[] __initconst = {
143 +       BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
144 +       BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
145 +       BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
146 +       BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
147 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
148 +};
149 +
150 +static const struct gpio_led
151 +bcm47xx_leds_buffalo_whr_hp_g54[] __initconst = {
152 +       BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
153 +       BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
154 +       BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
155 +       BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
156 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
157 +};
158 +
159 +static const struct gpio_led
160 +bcm47xx_leds_buffalo_wzr_g300n[] __initconst = {
161 +       BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
162 +       BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
163 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
164 +};
165 +
166 +static const struct gpio_led
167 +bcm47xx_leds_buffalo_wzr_rs_g54[] __initconst = {
168 +       BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
169 +       BCM47XX_GPIO_LED(1, "unk", "vpn", 1, LEDS_GPIO_DEFSTATE_OFF),
170 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
171 +};
172 +
173 +static const struct gpio_led
174 +bcm47xx_leds_buffalo_wzr_rs_g54hp[] __initconst = {
175 +       BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
176 +       BCM47XX_GPIO_LED(1, "unk", "vpn", 1, LEDS_GPIO_DEFSTATE_OFF),
177 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
178 +};
179 +
180 +/* Dell */
181 +
182 +static const struct gpio_led
183 +bcm47xx_leds_dell_tm2300[] __initconst = {
184 +       BCM47XX_GPIO_LED(6, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
185 +       BCM47XX_GPIO_LED(7, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
186 +};
187 +
188 +/* D-Link */
189 +
190 +static const struct gpio_led
191 +bcm47xx_leds_dlink_dir130[] __initconst = {
192 +       BCM47XX_GPIO_LED(0, "green", "status", 1, LEDS_GPIO_DEFSTATE_OFF), /* Originally blinking when device is ready, separated from "power" LED */
193 +       BCM47XX_GPIO_LED(6, "blue", "unk", 1, LEDS_GPIO_DEFSTATE_OFF),
194 +};
195 +
196 +static const struct gpio_led
197 +bcm47xx_leds_dlink_dir330[] __initconst = {
198 +       BCM47XX_GPIO_LED(0, "green", "status", 1, LEDS_GPIO_DEFSTATE_OFF), /* Originally blinking when device is ready, separated from "power" LED */
199 +       BCM47XX_GPIO_LED(4, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
200 +       BCM47XX_GPIO_LED(6, "blue", "unk", 1, LEDS_GPIO_DEFSTATE_OFF),
201 +};
202 +
203 +/* Huawei */
204 +
205 +static const struct gpio_led
206 +bcm47xx_leds_huawei_e970[] __initconst = {
207 +       BCM47XX_GPIO_LED(0, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
208 +};
209 +
210 +/* Linksys */
211 +
212 +static const struct gpio_led
213 +bcm47xx_leds_linksys_e1000v1[] __initconst = {
214 +       BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
215 +       BCM47XX_GPIO_LED(1, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
216 +       BCM47XX_GPIO_LED(2, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
217 +       BCM47XX_GPIO_LED(4, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
218 +};
219 +
220 +static const struct gpio_led
221 +bcm47xx_leds_linksys_e1000v21[] __initconst = {
222 +       BCM47XX_GPIO_LED(5, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
223 +       BCM47XX_GPIO_LED(6, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
224 +       BCM47XX_GPIO_LED(7, "amber", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
225 +       BCM47XX_GPIO_LED(8, "blue", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
226 +};
227 +
228 +static const struct gpio_led
229 +bcm47xx_leds_linksys_e2000v1[] __initconst = {
230 +       BCM47XX_GPIO_LED(1, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
231 +       BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
232 +       BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
233 +       BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
234 +};
235 +
236 +static const struct gpio_led
237 +bcm47xx_leds_linksys_e3000v1[] __initconst = {
238 +       BCM47XX_GPIO_LED(0, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
239 +       BCM47XX_GPIO_LED(1, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
240 +       BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
241 +       BCM47XX_GPIO_LED(5, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
242 +       BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
243 +};
244 +
245 +static const struct gpio_led
246 +bcm47xx_leds_linksys_e3200v1[] __initconst = {
247 +       BCM47XX_GPIO_LED(3, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
248 +};
249 +
250 +static const struct gpio_led
251 +bcm47xx_leds_linksys_e4200v1[] __initconst = {
252 +       BCM47XX_GPIO_LED(5, "white", "power", 1, LEDS_GPIO_DEFSTATE_ON),
253 +};
254 +
255 +static const struct gpio_led
256 +bcm47xx_leds_linksys_wrt150nv1[] __initconst = {
257 +       BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
258 +       BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
259 +       BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
260 +};
261 +
262 +static const struct gpio_led
263 +bcm47xx_leds_linksys_wrt150nv11[] __initconst = {
264 +       BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
265 +       BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
266 +       BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
267 +};
268 +
269 +static const struct gpio_led
270 +bcm47xx_leds_linksys_wrt160nv1[] __initconst = {
271 +       BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
272 +       BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
273 +       BCM47XX_GPIO_LED(5, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
274 +};
275 +
276 +static const struct gpio_led
277 +bcm47xx_leds_linksys_wrt160nv3[] __initconst = {
278 +       BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
279 +       BCM47XX_GPIO_LED(2, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
280 +       BCM47XX_GPIO_LED(4, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
281 +};
282 +
283 +static const struct gpio_led
284 +bcm47xx_leds_linksys_wrt300nv11[] __initconst = {
285 +       BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
286 +       BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
287 +       BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
288 +};
289 +
290 +static const struct gpio_led
291 +bcm47xx_leds_linksys_wrt310nv1[] __initconst = {
292 +       BCM47XX_GPIO_LED(1, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
293 +       BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
294 +       BCM47XX_GPIO_LED(9, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
295 +};
296 +
297 +static const struct gpio_led
298 +bcm47xx_leds_linksys_wrt610nv1[] __initconst = {
299 +       BCM47XX_GPIO_LED(0, "unk", "usb",  1, LEDS_GPIO_DEFSTATE_OFF),
300 +       BCM47XX_GPIO_LED(1, "unk", "power",  0, LEDS_GPIO_DEFSTATE_OFF),
301 +       BCM47XX_GPIO_LED(3, "amber", "wps",  1, LEDS_GPIO_DEFSTATE_OFF),
302 +       BCM47XX_GPIO_LED(9, "blue", "wps",  1, LEDS_GPIO_DEFSTATE_OFF),
303 +};
304 +
305 +static const struct gpio_led
306 +bcm47xx_leds_linksys_wrt610nv2[] __initconst = {
307 +       BCM47XX_GPIO_LED(0, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
308 +       BCM47XX_GPIO_LED(1, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
309 +       BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
310 +       BCM47XX_GPIO_LED(5, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
311 +       BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
312 +};
313 +
314 +/* Motorola */
315 +
316 +static const struct gpio_led
317 +bcm47xx_leds_motorola_we800g[] __initconst = {
318 +       BCM47XX_GPIO_LED(1, "amber", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
319 +       BCM47XX_GPIO_LED(2, "unk", "unk", 1, LEDS_GPIO_DEFSTATE_OFF), /* There are only 3 LEDs: Power, Wireless and Device (ethernet) */
320 +       BCM47XX_GPIO_LED(4, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
321 +};
322 +
323 +static const struct gpio_led
324 +bcm47xx_leds_motorola_wr850gp[] __initconst = {
325 +       BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
326 +       BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
327 +       BCM47XX_GPIO_LED(6, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
328 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
329 +};
330 +
331 +static const struct gpio_led
332 +bcm47xx_leds_motorola_wr850gv2v3[] __initconst = {
333 +       BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
334 +       BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
335 +       BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
336 +};
337 +
338 +/* Netgear */
339 +
340 +static const struct gpio_led
341 +bcm47xx_leds_netgear_wndr3400v1[] __initconst = {
342 +       BCM47XX_GPIO_LED(2, "green", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
343 +       BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
344 +       BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
345 +};
346 +
347  static const struct gpio_led
348  bcm47xx_leds_netgear_wndr4500_v1_leds[] __initconst = {
349         {
350 @@ -49,6 +377,24 @@ bcm47xx_leds_netgear_wndr4500_v1_leds[]
351         },
352  };
353  
354 +static const struct gpio_led
355 +bcm47xx_leds_netgear_wnr834bv2[] __initconst = {
356 +       BCM47XX_GPIO_LED(2, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
357 +       BCM47XX_GPIO_LED(3, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
358 +       BCM47XX_GPIO_LED(7, "unk", "connected", 0, LEDS_GPIO_DEFSTATE_OFF),
359 +};
360 +
361 +/* SimpleTech */
362 +
363 +static const struct gpio_led
364 +bcm47xx_leds_simpletech_simpleshare[] __initconst = {
365 +       BCM47XX_GPIO_LED(1, "unk", "status", 1, LEDS_GPIO_DEFSTATE_OFF), /* "Ready" LED */
366 +};
367 +
368 +/**************************************************
369 + * Init
370 + **************************************************/
371 +
372  static struct gpio_led_platform_data bcm47xx_leds_pdata;
373  
374  #define bcm47xx_set_pdata(dev_leds) do {                               \
375 @@ -61,9 +407,157 @@ void __init bcm47xx_leds_register(void)
376         enum bcm47xx_board board = bcm47xx_board_get();
377  
378         switch (board) {
379 +       case BCM47XX_BOARD_ASUS_RTN12:
380 +               bcm47xx_set_pdata(bcm47xx_leds_asus_rtn12);
381 +               break;
382 +       case BCM47XX_BOARD_ASUS_RTN16:
383 +               bcm47xx_set_pdata(bcm47xx_leds_asus_rtn16);
384 +               break;
385 +       case BCM47XX_BOARD_ASUS_RTN66U:
386 +               bcm47xx_set_pdata(bcm47xx_leds_asus_rtn66u);
387 +               break;
388 +       case BCM47XX_BOARD_ASUS_WL300G:
389 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl300g);
390 +               break;
391 +       case BCM47XX_BOARD_ASUS_WL320GE:
392 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl320ge);
393 +               break;
394 +       case BCM47XX_BOARD_ASUS_WL330GE:
395 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl330ge);
396 +               break;
397 +       case BCM47XX_BOARD_ASUS_WL500GD:
398 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gd);
399 +               break;
400 +       case BCM47XX_BOARD_ASUS_WL500GPV1:
401 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gpv1);
402 +               break;
403 +       case BCM47XX_BOARD_ASUS_WL500GPV2:
404 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gpv2);
405 +               break;
406 +       case BCM47XX_BOARD_ASUS_WL500W:
407 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl500w);
408 +               break;
409 +       case BCM47XX_BOARD_ASUS_WL520GC:
410 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl520gc);
411 +               break;
412 +       case BCM47XX_BOARD_ASUS_WL520GU:
413 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl520gu);
414 +               break;
415 +       case BCM47XX_BOARD_ASUS_WL700GE:
416 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wl700ge);
417 +               break;
418 +       case BCM47XX_BOARD_ASUS_WLHDD:
419 +               bcm47xx_set_pdata(bcm47xx_leds_asus_wlhdd);
420 +               break;
421 +
422 +       case BCM47XX_BOARD_BELKIN_F7D4301:
423 +               bcm47xx_set_pdata(bcm47xx_leds_belkin_f7d4301);
424 +               break;
425 +
426 +       case BCM47XX_BOARD_BUFFALO_WHR2_A54G54:
427 +               bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr2_a54g54);
428 +               break;
429 +       case BCM47XX_BOARD_BUFFALO_WHR_G125:
430 +               bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_g125);
431 +               break;
432 +       case BCM47XX_BOARD_BUFFALO_WHR_G54S:
433 +               bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_g54s);
434 +               break;
435 +       case BCM47XX_BOARD_BUFFALO_WHR_HP_G54:
436 +               bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_hp_g54);
437 +               break;
438 +       case BCM47XX_BOARD_BUFFALO_WZR_G300N:
439 +               bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_g300n);
440 +               break;
441 +       case BCM47XX_BOARD_BUFFALO_WZR_RS_G54:
442 +               bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_rs_g54);
443 +               break;
444 +       case BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP:
445 +               bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_rs_g54hp);
446 +               break;
447 +
448 +       case BCM47XX_BOARD_DELL_TM2300:
449 +               bcm47xx_set_pdata(bcm47xx_leds_dell_tm2300);
450 +               break;
451 +
452 +       case BCM47XX_BOARD_DLINK_DIR130:
453 +               bcm47xx_set_pdata(bcm47xx_leds_dlink_dir130);
454 +               break;
455 +       case BCM47XX_BOARD_DLINK_DIR330:
456 +               bcm47xx_set_pdata(bcm47xx_leds_dlink_dir330);
457 +               break;
458 +
459 +       case BCM47XX_BOARD_HUAWEI_E970:
460 +               bcm47xx_set_pdata(bcm47xx_leds_huawei_e970);
461 +               break;
462 +
463 +       case BCM47XX_BOARD_LINKSYS_E1000V1:
464 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_e1000v1);
465 +               break;
466 +       case BCM47XX_BOARD_LINKSYS_E1000V21:
467 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_e1000v21);
468 +               break;
469 +       case BCM47XX_BOARD_LINKSYS_E2000V1:
470 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_e2000v1);
471 +               break;
472 +       case BCM47XX_BOARD_LINKSYS_E3000V1:
473 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_e3000v1);
474 +               break;
475 +       case BCM47XX_BOARD_LINKSYS_E3200V1:
476 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_e3200v1);
477 +               break;
478 +       case BCM47XX_BOARD_LINKSYS_E4200V1:
479 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_e4200v1);
480 +               break;
481 +       case BCM47XX_BOARD_LINKSYS_WRT150NV1:
482 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt150nv1);
483 +               break;
484 +       case BCM47XX_BOARD_LINKSYS_WRT150NV11:
485 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt150nv11);
486 +               break;
487 +       case BCM47XX_BOARD_LINKSYS_WRT160NV1:
488 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt160nv1);
489 +               break;
490 +       case BCM47XX_BOARD_LINKSYS_WRT160NV3:
491 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt160nv3);
492 +               break;
493 +       case BCM47XX_BOARD_LINKSYS_WRT300NV11:
494 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt300nv11);
495 +               break;
496 +       case BCM47XX_BOARD_LINKSYS_WRT310NV1:
497 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1);
498 +               break;
499 +       case BCM47XX_BOARD_LINKSYS_WRT610NV1:
500 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv1);
501 +               break;
502 +       case BCM47XX_BOARD_LINKSYS_WRT610NV2:
503 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv2);
504 +               break;
505 +
506 +       case BCM47XX_BOARD_MOTOROLA_WE800G:
507 +               bcm47xx_set_pdata(bcm47xx_leds_motorola_we800g);
508 +               break;
509 +       case BCM47XX_BOARD_MOTOROLA_WR850GP:
510 +               bcm47xx_set_pdata(bcm47xx_leds_motorola_wr850gp);
511 +               break;
512 +       case BCM47XX_BOARD_MOTOROLA_WR850GV2V3:
513 +               bcm47xx_set_pdata(bcm47xx_leds_motorola_wr850gv2v3);
514 +               break;
515 +
516 +       case BCM47XX_BOARD_NETGEAR_WNDR3400V1:
517 +               bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr3400v1);
518 +               break;
519         case BCM47XX_BOARD_NETGEAR_WNDR4500V1:
520                 bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr4500_v1_leds);
521                 break;
522 +       case BCM47XX_BOARD_NETGEAR_WNR834BV2:
523 +               bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr834bv2);
524 +               break;
525 +
526 +       case BCM47XX_BOARD_SIMPLETECH_SIMPLESHARE:
527 +               bcm47xx_set_pdata(bcm47xx_leds_simpletech_simpleshare);
528 +               break;
529 +
530         default:
531                 pr_debug("No LEDs configuration found for this device\n");
532                 return;