]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - arch/mips/bcm47xx/leds.c
MIPS: BCM47XX: Import buttons database from OpenWrt
[mirror_ubuntu-artful-kernel.git] / arch / mips / bcm47xx / leds.c
CommitLineData
515fa75d
RM
1#include "bcm47xx_private.h"
2
3#include <linux/leds.h>
4#include <bcm47xx_board.h>
5
6static const struct gpio_led
7bcm47xx_leds_netgear_wndr4500_v1_leds[] __initconst = {
8 {
9 .name = "bcm47xx:green:wps",
10 .gpio = 1,
11 .active_low = 1,
12 .default_state = LEDS_GPIO_DEFSTATE_KEEP,
13 },
14 {
15 .name = "bcm47xx:green:power",
16 .gpio = 2,
17 .active_low = 1,
18 .default_state = LEDS_GPIO_DEFSTATE_KEEP,
19 },
20 {
21 .name = "bcm47xx:orange:power",
22 .gpio = 3,
23 .active_low = 1,
24 .default_state = LEDS_GPIO_DEFSTATE_KEEP,
25 },
26 {
27 .name = "bcm47xx:green:usb1",
28 .gpio = 8,
29 .active_low = 1,
30 .default_state = LEDS_GPIO_DEFSTATE_KEEP,
31 },
32 {
33 .name = "bcm47xx:green:2ghz",
34 .gpio = 9,
35 .active_low = 1,
36 .default_state = LEDS_GPIO_DEFSTATE_KEEP,
37 },
38 {
39 .name = "bcm47xx:blue:5ghz",
40 .gpio = 11,
41 .active_low = 1,
42 .default_state = LEDS_GPIO_DEFSTATE_KEEP,
43 },
44 {
45 .name = "bcm47xx:green:usb2",
46 .gpio = 14,
47 .active_low = 1,
48 .default_state = LEDS_GPIO_DEFSTATE_KEEP,
49 },
50};
51
52static struct gpio_led_platform_data bcm47xx_leds_pdata;
53
54#define bcm47xx_set_pdata(dev_leds) do { \
55 bcm47xx_leds_pdata.leds = dev_leds; \
56 bcm47xx_leds_pdata.num_leds = ARRAY_SIZE(dev_leds); \
57} while (0)
58
59void __init bcm47xx_leds_register(void)
60{
61 enum bcm47xx_board board = bcm47xx_board_get();
62
63 switch (board) {
64 case BCM47XX_BOARD_NETGEAR_WNDR4500V1:
65 bcm47xx_set_pdata(bcm47xx_leds_netgear_wndr4500_v1_leds);
66 break;
67 default:
68 pr_debug("No LEDs configuration found for this device\n");
69 return;
70 }
71
72 gpio_led_register_device(-1, &bcm47xx_leds_pdata);
73}