[PATCH v1 3/3] net: fsl_enetc: Add SGMII support for i.MX95

alice.guo at oss.nxp.com alice.guo at oss.nxp.com
Wed Jun 3 12:51:52 CEST 2026


From: Alice Guo <alice.guo at nxp.com>

Add SGMII interface mode configuration for i.MX95 platform in ENETC
driver.

Signed-off-by: Alice Guo <alice.guo at nxp.com>
---
 drivers/net/fsl_enetc.c | 10 ++++++++++
 drivers/net/fsl_enetc.h |  1 +
 2 files changed, 11 insertions(+)

diff --git a/drivers/net/fsl_enetc.c b/drivers/net/fsl_enetc.c
index 206f1a381bb..8406f70345c 100644
--- a/drivers/net/fsl_enetc.c
+++ b/drivers/net/fsl_enetc.c
@@ -362,6 +362,8 @@ static int enetc_init_sgmii(struct udevice *dev)
 
 	if (priv->uclass_id == PHY_INTERFACE_MODE_2500BASEX)
 		is2500 = true;
+	else if (priv->uclass_id == PHY_INTERFACE_MODE_SGMII)
+		return imx95_xpcs_phy_sgmii_1g_config(dev);
 
 	/*
 	 * Set to SGMII mode, for 1Gbps enable AN, for 2.5Gbps set fixed speed.
@@ -456,6 +458,14 @@ static void enetc_setup_mac_iface(struct udevice *dev,
 			if_mode &= ~ENETC_PM_IF_IFMODE_MASK_LS;
 		enetc_write_mac_port(dev, ENETC_PM_IF_MODE, if_mode);
 		break;
+	case PHY_INTERFACE_MODE_SGMII:
+		if_mode = enetc_read_mac_port(dev, ENETC_PM_IF_MODE);
+		if (enetc_is_imx95(dev)) {
+			if_mode &= ~(ENETC_PM_IF_IFMODE_MASK_IMX | ENETC_PM_IF_MODE_AN_ENA);
+			if_mode |= IFMODE_SGMII;
+		}
+		enetc_write_mac_port(dev, ENETC_PM_IF_MODE, if_mode);
+		break;
 	};
 }
 
diff --git a/drivers/net/fsl_enetc.h b/drivers/net/fsl_enetc.h
index 6d868e82f8c..3c35060ecb0 100644
--- a/drivers/net/fsl_enetc.h
+++ b/drivers/net/fsl_enetc.h
@@ -104,6 +104,7 @@ enum enetc_bdr_type {TX, RX};
 #define  ENETC_PM_IFM_FULL_DPX_IMX	BIT(6)
 #define  ENETC_PM_IFM_FULL_DPX_LS	BIT(12)
 #define  ENETC_PM_IF_IFMODE_MASK_IMX	GENMASK(2, 0)
+#define  IFMODE_SGMII                  5
 #define  ENETC_PM_IF_IFMODE_MASK_LS	GENMASK(1, 0)
 
 /* i.MX95 specific registers */

-- 
2.34.1



More information about the U-Boot mailing list