-Index: linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:36:02.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:40:56.000000000 -0400
-@@ -331,29 +331,28 @@
-
- .leds = {
- {
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -331,29 +331,28 @@ static struct board_info __initdata boar
+
+ .leds = {
+ {
- .name = "adsl-fail",
- .gpio = 2,
+ .name = "line1",
.active_low = 1,
},
},
-@@ -855,6 +854,7 @@
+@@ -855,6 +854,7 @@ static struct platform_device bcm63xx_gp
int __init board_register_devices(void)
{
u32 val;
int button_count = 0;
if (board.has_pccard)
-@@ -902,7 +902,11 @@
+@@ -902,7 +902,11 @@ int __init board_register_devices(void)
platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1);
-Index: linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:40:56.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:43:41.000000000 -0400
-@@ -573,6 +573,63 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -573,6 +573,93 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
+ .default_trigger = "default-on",
+ },
+ {
++ .name = "service:red",
++ .gpio = 7,
++ .active_low = 1,
++ },
++ {
++ .name = "service:green",
++ .gpio = 6,
++ .active_low = 1,
++ },
++ {
++ .name = "adsl:red",
++ .gpio = 9,
++ .active_low = 1,
++ },
++ {
++ .name = "adsl:green",
++ .gpio = 10,
++ .active_low = 1,
++ },
++ {
+ .name = "wifi:red",
+ .gpio = 23,
+ .active_low = 1,
+ .active_low = 1,
+ },
+ {
++ .name = "internet:red",
++ .gpio = 25,
++ .active_low = 1,
++ },
++ {
++ .name = "internet:green",
++ .gpio = 25,
++ .active_low = 1,
++ },
++ {
+ .name = "usr1:red",
+ .gpio = 27,
+ .active_low = 1,
};
static struct board_info __initdata board_DWVS0 = {
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -54,7 +54,7 @@ struct board_info {
+ struct bcm63xx_dsp_platform_data dsp;
+
+ /* GPIO LEDs */
+- struct gpio_led leds[5];
++ struct gpio_led leds[14];
+
+ /* Buttons */
+ struct gpio_button buttons[2];
-Index: linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:43:41.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:44:19.000000000 -0400
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -28,6 +28,7 @@
#include <bcm63xx_dev_pcmcia.h>
#include <bcm63xx_dev_usb_ohci.h>
#include <board_bcm963xx.h>
#define PFX "board_bcm963xx: "
-@@ -390,6 +391,7 @@
+@@ -390,6 +391,7 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
};
static struct board_info __initdata board_rta1025w_16 = {
-@@ -934,6 +936,9 @@
+@@ -964,6 +966,9 @@ int __init board_register_devices(void)
if (board.has_dsp)
bcm63xx_dsp_register(&board.dsp);
/* Generate MAC address for WLAN and
* register our SPROM */
#ifdef CONFIG_SSB_PCIHOST
-Index: linux-2.6.32.13/arch/mips/bcm63xx/dev-usb-udc.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.13/arch/mips/bcm63xx/dev-usb-udc.c 2010-05-27 21:44:19.000000000 -0400
+--- /dev/null
++++ b/arch/mips/bcm63xx/dev-usb-udc.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2009 Henk Vergonet <Henk.Vergonet@gmail.com>
+ udc_resources[1].start = bcm63xx_get_irq_number(IRQ_UDC0);
+ return platform_device_register(&bcm63xx_udc_device);
+}
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 2010-05-27 21:34:56.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 2010-05-27 21:44:19.000000000 -0400
-@@ -125,7 +125,7 @@
+--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
+@@ -125,7 +125,7 @@ enum bcm63xx_regs_set {
#define BCM_6338_UART0_BASE (0xfffe0300)
#define BCM_6338_GPIO_BASE (0xfffe0400)
#define BCM_6338_SPI_BASE (0xfffe0c00)
#define BCM_6338_USBDMA_BASE (0xfffe2400)
#define BCM_6338_OHCI0_BASE (0xdeadbeef)
#define BCM_6338_OHCI_PRIV_BASE (0xfffe3000)
-@@ -155,7 +155,7 @@
+@@ -155,7 +155,7 @@ enum bcm63xx_regs_set {
#define BCM_6345_UART0_BASE (0xfffe0300)
#define BCM_6345_GPIO_BASE (0xfffe0400)
#define BCM_6345_SPI_BASE (0xdeadbeef)
#define BCM_6345_USBDMA_BASE (0xfffe2800)
#define BCM_6345_ENET0_BASE (0xfffe1800)
#define BCM_6345_ENETDMA_BASE (0xfffe2800)
-@@ -210,7 +210,7 @@
+@@ -210,7 +210,7 @@ enum bcm63xx_regs_set {
#define BCM_6358_UART0_BASE (0xfffe0100)
#define BCM_6358_GPIO_BASE (0xfffe0080)
#define BCM_6358_SPI_BASE (0xdeadbeef)
#define BCM_6358_OHCI0_BASE (0xfffe1400)
#define BCM_6358_OHCI_PRIV_BASE (0xdeadbeef)
#define BCM_6358_USBH_PRIV_BASE (0xfffe1500)
-@@ -430,6 +430,7 @@
+@@ -430,6 +430,7 @@ enum bcm63xx_irq {
IRQ_TIMER = 0,
IRQ_UART0,
IRQ_DSL,
IRQ_ENET0,
IRQ_ENET1,
IRQ_ENET_PHY,
-@@ -472,7 +473,7 @@
+@@ -472,7 +473,7 @@ enum bcm63xx_irq {
#define BCM_6345_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
#define BCM_6345_DSL_IRQ (IRQ_INTERNAL_BASE + 3)
#define BCM_6345_ATM_IRQ (IRQ_INTERNAL_BASE + 4)
#define BCM_6345_ENET0_IRQ (IRQ_INTERNAL_BASE + 8)
#define BCM_6345_ENET_PHY_IRQ (IRQ_INTERNAL_BASE + 12)
#define BCM_6345_ENET0_RXDMA_IRQ (IRQ_INTERNAL_BASE + 13 + 1)
-@@ -494,10 +495,17 @@
+@@ -494,10 +495,17 @@ enum bcm63xx_irq {
#define BCM_6348_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
#define BCM_6348_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
#define BCM_6348_DSL_IRQ (IRQ_INTERNAL_BASE + 4)
#define BCM_6348_ENET0_RXDMA_IRQ (IRQ_INTERNAL_BASE + 20)
#define BCM_6348_ENET0_TXDMA_IRQ (IRQ_INTERNAL_BASE + 21)
#define BCM_6348_ENET1_RXDMA_IRQ (IRQ_INTERNAL_BASE + 22)
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_usb_udc.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_usb_udc.h 2010-05-27 21:44:19.000000000 -0400
+--- /dev/null
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_usb_udc.h
@@ -0,0 +1,6 @@
+#ifndef BCM63XX_DEV_USB_UDC_H_
+#define BCM63XX_DEV_USB_UDC_H_
+int bcm63xx_udc_register(void);
+
+#endif /* BCM63XX_DEV_USB_UDC_H_ */
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 2010-05-27 21:42:10.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 2010-05-27 21:44:19.000000000 -0400
-@@ -45,6 +45,7 @@
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -45,6 +45,7 @@ struct board_info {
unsigned int has_ohci0:1;
unsigned int has_ehci0:1;
unsigned int has_dsp:1;
/* ethernet config */
struct bcm63xx_enet_platform_data enet0;
-Index: linux-2.6.32.13/arch/mips/bcm63xx/Makefile
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/Makefile 2010-05-27 21:34:56.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/Makefile 2010-05-27 21:44:19.000000000 -0400
+--- a/arch/mips/bcm63xx/Makefile
++++ b/arch/mips/bcm63xx/Makefile
@@ -1,6 +1,6 @@
obj-y += clk.o cpu.o cs.o gpio.o irq.o prom.o setup.o timer.o \
dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o dev-wdt.o \
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-y += boards/
-Index: linux-2.6.32.13/arch/mips/bcm63xx/clk.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/clk.c 2010-05-27 21:34:56.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/clk.c 2010-05-27 21:44:19.000000000 -0400
-@@ -141,6 +141,30 @@
+--- a/arch/mips/bcm63xx/clk.c
++++ b/arch/mips/bcm63xx/clk.c
+@@ -141,6 +141,30 @@ static struct clk clk_usbh = {
};
/*
* SPI clock
*/
static void spi_set(struct clk *clk, int enable)
-@@ -208,6 +232,8 @@
+@@ -208,6 +232,8 @@ struct clk *clk_get(struct device *dev,
return &clk_ephy;
if (!strcmp(id, "usbh"))
return &clk_usbh;
if (!strcmp(id, "spi"))
return &clk_spi;
if (!strcmp(id, "periph"))
-Index: linux-2.6.32.13/arch/mips/bcm63xx/Kconfig
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/Kconfig 2010-05-27 21:34:56.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/Kconfig 2010-05-27 21:44:19.000000000 -0400
-@@ -7,6 +7,7 @@
+--- a/arch/mips/bcm63xx/Kconfig
++++ b/arch/mips/bcm63xx/Kconfig
+@@ -7,6 +7,7 @@ config BCM63XX_CPU_6338
select USB_ARCH_HAS_OHCI
select USB_OHCI_BIG_ENDIAN_DESC
select USB_OHCI_BIG_ENDIAN_MMIO
config BCM63XX_CPU_6345
bool "support 6345 CPU"
-@@ -19,6 +20,7 @@
+@@ -19,6 +20,7 @@ config BCM63XX_CPU_6348
select USB_ARCH_HAS_OHCI
select USB_OHCI_BIG_ENDIAN_DESC
select USB_OHCI_BIG_ENDIAN_MMIO
-Index: linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:44:19.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:44:35.000000000 -0400
-@@ -984,6 +984,10 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -1014,6 +1014,10 @@ int __init board_register_devices(void)
platform_device_register(&bcm63xx_gpio_buttons_device);
}
return 0;
}
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 2010-05-27 21:44:19.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 2010-05-27 21:44:35.000000000 -0400
-@@ -59,6 +59,10 @@
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -59,6 +59,10 @@ struct board_info {
/* Buttons */
struct gpio_button buttons[2];
-Index: linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:44:35.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:45:09.000000000 -0400
-@@ -451,6 +451,49 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -451,6 +451,49 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
#endif
/*
-@@ -676,6 +719,7 @@
+@@ -706,6 +749,7 @@ static const struct board_info __initdat
&board_DV201AMR,
&board_96348gw_a,
&board_rta1025w_16,
-Index: linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:45:09.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:46:39.000000000 -0400
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -17,6 +17,7 @@
#include <linux/ssb/ssb.h>
#include <linux/gpio_buttons.h>
static struct bcm963xx_nvram nvram;
static unsigned int mac_addr_used;
static struct board_info board;
-@@ -697,6 +704,471 @@
+@@ -727,6 +734,471 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
#endif
/*
-@@ -727,9 +1199,30 @@
+@@ -757,9 +1229,30 @@ static const struct board_info __initdat
&board_96358vw2,
&board_AGPFS0,
&board_DWVS0,
/*
* early init callback, read nvram data from flash and checksum it
*/
-@@ -777,6 +1270,9 @@
+@@ -807,6 +1300,9 @@ void __init board_prom_init(void)
return;
}
/* find board by name */
for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) {
if (strncmp(nvram.name, bcm963xx_boards[i]->name,
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 2010-05-27 21:44:35.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 2010-05-27 21:47:03.000000000 -0400
-@@ -55,7 +55,7 @@
- struct bcm63xx_dsp_platform_data dsp;
-
- /* GPIO LEDs */
-- struct gpio_led leds[5];
-+ struct gpio_led leds[9];
-
- /* Buttons */
- struct gpio_button buttons[2];
-Index: linux-2.6.32.13/arch/mips/bcm63xx/cpu.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/cpu.c 2010-05-27 21:34:54.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/cpu.c 2010-05-27 21:48:23.000000000 -0400
-@@ -55,6 +55,7 @@
+--- a/arch/mips/bcm63xx/cpu.c
++++ b/arch/mips/bcm63xx/cpu.c
+@@ -55,6 +55,7 @@ static const unsigned long bcm96338_regs
static const int bcm96338_irqs[] = {
[IRQ_TIMER] = BCM_6338_TIMER_IRQ,
[IRQ_UART0] = BCM_6338_UART0_IRQ,
[IRQ_DSL] = BCM_6338_DSL_IRQ,
[IRQ_ENET0] = BCM_6338_ENET0_IRQ,
-@@ -127,6 +128,7 @@
+@@ -127,6 +128,7 @@ static const unsigned long bcm96348_regs
static const int bcm96348_irqs[] = {
[IRQ_TIMER] = BCM_6348_TIMER_IRQ,
[IRQ_UART0] = BCM_6348_UART0_IRQ,
[IRQ_DSL] = BCM_6348_DSL_IRQ,
[IRQ_ENET0] = BCM_6348_ENET0_IRQ,
-@@ -169,6 +171,7 @@
+@@ -169,6 +171,7 @@ static const unsigned long bcm96358_regs
static const int bcm96358_irqs[] = {
[IRQ_TIMER] = BCM_6358_TIMER_IRQ,
[IRQ_UART0] = BCM_6358_UART0_IRQ,
[IRQ_DSL] = BCM_6358_DSL_IRQ,
[IRQ_ENET0] = BCM_6358_ENET0_IRQ,
-Index: linux-2.6.32.13/arch/mips/bcm63xx/dev-spi.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.13/arch/mips/bcm63xx/dev-spi.c 2010-05-27 21:48:23.000000000 -0400
+--- /dev/null
++++ b/arch/mips/bcm63xx/dev-spi.c
@@ -0,0 +1,60 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+
+ return platform_device_register(&bcm63xx_spi_device);
+}
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 2010-05-27 21:44:19.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 2010-05-27 21:48:23.000000000 -0400
-@@ -108,6 +108,7 @@
+--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
+@@ -108,6 +108,7 @@ enum bcm63xx_regs_set {
#define RSET_WDT_SIZE 12
#define RSET_ENET_SIZE 2048
#define RSET_ENETDMA_SIZE 2048
#define RSET_UART_SIZE 24
#define RSET_UDC_SIZE 256
#define RSET_OHCI_SIZE 256
-@@ -209,7 +210,7 @@
+@@ -209,7 +210,7 @@ enum bcm63xx_regs_set {
#define BCM_6358_WDT_BASE (0xfffe005c)
#define BCM_6358_UART0_BASE (0xfffe0100)
#define BCM_6358_GPIO_BASE (0xfffe0080)
#define BCM_6358_UDC0_BASE (0xfffe0400)
#define BCM_6358_OHCI0_BASE (0xfffe1400)
#define BCM_6358_OHCI_PRIV_BASE (0xdeadbeef)
-@@ -428,6 +429,7 @@
+@@ -428,6 +429,7 @@ static inline unsigned long bcm63xx_regs
*/
enum bcm63xx_irq {
IRQ_TIMER = 0,
IRQ_UART0,
IRQ_DSL,
IRQ_UDC0,
-@@ -493,6 +495,7 @@
+@@ -493,6 +495,7 @@ enum bcm63xx_irq {
* 6348 irqs
*/
#define BCM_6348_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
#define BCM_6348_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
#define BCM_6348_DSL_IRQ (IRQ_INTERNAL_BASE + 4)
#define BCM_6348_UDC0_IRQ (IRQ_INTERNAL_BASE + 6)
-@@ -517,6 +520,7 @@
+@@ -517,6 +520,7 @@ enum bcm63xx_irq {
* 6358 irqs
*/
#define BCM_6358_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
#define BCM_6358_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
#define BCM_6358_OHCI0_IRQ (IRQ_INTERNAL_BASE + 5)
#define BCM_6358_ENET1_IRQ (IRQ_INTERNAL_BASE + 6)
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 2010-05-27 21:34:54.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 2010-05-27 21:48:23.000000000 -0400
+--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
@@ -769,5 +769,117 @@
#define DMIPSPLLCFG_N2_SHIFT 29
#define DMIPSPLLCFG_N2_MASK (0x7 << DMIPSPLLCFG_N2_SHIFT)
+
#endif /* BCM63XX_REGS_H_ */
-Index: linux-2.6.32.13/drivers/spi/bcm63xx_spi.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.13/drivers/spi/bcm63xx_spi.c 2010-05-27 21:48:23.000000000 -0400
+--- /dev/null
++++ b/drivers/spi/bcm63xx_spi.c
@@ -0,0 +1,628 @@
+/*
+ * Broadcom BCM63xx SPI controller support
+MODULE_DESCRIPTION("Broadcom BCM63xx SPI Controller driver");
+MODULE_LICENSE("GPL");
+MODULE_VERSION(DRV_VER);
-Index: linux-2.6.32.13/drivers/spi/Kconfig
-===================================================================
---- linux-2.6.32.13.orig/drivers/spi/Kconfig 2010-05-27 21:34:54.000000000 -0400
-+++ linux-2.6.32.13/drivers/spi/Kconfig 2010-05-27 21:48:23.000000000 -0400
-@@ -60,6 +60,13 @@
+--- a/drivers/spi/Kconfig
++++ b/drivers/spi/Kconfig
+@@ -60,6 +60,13 @@ config SPI_ATMEL
This selects a driver for the Atmel SPI Controller, present on
many AT32 (AVR32) and AT91 (ARM) chips.
config SPI_BFIN
tristate "SPI controller driver for ADI Blackfin5xx"
depends on BLACKFIN
-Index: linux-2.6.32.13/drivers/spi/Makefile
-===================================================================
---- linux-2.6.32.13.orig/drivers/spi/Makefile 2010-05-27 21:34:54.000000000 -0400
-+++ linux-2.6.32.13/drivers/spi/Makefile 2010-05-27 21:48:23.000000000 -0400
-@@ -34,6 +34,7 @@
+--- a/drivers/spi/Makefile
++++ b/drivers/spi/Makefile
+@@ -34,6 +34,7 @@ obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
obj-$(CONFIG_SPI_STMP3XXX) += spi_stmp.o
# ... add above this line ...
# SPI protocol drivers (device/link on bus)
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h 2010-05-27 21:48:23.000000000 -0400
+--- /dev/null
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h
@@ -0,0 +1,15 @@
+#ifndef BCM63XX_DEV_SPI_H
+#define BCM63XX_DEV_SPI_H
+};
+
+#endif /* BCM63XX_DEV_SPI_H */
-Index: linux-2.6.32.13/arch/mips/bcm63xx/Makefile
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/Makefile 2010-05-27 21:44:19.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/Makefile 2010-05-27 21:48:23.000000000 -0400
+--- a/arch/mips/bcm63xx/Makefile
++++ b/arch/mips/bcm63xx/Makefile
@@ -1,6 +1,6 @@
obj-y += clk.o cpu.o cs.o gpio.o irq.o prom.o setup.o timer.o \
dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o dev-wdt.o \
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-y += boards/
-Index: linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:46:39.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:48:23.000000000 -0400
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -30,6 +30,7 @@
#include <bcm63xx_dev_usb_ohci.h>
#include <bcm63xx_dev_usb_ehci.h>
#include <board_bcm963xx.h>
#define PFX "board_bcm963xx: "
-@@ -1479,6 +1480,9 @@
+@@ -1509,6 +1510,9 @@ int __init board_register_devices(void)
if (board.has_udc0)
bcm63xx_udc_register();
-Index: linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:48:23.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/bcm63xx/boards/board_bcm963xx.c 2010-05-27 21:48:31.000000000 -0400
-@@ -1322,6 +1322,8 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -1352,6 +1352,8 @@ void __init board_prom_init(void)
if (BCMCPU_IS_6348())
val |= GPIO_MODE_6348_G3_EXT_MII |
GPIO_MODE_6348_G0_EXT_MII;
}
bcm_gpio_writel(val, GPIO_MODE_REG);
-Index: linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
-===================================================================
---- linux-2.6.32.13.orig/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 2010-05-27 21:48:23.000000000 -0400
-+++ linux-2.6.32.13/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 2010-05-27 21:48:31.000000000 -0400
+--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
@@ -402,6 +402,8 @@
#define GPIO_MODE_6358_EXTRA_SPI_SS (1 << 7)
#define GPIO_MODE_6358_SERIAL_LED (1 << 10)
+MODULE_ALIAS("platform:bcm63xx_ehci");
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
-@@ -1158,6 +1158,11 @@ MODULE_LICENSE ("GPL");
+@@ -1159,6 +1159,11 @@ MODULE_LICENSE ("GPL");
#define PLATFORM_DRIVER ehci_atmel_driver
#endif
static struct gpio_led_platform_data bcm63xx_led_data;
static struct platform_device bcm63xx_gpio_leds = {
-@@ -852,6 +856,8 @@ int __init board_register_devices(void)
+@@ -853,6 +857,8 @@ int __init board_register_devices(void)
platform_device_register(&mtd_dev);
+ struct gpio_led leds[8];
/* Buttons */
- struct gpio_button buttons[1];
+ struct gpio_button buttons[2];
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -588,6 +588,63 @@ static struct board_info __initdata boar
+@@ -588,6 +588,93 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
+ .default_trigger = "default-on",
+ },
+ {
++ .name = "service:red",
++ .gpio = 7,
++ .active_low = 1,
++ },
++ {
++ .name = "service:green",
++ .gpio = 6,
++ .active_low = 1,
++ },
++ {
++ .name = "adsl:red",
++ .gpio = 9,
++ .active_low = 1,
++ },
++ {
++ .name = "adsl:green",
++ .gpio = 10,
++ .active_low = 1,
++ },
++ {
+ .name = "wifi:red",
+ .gpio = 23,
+ .active_low = 1,
+ .active_low = 1,
+ },
+ {
++ .name = "internet:red",
++ .gpio = 25,
++ .active_low = 1,
++ },
++ {
++ .name = "internet:green",
++ .gpio = 25,
++ .active_low = 1,
++ },
++ {
+ .name = "usr1:red",
+ .gpio = 27,
+ .active_low = 1,
};
static struct board_info __initdata board_DWVS0 = {
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -54,7 +54,7 @@ struct board_info {
+ struct bcm63xx_dsp_platform_data dsp;
+
+ /* GPIO LEDs */
+- struct gpio_led leds[8];
++ struct gpio_led leds[14];
+
+ /* Buttons */
+ struct gpio_button buttons[2];
};
static struct board_info __initdata board_rta1025w_16 = {
-@@ -948,6 +951,9 @@ int __init board_register_devices(void)
+@@ -979,6 +982,9 @@ int __init board_register_devices(void)
if (board.has_dsp)
bcm63xx_dsp_register(&board.dsp);
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1000,6 +1000,10 @@ int __init board_register_devices(void)
+@@ -1030,6 +1030,10 @@ int __init board_register_devices(void)
platform_device_register(&bcm63xx_gpio_buttons_device);
}
#endif
/*
-@@ -692,6 +735,7 @@ static const struct board_info __initdat
+@@ -722,6 +765,7 @@ static const struct board_info __initdat
&board_DV201AMR,
&board_96348gw_a,
&board_rta1025w_16,
static struct bcm963xx_nvram nvram;
static unsigned int mac_addr_used;
static struct board_info board;
-@@ -713,6 +720,471 @@ static struct board_info __initdata boar
+@@ -743,6 +750,471 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
#endif
/*
-@@ -743,9 +1215,30 @@ static const struct board_info __initdat
+@@ -773,9 +1245,30 @@ static const struct board_info __initdat
&board_96358vw2,
&board_AGPFS0,
&board_DWVS0,
/*
* early init callback, read nvram data from flash and checksum it
*/
-@@ -793,6 +1286,9 @@ void __init board_prom_init(void)
+@@ -823,6 +1316,9 @@ void __init board_prom_init(void)
return;
}
/* find board by name */
for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) {
if (strncmp(nvram.name, bcm963xx_boards[i]->name,
---- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-@@ -55,7 +55,7 @@ struct board_info {
- struct bcm63xx_dsp_platform_data dsp;
-
- /* GPIO LEDs */
-- struct gpio_led leds[8];
-+ struct gpio_led leds[9];
-
- /* Buttons */
- struct gpio_button buttons[2];
obj-y += boards/
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -29,6 +29,7 @@
+@@ -30,6 +30,7 @@
#include <bcm63xx_dev_usb_ohci.h>
#include <bcm63xx_dev_usb_ehci.h>
#include <bcm63xx_dev_usb_udc.h>
#include <board_bcm963xx.h>
#define PFX "board_bcm963xx: "
-@@ -998,6 +999,9 @@ int __init board_register_devices(void)
+@@ -1525,6 +1526,9 @@ int __init board_register_devices(void)
if (board.has_udc0)
bcm63xx_udc_register();
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1308,6 +1308,8 @@ void __init board_prom_init(void)
+@@ -1368,6 +1368,8 @@ void __init board_prom_init(void)
if (BCMCPU_IS_6348())
val |= GPIO_MODE_6348_G3_EXT_MII |
GPIO_MODE_6348_G0_EXT_MII;
-Index: linux-2.6.32.12/drivers/usb/host/ehci-hub.c
-===================================================================
---- linux-2.6.32.12.orig/drivers/usb/host/ehci-hub.c 2010-05-02 21:06:45.000000000 +0200
-+++ linux-2.6.32.12/drivers/usb/host/ehci-hub.c 2010-05-02 21:07:08.000000000 +0200
-@@ -741,11 +741,13 @@
+--- a/drivers/usb/host/ehci-hub.c
++++ b/drivers/usb/host/ehci-hub.c
+@@ -743,11 +743,13 @@ static int ehci_hub_control (
* power switching; they're allowed to just limit the
* current. khubd will turn the power back on.
*/