mirror of https://gitee.com/openkylin/linux.git
dm9161: add configuration for MII/RMII
Signed-off-by: Frederic Rodo <f.rodo@til-technologies.fr> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
dea75bdfa5
commit
8b7c166440
|
@ -37,6 +37,7 @@
|
|||
|
||||
#define MII_DM9161_SCR 0x10
|
||||
#define MII_DM9161_SCR_INIT 0x0610
|
||||
#define MII_DM9161_SCR_RMII 0x0100
|
||||
|
||||
/* DM9161 Interrupt Register */
|
||||
#define MII_DM9161_INTR 0x15
|
||||
|
@ -103,7 +104,7 @@ static int dm9161_config_aneg(struct phy_device *phydev)
|
|||
|
||||
static int dm9161_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int err;
|
||||
int err, temp;
|
||||
|
||||
/* Isolate the PHY */
|
||||
err = phy_write(phydev, MII_BMCR, BMCR_ISOLATE);
|
||||
|
@ -111,9 +112,19 @@ static int dm9161_config_init(struct phy_device *phydev)
|
|||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* Do not bypass the scrambler/descrambler */
|
||||
err = phy_write(phydev, MII_DM9161_SCR, MII_DM9161_SCR_INIT);
|
||||
switch (phydev->interface) {
|
||||
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)
|
||||
return err;
|
||||
|
||||
|
|
Loading…
Reference in New Issue