[ARM] orion5x: WNR854T switch support
authorImre Kaloz <kaloz@openwrt.org>
Tue, 2 Jun 2009 12:31:43 +0000 (14:31 +0200)
committerNicolas Pitre <nico@cam.org>
Mon, 8 Jun 2009 17:05:00 +0000 (13:05 -0400)
This patch adds support for the switch found on the Netgear
WNR854T router.

Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
arch/arm/mach-orion5x/wnr854t-setup.c

index 7ddc22c2bb5480d17455fe533023ddd36d66a58f..69208217b22037096e4c467c2cc4508fb75dd9e5 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/mtd/physmap.h>
 #include <linux/mv643xx_eth.h>
 #include <linux/ethtool.h>
+#include <net/dsa.h>
 #include <asm/mach-types.h>
 #include <asm/gpio.h>
 #include <asm/mach/arch.h>
@@ -97,6 +98,20 @@ static struct mv643xx_eth_platform_data wnr854t_eth_data = {
        .duplex         = DUPLEX_FULL,
 };
 
+static struct dsa_chip_data wnr854t_switch_chip_data = {
+       .port_names[0] = "lan3",
+       .port_names[1] = "lan4",
+       .port_names[2] = "wan",
+       .port_names[3] = "cpu",
+       .port_names[5] = "lan1",
+       .port_names[7] = "lan2",
+};
+
+static struct dsa_platform_data wnr854t_switch_plat_data = {
+       .nr_chips       = 1,
+       .chip           = &wnr854t_switch_chip_data,
+};
+
 static void __init wnr854t_init(void)
 {
        /*
@@ -110,6 +125,7 @@ static void __init wnr854t_init(void)
         * Configure peripherals.
         */
        orion5x_eth_init(&wnr854t_eth_data);
+       orion5x_eth_switch_init(&wnr854t_switch_plat_data, NO_IRQ);
        orion5x_uart0_init();
 
        orion5x_setup_dev_boot_win(WNR854T_NOR_BOOT_BASE,