From edcc2833819f6750bf003b95a6ac856aced26276 Mon Sep 17 00:00:00 2001 From: AnYun Date: Mon, 3 Apr 2023 23:26:04 +0800 Subject: [PATCH] net: phy: realtek: add LED configuration from OF for 8211f --- drivers/net/phy/realtek.c | 9 +++++++++ 1 file changed, 9 insertions(+) --- a/drivers/net/phy/realtek/realtek_main.c +++ b/drivers/net/phy/realtek/realtek_main.c @@ -34,6 +34,7 @@ #define RTL8211F_PHYCR2 0x19 #define RTL8211F_INSR 0x1d +#define RTL8211F_EEELCR 0x11 #define RTL8211F_LEDCR 0x10 #define RTL8211F_LEDCR_MODE BIT(15) #define RTL8211F_LEDCR_ACT_TXRX BIT(4) @@ -382,6 +383,7 @@ static int rtl8211f_config_init(struct p struct rtl821x_priv *priv = phydev->priv; struct device *dev = &phydev->mdio.dev; u16 val_txdly, val_rxdly; + u32 led_data; int ret; ret = phy_modify_paged_changed(phydev, 0xa43, RTL8211F_PHYCR1, @@ -448,6 +450,15 @@ static int rtl8211f_config_init(struct p val_rxdly ? "enabled" : "disabled"); } + ret = of_property_read_u32(dev->of_node, + "realtek,led-data", &led_data); + if (!ret) { + phy_write(phydev, RTL821x_PAGE_SELECT, 0xd04); + phy_write(phydev, RTL8211F_LEDCR, led_data); + phy_write(phydev, RTL8211F_EEELCR, 0x0); + phy_write(phydev, RTL821x_PAGE_SELECT, 0x0); + } + if (priv->has_phycr2) { ret = phy_modify_paged(phydev, 0xa43, RTL8211F_PHYCR2, RTL8211F_CLKOUT_EN, priv->phycr2);