[PATCH v5 0/3] Add support for Nuvoton MA35D1 GMAC

Joey Lu
2024-12-18T11:44:52Z

This patch series is submitted to add GMAC support for Nuvoton MA35D1
SoC platform. This work involves implementing a GMAC driver glue layer
based on Synopsys DWMAC driver framework to leverage MA35D1's dual GMAC
interface capabilities.

Overview:
1. Added a GMAC driver glue layer for MA35D1 SoC, providing support for
the platform's two GMAC interfaces.
2. Added device tree settings, with specific configurations for our
development boards:
a. SOM board: Configured for two RGMII interfaces.
b. IoT board: Configured with one RGMII and one RMII interface.
3. Added dt-bindings for the GMAC interfaces.

v5:
- Update nuvoton,ma35d1-dwmac.yaml
- Remove the properties already defined in snps,dwmac.yaml.
- Update dwmac-nuvoton driver
- Add a comment to explain the override of PMT flag.

v4:
- Update nuvoton,ma35d1-dwmac.yaml
- Remove unnecessary property 'select'.
- Remove unnecessary compatible entries and fix items.
- Specify number of entries for 'reg'.
- Remove already defined property 'phy-handle'.
- Update example.
- Modify the property internal path delay to match the driver.
- Update dtsi
- Move 'status' to be the last property.
- Update dwmac-nuvoton driver
- Use .remove instead of .remove_new.
- Use dev_err_probe instead.

v3:
- Update nuvoton,ma35d1-dwmac.yaml
- Fix for dt_binding_check warnings/errors.
- Add compatible in snps,dwmac.yaml.
- Update dtsi
- Update dtsi to follow examples in yaml.
- Update dwmac-nuvoton driver
- Fix for auto build test warnings.
- Invalid path delay arguments will be returned.

v2:
- Update nuvoton,ma35d1-dwmac.yaml
- Rename file to align with the compatible property.
- Add an argument to syscon to replace mac-id,
with corresponding descriptions.
- Use tx-internal-delay-ps and rx-internal-delay-ps properties for
configurable path delay with corresponding descriptions,
allowing selection between GMAC internal and PHY.
- Add all supported phy-mode options.
- Remove unused properties.
- Update dtsi
- Modify syscon configuration to include an argument for
GMAC interface selection.
- Update dwmac-nuvoton driver
- Remove redundant device information print statements.
- Remove non-global parameters.
- Retrieve GMAC interface selection from the syscon argument.
- Parse Tx and Rx path delays by correct properties.
- Update configurations to support Wake-on-LAN.

Joey Lu (3):
dt-bindings: net: nuvoton: Add schema for Nuvoton MA35 family GMAC
arm64: dts: nuvoton: Add Ethernet nodes
net: stmmac: dwmac-nuvoton: Add dwmac glue for Nuvoton MA35 family

.../bindings/net/nuvoton,ma35d1-dwmac.yaml | 126 ++++++++++++
.../devicetree/bindings/net/snps,dwmac.yaml | 1 +
.../boot/dts/nuvoton/ma35d1-iot-512m.dts | 12 ++
.../boot/dts/nuvoton/ma35d1-som-256m.dts | 10 +
arch/arm64/boot/dts/nuvoton/ma35d1.dtsi | 54 ++++++
drivers/net/ethernet/stmicro/stmmac/Kconfig | 11 ++
drivers/net/ethernet/stmicro/stmmac/Makefile | 1 +
.../ethernet/stmicro/stmmac/dwmac-nuvoton.c | 182 ++++++++++++++++++
8 files changed, 397 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/nuvoton,ma35d1-dwmac.yaml
create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-nuvoton.c

--
2.34.1