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