--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -677,6 +677,26 @@ static struct board_info __initdata boar
+@@ -677,6 +677,103 @@ static struct board_info __initdata boar
},
};
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+
-+ /* GPIOs not yet known for this device */
++ .leds = {
++ /* bi-color */
++ {
++ .name = "power:red",
++ .gpio = 14,
++ .active_low = 1,
++ },
++ {
++ .name = "power:green",
++ .gpio = 11,
++ .active_low = 1,
++ .default_trigger = "default-on",
++ },
++ {
++ .name = "wifi:red",
++ .gpio = 6,
++ .active_low = 1,
++ },
++ {
++ .name = "wifi:green",
++ .gpio = 8,
++ .active_low = 1,
++ },
++ {
++ .name = "link:red",
++ .gpio = 9,
++ .active_low = 1,
++ },
++ {
++ .name = "link:green",
++ .gpio = 10,
++ .active_low = 1,
++ },
++ /* green only */
++ {
++ .name = "ether",
++ .gpio = 1,
++ .active_low = 1,
++ },
++ {
++ .name = "phone1",
++ .gpio = 4,
++ .active_low = 1,
++ },
++ {
++ .name = "phone2",
++ .gpio = 2,
++ .active_low = 1,
++ },
++ {
++ .name = "phone2",
++ .gpio = 2,
++ .active_low = 1,
++ },
++ {
++ .name = "usb",
++ .gpio = 3,
++ .active_low = 1,
++ },
++ },
++
++ .buttons = {
++ {
++ .desc = "reset",
++ .gpio = 36,
++ .active_low = 1,
++ .type = EV_KEY,
++ .code = KEY_RESTART,
++ .threshold = 3,
++ },
++ {
++ .desc = "wps",
++ .gpio = 37,
++ .type = EV_KEY,
++ .code = KEY_WPS_BUTTON,
++ .threshold = 3,
++ },
++ },
+};
+
+
static struct board_info __initdata board_AGPFS0 = {
.name = "AGPF-S0",
.expected_cpu_id = 0x6358,
-@@ -1339,6 +1359,7 @@ static const struct board_info __initdat
+@@ -1339,6 +1436,7 @@ static const struct board_info __initdat
&board_96358vw,
&board_96358vw2,
&board_AGPFS0,
static struct board_info __initdata board_96358vw = {
.name = "96358VW",
.expected_cpu_id = 0x6358,
-@@ -1356,6 +1409,7 @@ static const struct board_info __initdat
+@@ -1433,6 +1486,7 @@ static const struct board_info __initdat
#endif
#ifdef CONFIG_BCM63XX_CPU_6358
static struct bcm963xx_nvram nvram;
static unsigned int mac_addr_used;
static struct board_info board;
-@@ -1508,6 +1512,29 @@ static int board_get_mac_address(u8 *mac
+@@ -1586,6 +1590,29 @@ static int board_get_mac_address(u8 *mac
return 0;
}
/*
* early init callback, read nvram data from flash and checksum it
*/
-@@ -1559,6 +1586,11 @@ void __init board_prom_init(void)
+@@ -1637,6 +1664,11 @@ void __init board_prom_init(void)
/* Fixup broken nb4 board name */
nb4_nvram_fixup();
#endif
/*
-@@ -1409,6 +1470,7 @@ static const struct board_info __initdat
+@@ -1487,6 +1548,7 @@ static const struct board_info __initdat
&board_96348gw_a,
&board_rta1025w_16,
&board_96348_D4PW,