Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 #include "bcm47xx_private.h"
0003 
0004 #include <linux/leds.h>
0005 #include <bcm47xx_board.h>
0006 
0007 /**************************************************
0008  * Database
0009  **************************************************/
0010 
0011 #define BCM47XX_GPIO_LED(_gpio, _color, _function, _active_low,     \
0012              _default_state)                \
0013     {                               \
0014         .name       = "bcm47xx:" _color ":" _function,  \
0015         .gpio       = _gpio,                \
0016         .active_low = _active_low,              \
0017         .default_state  = _default_state,           \
0018     }
0019 
0020 #define BCM47XX_GPIO_LED_TRIGGER(_gpio, _color, _function, _active_low, \
0021                  _default_trigger)          \
0022     {                               \
0023         .name       = "bcm47xx:" _color ":" _function,  \
0024         .gpio       = _gpio,                \
0025         .active_low = _active_low,              \
0026         .default_state  = LEDS_GPIO_DEFSTATE_OFF,       \
0027         .default_trigger    = _default_trigger,     \
0028     }
0029 
0030 /* Asus */
0031 
0032 static const struct gpio_led
0033 bcm47xx_leds_asus_rtn10u[] __initconst = {
0034     BCM47XX_GPIO_LED(5, "green", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0035     BCM47XX_GPIO_LED(6, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0036     BCM47XX_GPIO_LED(7, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
0037     BCM47XX_GPIO_LED(8, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
0038 };
0039 
0040 static const struct gpio_led
0041 bcm47xx_leds_asus_rtn12[] __initconst = {
0042     BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0043     BCM47XX_GPIO_LED(7, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0044 };
0045 
0046 static const struct gpio_led
0047 bcm47xx_leds_asus_rtn15u[] __initconst = {
0048     /* TODO: Add "wlan" LED */
0049     BCM47XX_GPIO_LED(3, "blue", "wan", 1, LEDS_GPIO_DEFSTATE_OFF),
0050     BCM47XX_GPIO_LED(4, "blue", "lan", 1, LEDS_GPIO_DEFSTATE_OFF),
0051     BCM47XX_GPIO_LED(6, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0052     BCM47XX_GPIO_LED(9, "blue", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
0053 };
0054 
0055 static const struct gpio_led
0056 bcm47xx_leds_asus_rtn16[] __initconst = {
0057     BCM47XX_GPIO_LED(1, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0058     BCM47XX_GPIO_LED(7, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0059 };
0060 
0061 static const struct gpio_led
0062 bcm47xx_leds_asus_rtn66u[] __initconst = {
0063     BCM47XX_GPIO_LED(12, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0064     BCM47XX_GPIO_LED(15, "blue", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
0065 };
0066 
0067 static const struct gpio_led
0068 bcm47xx_leds_asus_wl300g[] __initconst = {
0069     BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0070 };
0071 
0072 static const struct gpio_led
0073 bcm47xx_leds_asus_wl320ge[] __initconst = {
0074     BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0075     BCM47XX_GPIO_LED(2, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0076     BCM47XX_GPIO_LED(11, "unk", "link", 1, LEDS_GPIO_DEFSTATE_OFF),
0077 };
0078 
0079 static const struct gpio_led
0080 bcm47xx_leds_asus_wl330ge[] __initconst = {
0081     BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0082 };
0083 
0084 static const struct gpio_led
0085 bcm47xx_leds_asus_wl500g[] __initconst = {
0086     BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0087 };
0088 
0089 static const struct gpio_led
0090 bcm47xx_leds_asus_wl500gd[] __initconst = {
0091     BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0092 };
0093 
0094 static const struct gpio_led
0095 bcm47xx_leds_asus_wl500gpv1[] __initconst = {
0096     BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0097 };
0098 
0099 static const struct gpio_led
0100 bcm47xx_leds_asus_wl500gpv2[] __initconst = {
0101     BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0102     BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0103 };
0104 
0105 static const struct gpio_led
0106 bcm47xx_leds_asus_wl500w[] __initconst = {
0107     BCM47XX_GPIO_LED(5, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0108 };
0109 
0110 static const struct gpio_led
0111 bcm47xx_leds_asus_wl520gc[] __initconst = {
0112     BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0113     BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0114 };
0115 
0116 static const struct gpio_led
0117 bcm47xx_leds_asus_wl520gu[] __initconst = {
0118     BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0119     BCM47XX_GPIO_LED(1, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0120 };
0121 
0122 static const struct gpio_led
0123 bcm47xx_leds_asus_wl700ge[] __initconst = {
0124     BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON), /* Labeled "READY" (there is no "power" LED). Originally ON, flashing on USB activity. */
0125 };
0126 
0127 static const struct gpio_led
0128 bcm47xx_leds_asus_wlhdd[] __initconst = {
0129     BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0130     BCM47XX_GPIO_LED(2, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
0131 };
0132 
0133 /* Belkin */
0134 
0135 static const struct gpio_led
0136 bcm47xx_leds_belkin_f7d4301[] __initconst = {
0137     BCM47XX_GPIO_LED(10, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0138     BCM47XX_GPIO_LED(11, "amber", "power", 1, LEDS_GPIO_DEFSTATE_OFF),
0139     BCM47XX_GPIO_LED(12, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0140     BCM47XX_GPIO_LED(13, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0141     BCM47XX_GPIO_LED(14, "unk", "usb0", 1, LEDS_GPIO_DEFSTATE_OFF),
0142     BCM47XX_GPIO_LED(15, "unk", "usb1", 1, LEDS_GPIO_DEFSTATE_OFF),
0143 };
0144 
0145 /* Buffalo */
0146 
0147 static const struct gpio_led
0148 bcm47xx_leds_buffalo_whr2_a54g54[] __initconst = {
0149     BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0150 };
0151 
0152 static const struct gpio_led
0153 bcm47xx_leds_buffalo_whr_g125[] __initconst = {
0154     BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
0155     BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0156     BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
0157     BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0158     BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0159 };
0160 
0161 static const struct gpio_led
0162 bcm47xx_leds_buffalo_whr_g54s[] __initconst = {
0163     BCM47XX_GPIO_LED(1, "green", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
0164     BCM47XX_GPIO_LED(2, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0165     BCM47XX_GPIO_LED(3, "green", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
0166     BCM47XX_GPIO_LED(6, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0167     BCM47XX_GPIO_LED(7, "red", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0168 };
0169 
0170 static const struct gpio_led
0171 bcm47xx_leds_buffalo_whr_hp_g54[] __initconst = {
0172     BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
0173     BCM47XX_GPIO_LED(2, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0174     BCM47XX_GPIO_LED(3, "unk", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
0175     BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0176     BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0177 };
0178 
0179 static const struct gpio_led
0180 bcm47xx_leds_buffalo_wzr_g300n[] __initconst = {
0181     BCM47XX_GPIO_LED(1, "unk", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
0182     BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0183     BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0184 };
0185 
0186 static const struct gpio_led
0187 bcm47xx_leds_buffalo_wzr_rs_g54[] __initconst = {
0188     BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0189     BCM47XX_GPIO_LED(1, "unk", "vpn", 1, LEDS_GPIO_DEFSTATE_OFF),
0190     BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0191 };
0192 
0193 static const struct gpio_led
0194 bcm47xx_leds_buffalo_wzr_rs_g54hp[] __initconst = {
0195     BCM47XX_GPIO_LED(6, "unk", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0196     BCM47XX_GPIO_LED(1, "unk", "vpn", 1, LEDS_GPIO_DEFSTATE_OFF),
0197     BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0198 };
0199 
0200 /* Dell */
0201 
0202 static const struct gpio_led
0203 bcm47xx_leds_dell_tm2300[] __initconst = {
0204     BCM47XX_GPIO_LED(6, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0205     BCM47XX_GPIO_LED(7, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0206 };
0207 
0208 /* D-Link */
0209 
0210 static const struct gpio_led
0211 bcm47xx_leds_dlink_dir130[] __initconst = {
0212     BCM47XX_GPIO_LED_TRIGGER(0, "green", "status", 1, "timer"), /* Originally blinking when device is ready, separated from "power" LED */
0213     BCM47XX_GPIO_LED(6, "blue", "unk", 1, LEDS_GPIO_DEFSTATE_OFF),
0214 };
0215 
0216 static const struct gpio_led
0217 bcm47xx_leds_dlink_dir330[] __initconst = {
0218     BCM47XX_GPIO_LED_TRIGGER(0, "green", "status", 1, "timer"), /* Originally blinking when device is ready, separated from "power" LED */
0219     BCM47XX_GPIO_LED(4, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
0220     BCM47XX_GPIO_LED(6, "blue", "unk", 1, LEDS_GPIO_DEFSTATE_OFF),
0221 };
0222 
0223 /* Huawei */
0224 
0225 static const struct gpio_led
0226 bcm47xx_leds_huawei_e970[] __initconst = {
0227     BCM47XX_GPIO_LED(0, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0228 };
0229 
0230 /* Linksys */
0231 
0232 static const struct gpio_led
0233 bcm47xx_leds_linksys_e1000v1[] __initconst = {
0234     BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0235     BCM47XX_GPIO_LED(1, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0236     BCM47XX_GPIO_LED(2, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0237     BCM47XX_GPIO_LED(4, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0238 };
0239 
0240 static const struct gpio_led
0241 bcm47xx_leds_linksys_e1000v21[] __initconst = {
0242     BCM47XX_GPIO_LED(5, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0243     BCM47XX_GPIO_LED(6, "blue", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0244     BCM47XX_GPIO_LED(7, "amber", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
0245     BCM47XX_GPIO_LED(8, "blue", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
0246 };
0247 
0248 static const struct gpio_led
0249 bcm47xx_leds_linksys_e2000v1[] __initconst = {
0250     BCM47XX_GPIO_LED(1, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0251     BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0252     BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0253     BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0254 };
0255 
0256 static const struct gpio_led
0257 bcm47xx_leds_linksys_e3000v1[] __initconst = {
0258     BCM47XX_GPIO_LED(0, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0259     BCM47XX_GPIO_LED(1, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0260     BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0261     BCM47XX_GPIO_LED(5, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0262     BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
0263 };
0264 
0265 static const struct gpio_led
0266 bcm47xx_leds_linksys_e3200v1[] __initconst = {
0267     BCM47XX_GPIO_LED(3, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0268 };
0269 
0270 static const struct gpio_led
0271 bcm47xx_leds_linksys_e4200v1[] __initconst = {
0272     BCM47XX_GPIO_LED(5, "white", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0273 };
0274 
0275 static const struct gpio_led
0276 bcm47xx_leds_linksys_wrt150nv1[] __initconst = {
0277     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0278     BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0279     BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0280 };
0281 
0282 static const struct gpio_led
0283 bcm47xx_leds_linksys_wrt150nv11[] __initconst = {
0284     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0285     BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0286     BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0287 };
0288 
0289 static const struct gpio_led
0290 bcm47xx_leds_linksys_wrt160nv1[] __initconst = {
0291     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0292     BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0293     BCM47XX_GPIO_LED(5, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0294 };
0295 
0296 static const struct gpio_led
0297 bcm47xx_leds_linksys_wrt160nv3[] __initconst = {
0298     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0299     BCM47XX_GPIO_LED(2, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0300     BCM47XX_GPIO_LED(4, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0301 };
0302 
0303 static const struct gpio_led
0304 bcm47xx_leds_linksys_wrt300n_v1[] __initconst = {
0305     BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0306     BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0307     BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0308 };
0309 
0310 static const struct gpio_led
0311 bcm47xx_leds_linksys_wrt300nv11[] __initconst = {
0312     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0313     BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0314     BCM47XX_GPIO_LED(5, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0315 };
0316 
0317 static const struct gpio_led
0318 bcm47xx_leds_linksys_wrt310nv1[] __initconst = {
0319     BCM47XX_GPIO_LED(1, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0320     BCM47XX_GPIO_LED(3, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0321     BCM47XX_GPIO_LED(9, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0322 };
0323 
0324 static const struct gpio_led
0325 bcm47xx_leds_linksys_wrt320n_v1[] __initconst = {
0326     BCM47XX_GPIO_LED(1, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0327     BCM47XX_GPIO_LED(2, "blue", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0328     BCM47XX_GPIO_LED(4, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0329 };
0330 
0331 static const struct gpio_led
0332 bcm47xx_leds_linksys_wrt54g_generic[] __initconst = {
0333     BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
0334     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0335     BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0336     BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0337 };
0338 
0339 static const struct gpio_led
0340 bcm47xx_leds_linksys_wrt54g3gv2[] __initconst = {
0341     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0342     BCM47XX_GPIO_LED(2, "green", "3g", 0, LEDS_GPIO_DEFSTATE_OFF),
0343     BCM47XX_GPIO_LED(3, "blue", "3g", 0, LEDS_GPIO_DEFSTATE_OFF),
0344 };
0345 
0346 /* Verified on: WRT54GS V1.0 */
0347 static const struct gpio_led
0348 bcm47xx_leds_linksys_wrt54g_type_0101[] __initconst = {
0349     BCM47XX_GPIO_LED(0, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0350     BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0351     BCM47XX_GPIO_LED(7, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
0352 };
0353 
0354 /* Verified on: WRT54GL V1.1 */
0355 static const struct gpio_led
0356 bcm47xx_leds_linksys_wrt54g_type_0467[] __initconst = {
0357     BCM47XX_GPIO_LED(0, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0358     BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0359     BCM47XX_GPIO_LED(2, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0360     BCM47XX_GPIO_LED(3, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0361     BCM47XX_GPIO_LED(7, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
0362 };
0363 
0364 static const struct gpio_led
0365 bcm47xx_leds_linksys_wrt610nv1[] __initconst = {
0366     BCM47XX_GPIO_LED(0, "unk", "usb",  1, LEDS_GPIO_DEFSTATE_OFF),
0367     BCM47XX_GPIO_LED(1, "unk", "power",  0, LEDS_GPIO_DEFSTATE_OFF),
0368     BCM47XX_GPIO_LED(3, "amber", "wps",  1, LEDS_GPIO_DEFSTATE_OFF),
0369     BCM47XX_GPIO_LED(9, "blue", "wps",  1, LEDS_GPIO_DEFSTATE_OFF),
0370 };
0371 
0372 static const struct gpio_led
0373 bcm47xx_leds_linksys_wrt610nv2[] __initconst = {
0374     BCM47XX_GPIO_LED(0, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0375     BCM47XX_GPIO_LED(1, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0376     BCM47XX_GPIO_LED(3, "blue", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0377     BCM47XX_GPIO_LED(5, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0378     BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
0379 };
0380 
0381 static const struct gpio_led
0382 bcm47xx_leds_linksys_wrtsl54gs[] __initconst = {
0383     BCM47XX_GPIO_LED(0, "green", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
0384     BCM47XX_GPIO_LED(1, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0385     BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0386     BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0387 };
0388 
0389 /* Luxul */
0390 
0391 static const struct gpio_led
0392 bcm47xx_leds_luxul_abr_4400_v1[] __initconst = {
0393     BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
0394     BCM47XX_GPIO_LED_TRIGGER(15, "green", "status", 0, "timer"),
0395 };
0396 
0397 static const struct gpio_led
0398 bcm47xx_leds_luxul_xap_310_v1[] __initconst = {
0399     BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
0400 };
0401 
0402 static const struct gpio_led
0403 bcm47xx_leds_luxul_xap_1210_v1[] __initconst = {
0404     BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
0405 };
0406 
0407 static const struct gpio_led
0408 bcm47xx_leds_luxul_xap_1230_v1[] __initconst = {
0409     BCM47XX_GPIO_LED(3, "blue", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
0410     BCM47XX_GPIO_LED(4, "green", "bridge", 0, LEDS_GPIO_DEFSTATE_OFF),
0411     BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
0412 };
0413 
0414 static const struct gpio_led
0415 bcm47xx_leds_luxul_xap_1240_v1[] __initconst = {
0416     BCM47XX_GPIO_LED(3, "blue", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
0417     BCM47XX_GPIO_LED(4, "green", "bridge", 0, LEDS_GPIO_DEFSTATE_OFF),
0418     BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
0419 };
0420 
0421 static const struct gpio_led
0422 bcm47xx_leds_luxul_xap_1500_v1[] __initconst = {
0423     BCM47XX_GPIO_LED_TRIGGER(13, "green", "status", 1, "timer"),
0424 };
0425 
0426 static const struct gpio_led
0427 bcm47xx_leds_luxul_xap1500_v1_extra[] __initconst = {
0428     BCM47XX_GPIO_LED(44, "green", "5ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
0429     BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
0430 };
0431 
0432 static const struct gpio_led
0433 bcm47xx_leds_luxul_xbr_4400_v1[] __initconst = {
0434     BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
0435     BCM47XX_GPIO_LED_TRIGGER(15, "green", "status", 0, "timer"),
0436 };
0437 
0438 static const struct gpio_led
0439 bcm47xx_leds_luxul_xvw_p30_v1[] __initconst = {
0440     BCM47XX_GPIO_LED_TRIGGER(0, "blue", "status", 1, "timer"),
0441     BCM47XX_GPIO_LED(1, "green", "link", 1, LEDS_GPIO_DEFSTATE_OFF),
0442 };
0443 
0444 static const struct gpio_led
0445 bcm47xx_leds_luxul_xwr_600_v1[] __initconst = {
0446     BCM47XX_GPIO_LED(3, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
0447     BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
0448     BCM47XX_GPIO_LED(9, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
0449 };
0450 
0451 static const struct gpio_led
0452 bcm47xx_leds_luxul_xwr_1750_v1[] __initconst = {
0453     BCM47XX_GPIO_LED(5, "green", "5ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
0454     BCM47XX_GPIO_LED(12, "green", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
0455     BCM47XX_GPIO_LED_TRIGGER(13, "green", "status", 0, "timer"),
0456     BCM47XX_GPIO_LED(15, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
0457 };
0458 
0459 static const struct gpio_led
0460 bcm47xx_leds_luxul_xwr1750_v1_extra[] __initconst = {
0461     BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
0462 };
0463 
0464 /* Microsoft */
0465 
0466 static const struct gpio_led
0467 bcm47xx_leds_microsoft_nm700[] __initconst = {
0468     BCM47XX_GPIO_LED(6, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0469 };
0470 
0471 /* Motorola */
0472 
0473 static const struct gpio_led
0474 bcm47xx_leds_motorola_we800g[] __initconst = {
0475     BCM47XX_GPIO_LED(1, "amber", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0476     BCM47XX_GPIO_LED(2, "unk", "unk", 1, LEDS_GPIO_DEFSTATE_OFF), /* There are only 3 LEDs: Power, Wireless and Device (ethernet) */
0477     BCM47XX_GPIO_LED(4, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0478 };
0479 
0480 static const struct gpio_led
0481 bcm47xx_leds_motorola_wr850gp[] __initconst = {
0482     BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0483     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0484     BCM47XX_GPIO_LED(6, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
0485     BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0486 };
0487 
0488 static const struct gpio_led
0489 bcm47xx_leds_motorola_wr850gv2v3[] __initconst = {
0490     BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0491     BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0492     BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
0493 };
0494 
0495 /* Netgear */
0496 
0497 static const struct gpio_led
0498 bcm47xx_leds_netgear_wndr3400v1[] __initconst = {
0499     BCM47XX_GPIO_LED(2, "green", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
0500     BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0501     BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
0502 };
0503 
0504 static const struct gpio_led
0505 bcm47xx_leds_netgear_wndr4500v1[] __initconst = {
0506     BCM47XX_GPIO_LED(1, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0507     BCM47XX_GPIO_LED(2, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0508     BCM47XX_GPIO_LED(3, "amber", "power", 1, LEDS_GPIO_DEFSTATE_OFF),
0509     BCM47XX_GPIO_LED(8, "green", "usb1", 1, LEDS_GPIO_DEFSTATE_OFF),
0510     BCM47XX_GPIO_LED(9, "green", "2ghz", 1, LEDS_GPIO_DEFSTATE_OFF),
0511     BCM47XX_GPIO_LED(11, "blue", "5ghz", 1, LEDS_GPIO_DEFSTATE_OFF),
0512     BCM47XX_GPIO_LED(14, "green", "usb2", 1, LEDS_GPIO_DEFSTATE_OFF),
0513 };
0514 
0515 static const struct gpio_led
0516 bcm47xx_leds_netgear_wnr1000_v3[] __initconst = {
0517     BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0518     BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
0519 };
0520 
0521 static const struct gpio_led
0522 bcm47xx_leds_netgear_wnr3500lv1[] __initconst = {
0523     BCM47XX_GPIO_LED(0, "blue", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0524     BCM47XX_GPIO_LED(1, "green", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
0525     BCM47XX_GPIO_LED(2, "green", "wan", 1, LEDS_GPIO_DEFSTATE_OFF),
0526     BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0527     BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
0528 };
0529 
0530 static const struct gpio_led
0531 bcm47xx_leds_netgear_wnr3500lv2[] __initconst = {
0532     BCM47XX_GPIO_LED(0, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
0533     BCM47XX_GPIO_LED(1, "green", "wps", 0, LEDS_GPIO_DEFSTATE_OFF),
0534     BCM47XX_GPIO_LED(3, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0535     BCM47XX_GPIO_LED(7, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
0536 };
0537 
0538 static const struct gpio_led
0539 bcm47xx_leds_netgear_wnr834bv2[] __initconst = {
0540     BCM47XX_GPIO_LED(2, "green", "power", 0, LEDS_GPIO_DEFSTATE_ON),
0541     BCM47XX_GPIO_LED(3, "amber", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
0542     BCM47XX_GPIO_LED(7, "unk", "connected", 0, LEDS_GPIO_DEFSTATE_OFF),
0543 };
0544 
0545 /* Siemens */
0546 static const struct gpio_led
0547 bcm47xx_leds_siemens_se505v2[] __initconst = {
0548     BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
0549     BCM47XX_GPIO_LED(3, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
0550     BCM47XX_GPIO_LED(5, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
0551 };
0552 
0553 /* SimpleTech */
0554 
0555 static const struct gpio_led
0556 bcm47xx_leds_simpletech_simpleshare[] __initconst = {
0557     BCM47XX_GPIO_LED(1, "unk", "status", 1, LEDS_GPIO_DEFSTATE_OFF), /* "Ready" LED */
0558 };
0559 
0560 /**************************************************
0561  * Init
0562  **************************************************/
0563 
0564 static struct gpio_led_platform_data bcm47xx_leds_pdata __initdata;
0565 
0566 #define bcm47xx_set_pdata(dev_leds) do {                \
0567     bcm47xx_leds_pdata.leds = dev_leds;             \
0568     bcm47xx_leds_pdata.num_leds = ARRAY_SIZE(dev_leds);     \
0569 } while (0)
0570 
0571 static struct gpio_led_platform_data bcm47xx_leds_pdata_extra __initdata = {};
0572 #define bcm47xx_set_pdata_extra(dev_leds) do {              \
0573     bcm47xx_leds_pdata_extra.leds = dev_leds;           \
0574     bcm47xx_leds_pdata_extra.num_leds = ARRAY_SIZE(dev_leds);   \
0575 } while (0)
0576 
0577 void __init bcm47xx_leds_register(void)
0578 {
0579     enum bcm47xx_board board = bcm47xx_board_get();
0580 
0581     switch (board) {
0582     case BCM47XX_BOARD_ASUS_RTN10U:
0583         bcm47xx_set_pdata(bcm47xx_leds_asus_rtn10u);
0584         break;
0585     case BCM47XX_BOARD_ASUS_RTN12:
0586         bcm47xx_set_pdata(bcm47xx_leds_asus_rtn12);
0587         break;
0588     case BCM47XX_BOARD_ASUS_RTN15U:
0589         bcm47xx_set_pdata(bcm47xx_leds_asus_rtn15u);
0590         break;
0591     case BCM47XX_BOARD_ASUS_RTN16:
0592         bcm47xx_set_pdata(bcm47xx_leds_asus_rtn16);
0593         break;
0594     case BCM47XX_BOARD_ASUS_RTN66U:
0595         bcm47xx_set_pdata(bcm47xx_leds_asus_rtn66u);
0596         break;
0597     case BCM47XX_BOARD_ASUS_WL300G:
0598         bcm47xx_set_pdata(bcm47xx_leds_asus_wl300g);
0599         break;
0600     case BCM47XX_BOARD_ASUS_WL320GE:
0601         bcm47xx_set_pdata(bcm47xx_leds_asus_wl320ge);
0602         break;
0603     case BCM47XX_BOARD_ASUS_WL330GE:
0604         bcm47xx_set_pdata(bcm47xx_leds_asus_wl330ge);
0605         break;
0606     case BCM47XX_BOARD_ASUS_WL500G:
0607         bcm47xx_set_pdata(bcm47xx_leds_asus_wl500g);
0608         break;
0609     case BCM47XX_BOARD_ASUS_WL500GD:
0610         bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gd);
0611         break;
0612     case BCM47XX_BOARD_ASUS_WL500GPV1:
0613         bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gpv1);
0614         break;
0615     case BCM47XX_BOARD_ASUS_WL500GPV2:
0616         bcm47xx_set_pdata(bcm47xx_leds_asus_wl500gpv2);
0617         break;
0618     case BCM47XX_BOARD_ASUS_WL500W:
0619         bcm47xx_set_pdata(bcm47xx_leds_asus_wl500w);
0620         break;
0621     case BCM47XX_BOARD_ASUS_WL520GC:
0622         bcm47xx_set_pdata(bcm47xx_leds_asus_wl520gc);
0623         break;
0624     case BCM47XX_BOARD_ASUS_WL520GU:
0625         bcm47xx_set_pdata(bcm47xx_leds_asus_wl520gu);
0626         break;
0627     case BCM47XX_BOARD_ASUS_WL700GE:
0628         bcm47xx_set_pdata(bcm47xx_leds_asus_wl700ge);
0629         break;
0630     case BCM47XX_BOARD_ASUS_WLHDD:
0631         bcm47xx_set_pdata(bcm47xx_leds_asus_wlhdd);
0632         break;
0633 
0634     case BCM47XX_BOARD_BELKIN_F7D3301:
0635     case BCM47XX_BOARD_BELKIN_F7D3302:
0636     case BCM47XX_BOARD_BELKIN_F7D4301:
0637     case BCM47XX_BOARD_BELKIN_F7D4302:
0638     case BCM47XX_BOARD_BELKIN_F7D4401:
0639         bcm47xx_set_pdata(bcm47xx_leds_belkin_f7d4301);
0640         break;
0641 
0642     case BCM47XX_BOARD_BUFFALO_WHR2_A54G54:
0643         bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr2_a54g54);
0644         break;
0645     case BCM47XX_BOARD_BUFFALO_WHR_G125:
0646         bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_g125);
0647         break;
0648     case BCM47XX_BOARD_BUFFALO_WHR_G54S:
0649         bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_g54s);
0650         break;
0651     case BCM47XX_BOARD_BUFFALO_WHR_HP_G54:
0652         bcm47xx_set_pdata(bcm47xx_leds_buffalo_whr_hp_g54);
0653         break;
0654     case BCM47XX_BOARD_BUFFALO_WZR_G300N:
0655         bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_g300n);
0656         break;
0657     case BCM47XX_BOARD_BUFFALO_WZR_RS_G54:
0658         bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_rs_g54);
0659         break;
0660     case BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP:
0661         bcm47xx_set_pdata(bcm47xx_leds_buffalo_wzr_rs_g54hp);
0662         break;
0663 
0664     case BCM47XX_BOARD_DELL_TM2300:
0665         bcm47xx_set_pdata(bcm47xx_leds_dell_tm2300);
0666         break;
0667 
0668     case BCM47XX_BOARD_DLINK_DIR130:
0669         bcm47xx_set_pdata(bcm47xx_leds_dlink_dir130);
0670         break;
0671     case BCM47XX_BOARD_DLINK_DIR330:
0672         bcm47xx_set_pdata(bcm47xx_leds_dlink_dir330);
0673         break;
0674 
0675     case BCM47XX_BOARD_HUAWEI_E970:
0676         bcm47xx_set_pdata(bcm47xx_leds_huawei_e970);
0677         break;
0678 
0679     case BCM47XX_BOARD_LINKSYS_E1000V1:
0680         bcm47xx_set_pdata(bcm47xx_leds_linksys_e1000v1);
0681         break;
0682     case BCM47XX_BOARD_LINKSYS_E1000V21:
0683         bcm47xx_set_pdata(bcm47xx_leds_linksys_e1000v21);
0684         break;
0685     case BCM47XX_BOARD_LINKSYS_E2000V1:
0686         bcm47xx_set_pdata(bcm47xx_leds_linksys_e2000v1);
0687         break;
0688     case BCM47XX_BOARD_LINKSYS_E3000V1:
0689         bcm47xx_set_pdata(bcm47xx_leds_linksys_e3000v1);
0690         break;
0691     case BCM47XX_BOARD_LINKSYS_E3200V1:
0692         bcm47xx_set_pdata(bcm47xx_leds_linksys_e3200v1);
0693         break;
0694     case BCM47XX_BOARD_LINKSYS_E4200V1:
0695         bcm47xx_set_pdata(bcm47xx_leds_linksys_e4200v1);
0696         break;
0697     case BCM47XX_BOARD_LINKSYS_WRT150NV1:
0698         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt150nv1);
0699         break;
0700     case BCM47XX_BOARD_LINKSYS_WRT150NV11:
0701         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt150nv11);
0702         break;
0703     case BCM47XX_BOARD_LINKSYS_WRT160NV1:
0704         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt160nv1);
0705         break;
0706     case BCM47XX_BOARD_LINKSYS_WRT160NV3:
0707         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt160nv3);
0708         break;
0709     case BCM47XX_BOARD_LINKSYS_WRT300N_V1:
0710         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt300n_v1);
0711         break;
0712     case BCM47XX_BOARD_LINKSYS_WRT300NV11:
0713         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt300nv11);
0714         break;
0715     case BCM47XX_BOARD_LINKSYS_WRT310NV1:
0716         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1);
0717         break;
0718     case BCM47XX_BOARD_LINKSYS_WRT320N_V1:
0719         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt320n_v1);
0720         break;
0721     case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
0722         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2);
0723         break;
0724     case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101:
0725         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_type_0101);
0726         break;
0727     case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467:
0728         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_type_0467);
0729         break;
0730     case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708:
0731         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_generic);
0732         break;
0733     case BCM47XX_BOARD_LINKSYS_WRT610NV1:
0734         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv1);
0735         break;
0736     case BCM47XX_BOARD_LINKSYS_WRT610NV2:
0737         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv2);
0738         break;
0739     case BCM47XX_BOARD_LINKSYS_WRTSL54GS:
0740         bcm47xx_set_pdata(bcm47xx_leds_linksys_wrtsl54gs);
0741         break;
0742 
0743     case BCM47XX_BOARD_LUXUL_ABR_4400_V1:
0744         bcm47xx_set_pdata(bcm47xx_leds_luxul_abr_4400_v1);
0745         break;
0746     case BCM47XX_BOARD_LUXUL_XAP_310_V1:
0747         bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_310_v1);
0748         break;
0749     case BCM47XX_BOARD_LUXUL_XAP_1210_V1:
0750         bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1210_v1);
0751         break;
0752     case BCM47XX_BOARD_LUXUL_XAP_1230_V1:
0753         bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1230_v1);
0754         break;
0755     case BCM47XX_BOARD_LUXUL_XAP_1240_V1:
0756         bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1240_v1);
0757         break;
0758     case BCM47XX_BOARD_LUXUL_XAP_1500_V1:
0759         bcm47xx_set_pdata(bcm47xx_leds_luxul_xap_1500_v1);
0760         bcm47xx_set_pdata_extra(bcm47xx_leds_luxul_xap1500_v1_extra);
0761         break;
0762     case BCM47XX_BOARD_LUXUL_XBR_4400_V1:
0763         bcm47xx_set_pdata(bcm47xx_leds_luxul_xbr_4400_v1);
0764         break;
0765     case BCM47XX_BOARD_LUXUL_XVW_P30_V1:
0766         bcm47xx_set_pdata(bcm47xx_leds_luxul_xvw_p30_v1);
0767         break;
0768     case BCM47XX_BOARD_LUXUL_XWR_600_V1:
0769         bcm47xx_set_pdata(bcm47xx_leds_luxul_xwr_600_v1);
0770         break;
0771     case BCM47XX_BOARD_LUXUL_XWR_1750_V1:
0772         bcm47xx_set_pdata(bcm47xx_leds_luxul_xwr_1750_v1);
0773         bcm47xx_set_pdata_extra(bcm47xx_leds_luxul_xwr1750_v1_extra);
0774         break;
0775 
0776     case BCM47XX_BOARD_MICROSOFT_MN700:
0777         bcm47xx_set_pdata(bcm47xx_leds_microsoft_nm700);
0778         break;
0779 
0780     case BCM47XX_BOARD_MOTOROLA_WE800G:
0781         bcm47xx_set_pdata(bcm47xx_leds_motorola_we800g);
0782         break;
0783     case BCM47XX_BOARD_MOTOROLA_WR850GP:
0784         bcm47xx_set_pdata(bcm47xx_leds_motorola_wr850gp);
0785         break;
0786     case BCM47XX_BOARD_MOTOROLA_WR850GV2V3:
0787         bcm47xx_set_pdata(bcm47xx_leds_motorola_wr850gv2v3);
0788         break;
0789 
0790     case BCM47XX_BOARD_NETGEAR_WNDR3400V1:
0791         bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr3400v1);
0792         break;
0793     case BCM47XX_BOARD_NETGEAR_WNDR4500V1:
0794         bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr4500v1);
0795         break;
0796     case BCM47XX_BOARD_NETGEAR_WNR1000_V3:
0797         bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr1000_v3);
0798         break;
0799     case BCM47XX_BOARD_NETGEAR_WNR3500L:
0800         bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv1);
0801         break;
0802     case BCM47XX_BOARD_NETGEAR_WNR3500L_V2:
0803         bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr3500lv2);
0804         break;
0805     case BCM47XX_BOARD_NETGEAR_WNR834BV2:
0806         bcm47xx_set_pdata(bcm47xx_leds_netgear_wnr834bv2);
0807         break;
0808 
0809     case BCM47XX_BOARD_SIEMENS_SE505V2:
0810         bcm47xx_set_pdata(bcm47xx_leds_siemens_se505v2);
0811         break;
0812 
0813     case BCM47XX_BOARD_SIMPLETECH_SIMPLESHARE:
0814         bcm47xx_set_pdata(bcm47xx_leds_simpletech_simpleshare);
0815         break;
0816 
0817     default:
0818         pr_debug("No LEDs configuration found for this device\n");
0819         return;
0820     }
0821 
0822     gpio_led_register_device(-1, &bcm47xx_leds_pdata);
0823     if (bcm47xx_leds_pdata_extra.num_leds)
0824         gpio_led_register_device(0, &bcm47xx_leds_pdata_extra);
0825 }