From: Florian Fainelli Date: Thu, 26 May 2011 13:52:56 +0000 (+0000) Subject: [brcm63xx] renumber patches accordingly X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=3fee63969e4a8c69a0a667b6bba3331c409a9a86 [brcm63xx] renumber patches accordingly SVN-Revision: 27013 --- diff --git a/target/linux/brcm63xx/patches-2.6.37/150-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-2.6.37/150-alice_gate2_leds.patch deleted file mode 100644 index fa5ca81bea..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/150-alice_gate2_leds.patch +++ /dev/null @@ -1,113 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -588,6 +588,99 @@ static struct board_info __initdata boar - - .has_ohci0 = 1, - .has_ehci0 = 1, -+ -+ .leds = { -+ /*Each led on alice gate is bi-color */ -+ { -+ .name = "power:red", -+ .gpio = 5, -+ .active_low = 1, -+ }, -+ { -+ .name = "power:green", -+ .gpio = 4, -+ .active_low = 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, -+ }, -+ { -+ .name = "wifi:green", -+ .gpio = 22, -+ .active_low = 1, -+ }, -+ { -+ .name = "internet:red", -+ .gpio = 25, -+ .active_low = 1, -+ }, -+ { -+ .name = "internet:green", -+ .gpio = 24, -+ .active_low = 1, -+ }, -+ { -+ .name = "usr1:red", -+ .gpio = 27, -+ .active_low = 1, -+ }, -+ { -+ .name = "usr1:green", -+ .gpio = 26, -+ .active_low = 1, -+ }, -+ { -+ .name = "usr2:red", -+ .gpio = 30, -+ .active_low = 1, -+ }, -+ { -+ .name = "usr2:green", -+ .gpio = 29, -+ .active_low = 1, -+ }, -+ }, -+ -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 37, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ { -+ .desc = "wps", -+ .gpio = 34, -+ .type = EV_KEY, -+ .code = KEY_WPS_BUTTON, -+ .threshold = 3, -+ }, -+ }, - }; - - 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 -@@ -56,7 +56,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]; diff --git a/target/linux/brcm63xx/patches-2.6.37/180-udc_preliminary_support.patch b/target/linux/brcm63xx/patches-2.6.37/180-udc_preliminary_support.patch index 6011db71e2..7b341b7198 100644 --- a/target/linux/brcm63xx/patches-2.6.37/180-udc_preliminary_support.patch +++ b/target/linux/brcm63xx/patches-2.6.37/180-udc_preliminary_support.patch @@ -17,7 +17,7 @@ }; static struct board_info __initdata board_rta1025w_16 = { -@@ -1002,6 +1005,9 @@ int __init board_register_devices(void) +@@ -909,6 +912,9 @@ int __init board_register_devices(void) if (board.has_dsp) bcm63xx_dsp_register(&board.dsp); diff --git a/target/linux/brcm63xx/patches-2.6.37/200-extended-platform-devices.patch b/target/linux/brcm63xx/patches-2.6.37/200-extended-platform-devices.patch index e9619d4723..db2c22f470 100644 --- a/target/linux/brcm63xx/patches-2.6.37/200-extended-platform-devices.patch +++ b/target/linux/brcm63xx/patches-2.6.37/200-extended-platform-devices.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1008,6 +1008,9 @@ int __init board_register_devices(void) +@@ -915,6 +915,9 @@ int __init board_register_devices(void) if (board.has_udc0) bcm63xx_udc_register(); diff --git a/target/linux/brcm63xx/patches-2.6.37/200-spi-board-info.patch b/target/linux/brcm63xx/patches-2.6.37/200-spi-board-info.patch index fc39eb4ce9..761ac9605d 100644 --- a/target/linux/brcm63xx/patches-2.6.37/200-spi-board-info.patch +++ b/target/linux/brcm63xx/patches-2.6.37/200-spi-board-info.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1011,6 +1011,9 @@ int __init board_register_devices(void) +@@ -918,6 +918,9 @@ int __init board_register_devices(void) if (board.num_devs) platform_add_devices(board.devs, board.num_devs); diff --git a/target/linux/brcm63xx/patches-2.6.37/220-wl_exports.patch b/target/linux/brcm63xx/patches-2.6.37/220-wl_exports.patch index fcd5c641f9..8cd87b8df7 100644 --- a/target/linux/brcm63xx/patches-2.6.37/220-wl_exports.patch +++ b/target/linux/brcm63xx/patches-2.6.37/220-wl_exports.patch @@ -14,7 +14,7 @@ * known 6338 boards */ #ifdef CONFIG_BCM63XX_CPU_6338 -@@ -840,6 +847,7 @@ void __init board_prom_init(void) +@@ -747,6 +754,7 @@ void __init board_prom_init(void) /* extract nvram data */ memcpy(&nvram, boot_addr + BCM963XX_NVRAM_OFFSET, sizeof(nvram)); diff --git a/target/linux/brcm63xx/patches-2.6.37/230-6358-enet1-external-mii-clk.patch b/target/linux/brcm63xx/patches-2.6.37/230-6358-enet1-external-mii-clk.patch index 51055b87f9..d859410b77 100644 --- a/target/linux/brcm63xx/patches-2.6.37/230-6358-enet1-external-mii-clk.patch +++ b/target/linux/brcm63xx/patches-2.6.37/230-6358-enet1-external-mii-clk.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -911,6 +911,8 @@ void __init board_prom_init(void) +@@ -818,6 +818,8 @@ void __init board_prom_init(void) if (BCMCPU_IS_6348()) val |= GPIO_MODE_6348_G3_EXT_MII | GPIO_MODE_6348_G0_EXT_MII; diff --git a/target/linux/brcm63xx/patches-2.6.37/240-spi.patch b/target/linux/brcm63xx/patches-2.6.37/240-spi.patch index 611bf59bb2..3af663e1cf 100644 --- a/target/linux/brcm63xx/patches-2.6.37/240-spi.patch +++ b/target/linux/brcm63xx/patches-2.6.37/240-spi.patch @@ -990,7 +990,7 @@ #include #define PFX "board_bcm963xx: " -@@ -1024,6 +1025,9 @@ int __init board_register_devices(void) +@@ -931,6 +932,9 @@ int __init board_register_devices(void) if (board.num_spis) spi_register_board_info(board.spis, board.num_spis); diff --git a/target/linux/brcm63xx/patches-2.6.37/250-board-D4PW.patch b/target/linux/brcm63xx/patches-2.6.37/250-board-D4PW.patch deleted file mode 100644 index 0a710f608d..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/250-board-D4PW.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -472,6 +472,49 @@ static struct board_info __initdata boar - - .has_ohci0 = 1, - }; -+ -+static struct board_info __initdata board_96348_D4PW = { -+ .name = "D-4P-W", -+ .expected_cpu_id = 0x6348, -+ -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .has_ohci0 = 1, -+ .has_ehci0 = 1, -+ -+ .leds = { -+ { -+ .name = "ppp", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ { -+ .name = "ppp-fail", -+ .gpio = 5, -+ .active_low = 1, -+ }, -+ { -+ .name = "power", -+ .gpio = 0, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ -+ }, -+ }, -+ -+}; -+ - #endif - - /* -@@ -736,6 +779,7 @@ static const struct board_info __initdat - &board_DV201AMR, - &board_96348gw_a, - &board_rta1025w_16, -+ &board_96348_D4PW, - #endif - - #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/250-boardid_fixup.patch b/target/linux/brcm63xx/patches-2.6.37/250-boardid_fixup.patch new file mode 100644 index 0000000000..50e8016e37 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/250-boardid_fixup.patch @@ -0,0 +1,58 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -32,9 +32,13 @@ + #include + #include + #include ++#include + + #define PFX "board_bcm963xx: " + ++#define CFE_OFFSET_64K 0x10000 ++#define CFE_OFFSET_128K 0x20000 ++ + static struct bcm963xx_nvram nvram; + static unsigned int mac_addr_used; + static struct board_info board; +@@ -723,6 +727,29 @@ static int board_get_mac_address(u8 *mac + return 0; + } + ++static void __init boardid_fixup(u8 *boot_addr) ++{ ++ struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K); ++ ++ /* check if bcm_tag is at 64k offset */ ++ if (strncmp(nvram.name, tag->boardid, BOARDID_LEN) != 0) { ++ /* else try 128k */ ++ tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_128K); ++ if (strncmp(nvram.name, tag->boardid, BOARDID_LEN) != 0) { ++ /* No tag found */ ++ printk(KERN_DEBUG "No bcm_tag found!\n"); ++ return; ++ } ++ } ++ /* check if we should override the boardid */ ++ if (tag->information1[0] != '+') ++ return; ++ ++ strncpy(nvram.name, &tag->information1[1], BOARDID_LEN); ++ ++ printk(KERN_INFO "Overriding boardid with '%s'\n", nvram.name); ++} ++ + /* + * early init callback, read nvram data from flash and checksum it + */ +@@ -771,6 +798,11 @@ void __init board_prom_init(void) + return; + } + ++ if (strcmp(cfe_version, "unknown") != 0) { ++ /* cfe present */ ++ boardid_fixup(boot_addr); ++ } ++ + /* find board by name */ + for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) { + if (strncmp(nvram.name, bcm963xx_boards[i]->name, diff --git a/target/linux/brcm63xx/patches-2.6.37/260-board-NB4.patch b/target/linux/brcm63xx/patches-2.6.37/260-board-NB4.patch deleted file mode 100644 index 88122bb190..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/260-board-NB4.patch +++ /dev/null @@ -1,569 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -17,6 +17,9 @@ - #include - #include - #include -+#include -+#include -+#include - #include - #include - #include -@@ -35,6 +38,12 @@ - - #define PFX "board_bcm963xx: " - -+#define NB4_PID_OFFSET 0xff80 -+#define NB4_74X164_GPIO_BASE 64 -+#define NB4_SPI_GPIO_MOSI 7 -+#define NB4_SPI_GPIO_CLK 6 -+#define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X)) -+ - static struct bcm963xx_nvram nvram; - static unsigned int mac_addr_used; - static struct board_info board; -@@ -757,6 +766,502 @@ static struct board_info __initdata boar - - .has_ohci0 = 1, - }; -+ -+struct spi_gpio_platform_data nb4_spi_gpio_data = { -+ .sck = NB4_SPI_GPIO_CLK, -+ .mosi = NB4_SPI_GPIO_MOSI, -+ .miso = SPI_GPIO_NO_MISO, -+ .num_chipselect = 1, -+}; -+ -+ -+static struct platform_device nb4_spi_gpio = { -+ .name = "spi_gpio", -+ .id = 1, -+ .dev = { -+ .platform_data = &nb4_spi_gpio_data, -+ }, -+}; -+ -+static struct platform_device * __initdata nb4_devices[] = { -+ &nb4_spi_gpio, -+}; -+ -+const struct gen_74x164_chip_platform_data nb4_74x164_platform_data = { -+ .base = NB4_74X164_GPIO_BASE -+}; -+ -+static struct spi_board_info nb4_spi_devices[] = { -+ { -+ .modalias = "74x164", -+ .max_speed_hz = 781000, -+ .bus_num = 1, -+ .controller_data = (void *) SPI_GPIO_NO_CHIPSELECT, -+ .mode = SPI_MODE_0, -+ .platform_data = &nb4_74x164_platform_data -+ } -+}; -+ -+static struct board_info __initdata board_nb4_ser_r0 = { -+ .name = "NB4-SER-r0", -+ .expected_cpu_id = 0x6358, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ .has_ehci0 = 1, -+ -+ .has_udc0 = 1, -+ -+ .leds = { -+ { -+ .name = "adsl", -+ .gpio = NB4_74HC64_GPIO(4), -+ .active_low = 1, -+ }, -+ { -+ .name = "traffic", -+ .gpio = 2, -+ .active_low = 1, -+ }, -+ { -+ .name = "tel", -+ .gpio = NB4_74HC64_GPIO(3), -+ .active_low = 1, -+ }, -+ { -+ .name = "tv", -+ .gpio = NB4_74HC64_GPIO(2), -+ .active_low = 1, -+ }, -+ { -+ .name = "wifi", -+ .gpio = 15, -+ .active_low = 1, -+ }, -+ { -+ .name = "alarm", -+ .gpio = NB4_74HC64_GPIO(0), -+ .active_low = 1, -+ }, -+ { -+ .name = "service:red", -+ .gpio = 29, -+ .active_low = 1, -+ }, -+ { -+ .name = "service:green", -+ .gpio = 30, -+ .active_low = 1, -+ }, -+ { -+ .name = "service:blue", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ }, -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 34, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ { -+ .desc = "wps", -+ .gpio = 37, -+ .type = EV_KEY, -+ .code = KEY_WPS_BUTTON, -+ .threshold = 3, -+ }, -+ }, -+ .devs = nb4_devices, -+ .num_devs = ARRAY_SIZE(nb4_devices), -+ .spis = nb4_spi_devices, -+ .num_spis = ARRAY_SIZE(nb4_spi_devices), -+}; -+ -+static struct board_info __initdata board_nb4_ser_r1 = { -+ .name = "NB4-SER-r1", -+ .expected_cpu_id = 0x6358, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ .has_ehci0 = 1, -+ -+ .has_udc0 = 1, -+ -+ .leds = { -+ { -+ .name = "adsl", -+ .gpio = NB4_74HC64_GPIO(4), -+ .active_low = 1, -+ }, -+ { -+ .name = "traffic", -+ .gpio = 2, -+ .active_low = 1, -+ }, -+ { -+ .name = "tel", -+ .gpio = NB4_74HC64_GPIO(3), -+ .active_low = 1, -+ }, -+ { -+ .name = "tv", -+ .gpio = NB4_74HC64_GPIO(2), -+ .active_low = 1, -+ }, -+ { -+ .name = "wifi", -+ .gpio = 15, -+ .active_low = 1, -+ }, -+ { -+ .name = "alarm", -+ .gpio = NB4_74HC64_GPIO(0), -+ .active_low = 1, -+ }, -+ { -+ .name = "service:red", -+ .gpio = 29, -+ .active_low = 1, -+ }, -+ { -+ .name = "service:green", -+ .gpio = 30, -+ .active_low = 1, -+ }, -+ { -+ .name = "service:blue", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ }, -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 34, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ { -+ .desc = "wps", -+ .gpio = 37, -+ .type = EV_KEY, -+ .code = KEY_WPS_BUTTON, -+ .threshold = 3, -+ }, -+ }, -+ .devs = nb4_devices, -+ .num_devs = ARRAY_SIZE(nb4_devices), -+ .spis = nb4_spi_devices, -+ .num_spis = ARRAY_SIZE(nb4_spi_devices), -+}; -+ -+static struct board_info __initdata board_nb4_ser_r2 = { -+ .name = "NB4-SER-r2", -+ .expected_cpu_id = 0x6358, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ .has_ehci0 = 1, -+ -+ .leds = { -+ { -+ .name = "adsl", -+ .gpio = NB4_74HC64_GPIO(4), -+ .active_low = 1, -+ }, -+ { -+ .name = "traffic", -+ .gpio = 2, -+ .active_low = 1, -+ }, -+ { -+ .name = "tel", -+ .gpio = NB4_74HC64_GPIO(3), -+ .active_low = 1, -+ }, -+ { -+ .name = "tv", -+ .gpio = NB4_74HC64_GPIO(2), -+ .active_low = 1, -+ }, -+ { -+ .name = "wifi", -+ .gpio = 15, -+ .active_low = 1, -+ }, -+ { -+ .name = "alarm", -+ .gpio = NB4_74HC64_GPIO(0), -+ .active_low = 1, -+ }, -+ { -+ .name = "service:red", -+ .gpio = 29, -+ .active_low = 1, -+ }, -+ { -+ .name = "service:green", -+ .gpio = 30, -+ .active_low = 1, -+ }, -+ { -+ .name = "service:blue", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ }, -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 34, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ { -+ .desc = "wps", -+ .gpio = 37, -+ .type = EV_KEY, -+ .code = KEY_WPS_BUTTON, -+ .threshold = 3, -+ }, -+ }, -+ .devs = nb4_devices, -+ .num_devs = ARRAY_SIZE(nb4_devices), -+ .spis = nb4_spi_devices, -+ .num_spis = ARRAY_SIZE(nb4_spi_devices), -+}; -+ -+static struct board_info __initdata board_nb4_fxc_r1 = { -+ .name = "NB4-FXC-r1", -+ .expected_cpu_id = 0x6358, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ .has_ehci0 = 1, -+ -+ .has_udc0 = 1, -+ -+ .leds = { -+ { -+ .name = "adsl", -+ .gpio = NB4_74HC64_GPIO(4), -+ .active_low = 1, -+ }, -+ { -+ .name = "traffic", -+ .gpio = 2, -+ }, -+ { -+ .name = "tel", -+ .gpio = NB4_74HC64_GPIO(3), -+ .active_low = 1, -+ }, -+ { -+ .name = "tv", -+ .gpio = NB4_74HC64_GPIO(2), -+ .active_low = 1, -+ }, -+ { -+ .name = "wifi", -+ .gpio = 15, -+ }, -+ { -+ .name = "alarm", -+ .gpio = NB4_74HC64_GPIO(0), -+ .active_low = 1, -+ }, -+ { -+ .name = "service:red", -+ .gpio = 29, -+ }, -+ { -+ .name = "service:green", -+ .gpio = 30, -+ }, -+ { -+ .name = "service:blue", -+ .gpio = 4, -+ }, -+ }, -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 34, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ { -+ .desc = "wps", -+ .gpio = 37, -+ .type = EV_KEY, -+ .code = KEY_WPS_BUTTON, -+ .threshold = 3, -+ }, -+ }, -+ .devs = nb4_devices, -+ .num_devs = ARRAY_SIZE(nb4_devices), -+ .spis = nb4_spi_devices, -+ .num_spis = ARRAY_SIZE(nb4_spi_devices), -+}; -+ -+static struct board_info __initdata board_nb4_fxc_r2 = { -+ .name = "NB4-FXC-r2", -+ .expected_cpu_id = 0x6358, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ .has_ehci0 = 1, -+ -+ .leds = { -+ { -+ .name = "adsl", -+ .gpio = NB4_74HC64_GPIO(4), -+ .active_low = 1, -+ }, -+ { -+ .name = "traffic", -+ .gpio = 2, -+ }, -+ { -+ .name = "tel", -+ .gpio = NB4_74HC64_GPIO(3), -+ .active_low = 1, -+ }, -+ { -+ .name = "tv", -+ .gpio = NB4_74HC64_GPIO(2), -+ .active_low = 1, -+ }, -+ { -+ .name = "wifi", -+ .gpio = 15, -+ }, -+ { -+ .name = "alarm", -+ .gpio = NB4_74HC64_GPIO(0), -+ .active_low = 1, -+ }, -+ { -+ .name = "service:red", -+ .gpio = 29, -+ }, -+ { -+ .name = "service:green", -+ .gpio = 30, -+ }, -+ { -+ .name = "service:blue", -+ .gpio = 4, -+ }, -+ }, -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 34, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ { -+ .desc = "wps", -+ .gpio = 37, -+ .type = EV_KEY, -+ .code = KEY_WPS_BUTTON, -+ .threshold = 3, -+ }, -+ }, -+ .devs = nb4_devices, -+ .num_devs = ARRAY_SIZE(nb4_devices), -+ .spis = nb4_spi_devices, -+ .num_spis = ARRAY_SIZE(nb4_spi_devices), -+}; - #endif - - /* -@@ -787,9 +1292,30 @@ static const struct board_info __initdat - &board_96358vw2, - &board_AGPFS0, - &board_DWVS0, -+ &board_nb4_ser_r0, -+ &board_nb4_ser_r1, -+ &board_nb4_ser_r2, -+ &board_nb4_fxc_r1, -+ &board_nb4_fxc_r2, - #endif - }; - -+static void __init nb4_nvram_fixup(void) -+{ -+ u8 *boot_addr, *p; -+ u32 val; -+ -+ if (BCMCPU_IS_6358() && (!strcmp(nvram.name, "96358VW"))) { -+ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); -+ val &= MPI_CSBASE_BASE_MASK; -+ boot_addr = (u8 *)KSEG1ADDR(val); -+ /* Extract nb4 PID */ -+ p = boot_addr + NB4_PID_OFFSET; -+ if (!memcmp(p, "NB4-", 4)) -+ memcpy(nvram.name, p, sizeof("NB4-XXX-rX")); -+ } -+} -+ - /* - * Register a sane SPROMv2 to make the on-board - * bcm4318 WLAN work -@@ -908,6 +1434,9 @@ void __init board_prom_init(void) - return; - } - -+ /* Fixup broken nb4 board name */ -+ nb4_nvram_fixup(); -+ - /* find board by name */ - for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) { - if (strncmp(nvram.name, bcm963xx_boards[i]->name, diff --git a/target/linux/brcm63xx/patches-2.6.37/270-board-96338W2_E7T.patch b/target/linux/brcm63xx/patches-2.6.37/270-board-96338W2_E7T.patch deleted file mode 100644 index 179a146173..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/270-board-96338W2_E7T.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -142,6 +142,38 @@ static struct board_info __initdata boar - }, - }, - }; -+ -+static struct board_info __initdata board_96338w2_e7t = { -+ .name = "96338W2_E7T", -+ .expected_cpu_id = 0x6338, -+ -+ .has_enet0 = 1, -+ -+ .enet0 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .leds = { -+ { -+ .name = "ppp", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ { -+ .name = "ppp-fail", -+ .gpio = 5, -+ .active_low = 1, -+ }, -+ { -+ .name = "power", -+ .gpio = 0, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ -+ }, -+ }, -+}; - #endif - - /* -@@ -1271,6 +1303,7 @@ static const struct board_info __initdat - #ifdef CONFIG_BCM63XX_CPU_6338 - &board_96338gw, - &board_96338w, -+ &board_96338w2_e7t, - #endif - #ifdef CONFIG_BCM63XX_CPU_6345 - &board_96345gw2, diff --git a/target/linux/brcm63xx/patches-2.6.37/300-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-2.6.37/300-alice_gate2_leds.patch new file mode 100644 index 0000000000..f54fab736b --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/300-alice_gate2_leds.patch @@ -0,0 +1,113 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -603,6 +603,99 @@ static struct board_info __initdata boar + + .has_ohci0 = 1, + .has_ehci0 = 1, ++ ++ .leds = { ++ /*Each led on alice gate is bi-color */ ++ { ++ .name = "power:red", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "power:green", ++ .gpio = 4, ++ .active_low = 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, ++ }, ++ { ++ .name = "wifi:green", ++ .gpio = 22, ++ .active_low = 1, ++ }, ++ { ++ .name = "internet:red", ++ .gpio = 25, ++ .active_low = 1, ++ }, ++ { ++ .name = "internet:green", ++ .gpio = 24, ++ .active_low = 1, ++ }, ++ { ++ .name = "usr1:red", ++ .gpio = 27, ++ .active_low = 1, ++ }, ++ { ++ .name = "usr1:green", ++ .gpio = 26, ++ .active_low = 1, ++ }, ++ { ++ .name = "usr2:red", ++ .gpio = 30, ++ .active_low = 1, ++ }, ++ { ++ .name = "usr2:green", ++ .gpio = 29, ++ .active_low = 1, ++ }, ++ }, ++ ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 37, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 34, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, + }; + + 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 +@@ -57,7 +57,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]; diff --git a/target/linux/brcm63xx/patches-2.6.37/310-96348gw_a_leds.patch b/target/linux/brcm63xx/patches-2.6.37/310-96348gw_a_leds.patch new file mode 100644 index 0000000000..7c5027f876 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/310-96348gw_a_leds.patch @@ -0,0 +1,22 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -475,6 +475,19 @@ static struct board_info __initdata boar + }, + + .has_ohci0 = 1, ++ ++ .leds = { ++ { ++ .name = "adsl", ++ .gpio = 3, ++ .active_low = 1, ++ }, ++ { ++ .name = "usb", ++ .gpio = 0, ++ .active_low = 1, ++ } ++ }, + }; + #endif + diff --git a/target/linux/brcm63xx/patches-2.6.37/310-board-CPVA642.patch b/target/linux/brcm63xx/patches-2.6.37/310-board-CPVA642.patch deleted file mode 100644 index 480e190d3b..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/310-board-CPVA642.patch +++ /dev/null @@ -1,109 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -662,6 +662,98 @@ static struct board_info __initdata boar - }, - }; - -+static struct board_info __initdata board_CPVA642 = { -+ .name = "CPVA642", -+ .expected_cpu_id = 0x6358, -+ -+ .has_uart0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .has_ohci0 = 1, -+ .has_ehci0 = 1, -+ -+ .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 = 28, -+ .active_low = 0, -+ }, -+ { -+ .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 = "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, -@@ -1324,6 +1416,7 @@ static const struct board_info __initdat - &board_96358vw, - &board_96358vw2, - &board_AGPFS0, -+ &board_CPVA642, - &board_DWVS0, - &board_nb4_ser_r0, - &board_nb4_ser_r1, diff --git a/target/linux/brcm63xx/patches-2.6.37/400-board_dsl_274xb_rev_c.patch b/target/linux/brcm63xx/patches-2.6.37/400-board_dsl_274xb_rev_c.patch deleted file mode 100644 index a0a7407984..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/400-board_dsl_274xb_rev_c.patch +++ /dev/null @@ -1,70 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -891,6 +891,59 @@ static struct board_info __initdata boar - .has_ohci0 = 1, - }; - -+/* D-Link DSL-274xB revison C2/C3 */ -+static struct board_info __initdata board_dsl_274xb_rev_c = { -+ .name = "AW4139", -+ .expected_cpu_id = 0x6358, -+ -+ .has_uart0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .leds = { -+ { -+ .name = "dsl-274xb:green:power", -+ .gpio = 5, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ }, -+ { -+ .name = "dsl-274xb:red:power", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ { -+ .name = "dsl-274xb:green:adsl", -+ .gpio = 9, -+ .active_low = 1, -+ }, -+ { -+ .name = "dsl-274xb:green:internet", -+ .gpio = 2, -+ }, -+ { -+ .name = "dsl-274xb:red:internet", -+ .gpio = 10, -+ }, -+ }, -+ -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 34, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ }, -+}; -+ - struct spi_gpio_platform_data nb4_spi_gpio_data = { - .sck = NB4_SPI_GPIO_CLK, - .mosi = NB4_SPI_GPIO_MOSI, -@@ -1418,6 +1471,7 @@ static const struct board_info __initdat - &board_AGPFS0, - &board_CPVA642, - &board_DWVS0, -+ &board_dsl_274xb_rev_c, - &board_nb4_ser_r0, - &board_nb4_ser_r1, - &board_nb4_ser_r2, diff --git a/target/linux/brcm63xx/patches-2.6.37/410-boardid_fixup.patch b/target/linux/brcm63xx/patches-2.6.37/410-boardid_fixup.patch deleted file mode 100644 index 286d9acb29..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/410-boardid_fixup.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - #define PFX "board_bcm963xx: " - -@@ -44,6 +45,9 @@ - #define NB4_SPI_GPIO_CLK 6 - #define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X)) - -+#define CFE_OFFSET_64K 0x10000 -+#define CFE_OFFSET_128K 0x20000 -+ - static struct bcm963xx_nvram nvram; - static unsigned int mac_addr_used; - static struct board_info board; -@@ -1566,6 +1570,29 @@ static int board_get_mac_address(u8 *mac - return 0; - } - -+static void __init boardid_fixup(u8 *boot_addr) -+{ -+ struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K); -+ -+ /* check if bcm_tag is at 64k offset */ -+ if (strncmp(nvram.name, tag->boardid, BOARDID_LEN) != 0) { -+ /* else try 128k */ -+ tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_128K); -+ if (strncmp(nvram.name, tag->boardid, BOARDID_LEN) != 0) { -+ /* No tag found */ -+ printk(KERN_DEBUG "No bcm_tag found!\n"); -+ return; -+ } -+ } -+ /* check if we should override the boardid */ -+ if (tag->information1[0] != '+') -+ return; -+ -+ strncpy(nvram.name, &tag->information1[1], BOARDID_LEN); -+ -+ printk(KERN_INFO "Overriding boardid with '%s'\n", nvram.name); -+} -+ - /* - * early init callback, read nvram data from flash and checksum it - */ -@@ -1617,6 +1644,11 @@ void __init board_prom_init(void) - /* Fixup broken nb4 board name */ - nb4_nvram_fixup(); - -+ if (strcmp(cfe_version, "unknown") != 0) { -+ /* cfe present */ -+ boardid_fixup(boot_addr); -+ } -+ - /* find board by name */ - for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) { - if (strncmp(nvram.name, bcm963xx_boards[i]->name, diff --git a/target/linux/brcm63xx/patches-2.6.37/420-board_spw500v.patch b/target/linux/brcm63xx/patches-2.6.37/420-board_spw500v.patch deleted file mode 100644 index 4f02951ac8..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/420-board_spw500v.patch +++ /dev/null @@ -1,78 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -560,6 +560,67 @@ static struct board_info __initdata boar - - }; - -+static struct board_info __initdata board_spw500v = { -+ .name = "SPW500V", -+ .expected_cpu_id = 0x6348, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .has_dsp = 1, -+ .dsp = { -+ .gpio_rst = 6, -+ .gpio_int = 34, -+ .ext_irq = 2, -+ .cs = 2, -+ }, -+ -+ .leds = { -+ { -+ .name = "power:red", -+ .gpio = 1, -+ .active_low = 1, -+ }, -+ { -+ .name = "power:green", -+ .gpio = 0, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ }, -+ { -+ .name = "ppp", -+ .gpio = 3, -+ .active_low = 1, -+ }, -+ { .name = "pstn", -+ .gpio = 28, -+ .active_low = 1, -+ }, -+ { -+ .name = "voip", -+ .gpio = 32, -+ .active_low = 1, -+ }, -+ }, -+ -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 33, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ }, -+}; -+ - #endif - - /* -@@ -1467,6 +1528,7 @@ static const struct board_info __initdat - &board_96348gw_a, - &board_rta1025w_16, - &board_96348_D4PW, -+ &board_spw500v, - #endif - - #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/421-board-D4PW_correction.patch b/target/linux/brcm63xx/patches-2.6.37/421-board-D4PW_correction.patch deleted file mode 100644 index 540626a0b9..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/421-board-D4PW_correction.patch +++ /dev/null @@ -1,70 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -522,42 +522,48 @@ static struct board_info __initdata boar - .name = "D-4P-W", - .expected_cpu_id = 0x6348, - -- .has_enet0 = 1, -- .has_enet1 = 1, -+ .has_enet1 = 1, - .has_pci = 1, -- -- .enet0 = { -- .has_phy = 1, -- .use_internal_phy = 1, -- }, -+ .has_uart0 = 1, -+ - .enet1 = { - .force_speed_100 = 1, - .force_duplex_full = 1, -- }, -- -- .has_ohci0 = 1, -- .has_ehci0 = 1, -+ }, - - .leds = { - { -- .name = "ppp", -+ .name = "power:green", -+ .gpio = 0, -+ .active_low = 1, -+ }, -+ { -+ .name = "status", -+ .gpio = 3, -+ .active_low = 1, -+ }, -+ { -+ .name = "internet:green", - .gpio = 4, - .active_low = 1, - }, - { -- .name = "ppp-fail", -+ .name = "internet:red", - .gpio = 5, - .active_low = 1, -- }, -+ }, -+ }, -+ -+ .buttons = { - { -- .name = "power", -- .gpio = 0, -+ .desc = "reset", -+ .gpio = 7, - .active_low = 1, -- .default_trigger = "default-on", -- -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, - }, - }, -- - }; - - static struct board_info __initdata board_spw500v = { diff --git a/target/linux/brcm63xx/patches-2.6.37/430-board_gw6200_gw6000.patch b/target/linux/brcm63xx/patches-2.6.37/430-board_gw6200_gw6000.patch deleted file mode 100644 index 4b799a2990..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/430-board_gw6200_gw6000.patch +++ /dev/null @@ -1,129 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -432,6 +432,117 @@ static struct board_info __initdata boar - }, - }; - -+static struct board_info __initdata board_gw6200 = { -+ .name = "GW6200", -+ .expected_cpu_id = 0x6348, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .has_ohci0 = 1, -+ -+ .has_dsp = 1, -+ .dsp = { -+ .gpio_rst = 8, /* FIXME: What is real GPIO here? */ -+ .gpio_int = 34, -+ .ext_irq = 2, -+ .cs = 2, -+ }, -+ -+ .leds = { -+ { -+ .name = "line1", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ { -+ .name = "line2", -+ .gpio = 5, -+ .active_low = 1, -+ }, -+ { -+ .name = "line3", -+ .gpio = 6, -+ .active_low = 1, -+ }, -+ { -+ .name = "tel", -+ .gpio = 7, -+ .active_low = 1, -+ }, -+ { -+ .name = "ethernet", -+ .gpio = 35, -+ .active_low = 1, -+ }, -+ }, -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 36, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ }, -+}; -+ -+static struct board_info __initdata board_gw6000 = { -+ .name = "GW6000", -+ .expected_cpu_id = 0x6348, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .has_ohci0 = 1, -+ -+ .has_dsp = 1, -+ .dsp = { -+ .gpio_rst = 6, -+ .gpio_int = 34, -+ .ext_irq = 2, -+ .cs = 2, -+ }, -+ -+ /* GW6000 has no GPIO-controlled leds */ -+ -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 36, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ }, -+}; -+ -+ -+ - static struct board_info __initdata board_FAST2404 = { - .name = "F@ST2404", - .expected_cpu_id = 0x6348, -@@ -1527,6 +1638,8 @@ static const struct board_info __initdat - #ifdef CONFIG_BCM63XX_CPU_6348 - &board_96348r, - &board_96348gw, -+ &board_gw6000, -+ &board_gw6200, - &board_96348gw_10, - &board_96348gw_11, - &board_FAST2404, diff --git a/target/linux/brcm63xx/patches-2.6.37/440-board-D4PW.patch b/target/linux/brcm63xx/patches-2.6.37/440-board-D4PW.patch new file mode 100644 index 0000000000..3b3a1641db --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/440-board-D4PW.patch @@ -0,0 +1,60 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -489,6 +489,49 @@ static struct board_info __initdata boar + } + }, + }; ++ ++static struct board_info __initdata board_96348_D4PW = { ++ .name = "D-4P-W", ++ .expected_cpu_id = 0x6348, ++ ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ .has_ehci0 = 1, ++ ++ .leds = { ++ { ++ .name = "ppp", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ { ++ .name = "ppp-fail", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ ++ }, ++ }, ++ ++}; ++ + #endif + + /* +@@ -753,6 +796,7 @@ static const struct board_info __initdat + &board_DV201AMR, + &board_96348gw_a, + &board_rta1025w_16, ++ &board_96348_D4PW, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/440-new_96348gw-11_leds.patch b/target/linux/brcm63xx/patches-2.6.37/440-new_96348gw-11_leds.patch deleted file mode 100644 index c1b8649c96..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/440-new_96348gw-11_leds.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -364,6 +364,49 @@ static struct board_info __initdata boar - }, - }; - -+static struct board_info __initdata board_ct536_ct5621 = { -+ .name = "CT536_CT5621", -+ .expected_cpu_id = 0x6348, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 0, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ .has_ehci0 = 1, -+ -+ .leds = { -+ { -+ .name = "adsl-fail", -+ .gpio = 2, -+ .active_low = 1, -+ }, -+ { -+ .name = "power", -+ .gpio = 0, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ }, -+ }, -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 33, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ }, -+}; -+ - static struct board_info __initdata board_96348gw = { - .name = "96348GW", - .expected_cpu_id = 0x6348, -@@ -1648,6 +1691,7 @@ static const struct board_info __initdat - &board_rta1025w_16, - &board_96348_D4PW, - &board_spw500v, -+ &board_ct536_ct5621, - #endif - - #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/441-board-NB4.patch b/target/linux/brcm63xx/patches-2.6.37/441-board-NB4.patch new file mode 100644 index 0000000000..2f4cd818da --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/441-board-NB4.patch @@ -0,0 +1,569 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -17,6 +17,9 @@ + #include + #include + #include ++#include ++#include ++#include + #include + #include + #include +@@ -39,6 +42,12 @@ + #define CFE_OFFSET_64K 0x10000 + #define CFE_OFFSET_128K 0x20000 + ++#define NB4_PID_OFFSET 0xff80 ++#define NB4_74X164_GPIO_BASE 64 ++#define NB4_SPI_GPIO_MOSI 7 ++#define NB4_SPI_GPIO_CLK 6 ++#define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X)) ++ + static struct bcm963xx_nvram nvram; + static unsigned int mac_addr_used; + static struct board_info board; +@@ -774,6 +783,502 @@ static struct board_info __initdata boar + + .has_ohci0 = 1, + }; ++ ++struct spi_gpio_platform_data nb4_spi_gpio_data = { ++ .sck = NB4_SPI_GPIO_CLK, ++ .mosi = NB4_SPI_GPIO_MOSI, ++ .miso = SPI_GPIO_NO_MISO, ++ .num_chipselect = 1, ++}; ++ ++ ++static struct platform_device nb4_spi_gpio = { ++ .name = "spi_gpio", ++ .id = 1, ++ .dev = { ++ .platform_data = &nb4_spi_gpio_data, ++ }, ++}; ++ ++static struct platform_device * __initdata nb4_devices[] = { ++ &nb4_spi_gpio, ++}; ++ ++const struct gen_74x164_chip_platform_data nb4_74x164_platform_data = { ++ .base = NB4_74X164_GPIO_BASE ++}; ++ ++static struct spi_board_info nb4_spi_devices[] = { ++ { ++ .modalias = "74x164", ++ .max_speed_hz = 781000, ++ .bus_num = 1, ++ .controller_data = (void *) SPI_GPIO_NO_CHIPSELECT, ++ .mode = SPI_MODE_0, ++ .platform_data = &nb4_74x164_platform_data ++ } ++}; ++ ++static struct board_info __initdata board_nb4_ser_r0 = { ++ .name = "NB4-SER-r0", ++ .expected_cpu_id = 0x6358, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ .has_ehci0 = 1, ++ ++ .has_udc0 = 1, ++ ++ .leds = { ++ { ++ .name = "adsl", ++ .gpio = NB4_74HC64_GPIO(4), ++ .active_low = 1, ++ }, ++ { ++ .name = "traffic", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "tel", ++ .gpio = NB4_74HC64_GPIO(3), ++ .active_low = 1, ++ }, ++ { ++ .name = "tv", ++ .gpio = NB4_74HC64_GPIO(2), ++ .active_low = 1, ++ }, ++ { ++ .name = "wifi", ++ .gpio = 15, ++ .active_low = 1, ++ }, ++ { ++ .name = "alarm", ++ .gpio = NB4_74HC64_GPIO(0), ++ .active_low = 1, ++ }, ++ { ++ .name = "service:red", ++ .gpio = 29, ++ .active_low = 1, ++ }, ++ { ++ .name = "service:green", ++ .gpio = 30, ++ .active_low = 1, ++ }, ++ { ++ .name = "service:blue", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 34, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 37, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++ .devs = nb4_devices, ++ .num_devs = ARRAY_SIZE(nb4_devices), ++ .spis = nb4_spi_devices, ++ .num_spis = ARRAY_SIZE(nb4_spi_devices), ++}; ++ ++static struct board_info __initdata board_nb4_ser_r1 = { ++ .name = "NB4-SER-r1", ++ .expected_cpu_id = 0x6358, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ .has_ehci0 = 1, ++ ++ .has_udc0 = 1, ++ ++ .leds = { ++ { ++ .name = "adsl", ++ .gpio = NB4_74HC64_GPIO(4), ++ .active_low = 1, ++ }, ++ { ++ .name = "traffic", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "tel", ++ .gpio = NB4_74HC64_GPIO(3), ++ .active_low = 1, ++ }, ++ { ++ .name = "tv", ++ .gpio = NB4_74HC64_GPIO(2), ++ .active_low = 1, ++ }, ++ { ++ .name = "wifi", ++ .gpio = 15, ++ .active_low = 1, ++ }, ++ { ++ .name = "alarm", ++ .gpio = NB4_74HC64_GPIO(0), ++ .active_low = 1, ++ }, ++ { ++ .name = "service:red", ++ .gpio = 29, ++ .active_low = 1, ++ }, ++ { ++ .name = "service:green", ++ .gpio = 30, ++ .active_low = 1, ++ }, ++ { ++ .name = "service:blue", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 34, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 37, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++ .devs = nb4_devices, ++ .num_devs = ARRAY_SIZE(nb4_devices), ++ .spis = nb4_spi_devices, ++ .num_spis = ARRAY_SIZE(nb4_spi_devices), ++}; ++ ++static struct board_info __initdata board_nb4_ser_r2 = { ++ .name = "NB4-SER-r2", ++ .expected_cpu_id = 0x6358, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ .has_ehci0 = 1, ++ ++ .leds = { ++ { ++ .name = "adsl", ++ .gpio = NB4_74HC64_GPIO(4), ++ .active_low = 1, ++ }, ++ { ++ .name = "traffic", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "tel", ++ .gpio = NB4_74HC64_GPIO(3), ++ .active_low = 1, ++ }, ++ { ++ .name = "tv", ++ .gpio = NB4_74HC64_GPIO(2), ++ .active_low = 1, ++ }, ++ { ++ .name = "wifi", ++ .gpio = 15, ++ .active_low = 1, ++ }, ++ { ++ .name = "alarm", ++ .gpio = NB4_74HC64_GPIO(0), ++ .active_low = 1, ++ }, ++ { ++ .name = "service:red", ++ .gpio = 29, ++ .active_low = 1, ++ }, ++ { ++ .name = "service:green", ++ .gpio = 30, ++ .active_low = 1, ++ }, ++ { ++ .name = "service:blue", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 34, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 37, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++ .devs = nb4_devices, ++ .num_devs = ARRAY_SIZE(nb4_devices), ++ .spis = nb4_spi_devices, ++ .num_spis = ARRAY_SIZE(nb4_spi_devices), ++}; ++ ++static struct board_info __initdata board_nb4_fxc_r1 = { ++ .name = "NB4-FXC-r1", ++ .expected_cpu_id = 0x6358, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ .has_ehci0 = 1, ++ ++ .has_udc0 = 1, ++ ++ .leds = { ++ { ++ .name = "adsl", ++ .gpio = NB4_74HC64_GPIO(4), ++ .active_low = 1, ++ }, ++ { ++ .name = "traffic", ++ .gpio = 2, ++ }, ++ { ++ .name = "tel", ++ .gpio = NB4_74HC64_GPIO(3), ++ .active_low = 1, ++ }, ++ { ++ .name = "tv", ++ .gpio = NB4_74HC64_GPIO(2), ++ .active_low = 1, ++ }, ++ { ++ .name = "wifi", ++ .gpio = 15, ++ }, ++ { ++ .name = "alarm", ++ .gpio = NB4_74HC64_GPIO(0), ++ .active_low = 1, ++ }, ++ { ++ .name = "service:red", ++ .gpio = 29, ++ }, ++ { ++ .name = "service:green", ++ .gpio = 30, ++ }, ++ { ++ .name = "service:blue", ++ .gpio = 4, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 34, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 37, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++ .devs = nb4_devices, ++ .num_devs = ARRAY_SIZE(nb4_devices), ++ .spis = nb4_spi_devices, ++ .num_spis = ARRAY_SIZE(nb4_spi_devices), ++}; ++ ++static struct board_info __initdata board_nb4_fxc_r2 = { ++ .name = "NB4-FXC-r2", ++ .expected_cpu_id = 0x6358, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ .has_ehci0 = 1, ++ ++ .leds = { ++ { ++ .name = "adsl", ++ .gpio = NB4_74HC64_GPIO(4), ++ .active_low = 1, ++ }, ++ { ++ .name = "traffic", ++ .gpio = 2, ++ }, ++ { ++ .name = "tel", ++ .gpio = NB4_74HC64_GPIO(3), ++ .active_low = 1, ++ }, ++ { ++ .name = "tv", ++ .gpio = NB4_74HC64_GPIO(2), ++ .active_low = 1, ++ }, ++ { ++ .name = "wifi", ++ .gpio = 15, ++ }, ++ { ++ .name = "alarm", ++ .gpio = NB4_74HC64_GPIO(0), ++ .active_low = 1, ++ }, ++ { ++ .name = "service:red", ++ .gpio = 29, ++ }, ++ { ++ .name = "service:green", ++ .gpio = 30, ++ }, ++ { ++ .name = "service:blue", ++ .gpio = 4, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 34, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 37, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++ .devs = nb4_devices, ++ .num_devs = ARRAY_SIZE(nb4_devices), ++ .spis = nb4_spi_devices, ++ .num_spis = ARRAY_SIZE(nb4_spi_devices), ++}; + #endif + + /* +@@ -804,9 +1309,30 @@ static const struct board_info __initdat + &board_96358vw2, + &board_AGPFS0, + &board_DWVS0, ++ &board_nb4_ser_r0, ++ &board_nb4_ser_r1, ++ &board_nb4_ser_r2, ++ &board_nb4_fxc_r1, ++ &board_nb4_fxc_r2, + #endif + }; + ++static void __init nb4_nvram_fixup(void) ++{ ++ u8 *boot_addr, *p; ++ u32 val; ++ ++ if (BCMCPU_IS_6358() && (!strcmp(nvram.name, "96358VW"))) { ++ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); ++ val &= MPI_CSBASE_BASE_MASK; ++ boot_addr = (u8 *)KSEG1ADDR(val); ++ /* Extract nb4 PID */ ++ p = boot_addr + NB4_PID_OFFSET; ++ if (!memcmp(p, "NB4-", 4)) ++ memcpy(nvram.name, p, sizeof("NB4-XXX-rX")); ++ } ++} ++ + /* + * Register a sane SPROMv2 to make the on-board + * bcm4318 WLAN work +@@ -953,6 +1479,9 @@ void __init board_prom_init(void) + boardid_fixup(boot_addr); + } + ++ /* Fixup broken nb4 board name */ ++ nb4_nvram_fixup(); ++ + /* find board by name */ + for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) { + if (strncmp(nvram.name, bcm963xx_boards[i]->name, diff --git a/target/linux/brcm63xx/patches-2.6.37/442-board-96338W2_E7T.patch b/target/linux/brcm63xx/patches-2.6.37/442-board-96338W2_E7T.patch new file mode 100644 index 0000000000..70f6f4be6e --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/442-board-96338W2_E7T.patch @@ -0,0 +1,49 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -146,6 +146,38 @@ static struct board_info __initdata boar + }, + }, + }; ++ ++static struct board_info __initdata board_96338w2_e7t = { ++ .name = "96338W2_E7T", ++ .expected_cpu_id = 0x6338, ++ ++ .has_enet0 = 1, ++ ++ .enet0 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .leds = { ++ { ++ .name = "ppp", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ { ++ .name = "ppp-fail", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ ++ }, ++ }, ++}; + #endif + + /* +@@ -1288,6 +1320,7 @@ static const struct board_info __initdat + #ifdef CONFIG_BCM63XX_CPU_6338 + &board_96338gw, + &board_96338w, ++ &board_96338w2_e7t, + #endif + #ifdef CONFIG_BCM63XX_CPU_6345 + &board_96345gw2, diff --git a/target/linux/brcm63xx/patches-2.6.37/443-board-CPVA642.patch b/target/linux/brcm63xx/patches-2.6.37/443-board-CPVA642.patch new file mode 100644 index 0000000000..c6e8403221 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/443-board-CPVA642.patch @@ -0,0 +1,109 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -679,6 +679,98 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_CPVA642 = { ++ .name = "CPVA642", ++ .expected_cpu_id = 0x6358, ++ ++ .has_uart0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ .has_ehci0 = 1, ++ ++ .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 = 28, ++ .active_low = 0, ++ }, ++ { ++ .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 = "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, +@@ -1341,6 +1433,7 @@ static const struct board_info __initdat + &board_96358vw, + &board_96358vw2, + &board_AGPFS0, ++ &board_CPVA642, + &board_DWVS0, + &board_nb4_ser_r0, + &board_nb4_ser_r1, diff --git a/target/linux/brcm63xx/patches-2.6.37/444-board_dsl_274xb_rev_c.patch b/target/linux/brcm63xx/patches-2.6.37/444-board_dsl_274xb_rev_c.patch new file mode 100644 index 0000000000..ae24b48e74 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/444-board_dsl_274xb_rev_c.patch @@ -0,0 +1,70 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -908,6 +908,59 @@ static struct board_info __initdata boar + .has_ohci0 = 1, + }; + ++/* D-Link DSL-274xB revison C2/C3 */ ++static struct board_info __initdata board_dsl_274xb_rev_c = { ++ .name = "AW4139", ++ .expected_cpu_id = 0x6358, ++ ++ .has_uart0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .leds = { ++ { ++ .name = "dsl-274xb:green:power", ++ .gpio = 5, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "dsl-274xb:red:power", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ { ++ .name = "dsl-274xb:green:adsl", ++ .gpio = 9, ++ .active_low = 1, ++ }, ++ { ++ .name = "dsl-274xb:green:internet", ++ .gpio = 2, ++ }, ++ { ++ .name = "dsl-274xb:red:internet", ++ .gpio = 10, ++ }, ++ }, ++ ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 34, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ + struct spi_gpio_platform_data nb4_spi_gpio_data = { + .sck = NB4_SPI_GPIO_CLK, + .mosi = NB4_SPI_GPIO_MOSI, +@@ -1435,6 +1488,7 @@ static const struct board_info __initdat + &board_AGPFS0, + &board_CPVA642, + &board_DWVS0, ++ &board_dsl_274xb_rev_c, + &board_nb4_ser_r0, + &board_nb4_ser_r1, + &board_nb4_ser_r2, diff --git a/target/linux/brcm63xx/patches-2.6.37/445-96348gw_a_leds.patch b/target/linux/brcm63xx/patches-2.6.37/445-96348gw_a_leds.patch deleted file mode 100644 index 9caccbb65a..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/445-96348gw_a_leds.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -670,6 +670,19 @@ static struct board_info __initdata boar - }, - - .has_ohci0 = 1, -+ -+ .leds = { -+ { -+ .name = "adsl", -+ .gpio = 3, -+ .active_low = 1, -+ }, -+ { -+ .name = "usb", -+ .gpio = 0, -+ .active_low = 1, -+ } -+ }, - }; - - static struct board_info __initdata board_96348_D4PW = { diff --git a/target/linux/brcm63xx/patches-2.6.37/445-board_spw500v.patch b/target/linux/brcm63xx/patches-2.6.37/445-board_spw500v.patch new file mode 100644 index 0000000000..7501626d6f --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/445-board_spw500v.patch @@ -0,0 +1,78 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -573,6 +573,67 @@ static struct board_info __initdata boar + + }; + ++static struct board_info __initdata board_spw500v = { ++ .name = "SPW500V", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .has_dsp = 1, ++ .dsp = { ++ .gpio_rst = 6, ++ .gpio_int = 34, ++ .ext_irq = 2, ++ .cs = 2, ++ }, ++ ++ .leds = { ++ { ++ .name = "power:red", ++ .gpio = 1, ++ .active_low = 1, ++ }, ++ { ++ .name = "power:green", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "ppp", ++ .gpio = 3, ++ .active_low = 1, ++ }, ++ { .name = "pstn", ++ .gpio = 28, ++ .active_low = 1, ++ }, ++ { ++ .name = "voip", ++ .gpio = 32, ++ .active_low = 1, ++ }, ++ }, ++ ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 33, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ + #endif + + /* +@@ -1480,6 +1541,7 @@ static const struct board_info __initdat + &board_96348gw_a, + &board_rta1025w_16, + &board_96348_D4PW, ++ &board_spw500v, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/446-board-D4PW_correction.patch b/target/linux/brcm63xx/patches-2.6.37/446-board-D4PW_correction.patch new file mode 100644 index 0000000000..2eb7070ddb --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/446-board-D4PW_correction.patch @@ -0,0 +1,70 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -535,42 +535,48 @@ static struct board_info __initdata boar + .name = "D-4P-W", + .expected_cpu_id = 0x6348, + +- .has_enet0 = 1, +- .has_enet1 = 1, ++ .has_enet1 = 1, + .has_pci = 1, +- +- .enet0 = { +- .has_phy = 1, +- .use_internal_phy = 1, +- }, ++ .has_uart0 = 1, ++ + .enet1 = { + .force_speed_100 = 1, + .force_duplex_full = 1, +- }, +- +- .has_ohci0 = 1, +- .has_ehci0 = 1, ++ }, + + .leds = { + { +- .name = "ppp", ++ .name = "power:green", ++ .gpio = 0, ++ .active_low = 1, ++ }, ++ { ++ .name = "status", ++ .gpio = 3, ++ .active_low = 1, ++ }, ++ { ++ .name = "internet:green", + .gpio = 4, + .active_low = 1, + }, + { +- .name = "ppp-fail", ++ .name = "internet:red", + .gpio = 5, + .active_low = 1, +- }, ++ }, ++ }, ++ ++ .buttons = { + { +- .name = "power", +- .gpio = 0, ++ .desc = "reset", ++ .gpio = 7, + .active_low = 1, +- .default_trigger = "default-on", +- ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, + }, + }, +- + }; + + static struct board_info __initdata board_spw500v = { diff --git a/target/linux/brcm63xx/patches-2.6.37/447-board_gw6200_gw6000.patch b/target/linux/brcm63xx/patches-2.6.37/447-board_gw6200_gw6000.patch new file mode 100644 index 0000000000..c06fda942c --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/447-board_gw6200_gw6000.patch @@ -0,0 +1,129 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -432,6 +432,117 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_gw6200 = { ++ .name = "GW6200", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ ++ .has_dsp = 1, ++ .dsp = { ++ .gpio_rst = 8, /* FIXME: What is real GPIO here? */ ++ .gpio_int = 34, ++ .ext_irq = 2, ++ .cs = 2, ++ }, ++ ++ .leds = { ++ { ++ .name = "line1", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ { ++ .name = "line2", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "line3", ++ .gpio = 6, ++ .active_low = 1, ++ }, ++ { ++ .name = "tel", ++ .gpio = 7, ++ .active_low = 1, ++ }, ++ { ++ .name = "ethernet", ++ .gpio = 35, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 36, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ ++static struct board_info __initdata board_gw6000 = { ++ .name = "GW6000", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ ++ .has_dsp = 1, ++ .dsp = { ++ .gpio_rst = 6, ++ .gpio_int = 34, ++ .ext_irq = 2, ++ .cs = 2, ++ }, ++ ++ /* GW6000 has no GPIO-controlled leds */ ++ ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 36, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ ++ ++ + static struct board_info __initdata board_FAST2404 = { + .name = "F@ST2404", + .expected_cpu_id = 0x6348, +@@ -1540,6 +1651,8 @@ static const struct board_info __initdat + #ifdef CONFIG_BCM63XX_CPU_6348 + &board_96348r, + &board_96348gw, ++ &board_gw6000, ++ &board_gw6200, + &board_96348gw_10, + &board_96348gw_11, + &board_FAST2404, diff --git a/target/linux/brcm63xx/patches-2.6.37/448-board-MAGIC.patch b/target/linux/brcm63xx/patches-2.6.37/448-board-MAGIC.patch new file mode 100644 index 0000000000..47e7db1417 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/448-board-MAGIC.patch @@ -0,0 +1,87 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -751,6 +751,76 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_96348sv = { ++ .name = "MAGIC", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ .enet1 = { ++ /* is has BP_ENET_EXTERNAL_PHY */ ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ .has_ehci0 = 1, ++ ++ .has_dsp = 1, ++ .dsp = { ++ .gpio_rst = 25, ++ .gpio_int = 34, ++ .cs = 2, ++ .ext_irq = 2, ++ }, ++ ++ .leds = { ++ { ++ .name = "voip", ++ .gpio = 22, ++ .active_low = 1, ++ }, ++ { ++ .name = "adsl", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "wifi", ++ .gpio = 28, ++ }, ++ { ++ .name = "usb", ++ .gpio = 35, ++ .active_low = 1, ++ }, ++ { ++ .name = "hpna", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "stop", ++ .gpio = 1, ++ .active_low = 1, ++ }, ++ }, ++}; ++ + #endif + + /* +@@ -1661,6 +1731,7 @@ static const struct board_info __initdat + &board_rta1025w_16, + &board_96348_D4PW, + &board_spw500v, ++ &board_96348sv, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/449-board_hw553.patch b/target/linux/brcm63xx/patches-2.6.37/449-board_hw553.patch new file mode 100644 index 0000000000..f806ad078c --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/449-board_hw553.patch @@ -0,0 +1,90 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1706,6 +1706,79 @@ static struct board_info __initdata boar + }; + #endif + ++static struct board_info __initdata board_HW553 = { ++ .name = "HW553", ++ .expected_cpu_id = 0x6358, ++ ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ .has_ehci0 = 1, ++ ++ .leds = { ++ /*Each led on HW553 is bi-color (except wifi) */ ++ { ++ .name = "lan:red", ++ .gpio = 34, ++ .active_low = 1, ++ }, ++ { ++ .name = "lan:blue", ++ .gpio = 35, ++ .active_low = 1, ++ }, ++ { ++ .name = "adsl:red", ++ .gpio = 22, ++ .active_low = 1, ++ }, ++ { ++ .name = "adsl:blue", ++ .gpio = 23, ++ .active_low = 1, ++ }, ++ { ++ .name = "power:red", ++ .gpio = 5, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ ++ { ++ .name = "power:blue", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ { ++ .name = "wifi:red", ++ .gpio = 25, ++ .active_low = 1, ++ }, ++ { ++ .name = "internetkey:red", ++ .gpio = 12, ++ .active_low = 1, ++ }, ++ { ++ .name = "internetkey:blue", ++ .gpio = 13, ++ .active_low = 1, ++ }, ++ }, ++}; ++ + /* + * all boards + */ +@@ -1746,6 +1819,7 @@ static const struct board_info __initdat + &board_nb4_ser_r2, + &board_nb4_fxc_r1, + &board_nb4_fxc_r2, ++ &board_HW553, + #endif + }; + diff --git a/target/linux/brcm63xx/patches-2.6.37/450-board-MAGIC.patch b/target/linux/brcm63xx/patches-2.6.37/450-board-MAGIC.patch deleted file mode 100644 index 3fb9ae32f9..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/450-board-MAGIC.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -794,6 +794,76 @@ static struct board_info __initdata boar - }, - }; - -+static struct board_info __initdata board_96348sv = { -+ .name = "MAGIC", -+ .expected_cpu_id = 0x6348, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ .enet1 = { -+ /* is has BP_ENET_EXTERNAL_PHY */ -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ .has_ehci0 = 1, -+ -+ .has_dsp = 1, -+ .dsp = { -+ .gpio_rst = 25, -+ .gpio_int = 34, -+ .cs = 2, -+ .ext_irq = 2, -+ }, -+ -+ .leds = { -+ { -+ .name = "voip", -+ .gpio = 22, -+ .active_low = 1, -+ }, -+ { -+ .name = "adsl", -+ .gpio = 5, -+ .active_low = 1, -+ }, -+ { -+ .name = "wifi", -+ .gpio = 28, -+ }, -+ { -+ .name = "usb", -+ .gpio = 35, -+ .active_low = 1, -+ }, -+ { -+ .name = "hpna", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ { -+ .name = "power", -+ .gpio = 0, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ }, -+ { -+ .name = "stop", -+ .gpio = 1, -+ .active_low = 1, -+ }, -+ }, -+}; -+ - #endif - - /* -@@ -1705,6 +1775,7 @@ static const struct board_info __initdat - &board_96348_D4PW, - &board_spw500v, - &board_ct536_ct5621, -+ &board_96348sv, - #endif - - #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/450-board_rta1320_16m.patch b/target/linux/brcm63xx/patches-2.6.37/450-board_rta1320_16m.patch new file mode 100644 index 0000000000..537a88bae4 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/450-board_rta1320_16m.patch @@ -0,0 +1,54 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -178,6 +178,43 @@ static struct board_info __initdata boar + }, + }, + }; ++ ++static struct board_info __initdata board_rta1320_16m = { ++ .name = "RTA1320_16M", ++ .expected_cpu_id = 0x6338, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ ++ .enet0 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .leds = { ++ { ++ .name = "adsl", ++ .gpio = 3, ++ .active_low = 1, ++ }, ++ { ++ .name = "ppp", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "stop", ++ .gpio = 1, ++ .active_low = 1, ++ }, ++ }, ++}; + #endif + + /* +@@ -1787,6 +1824,7 @@ static const struct board_info __initdat + &board_96338gw, + &board_96338w, + &board_96338w2_e7t, ++ &board_rta1320_16m, + #endif + #ifdef CONFIG_BCM63XX_CPU_6345 + &board_96345gw2, diff --git a/target/linux/brcm63xx/patches-2.6.37/451-board_hw553.patch b/target/linux/brcm63xx/patches-2.6.37/451-board_hw553.patch deleted file mode 100644 index bb5004a2c4..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/451-board_hw553.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1749,6 +1749,79 @@ static struct board_info __initdata boar - }; - #endif - -+static struct board_info __initdata board_HW553 = { -+ .name = "HW553", -+ .expected_cpu_id = 0x6358, -+ -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .has_ohci0 = 1, -+ .has_ehci0 = 1, -+ -+ .leds = { -+ /*Each led on HW553 is bi-color (except wifi) */ -+ { -+ .name = "lan:red", -+ .gpio = 34, -+ .active_low = 1, -+ }, -+ { -+ .name = "lan:blue", -+ .gpio = 35, -+ .active_low = 1, -+ }, -+ { -+ .name = "adsl:red", -+ .gpio = 22, -+ .active_low = 1, -+ }, -+ { -+ .name = "adsl:blue", -+ .gpio = 23, -+ .active_low = 1, -+ }, -+ { -+ .name = "power:red", -+ .gpio = 5, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ }, -+ -+ { -+ .name = "power:blue", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ { -+ .name = "wifi:red", -+ .gpio = 25, -+ .active_low = 1, -+ }, -+ { -+ .name = "internetkey:red", -+ .gpio = 12, -+ .active_low = 1, -+ }, -+ { -+ .name = "internetkey:blue", -+ .gpio = 13, -+ .active_low = 1, -+ }, -+ }, -+}; -+ - /* - * all boards - */ -@@ -1790,6 +1863,7 @@ static const struct board_info __initdat - &board_nb4_ser_r2, - &board_nb4_fxc_r1, - &board_nb4_fxc_r2, -+ &board_HW553, - #endif - }; - diff --git a/target/linux/brcm63xx/patches-2.6.37/451-board_spw303v.patch b/target/linux/brcm63xx/patches-2.6.37/451-board_spw303v.patch new file mode 100644 index 0000000000..25b7140fba --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/451-board_spw303v.patch @@ -0,0 +1,83 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1741,6 +1741,72 @@ static struct board_info __initdata boar + .spis = nb4_spi_devices, + .num_spis = ARRAY_SIZE(nb4_spi_devices), + }; ++ ++ /* T-Home Speedport W 303V Typ B */ ++static struct board_info __initdata board_spw303v = { ++ .name = "96358-502V", ++ .expected_cpu_id = 0x6358, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .leds = { ++ { ++ .name = "spw303v:green:power+adsl", ++ .gpio = 22, ++ .active_low = 1, ++ }, ++ { ++ .name = "spw303v:red:power+adsl", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "spw303v:green:ppp", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "spw303v:green:ses", ++ .gpio = 0, ++ .active_low = 1, ++ }, ++ { ++ .name = "spw303v:green:voip", ++ .gpio = 27, ++ .active_low = 1, ++ }, ++ { ++ .name = "spw303v:green:pots", ++ .gpio = 31, ++ .active_low = 1, ++ }, ++ }, ++ ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 11, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "ses", ++ .gpio = 37, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ } ++}; + #endif + + static struct board_info __initdata board_HW553 = { +@@ -1858,6 +1924,7 @@ static const struct board_info __initdat + &board_nb4_fxc_r1, + &board_nb4_fxc_r2, + &board_HW553, ++ &board_spw303v, + #endif + }; + diff --git a/target/linux/brcm63xx/patches-2.6.37/452-board_V2500V.patch b/target/linux/brcm63xx/patches-2.6.37/452-board_V2500V.patch new file mode 100644 index 0000000000..4b483d4ec5 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/452-board_V2500V.patch @@ -0,0 +1,112 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -858,6 +858,63 @@ static struct board_info __initdata boar + }, + }; + ++ static struct board_info __initdata board_V2500V_BB = { ++ .name = "V2500V_BB", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .leds = { ++ { ++ .name = "power:green", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "power:red", ++ .gpio = 1, ++ .active_low = 1, ++ }, ++ { ++ .name = "adsl", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { .name = "ppp", ++ .gpio = 3, ++ .active_low = 1, ++ }, ++ { ++ .name = "wireless", ++ .gpio = 6, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 31, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ + #endif + + /* +@@ -1909,6 +1966,7 @@ static const struct board_info __initdat + &board_96348_D4PW, + &board_spw500v, + &board_96348sv, ++ &board_V2500V_BB, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 +@@ -2057,6 +2115,22 @@ void __init board_prom_init(void) + val &= MPI_CSBASE_BASE_MASK; + } + boot_addr = (u8 *)KSEG1ADDR(val); ++ printk(KERN_INFO PFX "Boot address 0x%08x\n",(unsigned int)boot_addr); ++ ++ /* BT Voyager 2500V (RTA1046VW PCB) has 8 Meg flash used as two */ ++ /* banks of 4 Meg. The byte at 0xBF800000 identifies the back to use.*/ ++ /* Loading firmware from the CFE Prompt always loads to Bank 0 */ ++ /* Do an early check of CFE and then select bank 0 */ ++ ++ if (boot_addr == (u8 *)0xbf800000) { ++ u8 *tmp_boot_addr; ++ tmp_boot_addr = (u8 *)0xbfc00000; // Address of Bank 0 ++ memcpy(&nvram, tmp_boot_addr + BCM963XX_NVRAM_OFFSET, sizeof(nvram)); ++ if (!strcmp(nvram.name, "V2500V_BB")) { ++ printk(KERN_INFO PFX "V2500V: nvram bank 0\n"); ++ boot_addr = (u8 *)0xbfc00000; // Bank 0 ++ } ++ } + + /* dump cfe version */ + cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET; +@@ -2264,6 +2338,14 @@ int __init board_register_devices(void) + val = bcm_mpi_readl(MPI_CSBASE_REG(0)); + val &= MPI_CSBASE_BASE_MASK; + } ++ ++ /* BT Voyager 2500V has 8 Meg flash in two 4 Meg banks */ ++ /* Loading from CFE always uses Bank 0 */ ++ if (!strcmp(board.name, "V2500V_BB")) { ++ printk(KERN_INFO PFX "V2500V: Start in Bank 0\n"); ++ val = val + 0x400000; // Select Bank 0 start address ++ } ++ + mtd_resources[0].start = val; + mtd_resources[0].end = 0x1FFFFFFF; + diff --git a/target/linux/brcm63xx/patches-2.6.37/452-board_rta1320_16m.patch b/target/linux/brcm63xx/patches-2.6.37/452-board_rta1320_16m.patch deleted file mode 100644 index 4117606cfa..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/452-board_rta1320_16m.patch +++ /dev/null @@ -1,54 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -178,6 +178,43 @@ static struct board_info __initdata boar - }, - }, - }; -+ -+static struct board_info __initdata board_rta1320_16m = { -+ .name = "RTA1320_16M", -+ .expected_cpu_id = 0x6338, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ -+ .enet0 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .leds = { -+ { -+ .name = "adsl", -+ .gpio = 3, -+ .active_low = 1, -+ }, -+ { -+ .name = "ppp", -+ .gpio = 4, -+ .active_low = 1, -+ }, -+ { -+ .name = "power", -+ .gpio = 0, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ }, -+ { -+ .name = "stop", -+ .gpio = 1, -+ .active_low = 1, -+ }, -+ }, -+}; - #endif - - /* -@@ -1830,6 +1867,7 @@ static const struct board_info __initdat - &board_96338gw, - &board_96338w, - &board_96338w2_e7t, -+ &board_rta1320_16m, - #endif - #ifdef CONFIG_BCM63XX_CPU_6345 - &board_96345gw2, diff --git a/target/linux/brcm63xx/patches-2.6.37/453-board_BTV2110.patch b/target/linux/brcm63xx/patches-2.6.37/453-board_BTV2110.patch new file mode 100644 index 0000000000..9e280b49f5 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/453-board_BTV2110.patch @@ -0,0 +1,73 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -401,6 +401,62 @@ static struct board_info __initdata boar + }, + }; + ++ ++/* BT Voyager 2110 */ ++static struct board_info __initdata board_V2110 = { ++ .name = "V2110", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .leds = { ++ { ++ .name = "V2110:green:power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "V2110:red:power", ++ .gpio = 1, ++ .active_low = 1, ++ }, ++ { ++ .name = "V2110:green:adsl", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { .name = "V2110:green:ppp", ++ .gpio = 3, ++ .active_low = 1, ++ }, ++ { ++ .name = "V2110:green:wireless", ++ .gpio = 6, ++ .active_low = 1, ++ }, ++ }, ++ ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 33, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ ++ + static struct board_info __initdata board_96348gw = { + .name = "96348GW", + .expected_cpu_id = 0x6348, +@@ -1967,6 +2023,7 @@ static const struct board_info __initdat + &board_spw500v, + &board_96348sv, + &board_V2500V_BB, ++ &board_V2110, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/453-board_spw303v.patch b/target/linux/brcm63xx/patches-2.6.37/453-board_spw303v.patch deleted file mode 100644 index 6b3cc4820b..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/453-board_spw303v.patch +++ /dev/null @@ -1,83 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1784,6 +1784,72 @@ static struct board_info __initdata boar - .spis = nb4_spi_devices, - .num_spis = ARRAY_SIZE(nb4_spi_devices), - }; -+ -+ /* T-Home Speedport W 303V Typ B */ -+static struct board_info __initdata board_spw303v = { -+ .name = "96358-502V", -+ .expected_cpu_id = 0x6358, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .leds = { -+ { -+ .name = "spw303v:green:power+adsl", -+ .gpio = 22, -+ .active_low = 1, -+ }, -+ { -+ .name = "spw303v:red:power+adsl", -+ .gpio = 2, -+ .active_low = 1, -+ }, -+ { -+ .name = "spw303v:green:ppp", -+ .gpio = 5, -+ .active_low = 1, -+ }, -+ { -+ .name = "spw303v:green:ses", -+ .gpio = 0, -+ .active_low = 1, -+ }, -+ { -+ .name = "spw303v:green:voip", -+ .gpio = 27, -+ .active_low = 1, -+ }, -+ { -+ .name = "spw303v:green:pots", -+ .gpio = 31, -+ .active_low = 1, -+ }, -+ }, -+ -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 11, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ { -+ .desc = "ses", -+ .gpio = 37, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_WPS_BUTTON, -+ .threshold = 3, -+ }, -+ } -+}; - #endif - - static struct board_info __initdata board_HW553 = { -@@ -1902,6 +1968,7 @@ static const struct board_info __initdat - &board_nb4_fxc_r1, - &board_nb4_fxc_r2, - &board_HW553, -+ &board_spw303v, - #endif - }; - diff --git a/target/linux/brcm63xx/patches-2.6.37/454-board_V2500V.patch b/target/linux/brcm63xx/patches-2.6.37/454-board_V2500V.patch deleted file mode 100644 index 9c4eb89116..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/454-board_V2500V.patch +++ /dev/null @@ -1,112 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -901,6 +901,63 @@ static struct board_info __initdata boar - }, - }; - -+ static struct board_info __initdata board_V2500V_BB = { -+ .name = "V2500V_BB", -+ .expected_cpu_id = 0x6348, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .leds = { -+ { -+ .name = "power:green", -+ .gpio = 0, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ }, -+ { -+ .name = "power:red", -+ .gpio = 1, -+ .active_low = 1, -+ }, -+ { -+ .name = "adsl", -+ .gpio = 2, -+ .active_low = 1, -+ }, -+ { .name = "ppp", -+ .gpio = 3, -+ .active_low = 1, -+ }, -+ { -+ .name = "wireless", -+ .gpio = 6, -+ .active_low = 1, -+ }, -+ }, -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 31, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ }, -+}; -+ - #endif - - /* -@@ -1953,6 +2010,7 @@ static const struct board_info __initdat - &board_spw500v, - &board_ct536_ct5621, - &board_96348sv, -+ &board_V2500V_BB, - #endif - - #ifdef CONFIG_BCM63XX_CPU_6358 -@@ -2101,6 +2159,22 @@ void __init board_prom_init(void) - val &= MPI_CSBASE_BASE_MASK; - } - boot_addr = (u8 *)KSEG1ADDR(val); -+ printk(KERN_INFO PFX "Boot address 0x%08x\n",(unsigned int)boot_addr); -+ -+ /* BT Voyager 2500V (RTA1046VW PCB) has 8 Meg flash used as two */ -+ /* banks of 4 Meg. The byte at 0xBF800000 identifies the back to use.*/ -+ /* Loading firmware from the CFE Prompt always loads to Bank 0 */ -+ /* Do an early check of CFE and then select bank 0 */ -+ -+ if (boot_addr == (u8 *)0xbf800000) { -+ u8 *tmp_boot_addr; -+ tmp_boot_addr = (u8 *)0xbfc00000; // Address of Bank 0 -+ memcpy(&nvram, tmp_boot_addr + BCM963XX_NVRAM_OFFSET, sizeof(nvram)); -+ if (!strcmp(nvram.name, "V2500V_BB")) { -+ printk(KERN_INFO PFX "V2500V: nvram bank 0\n"); -+ boot_addr = (u8 *)0xbfc00000; // Bank 0 -+ } -+ } - - /* dump cfe version */ - cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET; -@@ -2308,6 +2382,14 @@ int __init board_register_devices(void) - val = bcm_mpi_readl(MPI_CSBASE_REG(0)); - val &= MPI_CSBASE_BASE_MASK; - } -+ -+ /* BT Voyager 2500V has 8 Meg flash in two 4 Meg banks */ -+ /* Loading from CFE always uses Bank 0 */ -+ if (!strcmp(board.name, "V2500V_BB")) { -+ printk(KERN_INFO PFX "V2500V: Start in Bank 0\n"); -+ val = val + 0x400000; // Select Bank 0 start address -+ } -+ - mtd_resources[0].start = val; - mtd_resources[0].end = 0x1FFFFFFF; - diff --git a/target/linux/brcm63xx/patches-2.6.37/454-board_livebox.patch b/target/linux/brcm63xx/patches-2.6.37/454-board_livebox.patch new file mode 100644 index 0000000000..6c390456cb --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/454-board_livebox.patch @@ -0,0 +1,251 @@ +--- a/arch/mips/bcm63xx/boards/Kconfig ++++ b/arch/mips/bcm63xx/boards/Kconfig +@@ -8,4 +8,10 @@ config BOARD_BCM963XX + select SSB + help + ++config BOARD_LIVEBOX ++ bool "Inventel Livebox(es) boards" ++ select SSB ++ help ++ Inventel Livebox boards using the RedBoot bootloader. ++ + endchoice +--- a/arch/mips/bcm63xx/boards/Makefile ++++ b/arch/mips/bcm63xx/boards/Makefile +@@ -1,3 +1,4 @@ + obj-$(CONFIG_BOARD_BCM963XX) += board_bcm963xx.o ++obj-$(CONFIG_BOARD_LIVEBOX) += board_livebox.o + + EXTRA_CFLAGS += -Werror +--- /dev/null ++++ b/arch/mips/bcm63xx/boards/board_livebox.c +@@ -0,0 +1,228 @@ ++/* ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file "COPYING" in the main directory of this archive ++ * for more details. ++ * ++ * Copyright (C) 2008 Florian Fainelli ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define PFX "board_livebox: " ++ ++static unsigned int mac_addr_used = 0; ++static struct board_info board; ++ ++/* ++ * known 6348 boards ++ */ ++#ifdef CONFIG_BCM63XX_CPU_6348 ++static struct board_info __initdata board_livebox = { ++ .name = "Livebox", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ .has_ehci0 = 1, ++}; ++#endif ++ ++/* ++ * all boards ++ */ ++static const struct board_info __initdata *bcm963xx_boards[] = { ++#ifdef CONFIG_BCM63XX_CPU_6348 ++ &board_livebox ++#endif ++}; ++ ++/* ++ * early init callback ++ */ ++void __init board_prom_init(void) ++{ ++ u32 val; ++ ++ /* read base address of boot chip select (0) */ ++ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); ++ val &= MPI_CSBASE_BASE_MASK; ++ ++ /* assume board is a Livebox */ ++ memcpy(&board, bcm963xx_boards[0], sizeof(board)); ++ ++ /* setup pin multiplexing depending on board enabled device, ++ * this has to be done this early since PCI init is done ++ * inside arch_initcall */ ++ val = 0; ++ ++ if (board.has_pci) { ++ bcm63xx_pci_enabled = 1; ++ if (BCMCPU_IS_6348()) ++ val |= GPIO_MODE_6348_G2_PCI; ++ } ++ ++ if (board.has_pccard) { ++ if (BCMCPU_IS_6348()) ++ val |= GPIO_MODE_6348_G1_MII_PCCARD; ++ } ++ ++ if (board.has_enet0 && !board.enet0.use_internal_phy) { ++ if (BCMCPU_IS_6348()) ++ val |= GPIO_MODE_6348_G3_EXT_MII | ++ GPIO_MODE_6348_G0_EXT_MII; ++ } ++ ++ if (board.has_enet1 && !board.enet1.use_internal_phy) { ++ if (BCMCPU_IS_6348()) ++ val |= GPIO_MODE_6348_G3_EXT_MII | ++ GPIO_MODE_6348_G0_EXT_MII; ++ } ++ ++ bcm_gpio_writel(val, GPIO_MODE_REG); ++} ++ ++/* ++ * second stage init callback, good time to panic if we couldn't ++ * identify on which board we're running since early printk is working ++ */ ++void __init board_setup(void) ++{ ++ if (!board.name[0]) ++ panic("unable to detect bcm963xx board"); ++ printk(KERN_INFO PFX "board name: %s\n", board.name); ++ ++ /* make sure we're running on expected cpu */ ++ if (bcm63xx_get_cpu_id() != board.expected_cpu_id) ++ panic("unexpected CPU for bcm963xx board"); ++} ++ ++/* ++ * return board name for /proc/cpuinfo ++ */ ++const char *board_get_name(void) ++{ ++ return board.name; ++} ++ ++/* ++ * register & return a new board mac address ++ */ ++ ++static int board_get_mac_address(u8 *mac) ++{ ++ u8 default_mac[ETH_ALEN] = {0x00, 0x07, 0x3A, 0x00, 0x00, 0x00}; ++ u8 *p; ++ int count; ++ ++ memcpy(mac, default_mac, ETH_ALEN); ++ ++ p = mac + ETH_ALEN - 1; ++ count = mac_addr_used; ++ ++ while (count--) { ++ do { ++ (*p)++; ++ if (*p != 0) ++ break; ++ p--; ++ } while (p != mac); ++ } ++ ++ if (p == mac) { ++ printk(KERN_ERR PFX "unable to fetch mac address\n"); ++ return -ENODEV; ++ } ++ mac_addr_used++; ++ ++ return 0; ++} ++ ++static struct resource mtd_resources[] = { ++ { ++ .start = 0, /* filled at runtime */ ++ .end = 0, /* filled at runtime */ ++ .flags = IORESOURCE_MEM, ++ } ++}; ++ ++static struct platform_device mtd_dev = { ++ .name = "bcm963xx-flash", ++ .resource = mtd_resources, ++ .num_resources = ARRAY_SIZE(mtd_resources), ++}; ++ ++ ++/* ++ * third stage init callback, register all board devices. ++ */ ++int __init board_register_devices(void) ++{ ++ u32 val; ++ ++ if (board.has_uart0) ++ bcm63xx_uart_register(0); ++ ++ if (board.has_pccard) ++ bcm63xx_pcmcia_register(); ++ ++ if (board.has_enet0 && ++ !board_get_mac_address(board.enet0.mac_addr)) ++ bcm63xx_enet_register(0, &board.enet0); ++ ++ if (board.has_enet1 && ++ !board_get_mac_address(board.enet1.mac_addr)) ++ bcm63xx_enet_register(1, &board.enet1); ++ ++ if (board.has_ohci0) ++ bcm63xx_ohci_register(); ++ ++ if (board.has_ehci0) ++ bcm63xx_ehci_register(); ++ ++ ++ /* read base address of boot chip select (0) */ ++ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); ++ val &= MPI_CSBASE_BASE_MASK; ++ mtd_resources[0].start = val; ++ mtd_resources[0].end = 0x1FFFFFFF; ++ ++ platform_device_register(&mtd_dev); ++ ++ return 0; ++} ++ diff --git a/target/linux/brcm63xx/patches-2.6.37/455-board_BTV2110.patch b/target/linux/brcm63xx/patches-2.6.37/455-board_BTV2110.patch deleted file mode 100644 index 505fb819bd..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/455-board_BTV2110.patch +++ /dev/null @@ -1,73 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -444,6 +444,62 @@ static struct board_info __initdata boar - }, - }; - -+ -+/* BT Voyager 2110 */ -+static struct board_info __initdata board_V2110 = { -+ .name = "V2110", -+ .expected_cpu_id = 0x6348, -+ -+ .has_uart0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .leds = { -+ { -+ .name = "V2110:green:power", -+ .gpio = 0, -+ .active_low = 1, -+ .default_trigger = "default-on", -+ }, -+ { -+ .name = "V2110:red:power", -+ .gpio = 1, -+ .active_low = 1, -+ }, -+ { -+ .name = "V2110:green:adsl", -+ .gpio = 2, -+ .active_low = 1, -+ }, -+ { .name = "V2110:green:ppp", -+ .gpio = 3, -+ .active_low = 1, -+ }, -+ { -+ .name = "V2110:green:wireless", -+ .gpio = 6, -+ .active_low = 1, -+ }, -+ }, -+ -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 33, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .threshold = 3, -+ }, -+ }, -+}; -+ -+ - static struct board_info __initdata board_96348gw = { - .name = "96348GW", - .expected_cpu_id = 0x6348, -@@ -2009,6 +2065,7 @@ static const struct board_info __initdat - &board_96348_D4PW, - &board_spw500v, - &board_ct536_ct5621, -+ &board_V2110, - &board_96348sv, - &board_V2500V_BB, - #endif diff --git a/target/linux/brcm63xx/patches-2.6.37/455-board_ct536_ct5621.patch b/target/linux/brcm63xx/patches-2.6.37/455-board_ct536_ct5621.patch new file mode 100644 index 0000000000..1af07ae112 --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.37/455-board_ct536_ct5621.patch @@ -0,0 +1,60 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -457,6 +457,49 @@ static struct board_info __initdata boar + }; + + ++static struct board_info __initdata board_ct536_ct5621 = { ++ .name = "CT536_CT5621", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 0, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ .has_ehci0 = 1, ++ ++ .leds = { ++ { ++ .name = "adsl-fail", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 33, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ + static struct board_info __initdata board_96348gw = { + .name = "96348GW", + .expected_cpu_id = 0x6348, +@@ -2024,6 +2067,7 @@ static const struct board_info __initdat + &board_96348sv, + &board_V2500V_BB, + &board_V2110, ++ &board_ct536_ct5621, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-2.6.37/456-board_livebox.patch b/target/linux/brcm63xx/patches-2.6.37/456-board_livebox.patch deleted file mode 100644 index 6c390456cb..0000000000 --- a/target/linux/brcm63xx/patches-2.6.37/456-board_livebox.patch +++ /dev/null @@ -1,251 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/Kconfig -+++ b/arch/mips/bcm63xx/boards/Kconfig -@@ -8,4 +8,10 @@ config BOARD_BCM963XX - select SSB - help - -+config BOARD_LIVEBOX -+ bool "Inventel Livebox(es) boards" -+ select SSB -+ help -+ Inventel Livebox boards using the RedBoot bootloader. -+ - endchoice ---- a/arch/mips/bcm63xx/boards/Makefile -+++ b/arch/mips/bcm63xx/boards/Makefile -@@ -1,3 +1,4 @@ - obj-$(CONFIG_BOARD_BCM963XX) += board_bcm963xx.o -+obj-$(CONFIG_BOARD_LIVEBOX) += board_livebox.o - - EXTRA_CFLAGS += -Werror ---- /dev/null -+++ b/arch/mips/bcm63xx/boards/board_livebox.c -@@ -0,0 +1,228 @@ -+/* -+ * This file is subject to the terms and conditions of the GNU General Public -+ * License. See the file "COPYING" in the main directory of this archive -+ * for more details. -+ * -+ * Copyright (C) 2008 Florian Fainelli -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define PFX "board_livebox: " -+ -+static unsigned int mac_addr_used = 0; -+static struct board_info board; -+ -+/* -+ * known 6348 boards -+ */ -+#ifdef CONFIG_BCM63XX_CPU_6348 -+static struct board_info __initdata board_livebox = { -+ .name = "Livebox", -+ .expected_cpu_id = 0x6348, -+ -+ .has_uart0 = 1, -+ .has_enet0 = 1, -+ .has_enet1 = 1, -+ .has_pci = 1, -+ -+ .enet0 = { -+ .has_phy = 1, -+ .use_internal_phy = 1, -+ }, -+ -+ .enet1 = { -+ .force_speed_100 = 1, -+ .force_duplex_full = 1, -+ }, -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ .has_ehci0 = 1, -+}; -+#endif -+ -+/* -+ * all boards -+ */ -+static const struct board_info __initdata *bcm963xx_boards[] = { -+#ifdef CONFIG_BCM63XX_CPU_6348 -+ &board_livebox -+#endif -+}; -+ -+/* -+ * early init callback -+ */ -+void __init board_prom_init(void) -+{ -+ u32 val; -+ -+ /* read base address of boot chip select (0) */ -+ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); -+ val &= MPI_CSBASE_BASE_MASK; -+ -+ /* assume board is a Livebox */ -+ memcpy(&board, bcm963xx_boards[0], sizeof(board)); -+ -+ /* setup pin multiplexing depending on board enabled device, -+ * this has to be done this early since PCI init is done -+ * inside arch_initcall */ -+ val = 0; -+ -+ if (board.has_pci) { -+ bcm63xx_pci_enabled = 1; -+ if (BCMCPU_IS_6348()) -+ val |= GPIO_MODE_6348_G2_PCI; -+ } -+ -+ if (board.has_pccard) { -+ if (BCMCPU_IS_6348()) -+ val |= GPIO_MODE_6348_G1_MII_PCCARD; -+ } -+ -+ if (board.has_enet0 && !board.enet0.use_internal_phy) { -+ if (BCMCPU_IS_6348()) -+ val |= GPIO_MODE_6348_G3_EXT_MII | -+ GPIO_MODE_6348_G0_EXT_MII; -+ } -+ -+ if (board.has_enet1 && !board.enet1.use_internal_phy) { -+ if (BCMCPU_IS_6348()) -+ val |= GPIO_MODE_6348_G3_EXT_MII | -+ GPIO_MODE_6348_G0_EXT_MII; -+ } -+ -+ bcm_gpio_writel(val, GPIO_MODE_REG); -+} -+ -+/* -+ * second stage init callback, good time to panic if we couldn't -+ * identify on which board we're running since early printk is working -+ */ -+void __init board_setup(void) -+{ -+ if (!board.name[0]) -+ panic("unable to detect bcm963xx board"); -+ printk(KERN_INFO PFX "board name: %s\n", board.name); -+ -+ /* make sure we're running on expected cpu */ -+ if (bcm63xx_get_cpu_id() != board.expected_cpu_id) -+ panic("unexpected CPU for bcm963xx board"); -+} -+ -+/* -+ * return board name for /proc/cpuinfo -+ */ -+const char *board_get_name(void) -+{ -+ return board.name; -+} -+ -+/* -+ * register & return a new board mac address -+ */ -+ -+static int board_get_mac_address(u8 *mac) -+{ -+ u8 default_mac[ETH_ALEN] = {0x00, 0x07, 0x3A, 0x00, 0x00, 0x00}; -+ u8 *p; -+ int count; -+ -+ memcpy(mac, default_mac, ETH_ALEN); -+ -+ p = mac + ETH_ALEN - 1; -+ count = mac_addr_used; -+ -+ while (count--) { -+ do { -+ (*p)++; -+ if (*p != 0) -+ break; -+ p--; -+ } while (p != mac); -+ } -+ -+ if (p == mac) { -+ printk(KERN_ERR PFX "unable to fetch mac address\n"); -+ return -ENODEV; -+ } -+ mac_addr_used++; -+ -+ return 0; -+} -+ -+static struct resource mtd_resources[] = { -+ { -+ .start = 0, /* filled at runtime */ -+ .end = 0, /* filled at runtime */ -+ .flags = IORESOURCE_MEM, -+ } -+}; -+ -+static struct platform_device mtd_dev = { -+ .name = "bcm963xx-flash", -+ .resource = mtd_resources, -+ .num_resources = ARRAY_SIZE(mtd_resources), -+}; -+ -+ -+/* -+ * third stage init callback, register all board devices. -+ */ -+int __init board_register_devices(void) -+{ -+ u32 val; -+ -+ if (board.has_uart0) -+ bcm63xx_uart_register(0); -+ -+ if (board.has_pccard) -+ bcm63xx_pcmcia_register(); -+ -+ if (board.has_enet0 && -+ !board_get_mac_address(board.enet0.mac_addr)) -+ bcm63xx_enet_register(0, &board.enet0); -+ -+ if (board.has_enet1 && -+ !board_get_mac_address(board.enet1.mac_addr)) -+ bcm63xx_enet_register(1, &board.enet1); -+ -+ if (board.has_ohci0) -+ bcm63xx_ohci_register(); -+ -+ if (board.has_ehci0) -+ bcm63xx_ehci_register(); -+ -+ -+ /* read base address of boot chip select (0) */ -+ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); -+ val &= MPI_CSBASE_BASE_MASK; -+ mtd_resources[0].start = val; -+ mtd_resources[0].end = 0x1FFFFFFF; -+ -+ platform_device_register(&mtd_dev); -+ -+ return 0; -+} -+