1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2# Copyright 2019 BayLibre, SAS 3%YAML 1.2 4--- 5$id: "http://devicetree.org/schemas/net/stm32-dwmac.yaml#" 6$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7 8title: STMicroelectronics STM32 / MCU DWMAC glue layer controller 9 10maintainers: 11 - Alexandre Torgue <alexandre.torgue@foss.st.com> 12 - Christophe Roullier <christophe.roullier@foss.st.com> 13 14description: 15 This file documents platform glue layer for stmmac. 16 17# We need a select here so we don't match all nodes with 'snps,dwmac' 18select: 19 properties: 20 compatible: 21 contains: 22 enum: 23 - st,stm32-dwmac 24 - st,stm32mp1-dwmac 25 required: 26 - compatible 27 28allOf: 29 - $ref: "snps,dwmac.yaml#" 30 31properties: 32 compatible: 33 oneOf: 34 - items: 35 - enum: 36 - st,stm32mp1-dwmac 37 - const: snps,dwmac-4.20a 38 - items: 39 - enum: 40 - st,stm32-dwmac 41 - const: snps,dwmac-4.10a 42 - items: 43 - enum: 44 - st,stm32-dwmac 45 - const: snps,dwmac-3.50a 46 47 clocks: 48 minItems: 3 49 items: 50 - description: GMAC main clock 51 - description: MAC TX clock 52 - description: MAC RX clock 53 - description: For MPU family, used for power mode 54 - description: For MPU family, used for PHY without quartz 55 - description: PTP clock 56 57 clock-names: 58 minItems: 3 59 maxItems: 6 60 contains: 61 enum: 62 - stmmaceth 63 - mac-clk-tx 64 - mac-clk-rx 65 - ethstp 66 - eth-ck 67 - ptp_ref 68 69 st,syscon: 70 $ref: "/schemas/types.yaml#/definitions/phandle-array" 71 description: 72 Should be phandle/offset pair. The phandle to the syscon node which 73 encompases the glue register, and the offset of the control register 74 75 st,eth-clk-sel: 76 description: 77 set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125. 78 type: boolean 79 80 st,eth-ref-clk-sel: 81 description: 82 set this property in RMII mode when you have PHY without crystal 50MHz and want to 83 select RCC clock instead of ETH_REF_CLK. 84 type: boolean 85 86required: 87 - compatible 88 - clocks 89 - clock-names 90 - st,syscon 91 92unevaluatedProperties: false 93 94examples: 95 - | 96 #include <dt-bindings/interrupt-controller/arm-gic.h> 97 #include <dt-bindings/clock/stm32mp1-clks.h> 98 #include <dt-bindings/reset/stm32mp1-resets.h> 99 #include <dt-bindings/mfd/stm32h7-rcc.h> 100 //Example 1 101 ethernet0: ethernet@5800a000 { 102 compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a"; 103 reg = <0x5800a000 0x2000>; 104 reg-names = "stmmaceth"; 105 interrupts = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 106 interrupt-names = "macirq"; 107 clock-names = "stmmaceth", 108 "mac-clk-tx", 109 "mac-clk-rx", 110 "ethstp", 111 "eth-ck"; 112 clocks = <&rcc ETHMAC>, 113 <&rcc ETHTX>, 114 <&rcc ETHRX>, 115 <&rcc ETHSTP>, 116 <&rcc ETHCK_K>; 117 st,syscon = <&syscfg 0x4>; 118 snps,pbl = <2>; 119 snps,axi-config = <&stmmac_axi_config_0>; 120 snps,tso; 121 phy-mode = "rgmii"; 122 }; 123 124 //Example 2 (MCU example) 125 ethernet1: ethernet@40028000 { 126 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; 127 reg = <0x40028000 0x8000>; 128 reg-names = "stmmaceth"; 129 interrupts = <0 61 0>, <0 62 0>; 130 interrupt-names = "macirq", "eth_wake_irq"; 131 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 132 clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>; 133 st,syscon = <&syscfg 0x4>; 134 snps,pbl = <8>; 135 snps,mixed-burst; 136 phy-mode = "mii"; 137 }; 138 139 //Example 3 140 ethernet2: ethernet@40027000 { 141 compatible = "st,stm32-dwmac", "snps,dwmac-4.10a"; 142 reg = <0x40028000 0x8000>; 143 reg-names = "stmmaceth"; 144 interrupts = <61>; 145 interrupt-names = "macirq"; 146 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 147 clocks = <&rcc 62>, <&rcc 61>, <&rcc 60>; 148 st,syscon = <&syscfg 0x4>; 149 snps,pbl = <8>; 150 phy-mode = "mii"; 151 }; 152