[PATCH net] net: pcs: xpcs-rk: limit advertised interfaces
From: Coia Prant
Date: Thu Oct 29 2026 - 05:50:44 EST
The RK3568 XPCS supports 1000BASE-X, SGMII and QSGMII, but the RK3568
GMAC only implements SGMII, so only SGMII is advertised in
supported_interfaces.
The generic xpcs core fills the mask from the compat table, which
includes 1000BASE-X, QSGMII and the higher-speed modes. Clearing it and
setting only SGMII keeps phylink from validating interfaces that are
not usable here.
1000BASE-X and QSGMII can be enabled later when a board actually wires
them up.
Signed-off-by: Coia Prant <coiaprant@xxxxxxxxx>
---
drivers/net/pcs/pcs-xpcs-rk.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/pcs/pcs-xpcs-rk.c b/drivers/net/pcs/pcs-xpcs-rk.c
index 6f0a110e32d2..cc11a70d624f 100644
--- a/drivers/net/pcs/pcs-xpcs-rk.c
+++ b/drivers/net/pcs/pcs-xpcs-rk.c
@@ -536,6 +536,12 @@ struct dw_xpcs *xpcs_rk_create(struct device *dev, struct device_node *pcs, int
return xpcs;
}
+ /*
+ * The RK3568 XPCS supports 1000BASE-X, SGMII and QSGMII.
+ */
+ phy_interface_zero(xpcs->pcs.supported_interfaces);
+ __set_bit(PHY_INTERFACE_MODE_SGMII, xpcs->pcs.supported_interfaces);
+
xpcs_config_eee_mult_fact(xpcs, pxpcs->eee_mult_fact);
put_device(&pdev->dev);
return xpcs;
--
2.47.3