Skip to content

Commit

Permalink
net: phy: realtek: set led for rtl8211f phy
Browse files Browse the repository at this point in the history
Initialize LCR register to configure yellow LED for Active, green LED
for 100Mbps Link, and orange LED for 1000Mbps Link.

Note that EEE LED register has to disabled before configure custom LED
stauts.
  • Loading branch information
Wig Cheng authored and ray-chang committed Jun 1, 2022
1 parent 70388bb commit d1c9ccd
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions drivers/net/phy/realtek.c
Expand Up @@ -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");
Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit d1c9ccd

Please sign in to comment.