Commit 8b7c1664 authored by frederic Rodo's avatar frederic Rodo Committed by Jeff Garzik

dm9161: add configuration for MII/RMII

Signed-off-by: default avatarFrederic Rodo <f.rodo@til-technologies.fr>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent dea75bdf
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#define MII_DM9161_SCR 0x10 #define MII_DM9161_SCR 0x10
#define MII_DM9161_SCR_INIT 0x0610 #define MII_DM9161_SCR_INIT 0x0610
#define MII_DM9161_SCR_RMII 0x0100
/* DM9161 Interrupt Register */ /* DM9161 Interrupt Register */
#define MII_DM9161_INTR 0x15 #define MII_DM9161_INTR 0x15
...@@ -103,7 +104,7 @@ static int dm9161_config_aneg(struct phy_device *phydev) ...@@ -103,7 +104,7 @@ static int dm9161_config_aneg(struct phy_device *phydev)
static int dm9161_config_init(struct phy_device *phydev) static int dm9161_config_init(struct phy_device *phydev)
{ {
int err; int err, temp;
/* Isolate the PHY */ /* Isolate the PHY */
err = phy_write(phydev, MII_BMCR, BMCR_ISOLATE); err = phy_write(phydev, MII_BMCR, BMCR_ISOLATE);
...@@ -111,9 +112,19 @@ static int dm9161_config_init(struct phy_device *phydev) ...@@ -111,9 +112,19 @@ static int dm9161_config_init(struct phy_device *phydev)
if (err < 0) if (err < 0)
return err; return err;
/* Do not bypass the scrambler/descrambler */ switch (phydev->interface) {
err = phy_write(phydev, MII_DM9161_SCR, MII_DM9161_SCR_INIT); case PHY_INTERFACE_MODE_MII:
temp = MII_DM9161_SCR_INIT;
break;
case PHY_INTERFACE_MODE_RMII:
temp = MII_DM9161_SCR_INIT | MII_DM9161_SCR_RMII;
break;
default:
return -EINVAL;
}
/* Do not bypass the scrambler/descrambler */
err = phy_write(phydev, MII_DM9161_SCR, temp);
if (err < 0) if (err < 0)
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment