[PATCH v3 00/16] Add support for Synopsis DWMAC IP on NXP Automotive SoCs S32G2xx/S32G3xx/S32R45

From: Jan Petrous via B4 Relay
Date: Sun Oct 13 2024 - 17:28:42 EST


The SoC series S32G2xx and S32G3xx feature one DWMAC instance,
the SoC S32R45 has two instances. The devices can use RGMII/RMII/MII
interface over Pinctrl device or the output can be routed
to the embedded SerDes for SGMII connectivity.

The provided stmmac glue code implements only basic functionality,
interface support is restricted to RGMII only. More, including
SGMII/SerDes support will come later.

This patchset adds stmmac glue driver based on downstream NXP git [0].

[0] https://github.com/nxp-auto-linux/linux

v3:
- switched to b4 WoW to overcome threading issue with b4
- extracted the hunk with the typo fix from v2 patch#1 to separate patch
as Jacob suggested
- removed dead code for RMII/MII support, which will be added alter
- used new rgmii_clock() helper in other stmmac:dwmac glue drivers
- yaml: compatible strings compressed to simple one "nxp,s32-dwmac",
removed duplicated required properties, already defined in snps,dwmac,
fixed example

v2:
- send to wider audience as first version missed many maintainers
- created rgmi_clk() helper as Russell suggested (see patch#4)
- address Andrew's, Russell's, Serge's and Simon's comments

Message-ID: <AM9PR04MB85066576AD6848E2402DA354E2832@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

Signed-off-by: Jan Petrous (OSS) <jan.petrous@xxxxxxxxxxx>
---
Jan Petrous (OSS) (16):
net: driver: stmmac: Fix CSR divider comment
net: driver: stmmac: Extend CSR calc support
net: stmmac: Fix clock rate variables size
net: phy: Add helper for mapping RGMII link speed to clock rate
net: dwmac-dwc-qos-eth: Use helper rgmii_clock
net: dwmac-imx: Use helper rgmii_clock
net: dwmac-intel-plat: Use helper rgmii_clock
net: dwmac-rk: Use helper rgmii_clock
net: dwmac-starfive: Use helper rgmii_clock
net: macb: Use helper rgmii_clock
net: xgene_enet: Use helper rgmii_clock
net: dwmac-sti: Use helper rgmii_clock
dt-bindings: net: Add DT bindings for DWMAC on NXP S32G/R SoCs
net: stmmac: dwmac-s32: add basic NXP S32G/S32R glue driver
MAINTAINERS: Add Jan Petrous as the NXP S32G/R DWMAC driver maintainer
net: stmmac: dwmac-s32: Read PTP clock rate when ready

.../devicetree/bindings/net/nxp,s32-dwmac.yaml | 97 +++++++++
.../devicetree/bindings/net/snps,dwmac.yaml | 1 +
MAINTAINERS | 7 +
drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 16 +-
drivers/net/ethernet/cadence/macb_main.c | 14 +-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 ++
drivers/net/ethernet/stmicro/stmmac/Makefile | 1 +
drivers/net/ethernet/stmicro/stmmac/common.h | 2 +
.../ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c | 11 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c | 15 +-
.../net/ethernet/stmicro/stmmac/dwmac-intel-plat.c | 20 +-
.../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 30 +--
drivers/net/ethernet/stmicro/stmmac/dwmac-s32.c | 237 +++++++++++++++++++++
.../net/ethernet/stmicro/stmmac/dwmac-starfive.c | 19 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c | 18 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 +-
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +-
include/linux/phy.h | 21 ++
include/linux/stmmac.h | 10 +-
21 files changed, 424 insertions(+), 119 deletions(-)
---
base-commit: 18ba6034468e7949a9e2c2cf28e2e123b4fe7a50
change-id: 20240923-upstream_s32cc_gmac-6891eb75b126

Best regards,
--
Jan Petrous (OSS) <jan.petrous@xxxxxxxxxxx>