29_vmac: Add phy number port select for switch
authorwdc <wdc@rock-chips.com>
Wed, 6 Nov 2013 10:30:21 +0000 (18:30 +0800)
committerwdc <wdc@rock-chips.com>
Wed, 6 Nov 2013 10:33:41 +0000 (18:33 +0800)
arch/arm/configs/rk3188_ac_defconfig
drivers/net/eth_mac/Kconfig
drivers/net/rk29_vmac.c

index e1d22889ee02f4b08ab66664b4591d6bb4eed21e..8ab27a2e5277972a8b5ccbae379778d29772decf 100644 (file)
@@ -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
index 667aaa10a665daf323a8bc71da8c6a7d0bdfe05a..933563ae521bdd2c45f471aa78cc1d8237936228 100755 (executable)
@@ -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---
+
+
index d5c24dcfec1e03b1b611080ab5d86d919b7aafa6..8a134a5a31c7824b2aa7c69cc72543998c89df06 100755 (executable)
@@ -184,6 +184,11 @@ static int __devinit vmac_mii_probe(struct net_device *dev)
        //unsigned long clock_rate;\r
        int phy_addr, err;\r
 \r
+\r
+#if defined (CONFIG_PHY_PORT_NUM) && (CONFIG_PHY_PORT_NUM != 0)\r
+        if (ap->mii_bus->phy_map[CONFIG_PHY_PORT_NUM])\r
+            phydev = ap->mii_bus->phy_map[CONFIG_PHY_PORT_NUM];\r
+#else\r
        /* find the first phy */\r
        for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {\r
                if (ap->mii_bus->phy_map[phy_addr]) {\r
@@ -191,6 +196,7 @@ static int __devinit vmac_mii_probe(struct net_device *dev)
                        break;\r
                }\r
        }\r
+#endif\r
 \r
        if (!phydev) {\r
                dev_err(&dev->dev, "no PHY found\n");\r