--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c @@ -12,6 +12,8 @@ #include <linux/init.h> #include <linux/kernel.h> #include <linux/string.h> +#include <linux/platform_device.h> +#include <linux/rtl8367.h> #include <asm/addrspace.h> #include <bcm63xx_board.h> #include <bcm63xx_cpu.h> @@ -27,6 +29,9 @@ #define HCS_OFFSET_128K 0x20000 +#define NB6_GPIO_RTL8367_SDA 18 +#define NB6_GPIO_RTL8367_SCK 20 + /* * known 3368 boards */ @@ -1315,6 +1320,69 @@ static struct board_info __initdata boar }; #endif /* CONFIG_BCM63XX_CPU_6358 */ +#ifdef CONFIG_BCM63XX_CPU_6362 +static struct rtl8367_extif_config nb6_rtl8367_extif0_cfg = { + .mode = RTL8367_EXTIF_MODE_RGMII, + .txdelay = 1, + .rxdelay = 5, + .ability = { + .force_mode = 1, + .txpause = 1, + .rxpause = 1, + .link = 1, + .duplex = 1, + .speed = RTL8367_PORT_SPEED_1000, + }, +}; + +static struct rtl8367_platform_data nb6_rtl8367_data = { + .gpio_sda = NB6_GPIO_RTL8367_SDA, + .gpio_sck = NB6_GPIO_RTL8367_SCK, + .extif0_cfg = &nb6_rtl8367_extif0_cfg, +}; + +static struct platform_device nb6_rtl8367_device = { + .name = RTL8367_DRIVER_NAME, + .id = -1, + .dev = { + .platform_data = &nb6_rtl8367_data, + } +}; + +static struct platform_device * __initdata nb6_devices[] = { + &nb6_rtl8367_device, +}; + +static struct board_info __initdata board_nb6 = { + .name = "NB6", + .expected_cpu_id = 0x6362, + + .has_uart0 = 1, + + .has_ohci0 = 1, + .has_ehci0 = 1, + .num_usbh_ports = 2, + + .has_enetsw = 1, + + .enetsw = { + .used_ports = { + [4] = { + .used = 1, + .phy_id = 0xff, + .bypass_link = 1, + .force_speed = 1000, + .force_duplex_full = 1, + .name = "RGMII", + }, + }, + }, + + .devs = nb6_devices, + .num_devs = ARRAY_SIZE(nb6_devices), +}; +#endif /* CONFIG_BCM63XX_CPU_6362 */ + /* * known 6368 boards */ @@ -1466,6 +1534,10 @@ static const struct board_info __initcon &board_DVAG3810BN, #endif +#ifdef CONFIG_BCM63XX_CPU_6362 + &board_nb6, +#endif + #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, &board_96368mvngr, @@ -1534,6 +1606,9 @@ static struct of_device_id const bcm963x { .compatible = "t-com,spw303v", .data = &board_spw303v, }, { .compatible = "telsey,cpva642", .data = &board_CPVA642, }, #endif +#ifdef CONFIG_BCM63XX_CPU_6362 + { .compatible = "sfr,nb6-ser-r0", .data = &board_nb6, }, +#endif #ifdef CONFIG_BCM63XX_CPU_6368 { .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, }, { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },