|
@@ -1252,12 +1252,21 @@ static int ftgmac100_setup_mdio(struct net_device *netdev)
|
|
struct ftgmac100 *priv = netdev_priv(netdev);
|
|
struct ftgmac100 *priv = netdev_priv(netdev);
|
|
struct platform_device *pdev = to_platform_device(priv->dev);
|
|
struct platform_device *pdev = to_platform_device(priv->dev);
|
|
int i, err = 0;
|
|
int i, err = 0;
|
|
|
|
+ u32 reg;
|
|
|
|
|
|
/* initialize mdio bus */
|
|
/* initialize mdio bus */
|
|
priv->mii_bus = mdiobus_alloc();
|
|
priv->mii_bus = mdiobus_alloc();
|
|
if (!priv->mii_bus)
|
|
if (!priv->mii_bus)
|
|
return -EIO;
|
|
return -EIO;
|
|
|
|
|
|
|
|
+ if (of_machine_is_compatible("aspeed,ast2400") ||
|
|
|
|
+ of_machine_is_compatible("aspeed,ast2500")) {
|
|
|
|
+ /* This driver supports the old MDIO interface */
|
|
|
|
+ reg = ioread32(priv->base + FTGMAC100_OFFSET_REVR);
|
|
|
|
+ reg &= ~FTGMAC100_REVR_NEW_MDIO_INTERFACE;
|
|
|
|
+ iowrite32(reg, priv->base + FTGMAC100_OFFSET_REVR);
|
|
|
|
+ };
|
|
|
|
+
|
|
priv->mii_bus->name = "ftgmac100_mdio";
|
|
priv->mii_bus->name = "ftgmac100_mdio";
|
|
snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%s-%d",
|
|
snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%s-%d",
|
|
pdev->name, pdev->id);
|
|
pdev->name, pdev->id);
|