1*7ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*7ef62cebSEmmanuel Vadot%YAML 1.2 3*7ef62cebSEmmanuel Vadot--- 4*7ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/net/nvidia,tegra234-mgbe.yaml# 5*7ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*7ef62cebSEmmanuel Vadot 7*7ef62cebSEmmanuel Vadottitle: Tegra234 MGBE Multi-Gigabit Ethernet Controller 8*7ef62cebSEmmanuel Vadot 9*7ef62cebSEmmanuel Vadotmaintainers: 10*7ef62cebSEmmanuel Vadot - Thierry Reding <treding@nvidia.com> 11*7ef62cebSEmmanuel Vadot - Jon Hunter <jonathanh@nvidia.com> 12*7ef62cebSEmmanuel Vadot 13*7ef62cebSEmmanuel Vadotproperties: 14*7ef62cebSEmmanuel Vadot compatible: 15*7ef62cebSEmmanuel Vadot const: nvidia,tegra234-mgbe 16*7ef62cebSEmmanuel Vadot 17*7ef62cebSEmmanuel Vadot reg: 18*7ef62cebSEmmanuel Vadot maxItems: 3 19*7ef62cebSEmmanuel Vadot 20*7ef62cebSEmmanuel Vadot reg-names: 21*7ef62cebSEmmanuel Vadot items: 22*7ef62cebSEmmanuel Vadot - const: hypervisor 23*7ef62cebSEmmanuel Vadot - const: mac 24*7ef62cebSEmmanuel Vadot - const: xpcs 25*7ef62cebSEmmanuel Vadot 26*7ef62cebSEmmanuel Vadot interrupts: 27*7ef62cebSEmmanuel Vadot minItems: 1 28*7ef62cebSEmmanuel Vadot maxItems: 3 29*7ef62cebSEmmanuel Vadot 30*7ef62cebSEmmanuel Vadot interrupt-names: 31*7ef62cebSEmmanuel Vadot minItems: 1 32*7ef62cebSEmmanuel Vadot items: 33*7ef62cebSEmmanuel Vadot - const: common 34*7ef62cebSEmmanuel Vadot - const: macsec-ns 35*7ef62cebSEmmanuel Vadot - const: macsec 36*7ef62cebSEmmanuel Vadot 37*7ef62cebSEmmanuel Vadot clocks: 38*7ef62cebSEmmanuel Vadot maxItems: 12 39*7ef62cebSEmmanuel Vadot 40*7ef62cebSEmmanuel Vadot clock-names: 41*7ef62cebSEmmanuel Vadot items: 42*7ef62cebSEmmanuel Vadot - const: mgbe 43*7ef62cebSEmmanuel Vadot - const: mac 44*7ef62cebSEmmanuel Vadot - const: mac-divider 45*7ef62cebSEmmanuel Vadot - const: ptp-ref 46*7ef62cebSEmmanuel Vadot - const: rx-input-m 47*7ef62cebSEmmanuel Vadot - const: rx-input 48*7ef62cebSEmmanuel Vadot - const: tx 49*7ef62cebSEmmanuel Vadot - const: eee-pcs 50*7ef62cebSEmmanuel Vadot - const: rx-pcs-input 51*7ef62cebSEmmanuel Vadot - const: rx-pcs-m 52*7ef62cebSEmmanuel Vadot - const: rx-pcs 53*7ef62cebSEmmanuel Vadot - const: tx-pcs 54*7ef62cebSEmmanuel Vadot 55*7ef62cebSEmmanuel Vadot resets: 56*7ef62cebSEmmanuel Vadot maxItems: 2 57*7ef62cebSEmmanuel Vadot 58*7ef62cebSEmmanuel Vadot reset-names: 59*7ef62cebSEmmanuel Vadot items: 60*7ef62cebSEmmanuel Vadot - const: mac 61*7ef62cebSEmmanuel Vadot - const: pcs 62*7ef62cebSEmmanuel Vadot 63*7ef62cebSEmmanuel Vadot interconnects: 64*7ef62cebSEmmanuel Vadot items: 65*7ef62cebSEmmanuel Vadot - description: memory read client 66*7ef62cebSEmmanuel Vadot - description: memory write client 67*7ef62cebSEmmanuel Vadot 68*7ef62cebSEmmanuel Vadot interconnect-names: 69*7ef62cebSEmmanuel Vadot items: 70*7ef62cebSEmmanuel Vadot - const: dma-mem 71*7ef62cebSEmmanuel Vadot - const: write 72*7ef62cebSEmmanuel Vadot 73*7ef62cebSEmmanuel Vadot iommus: 74*7ef62cebSEmmanuel Vadot maxItems: 1 75*7ef62cebSEmmanuel Vadot 76*7ef62cebSEmmanuel Vadot power-domains: 77*7ef62cebSEmmanuel Vadot maxItems: 1 78*7ef62cebSEmmanuel Vadot 79*7ef62cebSEmmanuel Vadot phy-handle: true 80*7ef62cebSEmmanuel Vadot 81*7ef62cebSEmmanuel Vadot phy-mode: 82*7ef62cebSEmmanuel Vadot contains: 83*7ef62cebSEmmanuel Vadot enum: 84*7ef62cebSEmmanuel Vadot - usxgmii 85*7ef62cebSEmmanuel Vadot - 10gbase-kr 86*7ef62cebSEmmanuel Vadot 87*7ef62cebSEmmanuel Vadot mdio: 88*7ef62cebSEmmanuel Vadot $ref: mdio.yaml# 89*7ef62cebSEmmanuel Vadot unevaluatedProperties: false 90*7ef62cebSEmmanuel Vadot description: 91*7ef62cebSEmmanuel Vadot Optional node for embedded MDIO controller. 92*7ef62cebSEmmanuel Vadot 93*7ef62cebSEmmanuel Vadotrequired: 94*7ef62cebSEmmanuel Vadot - compatible 95*7ef62cebSEmmanuel Vadot - reg 96*7ef62cebSEmmanuel Vadot - interrupts 97*7ef62cebSEmmanuel Vadot - interrupt-names 98*7ef62cebSEmmanuel Vadot - clocks 99*7ef62cebSEmmanuel Vadot - clock-names 100*7ef62cebSEmmanuel Vadot - resets 101*7ef62cebSEmmanuel Vadot - reset-names 102*7ef62cebSEmmanuel Vadot - power-domains 103*7ef62cebSEmmanuel Vadot - phy-handle 104*7ef62cebSEmmanuel Vadot - phy-mode 105*7ef62cebSEmmanuel Vadot 106*7ef62cebSEmmanuel VadotadditionalProperties: false 107*7ef62cebSEmmanuel Vadot 108*7ef62cebSEmmanuel Vadotexamples: 109*7ef62cebSEmmanuel Vadot - | 110*7ef62cebSEmmanuel Vadot #include <dt-bindings/clock/tegra234-clock.h> 111*7ef62cebSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 112*7ef62cebSEmmanuel Vadot #include <dt-bindings/memory/tegra234-mc.h> 113*7ef62cebSEmmanuel Vadot #include <dt-bindings/power/tegra234-powergate.h> 114*7ef62cebSEmmanuel Vadot #include <dt-bindings/reset/tegra234-reset.h> 115*7ef62cebSEmmanuel Vadot 116*7ef62cebSEmmanuel Vadot ethernet@6800000 { 117*7ef62cebSEmmanuel Vadot compatible = "nvidia,tegra234-mgbe"; 118*7ef62cebSEmmanuel Vadot reg = <0x06800000 0x10000>, 119*7ef62cebSEmmanuel Vadot <0x06810000 0x10000>, 120*7ef62cebSEmmanuel Vadot <0x068a0000 0x10000>; 121*7ef62cebSEmmanuel Vadot reg-names = "hypervisor", "mac", "xpcs"; 122*7ef62cebSEmmanuel Vadot interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>; 123*7ef62cebSEmmanuel Vadot interrupt-names = "common"; 124*7ef62cebSEmmanuel Vadot clocks = <&bpmp TEGRA234_CLK_MGBE0_APP>, 125*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_MAC>, 126*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_MAC_DIVIDER>, 127*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_PTP_REF>, 128*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT_M>, 129*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT>, 130*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_TX>, 131*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_EEE_PCS>, 132*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_INPUT>, 133*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_M>, 134*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_RX_PCS>, 135*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_CLK_MGBE0_TX_PCS>; 136*7ef62cebSEmmanuel Vadot clock-names = "mgbe", "mac", "mac-divider", "ptp-ref", "rx-input-m", 137*7ef62cebSEmmanuel Vadot "rx-input", "tx", "eee-pcs", "rx-pcs-input", "rx-pcs-m", 138*7ef62cebSEmmanuel Vadot "rx-pcs", "tx-pcs"; 139*7ef62cebSEmmanuel Vadot resets = <&bpmp TEGRA234_RESET_MGBE0_MAC>, 140*7ef62cebSEmmanuel Vadot <&bpmp TEGRA234_RESET_MGBE0_PCS>; 141*7ef62cebSEmmanuel Vadot reset-names = "mac", "pcs"; 142*7ef62cebSEmmanuel Vadot interconnects = <&mc TEGRA234_MEMORY_CLIENT_MGBEARD &emc>, 143*7ef62cebSEmmanuel Vadot <&mc TEGRA234_MEMORY_CLIENT_MGBEAWR &emc>; 144*7ef62cebSEmmanuel Vadot interconnect-names = "dma-mem", "write"; 145*7ef62cebSEmmanuel Vadot iommus = <&smmu_niso0 TEGRA234_SID_MGBE>; 146*7ef62cebSEmmanuel Vadot power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEA>; 147*7ef62cebSEmmanuel Vadot 148*7ef62cebSEmmanuel Vadot phy-handle = <&mgbe0_phy>; 149*7ef62cebSEmmanuel Vadot phy-mode = "usxgmii"; 150*7ef62cebSEmmanuel Vadot 151*7ef62cebSEmmanuel Vadot mdio { 152*7ef62cebSEmmanuel Vadot #address-cells = <1>; 153*7ef62cebSEmmanuel Vadot #size-cells = <0>; 154*7ef62cebSEmmanuel Vadot 155*7ef62cebSEmmanuel Vadot mgbe0_phy: phy@0 { 156*7ef62cebSEmmanuel Vadot compatible = "ethernet-phy-ieee802.3-c45"; 157*7ef62cebSEmmanuel Vadot reg = <0x0>; 158*7ef62cebSEmmanuel Vadot 159*7ef62cebSEmmanuel Vadot #phy-cells = <0>; 160*7ef62cebSEmmanuel Vadot }; 161*7ef62cebSEmmanuel Vadot }; 162*7ef62cebSEmmanuel Vadot }; 163