1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 # Copyright 2019 BayLibre, SAS
5 $id: "http://devicetree.org/schemas/net/stm32-dwmac.yaml#"
6 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
8 title: STMicroelectronics STM32 / MCU DWMAC glue layer controller
11 - Alexandre Torgue <alexandre.torgue@st.com>
12 - Christophe Roullier <christophe.roullier@st.com>
15 This file documents platform glue layer for stmmac.
17 # We need a select here so we don't match all nodes with 'snps,dwmac'
29 - $ref: "snps,dwmac.yaml#"
37 - const: snps,dwmac-4.20a
41 - const: snps,dwmac-4.10a
45 - const: snps,dwmac-3.50a
51 - description: GMAC main clock
52 - description: MAC TX clock
53 - description: MAC RX clock
54 - description: For MPU family, used for power mode
55 - description: For MPU family, used for PHY without quartz
69 $ref: "/schemas/types.yaml#/definitions/phandle-array"
71 Should be phandle/offset pair. The phandle to the syscon node which
72 encompases the glue register, and the offset of the control register
76 set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.
81 set this property in RMII mode when you have PHY without crystal 50MHz and want to
82 select RCC clock instead of ETH_REF_CLK.
91 unevaluatedProperties: false
95 #include <dt-bindings/interrupt-controller/arm-gic.h>
96 #include <dt-bindings/clock/stm32mp1-clks.h>
97 #include <dt-bindings/reset/stm32mp1-resets.h>
98 #include <dt-bindings/mfd/stm32h7-rcc.h>
100 ethernet0: ethernet@5800a000 {
101 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
102 reg = <0x5800a000 0x2000>;
103 reg-names = "stmmaceth";
104 interrupts = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
105 interrupt-names = "macirq";
106 clock-names = "stmmaceth",
111 clocks = <&rcc ETHMAC>,
116 st,syscon = <&syscfg 0x4>;
118 snps,axi-config = <&stmmac_axi_config_0>;
123 //Example 2 (MCU example)
124 ethernet1: ethernet@40028000 {
125 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
126 reg = <0x40028000 0x8000>;
127 reg-names = "stmmaceth";
128 interrupts = <0 61 0>, <0 62 0>;
129 interrupt-names = "macirq", "eth_wake_irq";
130 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
131 clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
132 st,syscon = <&syscfg 0x4>;
139 ethernet2: ethernet@40027000 {
140 compatible = "st,stm32-dwmac", "snps,dwmac-4.10a";
141 reg = <0x40028000 0x8000>;
142 reg-names = "stmmaceth";
144 interrupt-names = "macirq";
145 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
146 clocks = <&rcc 62>, <&rcc 61>, <&rcc 60>;
147 st,syscon = <&syscfg 0x4>;