]> git.sur5r.net Git - u-boot/blobdiff - drivers/net/fec_mxc.c
net: fec_mxc: fix PHY initialization bug with CONFIG_DM_ETH
[u-boot] / drivers / net / fec_mxc.c
index 6840908fb2a382cd0d66b3b01fe1640c4eb94691..4ad4ddc86602adf87f8c1efdbc1d6edb18536817 100644 (file)
@@ -1223,17 +1223,6 @@ static int fecmxc_probe(struct udevice *dev)
        if (ret)
                return ret;
 
-       bus = fec_get_miibus((uint32_t)priv->eth, dev_id);
-       if (!bus)
-               goto err_mii;
-
-       priv->bus = bus;
-       priv->xcv_type = CONFIG_FEC_XCV_TYPE;
-       priv->interface = pdata->phy_interface;
-       ret = fec_phy_init(priv, dev);
-       if (ret)
-               goto err_phy;
-
        /* Reset chip. */
        writel(readl(&priv->eth->ecntrl) | FEC_ECNTRL_RESET,
               &priv->eth->ecntrl);
@@ -1249,6 +1238,19 @@ static int fecmxc_probe(struct udevice *dev)
        fec_reg_setup(priv);
        priv->dev_id = (dev_id == -1) ? 0 : dev_id;
 
+       bus = fec_get_miibus(dev, dev_id);
+       if (!bus) {
+               ret = -ENOMEM;
+               goto err_mii;
+       }
+
+       priv->bus = bus;
+       priv->xcv_type = CONFIG_FEC_XCV_TYPE;
+       priv->interface = pdata->phy_interface;
+       ret = fec_phy_init(priv, dev);
+       if (ret)
+               goto err_phy;
+
        return 0;
 
 err_timeout: