aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/bcm47xx/buttons.c
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2014-03-02 11:49:27 -0500
committerRalf Baechle <ralf@linux-mips.org>2014-03-26 18:09:23 -0400
commit96c10de32fde6c50e4f9e5c1f027e670073ea086 (patch)
treee705ab979dd0a537149830d64dae51b79656a382 /arch/mips/bcm47xx/buttons.c
parent848eeb66c7e09cbb76e866d77d6ec87abc9a787e (diff)
MIPS: BCM47XX: Add button and led configuration for some Linksys devices
This adds led and button GPIO configuration for Linksys wrt54g3gv2, wrt54gsv1 and wrtsl54gs. This is based on OpenWrt broadcom-diag code. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Cc: linux-mips@linux-mips.org Cc: zajec5@gmail.com Patchwork: https://patchwork.linux-mips.org/patch/6592/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/bcm47xx/buttons.c')
-rw-r--r--arch/mips/bcm47xx/buttons.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/mips/bcm47xx/buttons.c b/arch/mips/bcm47xx/buttons.c
index 872c62e93e0e..f165887b1eca 100644
--- a/arch/mips/bcm47xx/buttons.c
+++ b/arch/mips/bcm47xx/buttons.c
@@ -259,6 +259,18 @@ bcm47xx_buttons_linksys_wrt310nv1[] __initconst = {
259}; 259};
260 260
261static const struct gpio_keys_button 261static const struct gpio_keys_button
262bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = {
263 BCM47XX_GPIO_KEY(5, KEY_WIMAX),
264 BCM47XX_GPIO_KEY(6, KEY_RESTART),
265};
266
267static const struct gpio_keys_button
268bcm47xx_buttons_linksys_wrt54gsv1[] __initconst = {
269 BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
270 BCM47XX_GPIO_KEY(6, KEY_RESTART),
271};
272
273static const struct gpio_keys_button
262bcm47xx_buttons_linksys_wrt610nv1[] __initconst = { 274bcm47xx_buttons_linksys_wrt610nv1[] __initconst = {
263 BCM47XX_GPIO_KEY(6, KEY_RESTART), 275 BCM47XX_GPIO_KEY(6, KEY_RESTART),
264 BCM47XX_GPIO_KEY(8, KEY_WPS_BUTTON), 276 BCM47XX_GPIO_KEY(8, KEY_WPS_BUTTON),
@@ -270,6 +282,12 @@ bcm47xx_buttons_linksys_wrt610nv2[] __initconst = {
270 BCM47XX_GPIO_KEY(6, KEY_RESTART), 282 BCM47XX_GPIO_KEY(6, KEY_RESTART),
271}; 283};
272 284
285static const struct gpio_keys_button
286bcm47xx_buttons_linksys_wrtsl54gs[] __initconst = {
287 BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
288 BCM47XX_GPIO_KEY(6, KEY_RESTART),
289};
290
273/* Motorola */ 291/* Motorola */
274 292
275static const struct gpio_keys_button 293static const struct gpio_keys_button
@@ -479,12 +497,21 @@ int __init bcm47xx_buttons_register(void)
479 case BCM47XX_BOARD_LINKSYS_WRT310NV1: 497 case BCM47XX_BOARD_LINKSYS_WRT310NV1:
480 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1); 498 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1);
481 break; 499 break;
500 case BCM47XX_BOARD_LINKSYS_WRT54G:
501 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54gsv1);
502 break;
503 case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
504 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2);
505 break;
482 case BCM47XX_BOARD_LINKSYS_WRT610NV1: 506 case BCM47XX_BOARD_LINKSYS_WRT610NV1:
483 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv1); 507 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv1);
484 break; 508 break;
485 case BCM47XX_BOARD_LINKSYS_WRT610NV2: 509 case BCM47XX_BOARD_LINKSYS_WRT610NV2:
486 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv2); 510 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv2);
487 break; 511 break;
512 case BCM47XX_BOARD_LINKSYS_WRTSL54GS:
513 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrtsl54gs);
514 break;
488 515
489 case BCM47XX_BOARD_MOTOROLA_WE800G: 516 case BCM47XX_BOARD_MOTOROLA_WE800G:
490 err = bcm47xx_copy_bdata(bcm47xx_buttons_motorola_we800g); 517 err = bcm47xx_copy_bdata(bcm47xx_buttons_motorola_we800g);