rockchip: add LED configuration for yt8531

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 3313bd7e8a)
This commit is contained in:
Tianling Shen 2023-11-15 20:24:16 +08:00
parent bd075ef351
commit b28a438abf
No known key found for this signature in database
GPG Key ID: 6850B6345C862176

View File

@ -1,6 +1,6 @@
--- a/drivers/net/phy/motorcomm.c
+++ b/drivers/net/phy/motorcomm.c
@@ -223,6 +223,12 @@
@@ -224,6 +224,12 @@
#define YTPHY_WCR_INTR_SEL BIT(6)
#define YTPHY_WCR_ENABLE BIT(3)
@ -13,7 +13,7 @@
/* 2b00 84ms
* 2b01 168ms *default*
* 2b10 336ms
@@ -1458,6 +1464,7 @@ static int yt8521_resume(struct phy_devi
@@ -1459,6 +1465,7 @@ static int yt8521_resume(struct phy_devi
static int yt8521_config_init(struct phy_device *phydev)
{
struct device_node *node = phydev->mdio.dev.of_node;
@ -21,7 +21,7 @@
int old_page;
int ret = 0;
@@ -1487,6 +1494,16 @@ static int yt8521_config_init(struct phy
@@ -1488,6 +1495,16 @@ static int yt8521_config_init(struct phy
if (ret < 0)
goto err_restore_page;
}
@ -38,3 +38,28 @@
err_restore_page:
return phy_restore_page(phydev, old_page, ret);
}
@@ -1495,6 +1512,7 @@ err_restore_page:
static int yt8531_config_init(struct phy_device *phydev)
{
struct device_node *node = phydev->mdio.dev.of_node;
+ u32 led_data[YTPHY_LED_NUM_CONFIG];
int ret;
ret = ytphy_rgmii_clk_delay_config_with_lock(phydev);
@@ -1519,6 +1537,16 @@ static int yt8531_config_init(struct phy
return ret;
}
+ if (!of_property_read_u32_array(node, "motorcomm,led-data",
+ led_data, YTPHY_LED_NUM_CONFIG)) {
+ for (int i = 0; i < YTPHY_LED_NUM_CONFIG; i++) {
+ ret = ytphy_write_ext(phydev, YTPHY_LED_CONFIG_REG(i),
+ led_data[i]);
+ if (ret < 0)
+ return ret;
+ }
+ }
+
return 0;
}