4db26f4bb70e02b97d8805b8d451c837fc5acc81
[15.05/openwrt.git] / target / linux / brcm47xx / patches-3.10 / 144-MIPS-BCM47XX-Distinguish-WRT54G-series-devices-by-bo.patch
1 From 9fff5375229a4ba3a200747e079c46fa19b90797 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
3 Date: Fri, 20 Jun 2014 07:26:20 +0200
4 Subject: [3.17][PATCH 1/2] MIPS: BCM47XX: Distinguish WRT54G series devices by
5  boardtype
6 MIME-Version: 1.0
7 Content-Type: text/plain; charset=UTF-8
8 Content-Transfer-Encoding: 8bit
9
10 Catalin reported that GPIOs used by bcm47xx don't match layout of his
11 WRT54GS V1.0 board. It seems we need to distinguish these 54G* devices.
12
13 Reported-by: Catalin Patulea <cat@vv.carleton.ca>
14 Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
15 ---
16  arch/mips/bcm47xx/board.c                          |  6 +++---
17  arch/mips/bcm47xx/buttons.c                        | 10 ++++++----
18  arch/mips/bcm47xx/leds.c                           | 10 ++++++----
19  arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h |  4 +++-
20  4 files changed, 18 insertions(+), 12 deletions(-)
21
22 --- a/arch/mips/bcm47xx/board.c
23 +++ b/arch/mips/bcm47xx/board.c
24 @@ -179,9 +179,9 @@ struct bcm47xx_board_type_list3 bcm47xx_
25         {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"},
26         {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"},
27         {{BCM47XX_BOARD_NETGEAR_WNR3500L, "Netgear WNR3500L"}, "0x04CF", "3500", "02"},
28 -       {{BCM47XX_BOARD_LINKSYS_WRT54G, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"},
29 -       {{BCM47XX_BOARD_LINKSYS_WRT54G, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"},
30 -       {{BCM47XX_BOARD_LINKSYS_WRT54G, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"},
31 +       {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101, "Linksys WRT54G/GS/GL"}, "0x0101", "42", "0x10"},
32 +       {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467, "Linksys WRT54G/GS/GL"}, "0x0467", "42", "0x10"},
33 +       {{BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708, "Linksys WRT54G/GS/GL"}, "0x0708", "42", "0x10"},
34         { {0}, NULL},
35  };
36  
37 --- a/arch/mips/bcm47xx/buttons.c
38 +++ b/arch/mips/bcm47xx/buttons.c
39 @@ -265,7 +265,7 @@ bcm47xx_buttons_linksys_wrt54g3gv2[] __i
40  };
41  
42  static const struct gpio_keys_button
43 -bcm47xx_buttons_linksys_wrt54gsv1[] __initconst = {
44 +bcm47xx_buttons_linksys_wrt54g_generic[] __initconst = {
45         BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
46         BCM47XX_GPIO_KEY(6, KEY_RESTART),
47  };
48 @@ -501,12 +501,14 @@ int __init bcm47xx_buttons_register(void
49         case BCM47XX_BOARD_LINKSYS_WRT310NV1:
50                 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1);
51                 break;
52 -       case BCM47XX_BOARD_LINKSYS_WRT54G:
53 -               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54gsv1);
54 -               break;
55         case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
56                 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g3gv2);
57                 break;
58 +       case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101:
59 +       case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467:
60 +       case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708:
61 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt54g_generic);
62 +               break;
63         case BCM47XX_BOARD_LINKSYS_WRT610NV1:
64                 err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv1);
65                 break;
66 --- a/arch/mips/bcm47xx/leds.c
67 +++ b/arch/mips/bcm47xx/leds.c
68 @@ -292,7 +292,7 @@ bcm47xx_leds_linksys_wrt310nv1[] __initc
69  };
70  
71  static const struct gpio_led
72 -bcm47xx_leds_linksys_wrt54gsv1[] __initconst = {
73 +bcm47xx_leds_linksys_wrt54g_generic[] __initconst = {
74         BCM47XX_GPIO_LED(0, "unk", "dmz", 1, LEDS_GPIO_DEFSTATE_OFF),
75         BCM47XX_GPIO_LED(1, "unk", "power", 0, LEDS_GPIO_DEFSTATE_ON),
76         BCM47XX_GPIO_LED(5, "white", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
77 @@ -538,12 +538,14 @@ void __init bcm47xx_leds_register(void)
78         case BCM47XX_BOARD_LINKSYS_WRT310NV1:
79                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt310nv1);
80                 break;
81 -       case BCM47XX_BOARD_LINKSYS_WRT54G:
82 -               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54gsv1);
83 -               break;
84         case BCM47XX_BOARD_LINKSYS_WRT54G3GV2:
85                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g3gv2);
86                 break;
87 +       case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101:
88 +       case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467:
89 +       case BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708:
90 +               bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt54g_generic);
91 +               break;
92         case BCM47XX_BOARD_LINKSYS_WRT610NV1:
93                 bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt610nv1);
94                 break;
95 --- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
96 +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
97 @@ -70,7 +70,9 @@ enum bcm47xx_board {
98         BCM47XX_BOARD_LINKSYS_WRT310NV1,
99         BCM47XX_BOARD_LINKSYS_WRT310NV2,
100         BCM47XX_BOARD_LINKSYS_WRT54G3GV2,
101 -       BCM47XX_BOARD_LINKSYS_WRT54G,
102 +       BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0101,
103 +       BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0467,
104 +       BCM47XX_BOARD_LINKSYS_WRT54G_TYPE_0708,
105         BCM47XX_BOARD_LINKSYS_WRT610NV1,
106         BCM47XX_BOARD_LINKSYS_WRT610NV2,
107         BCM47XX_BOARD_LINKSYS_WRTSL54GS,