diff --git a/target/linux/rockchip/patches-6.12/996-set-led-mode-for-yt8521.patch b/target/linux/rockchip/patches-6.12/996-set-led-mode-for-yt8521.patch new file mode 100644 index 000000000..21daad5d0 --- /dev/null +++ b/target/linux/rockchip/patches-6.12/996-set-led-mode-for-yt8521.patch @@ -0,0 +1,46 @@ +--- a/drivers/net/phy/motorcomm.c 2025-02-14 18:58:18.691542738 +0900 ++++ b/drivers/net/phy/motorcomm.c 2025-02-14 19:05:00.299135505 +0900 +@@ -353,6 +353,12 @@ + #define YT8821_CHIP_MODE_AUTO_BX2500_SGMII 0 + #define YT8821_CHIP_MODE_FORCE_BX2500 1 + ++#define YT8521_EXTREG_LED_GENERAL_CFG 0xA00B ++#define YT8521_EXTREG_LED0_CFG 0xA00C ++#define YT8521_EXTREG_LED1_CFG 0xA00D ++#define YT8521_EXTREG_LED2_CFG 0xA00E ++#define YT8521_EXTREG_LED_BLINK_CFG 0xA00F ++ + struct yt8521_priv { + /* combo_advertising is used for case of YT8521 in combo mode, + * this means that yt8521 may work in utp or fiber mode which depends +@@ -1577,6 +1583,20 @@ + return 0; + } + ++static int yt8521_led_init(struct phy_device *phydev) ++{ ++ int ret; ++ u16 val; ++ ++ val = (0x7 << 4); ++ ret = ytphy_write_ext(phydev, YT8521_EXTREG_LED2_CFG, val); ++ ++ val = 0x7; ++ ret = ytphy_write_ext(phydev, YT8521_EXTREG_LED1_CFG, val); ++ ++ return 0; ++} ++ + /** + * yt8521_soft_reset() - called to issue a PHY software reset + * @phydev: a pointer to a &struct phy_device +@@ -1677,6 +1697,9 @@ + if (ret < 0) + goto err_restore_page; + } ++ ++ yt8521_led_init(phydev); ++ + err_restore_page: + return phy_restore_page(phydev, old_page, ret); + }