Now that we can configure the switches through DT, do so.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
reg = <0x1fe0000 0x20000>;
};
};
+
+&lsspi {
+ switch@1 {
+ compatible = "brcm,bcm53115";
+ reg = <1>;
+ spi-max-frequency = <781000>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ wan@0 {
+ reg = <0>;
+ label = "wan";
+ };
+
+ lan@1 {
+ reg = <1>;
+ label = "lan1";
+ };
+
+ lan@2 {
+ reg = <2>;
+ label = "lan2";
+ };
+
+ lan@3 {
+ reg = <3>;
+ label = "lan3";
+ };
+
+ lan@4 {
+ reg = <4>;
+ label = "lan4";
+ };
+
+ cpu@8 {
+ reg = <8>;
+ label = "cpu";
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+ };
+ };
+ };
+};
reg = <0x7f0000 0x010000>;
};
};
+
+&lsspi {
+ switch@0 {
+ compatible = "brcm,bcm53115";
+ reg = <0>;
+ spi-max-frequency = <781000>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ lan@0 {
+ reg = <0>;
+ label = "lan4";
+ };
+
+ lan@1 {
+ reg = <1>;
+ label = "lan3";
+ };
+
+ lan@2 {
+ reg = <2>;
+ label = "lan2";
+ };
+
+ lan@3 {
+ reg = <3>;
+ label = "lan1";
+ };
+
+ wan@4 {
+ reg = <4>;
+ label = "wan";
+ };
+
+ cpu@5 {
+ reg = <5>;
+ label = "cpu";
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ asym-pause;
+ pause;
+ };
+ };
+ };
+ };
+};
+++ /dev/null
---- a/arch/mips/bcm63xx/boards/board_common.c
-+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -12,6 +12,7 @@
- #include <linux/string.h>
- #include <linux/platform_device.h>
- #include <linux/ssb/ssb.h>
-+#include <linux/spi/spi.h>
- #include <asm/addrspace.h>
- #include <bcm63xx_board.h>
- #include <bcm63xx_cpu.h>
-@@ -207,6 +208,9 @@ int __init board_register_devices(void)
-
- bcm63xx_hsspi_register();
-
-+ if (board.num_spis)
-+ spi_register_board_info(board.spis, board.num_spis);
-+
- bcm63xx_flash_register();
-
- bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds);
---- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-@@ -53,6 +53,10 @@ struct board_info {
-
- /* External PHY reset GPIO flags from gpio.h */
- unsigned long ephy_reset_gpio_flags;
-+
-+ /* Additional platform devices */
-+ struct spi_board_info *spis;
-+ unsigned int num_spis;
- };
-
- #endif /* ! BOARD_BCM963XX_H_ */
* _REG relative to RSET_USBD
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -127,6 +127,15 @@ void __init board_early_setup(const stru
+@@ -126,6 +126,15 @@ void __init board_early_setup(const stru
}
bcm_gpio_writel(val, GPIO_MODE_REG);
#endif /* BCM63XX_DEV_USB_OHCI_H_ */
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -167,6 +167,8 @@ static struct platform_device bcm63xx_gp
+@@ -166,6 +166,8 @@ static struct platform_device bcm63xx_gp
*/
int __init board_register_devices(void)
{
if (board.has_uart0)
bcm63xx_uart_register(0);
-@@ -188,14 +190,21 @@ int __init board_register_devices(void)
+@@ -187,14 +189,21 @@ int __init board_register_devices(void)
!board_get_mac_address(board.enetsw.mac_addr))
bcm63xx_enetsw_register(&board.enetsw);
u8 *boot_addr, *cfe;
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -14,6 +14,8 @@
+@@ -13,6 +13,8 @@
+ #include <linux/platform_device.h>
#include <linux/ssb/ssb.h>
- #include <linux/spi/spi.h>
#include <asm/addrspace.h>
+#include <asm/bootinfo.h>
+#include <asm/fw/cfe/cfe_api.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
#include <bcm63xx_dev_uart.h>
-@@ -32,6 +34,8 @@
+@@ -31,6 +33,8 @@
#include <bcm63xx_dev_usb_usbd.h>
#include <board_bcm963xx.h>
#define PFX "board: "
static struct board_info board;
-@@ -82,6 +86,15 @@ const char *board_get_name(void)
+@@ -81,6 +85,15 @@ const char *board_get_name(void)
return board.name;
}
obj-y += boards/
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -41,44 +41,6 @@
+@@ -40,44 +40,6 @@
static struct board_info board;
/*
* return board name for /proc/cpuinfo
*/
const char *board_get_name(void)
-@@ -181,6 +143,7 @@ static struct platform_device bcm63xx_gp
+@@ -180,6 +142,7 @@ static struct platform_device bcm63xx_gp
int __init board_register_devices(void)
{
int usbh_ports = 0;
if (board.has_uart0)
bcm63xx_uart_register(0);
-@@ -225,15 +188,10 @@ int __init board_register_devices(void)
+@@ -224,15 +187,10 @@ int __init board_register_devices(void)
/* Generate MAC address for WLAN and register our SPROM,
* do this after registering enet devices
*/
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -143,7 +143,6 @@ static struct platform_device bcm63xx_gp
+@@ -142,7 +142,6 @@ static struct platform_device bcm63xx_gp
int __init board_register_devices(void)
{
int usbh_ports = 0;
if (board.has_uart0)
bcm63xx_uart_register(0);
-@@ -189,8 +188,8 @@ int __init board_register_devices(void)
+@@ -188,8 +187,8 @@ int __init board_register_devices(void)
* do this after registering enet devices
*/
/*
* flash mapping
-@@ -55,6 +56,9 @@ struct board_info {
+@@ -54,6 +55,9 @@ struct board_info {
+
/* External PHY reset GPIO flags from gpio.h */
unsigned long ephy_reset_gpio_flags;
-
++
+ /* fallback sprom config */
+ struct fallback_sprom_data fallback_sprom;
-+
- /* Additional platform devices */
- struct spi_board_info *spis;
- unsigned int num_spis;
+ };
+
+ #endif /* ! BOARD_BCM963XX_H_ */
.has_phy = 1,
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -188,8 +188,9 @@ int __init board_register_devices(void)
+@@ -187,8 +187,9 @@ int __init board_register_devices(void)
* do this after registering enet devices
*/
select SSB
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -10,12 +10,15 @@
+@@ -10,11 +10,14 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/string.h>
+#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/ssb/ssb.h>
- #include <linux/spi/spi.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <asm/fw/cfe/cfe_api.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
#include <bcm63xx_dev_uart.h>
-@@ -127,8 +130,23 @@ void __init board_setup(void)
+@@ -126,8 +129,23 @@ void __init board_setup(void)
/* make sure we're running on expected cpu */
if (bcm63xx_get_cpu_id() != board.expected_cpu_id)
panic("unexpected CPU for bcm963xx board");
static struct gpio_led_platform_data bcm63xx_led_data;
static struct platform_device bcm63xx_gpio_leds = {
-@@ -137,6 +155,13 @@ static struct platform_device bcm63xx_gp
+@@ -136,6 +154,13 @@ static struct platform_device bcm63xx_gp
.dev.platform_data = &bcm63xx_led_data,
};
/*
* third stage init callback, register all board devices.
*/
-@@ -144,6 +169,15 @@ int __init board_register_devices(void)
+@@ -143,6 +168,15 @@ int __init board_register_devices(void)
{
int usbh_ports = 0;
if (strncmp(board_name, bcm963xx_boards[i]->name, 16))
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -247,3 +247,21 @@ int __init board_register_devices(void)
+@@ -243,3 +243,21 @@ int __init board_register_devices(void)
return 0;
}
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -145,6 +145,18 @@ void __init device_tree_init(void)
+@@ -144,6 +144,18 @@ void __init device_tree_init(void)
unflatten_and_copy_device_tree();
}
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -190,6 +190,8 @@ int __init board_register_devices(void)
+@@ -189,6 +189,8 @@ int __init board_register_devices(void)
}
#endif
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -255,9 +255,10 @@ int __init board_register_devices(void)
+@@ -251,9 +251,10 @@ int __init board_register_devices(void)
platform_device_register(&bcm63xx_gpio_leds);
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -104,6 +104,15 @@ void __init board_early_setup(const stru
+@@ -103,6 +103,15 @@ void __init board_early_setup(const stru
GPIO_MODE_6348_G0_EXT_MII;
}
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -29,9 +29,7 @@
+@@ -28,9 +28,7 @@
#include <bcm63xx_dev_enet.h>
#include <bcm63xx_dev_dsp.h>
#include <bcm63xx_dev_flash.h>
#include <bcm63xx_dev_usb_ehci.h>
#include <bcm63xx_dev_usb_ohci.h>
#include <bcm63xx_dev_usb_usbd.h>
-@@ -250,10 +248,6 @@ int __init board_register_devices(void)
+@@ -249,10 +247,6 @@ int __init board_register_devices(void)
bcm63xx_register_fallback_sprom(&board.fallback_sprom)))
pr_err(PFX "failed to register fallback SPROM\n");
-
- bcm63xx_hsspi_register();
-
- if (board.num_spis)
- spi_register_board_info(board.spis, board.num_spis);
+ bcm63xx_flash_register();
+ bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds);
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -100,6 +100,8 @@ void __init board_early_setup(const stru
+@@ -99,6 +99,8 @@ void __init board_early_setup(const stru
if (BCMCPU_IS_6348())
val |= GPIO_MODE_6348_G3_EXT_MII |
GPIO_MODE_6348_G0_EXT_MII;
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -34,6 +34,7 @@
+@@ -33,6 +33,7 @@
#include <bcm63xx_dev_usb_ohci.h>
#include <bcm63xx_dev_usb_usbd.h>
#include <board_bcm963xx.h>
#include "board_common.h"
-@@ -189,6 +190,7 @@ static struct of_device_id of_ids[] = {
+@@ -188,6 +189,7 @@ static struct of_device_id of_ids[] = {
int __init board_register_devices(void)
{
int usbh_ports = 0;
#if CONFIG_OF
if (of_have_populated_dt()) {
-@@ -265,6 +267,10 @@ int __init board_register_devices(void)
+@@ -261,6 +263,10 @@ int __init board_register_devices(void)
board.ephy_reset_gpio_flags);
}
return;
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -269,7 +269,8 @@ int __init board_register_devices(void)
+@@ -265,7 +265,8 @@ int __init board_register_devices(void)
/* register any fixups */
for (i = 0; i < board.has_caldata; i++)
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -270,7 +270,7 @@ int __init board_register_devices(void)
+@@ -266,7 +266,7 @@ int __init board_register_devices(void)
/* register any fixups */
for (i = 0; i < board.has_caldata; i++)
pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
obj-y += boards/
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -35,6 +35,7 @@
+@@ -34,6 +34,7 @@
#include <bcm63xx_dev_usb_usbd.h>
#include <board_bcm963xx.h>
#include <pci_ath9k_fixup.h>
#include "board_common.h"
-@@ -268,9 +269,19 @@ int __init board_register_devices(void)
+@@ -264,9 +265,19 @@ int __init board_register_devices(void)
}
/* register any fixups */
+obj-$(CONFIG_BOARD_LIVEBOX) += board_livebox.o
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -57,7 +57,7 @@ void __init board_prom_init(void)
+@@ -56,7 +56,7 @@ void __init board_prom_init(void)
if (fw_arg3 == CFE_EPTSEAL)
board_bcm963xx_init();
else
#endif
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -84,12 +84,25 @@ void __init board_early_setup(const stru
+@@ -83,12 +83,25 @@ void __init board_early_setup(const stru
bcm63xx_pci_enabled = 1;
if (BCMCPU_IS_6348())
val |= GPIO_MODE_6348_G2_PCI;
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -13,6 +13,8 @@
- #include <linux/kernel.h>
- #include <linux/string.h>
- #include <linux/pci_ids.h>
-+#include <linux/platform_data/b53.h>
-+#include <linux/spi/spi.h>
- #include <asm/addrspace.h>
- #include <bcm63xx_board.h>
- #include <bcm63xx_cpu.h>
-@@ -1681,6 +1683,65 @@ static struct board_info __initdata boar
+@@ -1681,6 +1681,48 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
};
+
-+static struct b53_platform_data WAP5813n_b53_pdata = {
-+ .alias = "eth0",
-+};
-+
-+static struct spi_board_info WAP5813n_spi_devices[] = {
-+ {
-+ .modalias = "b53-switch",
-+ .max_speed_hz = 781000,
-+ .bus_num = 0,
-+ .chip_select = 0,
-+ .platform_data = &WAP5813n_b53_pdata,
-+ }
-+};
-+
+static struct sprom_fixup __initdata wap5813n_fixups[] = {
+ { .offset = 97, .value = 0xfeed },
+ { .offset = 98, .value = 0x15d1 },
+ .board_fixups = wap5813n_fixups,
+ .num_board_fixups = ARRAY_SIZE(wap5813n_fixups),
+ },
-+
-+ .spis = WAP5813n_spi_devices,
-+ .num_spis = ARRAY_SIZE(WAP5813n_spi_devices),
+};
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
-@@ -1917,6 +1978,7 @@ static const struct board_info __initcon
+@@ -1917,6 +1959,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
&board_963268bu_p300,
-@@ -2009,6 +2071,7 @@ static struct of_device_id const bcm963x
+@@ -2009,6 +2052,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6368
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1684,6 +1684,60 @@ static struct board_info __initdata boar
+@@ -1682,6 +1682,60 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
+ },
+};
+
- static struct b53_platform_data WAP5813n_b53_pdata = {
- .alias = "eth0",
- };
-@@ -1978,6 +2032,7 @@ static const struct board_info __initcon
+ static struct sprom_fixup __initdata wap5813n_fixups[] = {
+ { .offset = 97, .value = 0xfeed },
+ { .offset = 98, .value = 0x15d1 },
+@@ -1959,6 +2013,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
&board_WAP5813n,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
-@@ -2071,6 +2126,7 @@ static struct of_device_id const bcm963x
+@@ -2052,6 +2107,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6368
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1738,6 +1738,60 @@ static struct board_info __initdata boar
+@@ -1736,6 +1736,60 @@ static struct board_info __initdata boar
},
};
+ },
+};
+
- static struct b53_platform_data WAP5813n_b53_pdata = {
- .alias = "eth0",
- };
-@@ -2033,6 +2087,7 @@ static const struct board_info __initcon
+ static struct sprom_fixup __initdata wap5813n_fixups[] = {
+ { .offset = 97, .value = 0xfeed },
+ { .offset = 98, .value = 0x15d1 },
+@@ -2014,6 +2068,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_VR3025u,
&board_WAP5813n,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
-@@ -2127,6 +2182,7 @@ static struct of_device_id const bcm963x
+@@ -2108,6 +2163,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1693,6 +1693,49 @@ static struct sprom_fixup __initdata vr3
+@@ -1691,6 +1691,49 @@ static struct sprom_fixup __initdata vr3
{ .offset = 115, .value = 0xfad9 },
};
static struct board_info __initdata board_VR3025u = {
.name = "96368M-1541N",
.expected_cpu_id = 0x6368,
-@@ -2086,6 +2129,7 @@ static const struct board_info __initcon
+@@ -2067,6 +2110,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
&board_VR3025u,
&board_VR3025un,
&board_WAP5813n,
-@@ -2184,6 +2228,7 @@ static struct of_device_id const bcm963x
+@@ -2165,6 +2209,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1364,6 +1364,37 @@ static struct board_info __initdata boar
+@@ -1362,6 +1362,37 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_HW553 = {
.name = "HW553",
.expected_cpu_id = 0x6358,
-@@ -2113,6 +2144,7 @@ static const struct board_info __initcon
+@@ -2094,6 +2125,7 @@ static const struct board_info __initcon
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
&board_ct6373_1,
&board_HW553,
&board_HW556_A,
&board_HW556_B,
-@@ -2205,6 +2237,7 @@ static struct of_device_id const bcm963x
+@@ -2186,6 +2218,7 @@ static struct of_device_id const bcm963x
{ .compatible = "d-link,dsl-274xb-c2", .data = &board_dsl_274xb_rev_c, },
{ .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, },
{ .compatible = "d-link,dva-g3810bn/tl", .data = &board_DVAG3810BN, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -358,6 +358,50 @@ static struct board_info __initdata boar
+@@ -356,6 +356,50 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_A4001N1 = {
.name = "963281T_TEF",
.expected_cpu_id = 0x6328,
-@@ -2095,6 +2139,7 @@ static const struct board_info __initcon
+@@ -2076,6 +2120,7 @@ static const struct board_info __initcon
&board_AR5381u,
&board_AR5387un,
&board_963281TAN,
&board_A4001N1,
&board_dsl_274xb_f1,
&board_FAST2704V2,
-@@ -2183,6 +2228,7 @@ static struct of_device_id const bcm963x
+@@ -2164,6 +2209,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96318ref_p300", .data = &board_96318ref_p300, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -147,6 +147,75 @@ static struct board_info __initdata boar
+@@ -145,6 +145,75 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
-@@ -2133,6 +2202,7 @@ static const struct board_info __initcon
+@@ -2114,6 +2183,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
&board_96318ref_p300,
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
-@@ -2226,6 +2296,7 @@ static struct of_device_id const bcm963x
+@@ -2207,6 +2277,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6318
{ .compatible = "brcm,bcm96318ref", .data = &board_96318ref, },
{ .compatible = "brcm,bcm96318ref_p300", .data = &board_96318ref_p300, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1828,6 +1828,48 @@ static struct board_info __initdata boar
+@@ -1826,6 +1826,31 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
-+static struct b53_platform_data DGND3700v1_3800B_b53_pdata = {
-+ .alias = "eth0",
-+};
-+
-+static struct spi_board_info DGND3700v1_3800B_spi_devices[] = {
-+ {
-+ .modalias = "b53-switch",
-+ .max_speed_hz = 781000,
-+ .bus_num = 0,
-+ .chip_select = 1,
-+ .platform_data = &DGND3700v1_3800B_b53_pdata,
-+ }
-+};
-+
+static struct board_info __initdata board_DGND3700v1_3800B = {
+ .name = "DGND3700v1_3800B",
+ .expected_cpu_id = 0x6368,
+ },
+ },
+ },
-+
-+ .spis = DGND3700v1_3800B_spi_devices,
-+ .num_spis = ARRAY_SIZE(DGND3700v1_3800B_spi_devices),
+};
+
static struct sprom_fixup __initdata vr3025u_fixups[] = {
{ .offset = 97, .value = 0xfeb3 },
{ .offset = 98, .value = 0x1618 },
-@@ -2276,6 +2318,7 @@ static const struct board_info __initcon
+@@ -2257,6 +2282,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
-@@ -2378,6 +2421,7 @@ static struct of_device_id const bcm963x
+@@ -2359,6 +2385,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1477,6 +1477,32 @@ static struct board_info __initdata boar
+@@ -1475,6 +1475,32 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_HW520 = {
.name = "HW6358GW_B",
.expected_cpu_id = 0x6358,
-@@ -2301,6 +2327,7 @@ static const struct board_info __initcon
+@@ -2265,6 +2291,7 @@ static const struct board_info __initcon
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
&board_ct6373_1,
&board_HW520,
&board_HW553,
&board_HW556_A,
-@@ -2410,6 +2437,7 @@ static struct of_device_id const bcm963x
+@@ -2374,6 +2401,7 @@ static struct of_device_id const bcm963x
{ .compatible = "sfr,nb4-fxc-r1", .data = &board_nb4_fxc_r1, },
{ .compatible = "t-com,spw303v", .data = &board_spw303v, },
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1896,6 +1896,53 @@ static struct board_info __initdata boar
- .num_spis = ARRAY_SIZE(DGND3700v1_3800B_spi_devices),
+@@ -1877,6 +1877,53 @@ static struct board_info __initdata boar
+ },
};
+static struct board_info __initdata board_HG655b = {
static struct sprom_fixup __initdata vr3025u_fixups[] = {
{ .offset = 97, .value = 0xfeb3 },
{ .offset = 98, .value = 0x1618 },
-@@ -2346,6 +2393,7 @@ static const struct board_info __initcon
+@@ -2310,6 +2357,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
-@@ -2449,6 +2497,7 @@ static struct of_device_id const bcm963x
+@@ -2413,6 +2461,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -216,6 +216,46 @@ static struct board_info __initdata boar
+@@ -214,6 +214,46 @@ static struct board_info __initdata boar
.num_board_fixups = ARRAY_SIZE(dsl2751b_e1_fixups),
},
};
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
-@@ -2318,6 +2358,7 @@ static const struct board_info __initcon
+@@ -2282,6 +2322,7 @@ static const struct board_info __initcon
&board_96318ref,
&board_96318ref_p300,
&board_dsl_2751b_d1,
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
-@@ -2415,6 +2456,7 @@ static struct of_device_id const bcm963x
+@@ -2379,6 +2420,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96318ref", .data = &board_96318ref, },
{ .compatible = "brcm,bcm96318ref_p300", .data = &board_96318ref_p300, },
{ .compatible = "d-link,dsl-275xb-d", .data = &board_dsl_2751b_d1, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2134,6 +2134,60 @@ static struct board_info __initdata boar
+@@ -2115,6 +2115,60 @@ static struct board_info __initdata boar
},
};
+ },
+};
+
- static struct b53_platform_data WAP5813n_b53_pdata = {
- .alias = "eth0",
- };
-@@ -2438,6 +2492,7 @@ static const struct board_info __initcon
+ static struct sprom_fixup __initdata wap5813n_fixups[] = {
+ { .offset = 97, .value = 0xfeed },
+ { .offset = 98, .value = 0x15d1 },
+@@ -2402,6 +2456,7 @@ static const struct board_info __initcon
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
&board_WAP5813n,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
-@@ -2538,6 +2593,7 @@ static struct of_device_id const bcm963x
+@@ -2502,6 +2557,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -638,6 +638,51 @@ static struct board_info __initdata boar
+@@ -636,6 +636,51 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
-@@ -2423,6 +2468,7 @@ static const struct board_info __initcon
+@@ -2387,6 +2432,7 @@ static const struct board_info __initcon
&board_A4001N1,
&board_dsl_274xb_f1,
&board_FAST2704V2,
#endif
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
-@@ -2521,6 +2567,7 @@ static struct of_device_id const bcm963x
+@@ -2485,6 +2531,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,ar-5381u", .data = &board_AR5381u, },
{ .compatible = "comtrend,ar-5387un", .data = &board_AR5387un, },
{ .compatible = "d-link,dsl-274xb-f", .data = &board_dsl_274xb_f1, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2028,6 +2028,53 @@ static struct board_info __initdata boar
+@@ -2009,6 +2009,53 @@ static struct board_info __initdata boar
},
};
static struct sprom_fixup __initdata vr3025u_fixups[] = {
{ .offset = 97, .value = 0xfeb3 },
{ .offset = 98, .value = 0x1618 },
-@@ -2534,6 +2581,7 @@ static const struct board_info __initcon
+@@ -2498,6 +2545,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
&board_HG655b,
&board_P870HW51A_V2,
&board_VR3025u,
-@@ -2642,6 +2690,7 @@ static struct of_device_id const bcm963x
+@@ -2606,6 +2654,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,vr-3026e", .data = &board_VR3026e, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1981,6 +1981,43 @@ static struct board_info __initdata boar
- .num_spis = ARRAY_SIZE(DGND3700v1_3800B_spi_devices),
+@@ -1962,6 +1962,43 @@ static struct board_info __initdata boar
+ },
};
+static struct sprom_fixup __initdata EVG2000_fixups[] = {
static struct board_info __initdata board_HG655b = {
.name = "HW65x",
.expected_cpu_id = 0x6368,
-@@ -2581,6 +2618,7 @@ static const struct board_info __initcon
+@@ -2545,6 +2582,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
&board_HG622,
&board_HG655b,
&board_P870HW51A_V2,
-@@ -2693,6 +2731,7 @@ static struct of_device_id const bcm963x
+@@ -2657,6 +2695,7 @@ static struct of_device_id const bcm963x
{ .compatible = "huawei,hg622", .data = &board_HG622, },
{ .compatible = "huawei,hg655b", .data = &board_HG655b, },
{ .compatible = "netgear,dgnd3700v1", .data = &board_DGND3700v1_3800B, },
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1851,6 +1851,52 @@ static struct board_info __initdata boar
+@@ -1849,6 +1849,52 @@ static struct board_info __initdata boar
* known 6368 boards
*/
#ifdef CONFIG_BCM63XX_CPU_6368
static struct board_info __initdata board_96368mvwg = {
.name = "96368MVWG",
.expected_cpu_id = 0x6368,
-@@ -2615,6 +2661,7 @@ static const struct board_info __initcon
+@@ -2579,6 +2625,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
-@@ -2722,6 +2769,7 @@ static struct of_device_id const bcm963x
+@@ -2686,6 +2733,7 @@ static struct of_device_id const bcm963x
{ .compatible = "sfr,nb6-ser-r0", .data = &board_nb6, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2363,6 +2363,45 @@ static struct board_info __initdata boar
+@@ -2344,6 +2344,45 @@ static struct board_info __initdata boar
},
};
+ .use_fallback_sprom = 1,
+};
+
- static struct b53_platform_data WAP5813n_b53_pdata = {
- .alias = "eth0",
- };
-@@ -2669,6 +2708,7 @@ static const struct board_info __initcon
+ static struct sprom_fixup __initdata wap5813n_fixups[] = {
+ { .offset = 97, .value = 0xfeed },
+ { .offset = 98, .value = 0x15d1 },
+@@ -2633,6 +2672,7 @@ static const struct board_info __initcon
&board_HG622,
&board_HG655b,
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
&board_VR3026e,
-@@ -2780,6 +2820,7 @@ static struct of_device_id const bcm963x
+@@ -2744,6 +2784,7 @@ static struct of_device_id const bcm963x
{ .compatible = "huawei,hg655b", .data = &board_HG655b, },
{ .compatible = "netgear,dgnd3700v1", .data = &board_DGND3700v1_3800B, },
{ .compatible = "netgear,evg2000", .data = &board_EVG2000, },