From: Jonas Jelonek Date: Tue, 24 Feb 2026 18:22:45 +0000 (+0000) Subject: realtek: pcs: add CMU management SerDes ops X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e29b78726b4a87d2bb9124ced33658f9cf6a138;p=thirdparty%2Fopenwrt.git 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 --- 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 93459f2c4aa..9767bd8e14f 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 {