mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
net: airoha: probe airoha switch mdio on airoha_eth probing
Airoha switch mdio maybe used not only by GDM1, but also by other GDM ports (ex: as21xxx phy connected to GDM2 port). So it's better probe airoha switch mdio a bit early in the airoha_eth_probe() code. Also remove useless eth_phy_set_mdio_bus() call and related code. Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
This commit is contained in:
committed by
Jerome Forissier
parent
0da1866a8f
commit
a05c0d1732
@@ -12,7 +12,6 @@
|
||||
#include <dm/device-internal.h>
|
||||
#include <dm/devres.h>
|
||||
#include <dm/lists.h>
|
||||
#include <eth_phy.h>
|
||||
#include <mapmem.h>
|
||||
#include <miiphy.h>
|
||||
#include <net.h>
|
||||
@@ -909,6 +908,11 @@ static int airoha_eth_probe(struct udevice *dev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (eth->switch_mdio_dev) {
|
||||
if (!device_probe(eth->switch_mdio_dev))
|
||||
debug("Warning: failed to probe airoha switch mdio\n");
|
||||
}
|
||||
|
||||
ofnode_for_each_subnode(node, dev_ofnode(dev)) {
|
||||
if (!ofnode_device_is_compatible(node, "airoha,eth-mac"))
|
||||
continue;
|
||||
@@ -935,8 +939,6 @@ static int airoha_eth_port_probe(struct udevice *dev)
|
||||
{
|
||||
struct airoha_eth *eth = (void *)dev_get_driver_data(dev);
|
||||
struct airoha_gdm_port *port = dev_get_priv(dev);
|
||||
struct mdio_perdev_priv *pdata;
|
||||
struct mii_dev *mdio_bus;
|
||||
int ret;
|
||||
|
||||
port->qdma = ð->qdma[0];
|
||||
@@ -945,7 +947,6 @@ static int airoha_eth_port_probe(struct udevice *dev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
mdio_bus = NULL;
|
||||
if (port->id > 1) {
|
||||
#if defined(CONFIG_PCS_AIROHA)
|
||||
ret = airoha_pcs_init(dev);
|
||||
@@ -953,24 +954,11 @@ static int airoha_eth_port_probe(struct udevice *dev)
|
||||
return ret;
|
||||
|
||||
port->phydev = dm_eth_phy_connect(dev);
|
||||
if (port->phydev)
|
||||
mdio_bus = port->phydev->bus;
|
||||
#else
|
||||
return -EINVAL;
|
||||
#endif
|
||||
} else {
|
||||
if (eth->switch_mdio_dev &&
|
||||
!device_probe(eth->switch_mdio_dev)) {
|
||||
pdata = dev_get_uclass_priv(eth->switch_mdio_dev);
|
||||
mdio_bus = pdata->mii_bus;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DM_ETH_PHY
|
||||
if (!IS_ERR_OR_NULL(mdio_bus))
|
||||
eth_phy_set_mdio_bus(dev, mdio_bus);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user