|
|
@@ -828,6 +828,22 @@ static int m88e1121_config_init(struct phy_device *phydev)
|
|
|
return marvell_config_init(phydev);
|
|
|
}
|
|
|
|
|
|
+static int m88e1318_config_init(struct phy_device *phydev)
|
|
|
+{
|
|
|
+ if (phy_interrupt_is_valid(phydev)) {
|
|
|
+ int err = phy_modify_paged(
|
|
|
+ phydev, MII_MARVELL_LED_PAGE,
|
|
|
+ MII_88E1318S_PHY_LED_TCR,
|
|
|
+ MII_88E1318S_PHY_LED_TCR_FORCE_INT,
|
|
|
+ MII_88E1318S_PHY_LED_TCR_INTn_ENABLE |
|
|
|
+ MII_88E1318S_PHY_LED_TCR_INT_ACTIVE_LOW);
|
|
|
+ if (err < 0)
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+
|
|
|
+ return m88e1121_config_init(phydev);
|
|
|
+}
|
|
|
+
|
|
|
static int m88e1510_config_init(struct phy_device *phydev)
|
|
|
{
|
|
|
int err;
|
|
|
@@ -870,7 +886,7 @@ static int m88e1510_config_init(struct phy_device *phydev)
|
|
|
phydev->advertising &= ~pause;
|
|
|
}
|
|
|
|
|
|
- return m88e1121_config_init(phydev);
|
|
|
+ return m88e1318_config_init(phydev);
|
|
|
}
|
|
|
|
|
|
static int m88e1118_config_aneg(struct phy_device *phydev)
|
|
|
@@ -2086,7 +2102,7 @@ static struct phy_driver marvell_drivers[] = {
|
|
|
.features = PHY_GBIT_FEATURES,
|
|
|
.flags = PHY_HAS_INTERRUPT,
|
|
|
.probe = marvell_probe,
|
|
|
- .config_init = &m88e1121_config_init,
|
|
|
+ .config_init = &m88e1318_config_init,
|
|
|
.config_aneg = &m88e1318_config_aneg,
|
|
|
.read_status = &marvell_read_status,
|
|
|
.ack_interrupt = &marvell_ack_interrupt,
|