diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c index 7d38af5ed4b52..8a2b425627bef 100644 --- a/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c @@ -29,6 +29,11 @@ #define RTL8211F_PAGE_SELECT 0x1f #define RTL8211F_TX_DELAY 0x100 +/* page 0xd04, register 0x10-0x11 */ +#define RTL8211F_PHYLED_PAGE 0x0d04 +#define RTL8211F_EEE_LED_REG 0x11 +#define RTL8211F_LED_REG 0x10 + MODULE_DESCRIPTION("Realtek PHY driver"); MODULE_AUTHOR("Johnson Leung"); MODULE_LICENSE("GPL"); @@ -113,6 +118,21 @@ static int rtl8211f_config_init(struct phy_device *phydev) reg &= ~RTL8211F_TX_DELAY; phy_write(phydev, 0x11, reg); + + ret = phy_write(phydev, RTL8211F_PAGE_SELECT, RTL8211F_PHYLED_PAGE); + if (ret < 0) + dev_err(&phydev->mdio.dev, "select page failed\n"); + + /* disable EEE LED*/ + ret = phy_write(phydev, RTL8211F_EEE_LED_REG, 0x0000); + if (ret < 0) + dev_err(&phydev->mdio.dev, "write EEE register failed\n"); + + /* setting 1000Mbps for orange LED, 100Mbps for green LED */ + ret = phy_write(phydev, RTL8211F_LED_REG, 0x091f); + if (ret < 0) + dev_err(&phydev->mdio.dev, "select LED register failed\n"); + /* restore to default page 0 */ phy_write(phydev, RTL8211F_PAGE_SELECT, 0x0);