~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/mips/bcm47xx/leds.c

Version: ~ [ linux-5.11-rc3 ] ~ [ linux-5.10.7 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.89 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.167 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.215 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.251 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.251 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0
  2 #include "bcm47xx_private.h"
  3 
  4 #include <linux/leds.h>
  5 #include <bcm47xx_board.h>
  6 
  7 /**************************************************
  8  * Database
  9  **************************************************/
 10 
 11 #define BCM47XX_GPIO_LED(_gpio, _color, _function, _active_low,         \
 12                          _default_state)                                \
 13         {                                                               \
 14                 .name           = "bcm47xx:" _color ":" _function,      \
 15                 .gpio           = _gpio,                                \
 16                 .active_low     = _active_low,                          \
 17                 .default_state  = _default_state,                       \
 18         }
 19 
 20 #define BCM47XX_GPIO_LED_TRIGGER(_gpio, _color, _function, _active_low, \
 21                                  _default_trigger)                      \
 22         {                                                               \
 23                 .name           = "bcm47xx:" _color ":" _function,      \
 24                 .gpio           = _gpio,                                \
 25                 .active_low     = _active_low,                          \
 26                 .default_state  = LEDS_GPIO_DEFSTATE_OFF,               \
 27                 .default_trigger        = _default_trigger,             \
 28         }
 29 
 30 /* Asus */
 31 
 32 static const struct gpio_led
 33 bcm47xx_leds_asus_rtn12[] __initconst = {
 34         BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 35         BCM47XX_GPIO_LED(7, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
 36 };
 37 
 38 static const struct gpio_led
 39 bcm47xx_leds_asus_rtn15u[] __initconst = {
 40         /* TODO: Add "wlan" LED */
 41         BCM47XX_GPIO_LED(3, "blue", "wan", 1, LEDS_GPIO_DEFSTATE_OFF),
 42         BCM47XX_GPIO_LED(4, "blue", "lan", 1, LEDS_GPIO_DEFSTATE_OFF),
 43         BCM47XX_GPIO_LED(6, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 44         BCM47XX_GPIO_LED(9, "blue", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
 45 };
 46 
 47 static const struct gpio_led
 48 bcm47xx_leds_asus_rtn16[] __initconst = {
 49         BCM47XX_GPIO_LED(1, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 50         BCM47XX_GPIO_LED(7, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
 51 };
 52 
 53 static const struct gpio_led
 54 bcm47xx_leds_asus_rtn66u[] __initconst = {
 55         BCM47XX_GPIO_LED(12, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 56         BCM47XX_GPIO_LED(15, "blue", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
 57 };
 58 
 59 static const struct gpio_led
 60 bcm47xx_leds_asus_wl300g[] __initconst = {
 61         BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 62 };
 63 
 64 static const struct gpio_led
 65 bcm47xx_leds_asus_wl320ge[] __initconst = {
 66         BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
 67         BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 68         BCM47XX_GPIO_LED(11, "unk", "link", 1, LEDS_GPIO_DEFSTATE_OFF),
 69 };
 70 
 71 static const struct gpio_led
 72 bcm47xx_leds_asus_wl330ge[] __initconst = {
 73         BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 74 };
 75 
 76 static const struct gpio_led
 77 bcm47xx_leds_asus_wl500g[] __initconst = {
 78         BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 79 };
 80 
 81 static const struct gpio_led
 82 bcm47xx_leds_asus_wl500gd[] __initconst = {
 83         BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 84 };
 85 
 86 static const struct gpio_led
 87 bcm47xx_leds_asus_wl500gpv1[] __initconst = {
 88         BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 89 };
 90 
 91 static const struct gpio_led
 92 bcm47xx_leds_asus_wl500gpv2[] __initconst = {
 93         BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 94         BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
 95 };
 96 
 97 static const struct gpio_led
 98 bcm47xx_leds_asus_wl500w[] __initconst = {
 99         BCM47XX_GPIO_LED(5, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
100 };
101 
102 static const struct gpio_led
103 bcm47xx_leds_asus_wl520gc[] __initconst = {
104         BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
105         BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
106 };
107 
108 static const struct gpio_led
109 bcm47xx_leds_asus_wl520gu[] __initconst = {
110         BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
111         BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
112 };
113 
114 static const struct gpio_led
115 bcm47xx_leds_asus_wl700ge[] __initconst = {
116         BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON), /* Labeled "READY" (there is no "power" LED). Originally ON, flashing on USB activity. */
117 };
118 
119 static const struct gpio_led
120 bcm47xx_leds_asus_wlhdd[] __initconst = {
121         BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
122         BCM47XX_GPIO_LED(2, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
123 };
124 
125 /* Belkin */
126 
127 static const struct gpio_led
128 bcm47xx_leds_belkin_f7d4301[] __initconst = {
129         BCM47XX_GPIO_LED(10, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
130         BCM47XX_GPIO_LED(11, "amber", "power", 1, LEDS_GPIO_DEFSTATE_OFF),
131         BCM47XX_GPIO_LED(12, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
132         BCM47XX_GPIO_LED(13, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
133         BCM47XX_GPIO_LED(14, "unk", "usb0", 1, LEDS_GPIO_DEFSTATE_OFF),
134         BCM47XX_GPIO_LED(15, "unk", "usb1", 1, LEDS_GPIO_DEFSTATE_OFF),
135 };
136 
137 /* Buffalo */
138 
139 static const struct gpio_led
140 bcm47xx_leds_buffalo_whr2_a54g54[] __initconst = {
141         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
142 };
143 
144 static const struct gpio_led
145 bcm47xx_leds_buffalo_whr_g125[] __initconst = {
146         BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
147         BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
148         BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
149         BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
150         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
151 };
152 
153 static const struct gpio_led
154 bcm47xx_leds_buffalo_whr_g54s[] __initconst = {
155         BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
156         BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
157         BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
158         BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
159         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
160 };
161 
162 static const struct gpio_led
163 bcm47xx_leds_buffalo_whr_hp_g54[] __initconst = {
164         BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
165         BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
166         BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
167         BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
168         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
169 };
170 
171 static const struct gpio_led
172 bcm47xx_leds_buffalo_wzr_g300n[] __initconst = {
173         BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
174         BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
175         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
176 };
177 
178 static const struct gpio_led
179 bcm47xx_leds_buffalo_wzr_rs_g54[] __initconst = {
180         BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
181         BCM47XX_GPIO_LED(1, "unk", "vpn", 1, LEDS_GPIO_DEFSTATE_OFF),
182         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
183 };
184 
185 static const struct gpio_led
186 bcm47xx_leds_buffalo_wzr_rs_g54hp[] __initconst = {
187         BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
188         BCM47XX_GPIO_LED(1, "unk", "vpn", 1, LEDS_GPIO_DEFSTATE_OFF),
189         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
190 };
191 
192 /* Dell */
193 
194 static const struct gpio_led
195 bcm47xx_leds_dell_tm2300[] __initconst = {
196         BCM47XX_GPIO_LED(6, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
197         BCM47XX_GPIO_LED(7, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
198 };
199 
200 /* D-Link */
201 
202 static const struct gpio_led
203 bcm47xx_leds_dlink_dir130[] __initconst = {
204         BCM47XX_GPIO_LED_TRIGGER(0, "green", "status", 1, "timer"), /* Originally blinking when device is ready, separated from "power" LED */
205         BCM47XX_GPIO_LED(6, "blue", "unk", 1, LEDS_GPIO_DEFSTATE_OFF),
206 };
207 
208 static const struct gpio_led
209 bcm47xx_leds_dlink_dir330[] __initconst = {
210         BCM47XX_GPIO_LED_TRIGGER(0, "green", "status", 1, "timer"), /* Originally blinking when device is ready, separated from "power" LED */
211         BCM47XX_GPIO_LED(4, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
212         BCM47XX_GPIO_LED(6, "blue", "unk", 1, LEDS_GPIO_DEFSTATE_OFF),
213 };
214 
215 /* Huawei */
216 
217 static const struct gpio_led
218 bcm47xx_leds_huawei_e970[] __initconst = {
219         BCM47XX_GPIO_LED(0, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
220 };
221 
222 /* Linksys */
223 
224 static const struct gpio_led
225 bcm47xx_leds_linksys_e1000v1[] __initconst = {
226         BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
227         BCM47XX_GPIO_LED(1, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
228         BCM47XX_GPIO_LED(2, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
229         BCM47XX_GPIO_LED(4, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
230 };
231 
232 static const struct gpio_led
233 bcm47xx_leds_linksys_e1000v21[] __initconst = {
234         BCM47XX_GPIO_LED(5, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
235         BCM47XX_GPIO_LED(6, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
236         BCM47XX_GPIO_LED(7, "amber", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
237         BCM47XX_GPIO_LED(8, "blue", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
238 };
239 
240 static const struct gpio_led
241 bcm47xx_leds_linksys_e2000v1[] __initconst = {
242         BCM47XX_GPIO_LED(1, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
243         BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
244         BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
245         BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
246 };
247 
248 static const struct gpio_led
249 bcm47xx_leds_linksys_e3000v1[] __initconst = {
250         BCM47XX_GPIO_LED(0, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
251         BCM47XX_GPIO_LED(1, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
252         BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
253         BCM47XX_GPIO_LED(5, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
254         BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
255 };
256 
257 static const struct gpio_led
258 bcm47xx_leds_linksys_e3200v1[] __initconst = {
259         BCM47XX_GPIO_LED(3, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
260 };
261 
262 static const struct gpio_led
263 bcm47xx_leds_linksys_e4200v1[] __initconst = {
264         BCM47XX_GPIO_LED(5, "white", "power", 1, LEDS_GPIO_DEFSTATE_ON),
265 };
266 
267 static const struct gpio_led
268 bcm47xx_leds_linksys_wrt150nv1[] __initconst = {
269         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
270         BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
271         BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
272 };
273 
274 static const struct gpio_led
275 bcm47xx_leds_linksys_wrt150nv11[] __initconst = {
276         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
277         BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
278         BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
279 };
280 
281 static const struct gpio_led
282 bcm47xx_leds_linksys_wrt160nv1[] __initconst = {
283         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
284         BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
285         BCM47XX_GPIO_LED(5, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
286 };
287 
288 static const struct gpio_led
289 bcm47xx_leds_linksys_wrt160nv3[] __initconst = {
290         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
291         BCM47XX_GPIO_LED(2, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
292         BCM47XX_GPIO_LED(4, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
293 };
294 
295 static const struct gpio_led
296 bcm47xx_leds_linksys_wrt300n_v1[] __initconst = {
297         BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
298         BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
299         BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
300 };
301 
302 static const struct gpio_led
303 bcm47xx_leds_linksys_wrt300nv11[] __initconst = {
304         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
305         BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
306         BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
307 };
308 
309 static const struct gpio_led
310 bcm47xx_leds_linksys_wrt310nv1[] __initconst = {
311         BCM47XX_GPIO_LED(1, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
312         BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
313         BCM47XX_GPIO_LED(9, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
314 };
315 
316 static const struct gpio_led
317 bcm47xx_leds_linksys_wrt54g_generic[] __initconst = {
318         BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
319         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
320         BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
321         BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
322 };
323 
324 static const struct gpio_led
325 bcm47xx_leds_linksys_wrt54g3gv2[] __initconst = {
326         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
327         BCM47XX_GPIO_LED(2, "green", "3g", 0, LEDS_GPIO_DEFSTATE_OFF),
328         BCM47XX_GPIO_LED(3, "blue", "3g", 0, LEDS_GPIO_DEFSTATE_OFF),
329 };
330 
331 /* Verified on: WRT54GS V1.0 */
332 static const struct gpio_led
333 bcm47xx_leds_linksys_wrt54g_type_0101[] __initconst = {
334         BCM47XX_GPIO_LED(0, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
335         BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
336         BCM47XX_GPIO_LED(7, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
337 };
338 
339 /* Verified on: WRT54GL V1.1 */
340 static const struct gpio_led
341 bcm47xx_leds_linksys_wrt54g_type_0467[] __initconst = {
342         BCM47XX_GPIO_LED(0, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
343         BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
344         BCM47XX_GPIO_LED(2, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
345         BCM47XX_GPIO_LED(3, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
346         BCM47XX_GPIO_LED(7, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
347 };
348 
349 static const struct gpio_led
350 bcm47xx_leds_linksys_wrt610nv1[] __initconst = {
351         BCM47XX_GPIO_LED(0, "unk", "usb",  1, LEDS_GPIO_DEFSTATE_OFF),
352         BCM47XX_GPIO_LED(1, "unk", "power",  0, LEDS_GPIO_DEFSTATE_OFF),
353         BCM47XX_GPIO_LED(3, "amber", "wps",  1, LEDS_GPIO_DEFSTATE_OFF),
354         BCM47XX_GPIO_LED(9, "blue", "wps",  1, LEDS_GPIO_DEFSTATE_OFF),
355 };
356 
357 static const struct gpio_led
358 bcm47xx_leds_linksys_wrt610nv2[] __initconst = {
359         BCM47XX_GPIO_LED(0, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
360         BCM47XX_GPIO_LED(1, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
361         BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
362         BCM47XX_GPIO_LED(5, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
363         BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
364 };
365 
366 static const struct gpio_led
367 bcm47xx_leds_linksys_wrtsl54gs[] __initconst = {
368         BCM47XX_GPIO_LED(0, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
369         BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
370         BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
371         BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
372 };
373 
374 /* Luxul */
375 
376 static const struct gpio_led
377 bcm47xx_leds_luxul_abr_4400_v1[] __initconst = {
378         BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
379         BCM47XX_GPIO_LED_TRIGGER(15, "green", "status", 0, "timer"),
380 };
381 
382 static const struct gpio_led
383 bcm47xx_leds_luxul_xap_310_v1[] __initconst = {
384         BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
385 };
386 
387 static const struct gpio_led
388 bcm47xx_leds_luxul_xap_1210_v1[] __initconst = {
389         BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
390 };
391 
392 static const struct gpio_led
393 bcm47xx_leds_luxul_xap_1230_v1[] __initconst = {
394         BCM47XX_GPIO_LED(3, "blue", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
395         BCM47XX_GPIO_LED(4, "green", "bridge", 0, LEDS_GPIO_DEFSTATE_OFF),
396         BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
397 };
398 
399 static const struct gpio_led
400 bcm47xx_leds_luxul_xap_1240_v1[] __initconst = {
401         BCM47XX_GPIO_LED(3, "blue", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
402         BCM47XX_GPIO_LED(4, "green", "bridge", 0, LEDS_GPIO_DEFSTATE_OFF),
403         BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
404 };
405 
406 static const struct gpio_led
407 bcm47xx_leds_luxul_xap_1500_v1[] __initconst = {
408         BCM47XX_GPIO_LED_TRIGGER(13, "green", "status", 1, "timer"),
409 };
410 
411 static const struct gpio_led
412 bcm47xx_leds_luxul_xap1500_v1_extra[] __initconst = {
413         BCM47XX_GPIO_LED(44, "green", "5ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
414         BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
415 };
416 
417 static const struct gpio_led
418 bcm47xx_leds_luxul_xbr_4400_v1[] __initconst = {
419         BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
420         BCM47XX_GPIO_LED_TRIGGER(15, "green", "status", 0, "timer"),
421 };
422 
423 static const struct gpio_led
424 bcm47xx_leds_luxul_xvw_p30_v1[] __initconst = {
425         BCM47XX_GPIO_LED_TRIGGER(0, "blue", "status", 1, "timer"),
426         BCM47XX_GPIO_LED(1, "green", "link", 1, LEDS_GPIO_DEFSTATE_OFF),
427 };
428 
429 static const struct gpio_led
430 bcm47xx_leds_luxul_xwr_600_v1[] __initconst = {
431         BCM47XX_GPIO_LED(3, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
432         BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
433         BCM47XX_GPIO_LED(9, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
434 };
435 
436 static const struct gpio_led
437 bcm47xx_leds_luxul_xwr_1750_v1[] __initconst = {
438         BCM47XX_GPIO_LED(5, "green", "5ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
439         BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
440         BCM47XX_GPIO_LED_TRIGGER(13, "green", "status", 0, "timer"),
441         BCM47XX_GPIO_LED(15, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
442 };
443 
444 static const struct gpio_led
445 bcm47xx_leds_luxul_xwr1750_v1_extra[] __initconst = {
446         BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
447 };
448 
449 /* Microsoft */
450 
451 static const struct gpio_led
452 bcm47xx_leds_microsoft_nm700[] __initconst = {
453         BCM47XX_GPIO_LED(6, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
454 };
455 
456 /* Motorola */
457 
458 static const struct gpio_led
459 bcm47xx_leds_motorola_we800g[] __initconst = {
460         BCM47XX_GPIO_LED(1, "amber", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
461         BCM47XX_GPIO_LED(2, "unk", "unk", 1, LEDS_GPIO_DEFSTATE_OFF), /* There are only 3 LEDs: Power, Wireless and Device (ethernet) */
462         BCM47XX_GPIO_LED(4, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
463 };
464 
465 static const struct gpio_led
466 bcm47xx_leds_motorola_wr850gp[] __initconst = {
467         BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
468         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
469         BCM47XX_GPIO_LED(6, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
470         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
471 };
472 
473 static const struct gpio_led
474 bcm47xx_leds_motorola_wr850gv2v3[] __initconst = {
475         BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
476         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
477         BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
478 };
479 
480 /* Netgear */
481 
482 static const struct gpio_led
483 bcm47xx_leds_netgear_wndr3400v1[] __initconst = {
484         BCM47XX_GPIO_LED(2, "green", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
485         BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
486         BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
487 };
488 
489 static const struct gpio_led
490 bcm47xx_leds_netgear_wndr4500v1[] __initconst = {
491         BCM47XX_GPIO_LED(1, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
492         BCM47XX_GPIO_LED(2, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
493         BCM47XX_GPIO_LED(3, "amber", "power", 1, LEDS_GPIO_DEFSTATE_OFF),
494         BCM47XX_GPIO_LED(8, "green", "usb1", 1, LEDS_GPIO_DEFSTATE_OFF),
495         BCM47XX_GPIO_LED(9, "green", "2ghz", 1, LEDS_GPIO_DEFSTATE_OFF),
496         BCM47XX_GPIO_LED(11, "blue", "5ghz", 1, LEDS_GPIO_DEFSTATE_OFF),
497         BCM47XX_GPIO_LED(14, "green", "usb2", 1, LEDS_GPIO_DEFSTATE_OFF),
498 };
499 
500 static const struct gpio_led
501 bcm47xx_leds_netgear_wnr1000_v3[] __initconst = {
502         BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
503         BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
504 };
505 
506 static const struct gpio_led
507 bcm47xx_leds_netgear_wnr3500lv1[] __initconst = {
508         BCM47XX_GPIO_LED(0, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
509         BCM47XX_GPIO_LED(1, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
510         BCM47XX_GPIO_LED(2, "green", "wan", 1, LEDS_GPIO_DEFSTATE_OFF),
511         BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
512         BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
513 };
514 
515 static const struct gpio_led
516 bcm47xx_leds_netgear_wnr834bv2[] __initconst = {
517         BCM47XX_GPIO_LED(2, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
518         BCM47XX_GPIO_LED(3, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
519         BCM47XX_GPIO_LED(7, "unk", "connected", 0, LEDS_GPIO_DEFSTATE_OFF),
520 };
521 
522 /* Siemens */
523 static const struct gpio_led
524 bcm47xx_leds_siemens_se505v2[] __initconst = {
525         BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
526         BCM47XX_GPIO_LED(3, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
527         BCM47XX_GPIO_LED(5, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
528 };
529 
530 /* SimpleTech */
531 
532 static const struct gpio_led
533 bcm47xx_leds_simpletech_simpleshare[] __initconst = {
534         BCM47XX_GPIO_LED(1, "unk", "status", 1, LEDS_GPIO_DEFSTATE_OFF), /* "Ready" LED */
535 };
536 
537 /**************************************************
538  * Init
539  **************************************************/
540 
541 static struct gpio_led_platform_data bcm47xx_leds_pdata __initdata;
542 
543 #define bcm47xx_set_pdata(dev_leds) do {                                \
544         bcm47xx_leds_pdata.leds = dev_leds;                             \
545         bcm47xx_leds_pdata.num_leds = ARRAY_SIZE(dev_leds);             \
546 } while (0)
547 
548 static struct gpio_led_platform_data bcm47xx_leds_pdata_extra __initdata = {};
549 #define bcm47xx_set_pdata_extra(dev_leds) do {                          \
550         bcm47xx_leds_pdata_extra.leds = dev_leds;                       \
551         bcm47xx_leds_pdata_extra.num_leds = ARRAY_SIZE(dev_leds);       \
552 } while (0)
553 
554 void __init bcm47xx_leds_register(void)
555 {
556         enum bcm47xx_board board = bcm47xx_board_get();
557 
558         switch (board) {
559         case BCM47XX_BOARD_ASUS_RTN12:
560                 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn12);
561                 break;
562         case BCM47XX_BOARD_ASUS_RTN15U:
563                 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn15u);
564                 break;
565         case BCM47XX_BOARD_ASUS_RTN16:
566                 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn16);
567                 break;
568         case BCM47XX_BOARD_ASUS_RTN66U:
569                 bcm47xx_set_pdata(bcm47xx_leds_asus_rtn66u);
570                 break;
571         case BCM47XX_BOARD_ASUS_WL300G:
572                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl300g);
573                 break;
574         case BCM47XX_BOARD_ASUS_WL320GE:
575                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl320ge);
576                 break;
577         case BCM47XX_BOARD_ASUS_WL330GE:
578                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl330ge);
579                 break;
580         case BCM47XX_BOARD_ASUS_WL500G:
581                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500g);
582                 break;
583         case BCM47XX_BOARD_ASUS_WL500GD:
584                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gd);
585                 break;
586         case BCM47XX_BOARD_ASUS_WL500GPV1:
587                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gpv1);
588                 break;
589         case BCM47XX_BOARD_ASUS_WL500GPV2:
590                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gpv2);
591                 break;
592         case BCM47XX_BOARD_ASUS_WL500W:
593                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl500w);
594                 break;
595         case BCM47XX_BOARD_ASUS_WL520GC:
596                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl520gc);
597                 break;
598         case BCM47XX_BOARD_ASUS_WL520GU:
599                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl520gu);
600                 break;
601         case BCM47XX_BOARD_ASUS_WL700GE:
602                 bcm47xx_set_pdata(bcm47xx_leds_asus_wl700ge);
603                 break;
604         case BCM47XX_BOARD_ASUS_WLHDD:
605                 bcm47xx_set_pdata(bcm47xx_leds_asus_wlhdd);
606                 break;
607 
608         case BCM47XX_BOARD_BELKIN_F7D3301:
609         case BCM47XX_BOARD_BELKIN_F7D3302:
610         case BCM47XX_BOARD_BELKIN_F7D4301:
611         case BCM47XX_BOARD_BELKIN_F7D4302:
612         case BCM47XX_BOARD_BELKIN_F7D4401:
613                 bcm47xx_set_pdata(bcm47xx_leds_belkin_f7d4301);
614                 break;
615 
616         case BCM47XX_BOARD_BUFFALO_WHR2_A54G54:
617                 bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr2_a54g54);
618                 break;
619         case BCM47XX_BOARD_BUFFALO_WHR_G125:
620                 bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_g125);
621                 break;
622         case BCM47XX_BOARD_BUFFALO_WHR_G54S:
623                 bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_g54s);
624                 break;
625         case BCM47XX_BOARD_BUFFALO_WHR_HP_G54:
626                 bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_hp_g54);
627                 break;
628         case BCM47XX_BOARD_BUFFALO_WZR_G300N:
629                 bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_g300n);
630                 break;
631         case BCM47XX_BOARD_BUFFALO_WZR_RS_G54:
632                 bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_rs_g54);
633                 break;
634         case BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP:
635                 bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_rs_g54hp);
636                 break;
637 
638         case BCM47XX_BOARD_DELL_TM2300:
639                 bcm47xx_set_pdata(bcm47xx_leds_dell_tm2300);
640                 break;
641 
642         case BCM47XX_BOARD_DLINK_DIR130:
643                 bcm47xx_set_pdata(bcm47xx_leds_dlink_dir130);
644                 break;
645         case BCM47XX_BOARD_DLINK_DIR330:
646                 bcm47xx_set_pdata(bcm47xx_leds_dlink_dir330);
647                 break;
648 
649         case BCM47XX_BOARD_HUAWEI_E970:
650                 bcm47xx_set_pdata(bcm47xx_leds_huawei_e970);
651                 break;
652 
653         case BCM47XX_BOARD_LINKSYS_E1000V1:
654                 bcm47xx_set_pdata(bcm47xx_leds_linksys_e1000v1);
655                 break;
656         case BCM47XX_BOARD_LINKSYS_E1000V21:
657                 bcm47xx_set_pdata(bcm47xx_leds_linksys_e1000v21);
658                 break;
659         case BCM47XX_BOARD_LINKSYS_E2000V1:
660                 bcm47xx_set_pdata(bcm47xx_leds_linksys_e2000v1);
661                 break;
662         case BCM47XX_BOARD_LINKSYS_E3000V1:
663                 bcm47xx_set_pdata(bcm47xx_leds_linksys_e3000v1);
664                 break;
665         case BCM47XX_BOARD_LINKSYS_E3200V1:
666                 bcm47xx_set_pdata(bcm47xx_leds_linksys_e3200v1);
667                 break;
668         case BCM47XX_BOARD_LINKSYS_E4200V1:
669                 bcm47xx_set_pdata(bcm47xx_leds_linksys_e4200v1);
670                 break;
671         case BCM47XX_BOARD_LINKSYS_WRT150NV1:
672                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt150nv1);
673                 break;
674         case BCM47XX_BOARD_LINKSYS_WRT150NV11:
675                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt150nv11);
676                 break;
677         case BCM47XX_BOARD_LINKSYS_WRT160NV1:
678                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt160nv1);
679                 break;
680         case BCM47XX_BOARD_LINKSYS_WRT160NV3:
681                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt160nv3);
682                 break;
683         case BCM47XX_BOARD_LINKSYS_WRT300N_V1:
684                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt300n_v1);
685                 break;
686         case BCM47XX_BOARD_LINKSYS_WRT300NV11:
687                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt300nv11);
688                 break;
689         case BCM47XX_BOARD_LINKSYS_WRT310NV1:
690                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1);
691                 break;
692         case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
693                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2);
694                 break;
695         case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101:
696                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_type_0101);
697                 break;
698         case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467:
699                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_type_0467);
700                 break;
701         case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708:
702                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_generic);
703                 break;
704         case BCM47XX_BOARD_LINKSYS_WRT610NV1:
705                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv1);
706                 break;
707         case BCM47XX_BOARD_LINKSYS_WRT610NV2:
708                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv2);
709                 break;
710         case BCM47XX_BOARD_LINKSYS_WRTSL54GS:
711                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrtsl54gs);
712                 break;
713 
714         case BCM47XX_BOARD_LUXUL_ABR_4400_V1:
715                 bcm47xx_set_pdata(bcm47xx_leds_luxul_abr_4400_v1);
716                 break;
717         case BCM47XX_BOARD_LUXUL_XAP_310_V1:
718                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_310_v1);
719                 break;
720         case BCM47XX_BOARD_LUXUL_XAP_1210_V1:
721                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1210_v1);
722                 break;
723         case BCM47XX_BOARD_LUXUL_XAP_1230_V1:
724                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1230_v1);
725                 break;
726         case BCM47XX_BOARD_LUXUL_XAP_1240_V1:
727                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1240_v1);
728                 break;
729         case BCM47XX_BOARD_LUXUL_XAP_1500_V1:
730                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1500_v1);
731                 bcm47xx_set_pdata_extra(bcm47xx_leds_luxul_xap1500_v1_extra);
732                 break;
733         case BCM47XX_BOARD_LUXUL_XBR_4400_V1:
734                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xbr_4400_v1);
735                 break;
736         case BCM47XX_BOARD_LUXUL_XVW_P30_V1:
737                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xvw_p30_v1);
738                 break;
739         case BCM47XX_BOARD_LUXUL_XWR_600_V1:
740                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xwr_600_v1);
741                 break;
742         case BCM47XX_BOARD_LUXUL_XWR_1750_V1:
743                 bcm47xx_set_pdata(bcm47xx_leds_luxul_xwr_1750_v1);
744                 bcm47xx_set_pdata_extra(bcm47xx_leds_luxul_xwr1750_v1_extra);
745                 break;
746 
747         case BCM47XX_BOARD_MICROSOFT_MN700:
748                 bcm47xx_set_pdata(bcm47xx_leds_microsoft_nm700);
749                 break;
750 
751         case BCM47XX_BOARD_MOTOROLA_WE800G:
752                 bcm47xx_set_pdata(bcm47xx_leds_motorola_we800g);
753                 break;
754         case BCM47XX_BOARD_MOTOROLA_WR850GP:
755                 bcm47xx_set_pdata(bcm47xx_leds_motorola_wr850gp);
756                 break;
757         case BCM47XX_BOARD_MOTOROLA_WR850GV2V3:
758                 bcm47xx_set_pdata(bcm47xx_leds_motorola_wr850gv2v3);
759                 break;
760 
761         case BCM47XX_BOARD_NETGEAR_WNDR3400V1:
762                 bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr3400v1);
763                 break;
764         case BCM47XX_BOARD_NETGEAR_WNDR4500V1:
765                 bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr4500v1);
766                 break;
767         case BCM47XX_BOARD_NETGEAR_WNR1000_V3:
768                 bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr1000_v3);
769                 break;
770         case BCM47XX_BOARD_NETGEAR_WNR3500L:
771                 bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv1);
772                 break;
773         case BCM47XX_BOARD_NETGEAR_WNR834BV2:
774                 bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr834bv2);
775                 break;
776 
777         case BCM47XX_BOARD_SIEMENS_SE505V2:
778                 bcm47xx_set_pdata(bcm47xx_leds_siemens_se505v2);
779                 break;
780 
781         case BCM47XX_BOARD_SIMPLETECH_SIMPLESHARE:
782                 bcm47xx_set_pdata(bcm47xx_leds_simpletech_simpleshare);
783                 break;
784 
785         default:
786                 pr_debug("No LEDs configuration found for this device\n");
787                 return;
788         }
789 
790         gpio_led_register_device(-1, &bcm47xx_leds_pdata);
791         if (bcm47xx_leds_pdata_extra.num_leds)
792                 gpio_led_register_device(0, &bcm47xx_leds_pdata_extra);
793 }
794 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp