diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2008-10-17 07:12:44 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2008-10-17 07:12:44 +0000 |
commit | 7d167c06f37714bf071cbebb04ad69effa09b11f (patch) | |
tree | 653ff05814784088180de0ed39098fa39d44be92 /target/linux/ar71xx/files/arch/mips | |
parent | af61c22a0114da2341bc56b38cd1fcac3fba8b2b (diff) | |
download | mtk-20170518-7d167c06f37714bf071cbebb04ad69effa09b11f.zip mtk-20170518-7d167c06f37714bf071cbebb04ad69effa09b11f.tar.gz mtk-20170518-7d167c06f37714bf071cbebb04ad69effa09b11f.tar.bz2 |
change ag71xx platform device registration
SVN-Revision: 12997
Diffstat (limited to 'target/linux/ar71xx/files/arch/mips')
4 files changed, 53 insertions, 21 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-generic.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-generic.c index 42b5e02..55fc61c 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-generic.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-generic.c @@ -50,8 +50,15 @@ static void __init ar71xx_generic_init(void) ARRAY_SIZE(ar71xx_generic_spi_info)); ar71xx_add_device_mdio(0xffe0ffff); - ar71xx_add_device_eth(0, PHY_INTERFACE_MODE_MII, 0x000f0000); - ar71xx_add_device_eth(1, PHY_INTERFACE_MODE_RMII, 0x00100000); + + ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ar71xx_eth0_data.phy_mask = 0x000f0000; + + ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; + ar71xx_eth1_data.phy_mask = 0x00100000; + + ar71xx_add_device_eth(0); + ar71xx_add_device_eth(1); ar71xx_add_device_usb(); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c index dce2058..8e63aca 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb-4xx.c @@ -155,7 +155,11 @@ static void __init rb411_setup(void) rb4xx_add_device_spi(); ar71xx_add_device_mdio(0xfffffffe); - ar71xx_add_device_eth(0, PHY_INTERFACE_MODE_MII, 0x00000001); + + ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ar71xx_eth0_data.phy_mask = 0x00000001; + + ar71xx_add_device_eth(0); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(rb4xx_leds_gpio), rb4xx_leds_gpio); @@ -176,8 +180,15 @@ static void __init rb433_setup(void) rb433_add_device_spi(); ar71xx_add_device_mdio(0xffffffec); - ar71xx_add_device_eth(1, PHY_INTERFACE_MODE_RMII, 0x00000010); - ar71xx_add_device_eth(0, PHY_INTERFACE_MODE_MII, 0x00000003); + + ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ar71xx_eth0_data.phy_mask = 0x00000003; + + ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; + ar71xx_eth1_data.phy_mask = 0x00000010; + + ar71xx_add_device_eth(1); + ar71xx_add_device_eth(0); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(rb4xx_leds_gpio), rb4xx_leds_gpio); @@ -198,8 +209,15 @@ static void __init rb450_setup(void) rb4xx_add_device_spi(); ar71xx_add_device_mdio(0xffffffe0); - ar71xx_add_device_eth(1, PHY_INTERFACE_MODE_RMII, 0x00000010); - ar71xx_add_device_eth(0, PHY_INTERFACE_MODE_MII, 0x0000000f); + + ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ar71xx_eth0_data.phy_mask = 0x0000000f; + + ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; + ar71xx_eth1_data.phy_mask = 0x00000010; + + ar71xx_add_device_eth(1); + ar71xx_add_device_eth(0); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(rb4xx_leds_gpio), rb4xx_leds_gpio); @@ -217,10 +235,19 @@ static void __init rb493_setup(void) { rb4xx_add_device_spi(); -#if 0 ar71xx_add_device_mdio(0x3fffff00); - ar71xx_add_device_eth(0, PHY_INTERFACE_MODE_MII, 0x00000000); - ar71xx_add_device_eth(1, PHY_INTERFACE_MODE_RMII, 0x00000001); + +#if 0 + ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ar71xx_eth0_data.phy_mask = 0; + ar71xx_eth0_data.speed = SPEED_100; + ar71xx_eth0_data.duplex = DUPLEX_FULL; + + ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; + ar71xx_eth1_data.phy_mask = 0x00000001; + + ar71xx_add_device_eth(0); + ar71xx_add_device_eth(1); #endif ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(rb4xx_leds_gpio), diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c index 4abecd8..ef2ef05 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c @@ -124,7 +124,10 @@ static void __init wp543_setup(void) ar71xx_add_device_spi(NULL, wp543_spi_info, ARRAY_SIZE(wp543_spi_info)); ar71xx_add_device_mdio(0xfffffff7); - ar71xx_add_device_eth(0, PHY_INTERFACE_MODE_MII, 0x00000008); + + ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ar71xx_eth0_data.phy_mask = 0x00000008; + ar71xx_add_device_eth(0); ar71xx_add_device_usb(); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c index b131ec1..aa4711d 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c @@ -196,7 +196,7 @@ static struct resource ar71xx_eth0_resources[] = { }, }; -static struct ag71xx_platform_data ar71xx_eth0_data = { +struct ag71xx_platform_data ar71xx_eth0_data = { .reset_bit = RESET_MODULE_GE0_MAC, .flush_reg = DDR_REG_FLUSH_GE0, }; @@ -235,7 +235,7 @@ static struct resource ar71xx_eth1_resources[] = { }, }; -static struct ag71xx_platform_data ar71xx_eth1_data = { +struct ag71xx_platform_data ar71xx_eth1_data = { .reset_bit = RESET_MODULE_GE1_MAC, .flush_reg = DDR_REG_FLUSH_GE1, }; @@ -251,14 +251,13 @@ static struct platform_device ar71xx_eth1_device = { }; static int ar71xx_eth_instance __initdata; -void __init ar71xx_add_device_eth(unsigned int id, phy_interface_t phy_if_mode, - u32 phy_mask) +void __init ar71xx_add_device_eth(unsigned int id) { struct platform_device *pdev; switch (id) { case 0: - switch (phy_if_mode) { + switch (ar71xx_eth0_data.phy_if_mode) { case PHY_INTERFACE_MODE_MII: ar71xx_eth0_data.mii_if = MII0_CTRL_IF_MII; break; @@ -276,12 +275,10 @@ void __init ar71xx_add_device_eth(unsigned int id, phy_interface_t phy_if_mode, } memcpy(ar71xx_eth0_data.mac_addr, ar71xx_mac_base, ETH_ALEN); ar71xx_eth0_data.mac_addr[5] += ar71xx_eth_instance; - ar71xx_eth0_data.phy_if_mode = phy_if_mode; - ar71xx_eth0_data.phy_mask = phy_mask; pdev = &ar71xx_eth0_device; break; case 1: - switch (phy_if_mode) { + switch (ar71xx_eth1_data.phy_if_mode) { case PHY_INTERFACE_MODE_RMII: ar71xx_eth1_data.mii_if = MII1_CTRL_IF_RMII; break; @@ -293,8 +290,6 @@ void __init ar71xx_add_device_eth(unsigned int id, phy_interface_t phy_if_mode, } memcpy(ar71xx_eth1_data.mac_addr, ar71xx_mac_base, ETH_ALEN); ar71xx_eth1_data.mac_addr[5] += ar71xx_eth_instance; - ar71xx_eth1_data.phy_if_mode = phy_if_mode; - ar71xx_eth1_data.phy_mask = phy_mask; pdev = &ar71xx_eth1_device; break; default: |