]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: pcs: add CMU management SerDes ops
authorJonas Jelonek <jelonek.jonas@gmail.com>
Tue, 24 Feb 2026 18:22:45 +0000 (18:22 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 14 Mar 2026 19:24:32 +0000 (20:24 +0100)
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 <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22198
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c

index 93459f2c4aa94da37731eb4e108cad5dc3dd5083..9767bd8e14f875eb4c3608f925ab794dcd896fdb 100644 (file)
@@ -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 {