| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | |
| # Copyright 2021-2026 NXP | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/net/nxp,s32-dwmac.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: NXP S32G2xx/S32G3xx/S32R45 GMAC ethernet controller | |
| maintainers: | |
| - Jan Petrous (OSS) <jan.petrous@oss.nxp.com> | |
| description: | |
| This device is a Synopsys DWC IP, integrated on NXP S32G/R SoCs. | |
| 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 DWMAC instances have connected all RX/TX queues interrupts, | |
| enabling load balancing of data traffic across all CPU cores. | |
| properties: | |
| compatible: | |
| oneOf: | |
| - const: nxp,s32g2-dwmac | |
| - items: | |
| - enum: | |
| - nxp,s32g3-dwmac | |
| - nxp,s32r45-dwmac | |
| - const: nxp,s32g2-dwmac | |
| reg: | |
| items: | |
| - description: Main GMAC registers | |
| - description: GMAC PHY mode control register | |
| nxp,phy-sel: | |
| $ref: /schemas/types.yaml#/definitions/phandle-array | |
| items: | |
| - items: | |
| - description: phandle to the GPR syscon node | |
| - description: offset of PHY selection register | |
| description: | |
| This phandle points to the GMAC_0_CTRL_STS register which controls the | |
| GMAC_0 configuration options. The register lets you select the PHY | |
| interface and the PHY mode. It also controls if the FTM_0 or FTM_1 | |
| FlexTimer Modules connect to GMAC_0. | |
| interrupts: | |
| minItems: 1 | |
| maxItems: 11 | |
| interrupt-names: | |
| oneOf: | |
| - items: | |
| - const: macirq | |
| - items: | |
| - const: macirq | |
| - const: tx-queue-0 | |
| - const: rx-queue-0 | |
| - const: tx-queue-1 | |
| - const: rx-queue-1 | |
| - const: tx-queue-2 | |
| - const: rx-queue-2 | |
| - const: tx-queue-3 | |
| - const: rx-queue-3 | |
| - const: tx-queue-4 | |
| - const: rx-queue-4 | |
| clocks: | |
| items: | |
| - description: Main GMAC clock | |
| - description: Transmit clock | |
| - description: Receive clock | |
| - description: PTP reference clock | |
| clock-names: | |
| items: | |
| - const: stmmaceth | |
| - const: tx | |
| - const: rx | |
| - const: ptp_ref | |
| required: | |
| - clocks | |
| - clock-names | |
| allOf: | |
| - $ref: snps,dwmac.yaml# | |
| unevaluatedProperties: false | |
| examples: | |
| - | | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> | |
| #include <dt-bindings/interrupt-controller/irq.h> | |
| #include <dt-bindings/phy/phy.h> | |
| bus { | |
| #address-cells = <2>; | |
| #size-cells = <2>; | |
| ethernet@4033c000 { | |
| compatible = "nxp,s32g2-dwmac"; | |
| reg = <0x0 0x4033c000 0x0 0x2000>, /* gmac IP */ | |
| <0x0 0x4007c004 0x0 0x4>; /* GMAC_0_CTRL_STS */ | |
| nxp,phy-sel = <&gpr 0x4>; | |
| interrupt-parent = <&gic>; | |
| interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | |
| /* CHN 0: tx, rx */ | |
| <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, | |
| <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, | |
| /* CHN 1: tx, rx */ | |
| <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, | |
| <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, | |
| /* CHN 2: tx, rx */ | |
| <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, | |
| <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, | |
| /* CHN 3: tx, rx */ | |
| <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, | |
| <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, | |
| /* CHN 4: tx, rx */ | |
| <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, | |
| <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | |
| interrupt-names = "macirq", | |
| "tx-queue-0", "rx-queue-0", | |
| "tx-queue-1", "rx-queue-1", | |
| "tx-queue-2", "rx-queue-2", | |
| "tx-queue-3", "rx-queue-3", | |
| "tx-queue-4", "rx-queue-4"; | |
| snps,mtl-rx-config = <&mtl_rx_setup>; | |
| snps,mtl-tx-config = <&mtl_tx_setup>; | |
| clocks = <&clks 24>, <&clks 17>, <&clks 16>, <&clks 15>; | |
| clock-names = "stmmaceth", "tx", "rx", "ptp_ref"; | |
| phy-mode = "rgmii-id"; | |
| phy-handle = <&phy0>; | |
| mtl_rx_setup: rx-queues-config { | |
| snps,rx-queues-to-use = <5>; | |
| }; | |
| mtl_tx_setup: tx-queues-config { | |
| snps,tx-queues-to-use = <5>; | |
| }; | |
| mdio { | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| compatible = "snps,dwmac-mdio"; | |
| phy0: ethernet-phy@0 { | |
| reg = <0>; | |
| }; | |
| }; | |
| }; | |
| }; |