From 8e29b78726b4a87d2bb9124ced33658f9cf6a138 Mon Sep 17 00:00:00 2001 From: Jonas Jelonek Date: Tue, 24 Feb 2026 18:22:45 +0000 Subject: [PATCH] realtek: pcs: add CMU management SerDes ops Add new SerDes ops for CMU management to be able to share common behavior of CMU configuration for RTL930x and RTL931x while still covering variant specifics. Signed-off-by: Jonas Jelonek Link: https://github.com/openwrt/openwrt/pull/22198 Signed-off-by: Hauke Mehrtens --- .../realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c b/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c index 93459f2c4a..9767bd8e14 100644 --- a/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c +++ b/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c @@ -179,6 +179,14 @@ struct rtpcs_serdes_ops { int (*set_autoneg)(struct rtpcs_serdes *sds, unsigned int neg_mode, const unsigned long *advertising); void (*restart_autoneg)(struct rtpcs_serdes *sds); + + /* CMU management */ + int (*get_pll_select)(struct rtpcs_serdes *sds, enum rtpcs_sds_pll_type *pll); + int (*set_pll_select)(struct rtpcs_serdes *sds, enum rtpcs_sds_mode hw_mode, + enum rtpcs_sds_pll_type pll); + int (*reset_cmu)(struct rtpcs_serdes *sds, enum rtpcs_sds_pll_type pll); + /* online reconfiguration of a running SerDes to another PLL */ + int (*reconfigure_to_pll)(struct rtpcs_serdes *sds, enum rtpcs_sds_pll_type pll); }; struct rtpcs_sds_reg_field {