|
@@ -925,9 +925,16 @@ static int axienet_open(struct net_device *ndev)
|
|
return ret;
|
|
return ret;
|
|
|
|
|
|
if (lp->phy_node) {
|
|
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,
|
|
axienet_adjust_link, 0,
|
|
PHY_INTERFACE_MODE_GMII);
|
|
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) {
|
|
if (!lp->phy_dev) {
|
|
dev_err(lp->dev, "of_phy_connect() failed\n");
|
|
dev_err(lp->dev, "of_phy_connect() failed\n");
|
|
return -ENODEV;
|
|
return -ENODEV;
|