realtek: 5.15: rtl93xx: add 1000Base-X and 10GBase-CR support on SerDes

This patch adds support for 1000Base-X and 10GBase-CR directly on the
SerDes lanes of rtl93xx SoCs.
This fixes SFP/SFP+ support on devices like the XSG1250-12.

Signed-off-by: Tobias Schramm <tobias@t-sys.eu>
This commit is contained in:
Tobias Schramm
2024-02-04 16:28:07 +01:00
committed by Sander Vanheule
parent 9fe2412e62
commit 9daf4dff6b
3 changed files with 101 additions and 139 deletions

View File

@@ -811,8 +811,10 @@ static void rtl93xx_phylink_mac_config(struct dsa_switch *ds, int port,
sds_num = priv->ports[port].sds_num;
pr_info("%s SDS is %d\n", __func__, sds_num);
if (sds_num >= 0 && state->interface == PHY_INTERFACE_MODE_10GBASER)
rtl9300_serdes_setup(sds_num, state->interface);
if (sds_num >= 0 &&
(state->interface == PHY_INTERFACE_MODE_1000BASEX ||
state->interface == PHY_INTERFACE_MODE_10GBASER))
rtl9300_serdes_setup(port, sds_num, state->interface);
reg = sw_r32(priv->r->mac_force_mode_ctrl(port));
reg &= ~(0xf << 3);