From d6c03638848d1b31beb79a828e875119f12cf316 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Fri, 9 Apr 2010 08:40:09 +0000 Subject: [PATCH] ar71xx: make the AR8216 driver usable on the TEW-632BRP/DIR-615-Cx boards Cc: backfire@openwrt.org SVN-Revision: 20752 --- .../etc/defconfig/dir-615-c1/network | 26 +++++++++++++++++++ .../etc/defconfig/tew-632brp/network | 10 +++++++ .../files/arch/mips/ar71xx/mach-dir-615-c1.c | 12 ++++++--- .../files/arch/mips/ar71xx/mach-tew-632brp.c | 12 ++++++--- 4 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 target/linux/ar71xx/base-files/etc/defconfig/dir-615-c1/network diff --git a/target/linux/ar71xx/base-files/etc/defconfig/dir-615-c1/network b/target/linux/ar71xx/base-files/etc/defconfig/dir-615-c1/network new file mode 100644 index 0000000000..a2204d4a34 --- /dev/null +++ b/target/linux/ar71xx/base-files/etc/defconfig/dir-615-c1/network @@ -0,0 +1,26 @@ +config interface loopback + option ifname lo + option proto static + option ipaddr 127.0.0.1 + option netmask 255.0.0.0 + +config interface lan + option ifname eth0 + option type bridge + option proto static + option ipaddr 192.168.1.1 + option netmask 255.255.255.0 + +config interface wan + option ifname eth1 + option proto dhcp + +config switch + option name eth0 + option reset 1 + option enable_vlan 1 + +config switch_vlan + option device eth0 + option vlan 1 + option ports '0 1 2 3 4' diff --git a/target/linux/ar71xx/base-files/etc/defconfig/tew-632brp/network b/target/linux/ar71xx/base-files/etc/defconfig/tew-632brp/network index 2d4d8e0121..a2204d4a34 100644 --- a/target/linux/ar71xx/base-files/etc/defconfig/tew-632brp/network +++ b/target/linux/ar71xx/base-files/etc/defconfig/tew-632brp/network @@ -14,3 +14,13 @@ config interface lan config interface wan option ifname eth1 option proto dhcp + +config switch + option name eth0 + option reset 1 + option enable_vlan 1 + +config switch_vlan + option device eth0 + option vlan 1 + option ports '0 1 2 3 4' diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-615-c1.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-615-c1.c index f5eb7b2e43..8433b0cf14 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-615-c1.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-615-c1.c @@ -128,6 +128,11 @@ static struct gpio_button dir_615c1_gpio_buttons[] __initdata = { } }; +#define DIR_615C1_LAN_PHYMASK BIT(0) +#define DIR_615C1_WAN_PHYMASK BIT(4) +#define DIR_615C1_MDIO_MASK (~(DIR_615C1_LAN_PHYMASK | \ + DIR_615C1_WAN_PHYMASK)) + static void __init dir_615c1_setup(void) { const char *config = (char *) KSEG1ADDR(DIR_615C1_CONFIG_ADDR); @@ -141,14 +146,13 @@ static void __init dir_615c1_setup(void) wlan_mac = mac; } - ar71xx_add_device_mdio(0x0); + ar71xx_add_device_mdio(DIR_615C1_MDIO_MASK); ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; - ar71xx_eth0_data.speed = SPEED_100; - ar71xx_eth0_data.duplex = DUPLEX_FULL; + ar71xx_eth0_data.phy_mask = DIR_615C1_LAN_PHYMASK; ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; - ar71xx_eth1_data.phy_mask = 0x10; + ar71xx_eth1_data.phy_mask = DIR_615C1_WAN_PHYMASK; ar71xx_add_device_eth(0); ar71xx_add_device_eth(1); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c index 2bf9ad9b03..787f83eb01 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c @@ -104,6 +104,11 @@ static struct gpio_button tew_632brp_gpio_buttons[] __initdata = { } }; +#define TEW_632BRP_LAN_PHYMASK BIT(0) +#define TEW_632BRP_WAN_PHYMASK BIT(4) +#define TEW_632BRP_MDIO_MASK (~(TEW_632BRP_LAN_PHYMASK | \ + TEW_632BRP_WAN_PHYMASK)) + static void __init tew_632brp_setup(void) { const char *config = (char *) KSEG1ADDR(TEW_632BRP_CONFIG_ADDR); @@ -117,14 +122,13 @@ static void __init tew_632brp_setup(void) wlan_mac = mac; } - ar71xx_add_device_mdio(0x0); + ar71xx_add_device_mdio(TEW_632BRP_MDIO_MASK); ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; - ar71xx_eth0_data.speed = SPEED_100; - ar71xx_eth0_data.duplex = DUPLEX_FULL; + ar71xx_eth0_data.phy_mask = TEW_632BRP_LAN_PHYMASK; ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; - ar71xx_eth1_data.phy_mask = 0x10; + ar71xx_eth1_data.phy_mask = TEW_632BRP_WAN_PHYMASK; ar71xx_add_device_eth(0); ar71xx_add_device_eth(1); -- 2.30.2