linux/arch/mips/bcm47xx/leds.c
<<
>>
Prefs
   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
  32static const struct gpio_led
  33bcm47xx_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
  38static const struct gpio_led
  39bcm47xx_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
  47static const struct gpio_led
  48bcm47xx_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
  53static const struct gpio_led
  54bcm47xx_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
  59static const struct gpio_led
  60bcm47xx_leds_asus_wl300g[] __initconst = {
  61        BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
  62};
  63
  64static const struct gpio_led
  65bcm47xx_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
  71static const struct gpio_led
  72bcm47xx_leds_asus_wl330ge[] __initconst = {
  73        BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
  74};
  75
  76static const struct gpio_led
  77bcm47xx_leds_asus_wl500g[] __initconst = {
  78        BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
  79};
  80
  81static const struct gpio_led
  82bcm47xx_leds_asus_wl500gd[] __initconst = {
  83        BCM47XX_GPIO_LED(0, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
  84};
  85
  86static const struct gpio_led
  87bcm47xx_leds_asus_wl500gpv1[] __initconst = {
  88        BCM47XX_GPIO_LED(1, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
  89};
  90
  91static const struct gpio_led
  92bcm47xx_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
  97static const struct gpio_led
  98bcm47xx_leds_asus_wl500w[] __initconst = {
  99        BCM47XX_GPIO_LED(5, "unk", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 100};
 101
 102static const struct gpio_led
 103bcm47xx_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
 108static const struct gpio_led
 109bcm47xx_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
 114static const struct gpio_led
 115bcm47xx_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
 119static const struct gpio_led
 120bcm47xx_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
 127static const struct gpio_led
 128bcm47xx_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
 139static const struct gpio_led
 140bcm47xx_leds_buffalo_whr2_a54g54[] __initconst = {
 141        BCM47XX_GPIO_LED(7, "unk", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
 142};
 143
 144static const struct gpio_led
 145bcm47xx_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
 153static const struct gpio_led
 154bcm47xx_leds_buffalo_whr_g54s[] __initconst = {
 155        BCM47XX_GPIO_LED(1, "green", "bridge", 1, LEDS_GPIO_DEFSTATE_OFF),
 156        BCM47XX_GPIO_LED(2, "green", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
 157        BCM47XX_GPIO_LED(3, "green", "internal", 1, LEDS_GPIO_DEFSTATE_OFF),
 158        BCM47XX_GPIO_LED(6, "amber", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
 159        BCM47XX_GPIO_LED(7, "red", "diag", 1, LEDS_GPIO_DEFSTATE_OFF),
 160};
 161
 162static const struct gpio_led
 163bcm47xx_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
 171static const struct gpio_led
 172bcm47xx_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
 178static const struct gpio_led
 179bcm47xx_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
 185static const struct gpio_led
 186bcm47xx_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
 194static const struct gpio_led
 195bcm47xx_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
 202static const struct gpio_led
 203bcm47xx_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
 208static const struct gpio_led
 209bcm47xx_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
 217static const struct gpio_led
 218bcm47xx_leds_huawei_e970[] __initconst = {
 219        BCM47XX_GPIO_LED(0, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF),
 220};
 221
 222/* Linksys */
 223
 224static const struct gpio_led
 225bcm47xx_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
 232static const struct gpio_led
 233bcm47xx_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
 240static const struct gpio_led
 241bcm47xx_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
 248static const struct gpio_led
 249bcm47xx_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
 257static const struct gpio_led
 258bcm47xx_leds_linksys_e3200v1[] __initconst = {
 259        BCM47XX_GPIO_LED(3, "green", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 260};
 261
 262static const struct gpio_led
 263bcm47xx_leds_linksys_e4200v1[] __initconst = {
 264        BCM47XX_GPIO_LED(5, "white", "power", 1, LEDS_GPIO_DEFSTATE_ON),
 265};
 266
 267static const struct gpio_led
 268bcm47xx_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
 274static const struct gpio_led
 275bcm47xx_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
 281static const struct gpio_led
 282bcm47xx_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
 288static const struct gpio_led
 289bcm47xx_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
 295static const struct gpio_led
 296bcm47xx_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
 302static const struct gpio_led
 303bcm47xx_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
 309static const struct gpio_led
 310bcm47xx_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
 316static const struct gpio_led
 317bcm47xx_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
 324static const struct gpio_led
 325bcm47xx_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 */
 332static const struct gpio_led
 333bcm47xx_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 */
 340static const struct gpio_led
 341bcm47xx_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
 349static const struct gpio_led
 350bcm47xx_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
 357static const struct gpio_led
 358bcm47xx_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
 366static const struct gpio_led
 367bcm47xx_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
 376static const struct gpio_led
 377bcm47xx_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
 382static const struct gpio_led
 383bcm47xx_leds_luxul_xap_310_v1[] __initconst = {
 384        BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
 385};
 386
 387static const struct gpio_led
 388bcm47xx_leds_luxul_xap_1210_v1[] __initconst = {
 389        BCM47XX_GPIO_LED_TRIGGER(6, "green", "status", 1, "timer"),
 390};
 391
 392static const struct gpio_led
 393bcm47xx_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
 399static const struct gpio_led
 400bcm47xx_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
 406static const struct gpio_led
 407bcm47xx_leds_luxul_xap_1500_v1[] __initconst = {
 408        BCM47XX_GPIO_LED_TRIGGER(13, "green", "status", 1, "timer"),
 409};
 410
 411static const struct gpio_led
 412bcm47xx_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
 417static const struct gpio_led
 418bcm47xx_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
 423static const struct gpio_led
 424bcm47xx_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
 429static const struct gpio_led
 430bcm47xx_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
 436static const struct gpio_led
 437bcm47xx_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
 444static const struct gpio_led
 445bcm47xx_leds_luxul_xwr1750_v1_extra[] __initconst = {
 446        BCM47XX_GPIO_LED(76, "green", "2ghz", 0, LEDS_GPIO_DEFSTATE_OFF),
 447};
 448
 449/* Microsoft */
 450
 451static const struct gpio_led
 452bcm47xx_leds_microsoft_nm700[] __initconst = {
 453        BCM47XX_GPIO_LED(6, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
 454};
 455
 456/* Motorola */
 457
 458static const struct gpio_led
 459bcm47xx_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
 465static const struct gpio_led
 466bcm47xx_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
 473static const struct gpio_led
 474bcm47xx_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
 482static const struct gpio_led
 483bcm47xx_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
 489static const struct gpio_led
 490bcm47xx_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
 500static const struct gpio_led
 501bcm47xx_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
 506static const struct gpio_led
 507bcm47xx_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
 515static const struct gpio_led
 516bcm47xx_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 */
 523static const struct gpio_led
 524bcm47xx_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
 532static const struct gpio_led
 533bcm47xx_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
 541static 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
 548static 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
 554void __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