Browse Source

ar71xx: make the AR8216 driver usable on the TEW-632BRP/DIR-615-Cx boards

Cc: [email protected]

SVN-Revision: 20752
Gabor Juhos 15 years ago
parent
commit
d6c0363884

+ 26 - 0
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'

+ 10 - 0
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'

+ 8 - 4
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);

+ 8 - 4
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);