net: mvneta: Use DM MDIO API for connecting PHY
Use the modern DM MDIO API for connecting PHY in the mvneta driver.
This requires enabling MVMDIO driver in several config files.
Signed-off-by: Marek BehĂșn <marek.behun@nic.cz>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index da56326..7fe0e00 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -445,6 +445,7 @@
bool "Marvell Armada XP/385/3700 network interface support"
depends on ARMADA_XP || ARMADA_38X || ARMADA_3700
select PHYLIB
+ select DM_MDIO
help
This driver supports the network interface units in the
Marvell ARMADA XP, ARMADA 38X and ARMADA 3700 SoCs
diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c
index 79cdb93..24a491d 100644
--- a/drivers/net/mvneta.c
+++ b/drivers/net/mvneta.c
@@ -1571,16 +1571,15 @@
mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
} else {
- /* Set phy address of the port */
- mvreg_write(pp, MVNETA_PHY_ADDR, pp->phyaddr);
-
- phydev = phy_connect(pp->bus, pp->phyaddr, dev,
- pp->phy_interface);
+ phydev = dm_eth_phy_connect(dev);
if (!phydev) {
- printf("phy_connect failed\n");
+ printf("dm_eth_phy_connect failed\n");
return -ENODEV;
}
+ /* Set PHY address in case we will enable HW polling */
+ mvreg_write(pp, MVNETA_PHY_ADDR, phydev->addr);
+
pp->phydev = phydev;
phy_config(phydev);
phy_startup(phydev);