Update On Tue Oct 8 20:36:40 CEST 2024

This commit is contained in:
github-action[bot]
2024-10-08 20:36:41 +02:00
parent fd37c3e1de
commit 5f2a772a48
190 changed files with 5068 additions and 2802 deletions
@@ -18,36 +18,55 @@ Signed-off-by: Yangyu Chen <cyy@cyyself.name>
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -86,6 +86,10 @@
@@ -86,6 +86,12 @@
#define RTL8221B_PHYCR1_ALDPS_EN BIT(2)
#define RTL8221B_PHYCR1_ALDPS_XTAL_OFF_EN BIT(12)
+#define RTL8221B_NR_LEDS 3
+#define RTL8221B_LED_LINK_SELECT 0xd032
+#define RTL8221B_LED_LINK_SELECT_OFFSET 0x2
+#define RTL8221B_LED_ACT_SELECT 0xd040
+#define RTL8221B_LED_POLARITY_SELECT 0xd044
+
#define RTL8366RB_POWER_SAVE 0x15
#define RTL8366RB_POWER_SAVE_ON BIT(12)
@@ -787,6 +791,28 @@ static int rtl822x_write_mmd(struct phy_
@@ -787,6 +793,45 @@ static int rtl822x_write_mmd(struct phy_
return ret;
}
+static int rtl822xb_config_led(struct phy_device *phydev) {
+ struct device_node *node = phydev->mdio.dev.of_node;
+ u32 link_select[RTL8221B_NR_LEDS];
+ u32 act_select, polarity_select;
+ int i, val;
+
+ val = of_property_read_u32_array(node, "realtek,led-link-select",
+ val = of_property_read_u32_array(node, "realtek,led-link-select",
+ link_select, RTL8221B_NR_LEDS);
+ if (!val) {
+ for (i = 0; i < RTL8221B_NR_LEDS; i++) {
+ val = phy_write_mmd(phydev, MDIO_MMD_VEND2,
+ RTL8221B_LED_LINK_SELECT + i * RTL8221B_LED_LINK_SELECT_OFFSET,
+ link_select[i]);
+ if (val < 0)
+ return val;
+ }
+ }
+
+ if (val)
+ return 0;
+ val = of_property_read_u32(node, "realtek,led-act-select",
+ &act_select);
+ if (!val) {
+ val = phy_write_mmd(phydev, MDIO_MMD_VEND2,
+ RTL8221B_LED_ACT_SELECT, act_select);
+ if (val < 0)
+ return val;
+ }
+
+ for (i = 0; i < RTL8221B_NR_LEDS; i++) {
+ val = phy_write_mmd(phydev, MDIO_MMD_VEND2,
+ RTL8221B_LED_LINK_SELECT + i * RTL8221B_LED_LINK_SELECT_OFFSET,
+ link_select[i]);
+ val = of_property_read_u32(node, "realtek,led-polarity-select",
+ &polarity_select);
+ if (!val) {
+ val = phy_write_mmd(phydev, MDIO_MMD_VEND2,
+ RTL8221B_LED_POLARITY_SELECT, polarity_select);
+ if (val < 0)
+ return val;
+ }
@@ -58,7 +77,7 @@ Signed-off-by: Yangyu Chen <cyy@cyyself.name>
static int rtl822xb_config_init(struct phy_device *phydev)
{
bool has_2500, has_sgmii;
@@ -863,7 +889,7 @@ static int rtl822xb_config_init(struct p
@@ -863,7 +908,7 @@ static int rtl822xb_config_init(struct p
if (ret < 0)
return ret;