net: axienet: Support for RGMII
authorSrikanth Thokala <srikanth.thokala@xilinx.com>
Tue, 5 May 2015 09:25:54 +0000 (11:25 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 May 2015 23:33:58 +0000 (19:33 -0400)
This patch adds support for the RGMII. The h/w configuration
parameter C_PHY_TYPE, which represents the interface configured in
the design, is used to differentiate various interfaces supported
by AXI Ethernet.

Signed-off-by: Srikanth Thokala <sthokal@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/xilinx/xilinx_axienet_main.c

index 28b7e7d9c272ae672034d10bb64f855f0d1077e9..0ab607732bb4b3268178b1b57e56b1206ae11abe 100644 (file)
@@ -925,9 +925,16 @@ static int axienet_open(struct net_device *ndev)
                return ret;
 
        if (lp->phy_node) {
-               lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node,
+               if (lp->phy_type == XAE_PHY_TYPE_GMII) {
+                       lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node,
                                             axienet_adjust_link, 0,
                                             PHY_INTERFACE_MODE_GMII);
+               } else if (lp->phy_type == XAE_PHY_TYPE_RGMII_2_0) {
+                       lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node,
+                                            axienet_adjust_link, 0,
+                                            PHY_INTERFACE_MODE_RGMII_ID);
+               }
+
                if (!lp->phy_dev) {
                        dev_err(lp->dev, "of_phy_connect() failed\n");
                        return -ENODEV;