mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-12 07:24:22 +00:00
brcm47xx: board detection, GPIO for Linksys E1000 V2.1
This patch adds board detection for the Linksys E1000 V2.1 router, as well as GPIO support for same. This fixes bug #14135. Currently, wired networking isn't working on the router, and I haven't tried the wireless, but with this patch, OpenWRT successfully boots, and all the LEDs and buttons work properly. Signed-off-by: Zachary Catlin <zcatlin@indiana.edu> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 37977
This commit is contained in:
parent
0aa1f0be43
commit
b73b915c54
@ -89,6 +89,7 @@ enum {
|
|||||||
WRT610N,
|
WRT610N,
|
||||||
WRT610NV2,
|
WRT610NV2,
|
||||||
E1000V1,
|
E1000V1,
|
||||||
|
E1000V21,
|
||||||
E3000V1,
|
E3000V1,
|
||||||
E3200V1,
|
E3200V1,
|
||||||
E4200V1,
|
E4200V1,
|
||||||
@ -471,6 +472,19 @@ static struct platform_t __initdata platforms[] = {
|
|||||||
{ .name = "ses_orange", .gpio = 1 << 2, .polarity = REVERSE }, /* nvram get gpio2=wps_status_led */
|
{ .name = "ses_orange", .gpio = 1 << 2, .polarity = REVERSE }, /* nvram get gpio2=wps_status_led */
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
[E1000V21] = {
|
||||||
|
.name = "Linksys E1000 V2.1",
|
||||||
|
.buttons = {
|
||||||
|
{ .name = "reset", .gpio = 1 << 10 }, /* nvram get reset_gpio=10 */
|
||||||
|
{ .name = "wps", .gpio = 1 << 9 }, /* nvram get gpio9=wps_button */
|
||||||
|
},
|
||||||
|
.leds = {
|
||||||
|
{ .name = "power", .gpio = 1 << 6, .polarity = REVERSE },
|
||||||
|
{ .name = "wlan", .gpio = 1 << 5, .polarity = NORMAL },
|
||||||
|
{ .name = "ses_blue", .gpio = 1 << 8, .polarity = NORMAL }, /* nvram get gpio8=wps_led */
|
||||||
|
{ .name = "ses_orange", .gpio = 1 << 7, .polarity = NORMAL }, /* nvram get gpio7=wps_status_led */
|
||||||
|
},
|
||||||
|
},
|
||||||
[E3000V1] = {
|
[E3000V1] = {
|
||||||
.name = "Linksys E3000 V1",
|
.name = "Linksys E3000 V1",
|
||||||
.buttons = {
|
.buttons = {
|
||||||
@ -1350,6 +1364,8 @@ static struct platform_t __init *platform_detect(void)
|
|||||||
return &platforms[DIR330];
|
return &platforms[DIR330];
|
||||||
case BCM47XX_BOARD_LINKSYS_E1000V1:
|
case BCM47XX_BOARD_LINKSYS_E1000V1:
|
||||||
return &platforms[E1000V1];
|
return &platforms[E1000V1];
|
||||||
|
case BCM47XX_BOARD_LINKSYS_E1000V21:
|
||||||
|
return &platforms[E1000V21];
|
||||||
case BCM47XX_BOARD_LINKSYS_E3000V1:
|
case BCM47XX_BOARD_LINKSYS_E3000V1:
|
||||||
return &platforms[E3000V1];
|
return &platforms[E3000V1];
|
||||||
case BCM47XX_BOARD_LINKSYS_E3200V1:
|
case BCM47XX_BOARD_LINKSYS_E3200V1:
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
obj-$(CONFIG_BCM47XX_SSB) += wgt634u.o
|
obj-$(CONFIG_BCM47XX_SSB) += wgt634u.o
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/mips/bcm47xx/board.c
|
+++ b/arch/mips/bcm47xx/board.c
|
||||||
@@ -0,0 +1,241 @@
|
@@ -0,0 +1,242 @@
|
||||||
+#include <linux/export.h>
|
+#include <linux/export.h>
|
||||||
+#include <linux/string.h>
|
+#include <linux/string.h>
|
||||||
+#include <bcm47xx_board.h>
|
+#include <bcm47xx_board.h>
|
||||||
@ -101,6 +101,7 @@
|
|||||||
+ {{BCM47XX_BOARD_CISCO_M20V1, "Cisco M20"}, "M20", "1.0"}, /* like WRT310N v2.0 */
|
+ {{BCM47XX_BOARD_CISCO_M20V1, "Cisco M20"}, "M20", "1.0"}, /* like WRT310N v2.0 */
|
||||||
+ {{BCM47XX_BOARD_LINKSYS_E1000V1, "Linksys E1000 V1"}, "E100", "1.0"}, /* like WRT160N v3.0 */
|
+ {{BCM47XX_BOARD_LINKSYS_E1000V1, "Linksys E1000 V1"}, "E100", "1.0"}, /* like WRT160N v3.0 */
|
||||||
+ {{BCM47XX_BOARD_LINKSYS_E1000V2, "Linksys E1000 V2"}, "E1000", "2.0"},
|
+ {{BCM47XX_BOARD_LINKSYS_E1000V2, "Linksys E1000 V2"}, "E1000", "2.0"},
|
||||||
|
+ {{BCM47XX_BOARD_LINKSYS_E1000V21, "Linksys E1000 V2.1"}, "E1000", "2.1"},
|
||||||
+ {{BCM47XX_BOARD_LINKSYS_E2000V1, "Linksys E2000 V1"}, "Linksys E2000", "1.0"},
|
+ {{BCM47XX_BOARD_LINKSYS_E2000V1, "Linksys E2000 V1"}, "Linksys E2000", "1.0"},
|
||||||
+ {{BCM47XX_BOARD_LINKSYS_E3000V1, "Linksys E3000 V1"}, "E300", "1.0"}, /* like WRT610N v2.0 */
|
+ {{BCM47XX_BOARD_LINKSYS_E3000V1, "Linksys E3000 V1"}, "E300", "1.0"}, /* like WRT610N v2.0 */
|
||||||
+ {{BCM47XX_BOARD_LINKSYS_E3200V1, "Linksys E3200 V1"}, "E3200", "1.0"},
|
+ {{BCM47XX_BOARD_LINKSYS_E3200V1, "Linksys E3200 V1"}, "E3200", "1.0"},
|
||||||
@ -252,7 +253,7 @@
|
|||||||
+EXPORT_SYMBOL(bcm47xx_board_get_name);
|
+EXPORT_SYMBOL(bcm47xx_board_get_name);
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
|
||||||
@@ -0,0 +1,98 @@
|
@@ -0,0 +1,99 @@
|
||||||
+#ifndef __BCM47XX_BOARD_H
|
+#ifndef __BCM47XX_BOARD_H
|
||||||
+#define __BCM47XX_BOARD_H
|
+#define __BCM47XX_BOARD_H
|
||||||
+
|
+
|
||||||
@ -303,6 +304,7 @@
|
|||||||
+
|
+
|
||||||
+ BCM47XX_BOARD_LINKSYS_E1000V1,
|
+ BCM47XX_BOARD_LINKSYS_E1000V1,
|
||||||
+ BCM47XX_BOARD_LINKSYS_E1000V2,
|
+ BCM47XX_BOARD_LINKSYS_E1000V2,
|
||||||
|
+ BCM47XX_BOARD_LINKSYS_E1000V21,
|
||||||
+ BCM47XX_BOARD_LINKSYS_E2000V1,
|
+ BCM47XX_BOARD_LINKSYS_E2000V1,
|
||||||
+ BCM47XX_BOARD_LINKSYS_E3000V1,
|
+ BCM47XX_BOARD_LINKSYS_E3000V1,
|
||||||
+ BCM47XX_BOARD_LINKSYS_E3200V1,
|
+ BCM47XX_BOARD_LINKSYS_E3200V1,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user