brcm47xx: support SPROM/NVRAM prefixes
[openwrt/svn-archive/archive.git] / target / linux / brcm47xx / patches-3.14 / 140-MIPS-BCM47XX-add-button-and-led-configuration-for-so.patch
1 From e3d15471f1be2bd2fd4db82907ad4b2d74ec2636 Mon Sep 17 00:00:00 2001
2 From: Hauke Mehrtens <hauke@hauke-m.de>
3 Date: Fri, 10 Jan 2014 23:55:28 +0100
4 Subject: [PATCH 4/6] MIPS: BCM47XX: add button and led configuration for some
5 Linksys devices
6
7 This adds led and button GPIO configuration for Linksys wrt54g3gv2,
8 wrt54gsv1 and wrtsl54gs. This is based on OpenWrt broadcom-diag code.
9
10 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
11 ---
12 arch/mips/bcm47xx/buttons.c | 27 +++++++++++++++++++++++++++
13 arch/mips/bcm47xx/leds.c | 33 +++++++++++++++++++++++++++++++++
14 2 files changed, 60 insertions(+)
15
16 --- a/arch/mips/bcm47xx/buttons.c
17 +++ b/arch/mips/bcm47xx/buttons.c
18 @@ -259,6 +259,18 @@ bcm47xx_buttons_linksys_wrt310nv1[] __in
19 };
20
21 static const struct gpio_keys_button
22 +bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = {
23 + BCM47XX_GPIO_KEY(5, KEY_WIMAX),
24 + BCM47XX_GPIO_KEY(6, KEY_RESTART),
25 +};
26 +
27 +static const struct gpio_keys_button
28 +bcm47xx_buttons_linksys_wrt54gsv1[] __initconst = {
29 + BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
30 + BCM47XX_GPIO_KEY(6, KEY_RESTART),
31 +};
32 +
33 +static const struct gpio_keys_button
34 bcm47xx_buttons_linksys_wrt610nv1[] __initconst = {
35 BCM47XX_GPIO_KEY(6, KEY_RESTART),
36 BCM47XX_GPIO_KEY(8, KEY_WPS_BUTTON),
37 @@ -270,6 +282,12 @@ bcm47xx_buttons_linksys_wrt610nv2[] __in
38 BCM47XX_GPIO_KEY(6, KEY_RESTART),
39 };
40
41 +static const struct gpio_keys_button
42 +bcm47xx_buttons_linksys_wrtsl54gs[] __initconst = {
43 + BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
44 + BCM47XX_GPIO_KEY(6, KEY_RESTART),
45 +};
46 +
47 /* Motorola */
48
49 static const struct gpio_keys_button
50 @@ -479,12 +497,21 @@ int __init bcm47xx_buttons_register(void
51 case BCM47XX_BOARD_LINKSYS_WRT310NV1:
52 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1);
53 break;
54 + case BCM47XX_BOARD_LINKSYS_WRT54G:
55 + err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54gsv1);
56 + break;
57 + case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
58 + err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2);
59 + break;
60 case BCM47XX_BOARD_LINKSYS_WRT610NV1:
61 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv1);
62 break;
63 case BCM47XX_BOARD_LINKSYS_WRT610NV2:
64 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv2);
65 break;
66 + case BCM47XX_BOARD_LINKSYS_WRTSL54GS:
67 + err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrtsl54gs);
68 + break;
69
70 case BCM47XX_BOARD_MOTOROLA_WE800G:
71 err = bcm47xx_copy_bdata(bcm47xx_buttons_motorola_we800g);
72 --- a/arch/mips/bcm47xx/leds.c
73 +++ b/arch/mips/bcm47xx/leds.c
74 @@ -292,6 +292,21 @@ bcm47xx_leds_linksys_wrt310nv1[] __initc
75 };
76
77 static const struct gpio_led
78 +bcm47xx_leds_linksys_wrt54gsv1[] __initconst = {
79 + BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
80 + BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
81 + BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
82 + BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
83 +};
84 +
85 +static const struct gpio_led
86 +bcm47xx_leds_linksys_wrt54g3gv2[] __initconst = {
87 + BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
88 + BCM47XX_GPIO_LED(2, "green", "3g", 0, LEDS_GPIO_DEFSTATE_OFF),
89 + BCM47XX_GPIO_LED(3, "blue", "3g", 0, LEDS_GPIO_DEFSTATE_OFF),
90 +};
91 +
92 +static const struct gpio_led
93 bcm47xx_leds_linksys_wrt610nv1[] __initconst = {
94 BCM47XX_GPIO_LED(0, "unk", "usb", 1, LEDS_GPIO_DEFSTATE_OFF),
95 BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_OFF),
96 @@ -308,6 +323,15 @@ bcm47xx_leds_linksys_wrt610nv2[] __initc
97 BCM47XX_GPIO_LED(7, "unk", "usb", 0, LEDS_GPIO_DEFSTATE_OFF),
98 };
99
100 +static const struct gpio_led
101 +bcm47xx_leds_linksys_wrtsl54gs[] __initconst = {
102 + BCM47XX_GPIO_LED(0, "unk", "wlan", 1, LEDS_GPIO_DEFSTATE_OFF),
103 + BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
104 + BCM47XX_GPIO_LED(2, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
105 + BCM47XX_GPIO_LED(3, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
106 + BCM47XX_GPIO_LED(7, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
107 +};
108 +
109 /* Motorola */
110
111 static const struct gpio_led
112 @@ -502,12 +526,21 @@ void __init bcm47xx_leds_register(void)
113 case BCM47XX_BOARD_LINKSYS_WRT310NV1:
114 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1);
115 break;
116 + case BCM47XX_BOARD_LINKSYS_WRT54G:
117 + bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54gsv1);
118 + break;
119 + case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
120 + bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2);
121 + break;
122 case BCM47XX_BOARD_LINKSYS_WRT610NV1:
123 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv1);
124 break;
125 case BCM47XX_BOARD_LINKSYS_WRT610NV2:
126 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv2);
127 break;
128 + case BCM47XX_BOARD_LINKSYS_WRTSL54GS:
129 + bcm47xx_set_pdata(bcm47xx_leds_linksys_wrtsl54gs);
130 + break;
131
132 case BCM47XX_BOARD_MOTOROLA_WE800G:
133 bcm47xx_set_pdata(bcm47xx_leds_motorola_we800g);