diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2014-06-20 01:56:39 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2014-07-30 16:16:02 -0400 |
commit | 41a867cb07443c77c24747dcbad1a40002516469 (patch) | |
tree | 3ac992f79d4ee4980339b2b7435993327dd2153c /arch | |
parent | 5a21e0ba3e8996353e6892ccc54b0aab541d9722 (diff) |
MIPS: BCM47xx: Distinguish WRT54G series devices by boardtype
Catalin reported that GPIOs used by bcm47xx don't match layout of his
WRT54GS V1.0 board. It seems we need to distinguish these 54G* devices.
Reported-by: Catalin Patulea <cat@vv.carleton.ca>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Cc: linux-mips@linux-mips.org
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Patchwork: https://patchwork.linux-mips.org/patch/7112/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/bcm47xx/board.c | 6 | ||||
-rw-r--r-- | arch/mips/bcm47xx/buttons.c | 10 | ||||
-rw-r--r-- | arch/mips/bcm47xx/leds.c | 10 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 4 |
4 files changed, 18 insertions, 12 deletions
diff --git a/arch/mips/bcm47xx/board.c b/arch/mips/bcm47xx/board.c index 7d4ac39ed14c..dbae347d4dc7 100644 --- a/arch/mips/bcm47xx/board.c +++ b/arch/mips/bcm47xx/board.c | |||
@@ -188,9 +188,9 @@ struct bcm47xx_board_type_list3 bcm47xx_board_list_board[] __initconst = { | |||
188 | {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"}, | 188 | {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"}, |
189 | {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"}, | 189 | {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"}, |
190 | {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"}, | 190 | {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"}, |
191 | {{BCM47XX_BOARD_LINKSYS_WRT54G, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"}, | 191 | {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"}, |
192 | {{BCM47XX_BOARD_LINKSYS_WRT54G, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"}, | 192 | {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"}, |
193 | {{BCM47XX_BOARD_LINKSYS_WRT54G, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"}, | 193 | {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"}, |
194 | { {0}, NULL}, | 194 | { {0}, NULL}, |
195 | }; | 195 | }; |
196 | 196 | ||
diff --git a/arch/mips/bcm47xx/buttons.c b/arch/mips/bcm47xx/buttons.c index 82dbbbbe800c..0e409c114e80 100644 --- a/arch/mips/bcm47xx/buttons.c +++ b/arch/mips/bcm47xx/buttons.c | |||
@@ -270,7 +270,7 @@ bcm47xx_buttons_linksys_wrt54g3gv2[] __initconst = { | |||
270 | }; | 270 | }; |
271 | 271 | ||
272 | static const struct gpio_keys_button | 272 | static const struct gpio_keys_button |
273 | bcm47xx_buttons_linksys_wrt54gsv1[] __initconst = { | 273 | bcm47xx_buttons_linksys_wrt54g_generic[] __initconst = { |
274 | BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON), | 274 | BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON), |
275 | BCM47XX_GPIO_KEY(6, KEY_RESTART), | 275 | BCM47XX_GPIO_KEY(6, KEY_RESTART), |
276 | }; | 276 | }; |
@@ -516,12 +516,14 @@ int __init bcm47xx_buttons_register(void) | |||
516 | case BCM47XX_BOARD_LINKSYS_WRT310NV1: | 516 | case BCM47XX_BOARD_LINKSYS_WRT310NV1: |
517 | err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1); | 517 | err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1); |
518 | break; | 518 | break; |
519 | case BCM47XX_BOARD_LINKSYS_WRT54G: | ||
520 | err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54gsv1); | ||
521 | break; | ||
522 | case BCM47XX_BOARD_LINKSYS_WRT54G3GV2: | 519 | case BCM47XX_BOARD_LINKSYS_WRT54G3GV2: |
523 | err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2); | 520 | err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2); |
524 | break; | 521 | break; |
522 | case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101: | ||
523 | case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467: | ||
524 | case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708: | ||
525 | err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g_generic); | ||
526 | break; | ||
525 | case BCM47XX_BOARD_LINKSYS_WRT610NV1: | 527 | case BCM47XX_BOARD_LINKSYS_WRT610NV1: |
526 | err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv1); | 528 | err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv1); |
527 | break; | 529 | break; |
diff --git a/arch/mips/bcm47xx/leds.c b/arch/mips/bcm47xx/leds.c index 1e256a91e330..4ad316491224 100644 --- a/arch/mips/bcm47xx/leds.c +++ b/arch/mips/bcm47xx/leds.c | |||
@@ -297,7 +297,7 @@ bcm47xx_leds_linksys_wrt310nv1[] __initconst = { | |||
297 | }; | 297 | }; |
298 | 298 | ||
299 | static const struct gpio_led | 299 | static const struct gpio_led |
300 | bcm47xx_leds_linksys_wrt54gsv1[] __initconst = { | 300 | bcm47xx_leds_linksys_wrt54g_generic[] __initconst = { |
301 | BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF), | 301 | BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF), |
302 | BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON), | 302 | BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON), |
303 | BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF), | 303 | BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF), |
@@ -553,12 +553,14 @@ void __init bcm47xx_leds_register(void) | |||
553 | case BCM47XX_BOARD_LINKSYS_WRT310NV1: | 553 | case BCM47XX_BOARD_LINKSYS_WRT310NV1: |
554 | bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1); | 554 | bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1); |
555 | break; | 555 | break; |
556 | case BCM47XX_BOARD_LINKSYS_WRT54G: | ||
557 | bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54gsv1); | ||
558 | break; | ||
559 | case BCM47XX_BOARD_LINKSYS_WRT54G3GV2: | 556 | case BCM47XX_BOARD_LINKSYS_WRT54G3GV2: |
560 | bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2); | 557 | bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2); |
561 | break; | 558 | break; |
559 | case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101: | ||
560 | case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467: | ||
561 | case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708: | ||
562 | bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_generic); | ||
563 | break; | ||
562 | case BCM47XX_BOARD_LINKSYS_WRT610NV1: | 564 | case BCM47XX_BOARD_LINKSYS_WRT610NV1: |
563 | bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv1); | 565 | bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv1); |
564 | break; | 566 | break; |
diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h index 0c3c8993567d..1f5643b89a91 100644 --- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | |||
@@ -71,7 +71,9 @@ enum bcm47xx_board { | |||
71 | BCM47XX_BOARD_LINKSYS_WRT310NV1, | 71 | BCM47XX_BOARD_LINKSYS_WRT310NV1, |
72 | BCM47XX_BOARD_LINKSYS_WRT310NV2, | 72 | BCM47XX_BOARD_LINKSYS_WRT310NV2, |
73 | BCM47XX_BOARD_LINKSYS_WRT54G3GV2, | 73 | BCM47XX_BOARD_LINKSYS_WRT54G3GV2, |
74 | BCM47XX_BOARD_LINKSYS_WRT54G, | 74 | BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, |
75 | BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, | ||
76 | BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708, | ||
75 | BCM47XX_BOARD_LINKSYS_WRT610NV1, | 77 | BCM47XX_BOARD_LINKSYS_WRT610NV1, |
76 | BCM47XX_BOARD_LINKSYS_WRT610NV2, | 78 | BCM47XX_BOARD_LINKSYS_WRT610NV2, |
77 | BCM47XX_BOARD_LINKSYS_WRTSL54GS, | 79 | BCM47XX_BOARD_LINKSYS_WRTSL54GS, |