From f42a0e1962e7514a79682263192dc6d1f076db0d Mon Sep 17 00:00:00 2001 From: wdc <wdc@rock-chips.com> Date: Wed, 6 Nov 2013 18:30:21 +0800 Subject: [PATCH] 29_vmac: Add phy number port select for switch --- arch/arm/configs/rk3188_ac_defconfig | 1 + drivers/net/eth_mac/Kconfig | 11 +++++++++++ drivers/net/rk29_vmac.c | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/arch/arm/configs/rk3188_ac_defconfig b/arch/arm/configs/rk3188_ac_defconfig index e1d22889ee02..8ab27a2e5277 100644 --- a/arch/arm/configs/rk3188_ac_defconfig +++ b/arch/arm/configs/rk3188_ac_defconfig @@ -208,6 +208,7 @@ CONFIG_DM_UEVENT=y CONFIG_NETDEVICES=y CONFIG_NET_ETHERNET=y CONFIG_RK29_VMAC=y +CONFIG_PHY_PORT_NUM=5 # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_10000 is not set CONFIG_WLAN_80211=y diff --git a/drivers/net/eth_mac/Kconfig b/drivers/net/eth_mac/Kconfig index 667aaa10a665..933563ae521b 100755 --- a/drivers/net/eth_mac/Kconfig +++ b/drivers/net/eth_mac/Kconfig @@ -38,3 +38,14 @@ choice endchoice +config PHY_PORT_NUM + int "phy port number selected (More than one port on Switch)" + depends on RK29_VMAC + default 0 + help + 0:phy dev 0:00 + 1:phy dev 0:01 + 2:phy dev 0:02 + ---More--- + + diff --git a/drivers/net/rk29_vmac.c b/drivers/net/rk29_vmac.c index d5c24dcfec1e..8a134a5a31c7 100755 --- a/drivers/net/rk29_vmac.c +++ b/drivers/net/rk29_vmac.c @@ -184,6 +184,11 @@ static int __devinit vmac_mii_probe(struct net_device *dev) //unsigned long clock_rate; int phy_addr, err; + +#if defined (CONFIG_PHY_PORT_NUM) && (CONFIG_PHY_PORT_NUM != 0) + if (ap->mii_bus->phy_map[CONFIG_PHY_PORT_NUM]) + phydev = ap->mii_bus->phy_map[CONFIG_PHY_PORT_NUM]; +#else /* find the first phy */ for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) { if (ap->mii_bus->phy_map[phy_addr]) { @@ -191,6 +196,7 @@ static int __devinit vmac_mii_probe(struct net_device *dev) break; } } +#endif if (!phydev) { dev_err(&dev->dev, "no PHY found\n"); -- 2.34.1