Driver does not currently initialize the smi_addr field, but instead keeps the default value. This leads to issues on systems with different hardware configuration. We can fix this problem by reading the SMI address from device tree.
Signed-off-by: Marek Mojík <marek.mo...@nic.cz> --- drivers/net/mv88e6xxx.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/mv88e6xxx.c b/drivers/net/mv88e6xxx.c index c073f81e72..4636dbf156 100644 --- a/drivers/net/mv88e6xxx.c +++ b/drivers/net/mv88e6xxx.c @@ -753,6 +753,12 @@ static int mv88e6xxx_probe(struct udevice *dev) return -ENODEV; } + priv->smi_addr = dev_read_addr(dev); + if (priv->smi_addr == FDT_ADDR_T_NONE) { + dev_err(dev, "Invalid or missing SMI address\n"); + return -EINVAL; + } + /* probe internal mdio bus */ ret = mv88e6xxx_probe_mdio(dev); if (ret) -- 2.42.1