diff options
-rw-r--r-- | drivers/net/designware_eqos.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/designware_eqos.c b/drivers/net/designware_eqos.c index f83e5d6d9b..399b5fa9e7 100644 --- a/drivers/net/designware_eqos.c +++ b/drivers/net/designware_eqos.c @@ -828,6 +828,7 @@ static void eqos_probe_dt(struct device_d *dev, struct eqos *eqos) int eqos_probe(struct device_d *dev, const struct eqos_ops *ops, void *priv) { + struct device_node *np = dev->device_node; struct mii_bus *miibus; struct resource *iores; struct eqos *eqos; @@ -866,7 +867,10 @@ int eqos_probe(struct device_d *dev, const struct eqos_ops *ops, void *priv) miibus->read = eqos_mdio_read; miibus->write = eqos_mdio_write; miibus->priv = eqos; - miibus->dev.device_node = of_get_child_by_name(dev->device_node, "mdio"); + + miibus->dev.device_node = of_get_compatible_child(np, "snps,dwmac-mdio"); + if (!miibus->dev.device_node) + miibus->dev.device_node = of_get_child_by_name(np, "mdio"); ret = eqos_init(dev, eqos); if (ret) |