diff options
author | Florian Fainelli <florian@openwrt.org> | 2009-08-04 10:52:47 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-05 12:20:57 -0700 |
commit | 1e2c8d830a74c24ccb25601bd89dcd0dbcb4e9f5 (patch) | |
tree | cc0c274911753b9a379d713a201452a499cfc5af /arch/mips/ar7/platform.c | |
parent | d76c626b922e279c7764ec46fb1b9bbd41538f35 (diff) | |
download | kernel-mfld-blackbay-1e2c8d830a74c24ccb25601bd89dcd0dbcb4e9f5.tar.gz kernel-mfld-blackbay-1e2c8d830a74c24ccb25601bd89dcd0dbcb4e9f5.tar.bz2 kernel-mfld-blackbay-1e2c8d830a74c24ccb25601bd89dcd0dbcb4e9f5.zip |
ar7: add fixed PHY support for the two on-board cpmac
This patch adds fixed PHY support for the two on-chip
cpmac Ethernet adapters.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/mips/ar7/platform.c')
-rw-r--r-- | arch/mips/ar7/platform.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/mips/ar7/platform.c b/arch/mips/ar7/platform.c index 54224496178..c4737ce6d29 100644 --- a/arch/mips/ar7/platform.c +++ b/arch/mips/ar7/platform.c @@ -33,6 +33,8 @@ #include <linux/leds.h> #include <linux/string.h> #include <linux/etherdevice.h> +#include <linux/phy.h> +#include <linux/phy_fixed.h> #include <asm/addrspace.h> #include <asm/mach-ar7/ar7.h> @@ -209,6 +211,12 @@ static struct physmap_flash_data physmap_flash_data = { .width = 2, }; +static struct fixed_phy_status fixed_phy_status __initdata = { + .link = 1, + .speed = 100, + .duplex = 1, +}; + static struct plat_cpmac_data cpmac_low_data = { .reset_bit = 17, .power_bit = 20, @@ -530,6 +538,9 @@ static int __init ar7_register_devices(void) } if (ar7_has_high_cpmac()) { + res = fixed_phy_add(PHY_POLL, cpmac_high.id, &fixed_phy_status); + if (res && res != -ENODEV) + return res; cpmac_get_mac(1, cpmac_high_data.dev_addr); res = platform_device_register(&cpmac_high); if (res) @@ -538,6 +549,10 @@ static int __init ar7_register_devices(void) cpmac_low_data.phy_mask = 0xffffffff; } + res = fixed_phy_add(PHY_POLL, cpmac_low.id, &fixed_phy_status); + if (res && res != -ENODEV) + return res; + cpmac_get_mac(0, cpmac_low_data.dev_addr); res = platform_device_register(&cpmac_low); if (res) |