summaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/files/arch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-08-16 19:21:57 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-08-16 19:21:57 +0000
commit523fcf049784457433f4e194b5135431b218bf64 (patch)
treee7e468fba3bffb04d7dad75ced05f544f1acb7d4 /target/linux/ar71xx/files/arch
parent9f1ed6e4d34991db572747dc7242f62489b79b4e (diff)
downloadmaster-31e0f0ae-523fcf049784457433f4e194b5135431b218bf64.tar.gz
master-31e0f0ae-523fcf049784457433f4e194b5135431b218bf64.tar.bz2
master-31e0f0ae-523fcf049784457433f4e194b5135431b218bf64.zip
ar71xx: add a new driver for the ar7240 switch using swconfig. hooks directly into the ethernet driver, as MAC resets also require switch reinitializations and the switch is part of the cpu core anyway switch only tl-wr741nd (and other devices using this board file, such as tl-wr841nd) over to using this by default, as other devices are still untested fixes #7563
SVN-Revision: 22675
Diffstat (limited to 'target/linux/ar71xx/files/arch')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c18
-rw-r--r--target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/platform.h1
2 files changed, 18 insertions, 1 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c
index 93332228df..ed217f9e23 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c
@@ -108,7 +108,23 @@ static void __init tl_wr741nd_setup(void)
ARRAY_SIZE(tl_wr741nd_gpio_buttons),
tl_wr741nd_gpio_buttons);
- ap91_eth_init(mac, NULL);
+ ar71xx_eth1_data.has_ar7240_switch = 1;
+ ar71xx_set_mac_base(mac);
+
+ /* WAN port */
+ ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
+ ar71xx_eth0_data.speed = SPEED_100;
+ ar71xx_eth0_data.duplex = DUPLEX_FULL;
+
+ /* LAN ports */
+ ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
+ ar71xx_eth1_data.speed = SPEED_1000;
+ ar71xx_eth1_data.duplex = DUPLEX_FULL;
+
+ ar71xx_add_device_mdio(0x0);
+ ar71xx_add_device_eth(1);
+ ar71xx_add_device_eth(0);
+
ap91_pci_init(ee, mac);
}
MIPS_MACHINE(AR71XX_MACH_TL_WR741ND, "TL-WR741ND", "TP-LINK TL-WR741ND",
diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/platform.h b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/platform.h
index 145e79fcea..cf198d2bfa 100644
--- a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/platform.h
+++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/platform.h
@@ -31,6 +31,7 @@ struct ag71xx_platform_data {
u8 is_ar91xx:1;
u8 is_ar724x:1;
u8 has_ar8216:1;
+ u8 has_ar7240_switch:1;
void (* ddr_flush)(void);
void (* set_pll)(int speed);