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
56 - description: PTP clock
71 $ref: "/schemas/types.yaml#/definitions/phandle-array"
73 Should be phandle/offset pair. The phandle to the syscon node which
74 encompases the glue register, and the offset of the control register
78 set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.
83 set this property in RMII mode when you have PHY without crystal 50MHz and want to
84 select RCC clock instead of ETH_REF_CLK.
93 unevaluatedProperties: false
97 #include <dt-bindings/interrupt-controller/arm-gic.h>
98 #include <dt-bindings/clock/stm32mp1-clks.h>
99 #include <dt-bindings/reset/stm32mp1-resets.h>
100 #include <dt-bindings/mfd/stm32h7-rcc.h>
102 ethernet0: ethernet@5800a000 {
103 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
104 reg = <0x5800a000 0x2000>;
105 reg-names = "stmmaceth";
106 interrupts = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
107 interrupt-names = "macirq";
108 clock-names = "stmmaceth",
113 clocks = <&rcc ETHMAC>,
118 st,syscon = <&syscfg 0x4>;
120 snps,axi-config = <&stmmac_axi_config_0>;
125 //Example 2 (MCU example)
126 ethernet1: ethernet@40028000 {
127 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
128 reg = <0x40028000 0x8000>;
129 reg-names = "stmmaceth";
130 interrupts = <0 61 0>, <0 62 0>;
131 interrupt-names = "macirq", "eth_wake_irq";
132 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
133 clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
134 st,syscon = <&syscfg 0x4>;
141 ethernet2: ethernet@40027000 {
142 compatible = "st,stm32-dwmac", "snps,dwmac-4.10a";
143 reg = <0x40028000 0x8000>;
144 reg-names = "stmmaceth";
146 interrupt-names = "macirq";
147 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
148 clocks = <&rcc 62>, <&rcc 61>, <&rcc 60>;
149 st,syscon = <&syscfg 0x4>;