1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2d5b0e70fSEmmanuel Vadot%YAML 1.2 3d5b0e70fSEmmanuel Vadot--- 4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/net/mediatek,net.yaml# 5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6d5b0e70fSEmmanuel Vadot 7d5b0e70fSEmmanuel Vadottitle: MediaTek Frame Engine Ethernet controller 8d5b0e70fSEmmanuel Vadot 9d5b0e70fSEmmanuel Vadotmaintainers: 10d5b0e70fSEmmanuel Vadot - Lorenzo Bianconi <lorenzo@kernel.org> 11d5b0e70fSEmmanuel Vadot - Felix Fietkau <nbd@nbd.name> 12d5b0e70fSEmmanuel Vadot 13d5b0e70fSEmmanuel Vadotdescription: 14d5b0e70fSEmmanuel Vadot The frame engine ethernet controller can be found on MediaTek SoCs. These SoCs 15d5b0e70fSEmmanuel Vadot have dual GMAC ports. 16d5b0e70fSEmmanuel Vadot 17d5b0e70fSEmmanuel Vadotproperties: 18d5b0e70fSEmmanuel Vadot compatible: 19d5b0e70fSEmmanuel Vadot enum: 20d5b0e70fSEmmanuel Vadot - mediatek,mt2701-eth 21d5b0e70fSEmmanuel Vadot - mediatek,mt7623-eth 22d5b0e70fSEmmanuel Vadot - mediatek,mt7622-eth 23d5b0e70fSEmmanuel Vadot - mediatek,mt7629-eth 24d5b0e70fSEmmanuel Vadot - mediatek,mt7986-eth 25d5b0e70fSEmmanuel Vadot - ralink,rt5350-eth 26d5b0e70fSEmmanuel Vadot 27d5b0e70fSEmmanuel Vadot reg: 28d5b0e70fSEmmanuel Vadot maxItems: 1 29d5b0e70fSEmmanuel Vadot 30d5b0e70fSEmmanuel Vadot clocks: true 31d5b0e70fSEmmanuel Vadot clock-names: true 32d5b0e70fSEmmanuel Vadot 33d5b0e70fSEmmanuel Vadot interrupts: 34d5b0e70fSEmmanuel Vadot minItems: 3 35d5b0e70fSEmmanuel Vadot maxItems: 4 36d5b0e70fSEmmanuel Vadot 37d5b0e70fSEmmanuel Vadot power-domains: 38d5b0e70fSEmmanuel Vadot maxItems: 1 39d5b0e70fSEmmanuel Vadot 40d5b0e70fSEmmanuel Vadot resets: 41d5b0e70fSEmmanuel Vadot maxItems: 3 42d5b0e70fSEmmanuel Vadot 43d5b0e70fSEmmanuel Vadot reset-names: 44d5b0e70fSEmmanuel Vadot items: 45d5b0e70fSEmmanuel Vadot - const: fe 46d5b0e70fSEmmanuel Vadot - const: gmac 47d5b0e70fSEmmanuel Vadot - const: ppe 48d5b0e70fSEmmanuel Vadot 49d5b0e70fSEmmanuel Vadot mediatek,ethsys: 50d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 51d5b0e70fSEmmanuel Vadot description: 52d5b0e70fSEmmanuel Vadot Phandle to the syscon node that handles the port setup. 53d5b0e70fSEmmanuel Vadot 54d5b0e70fSEmmanuel Vadot cci-control-port: true 55d5b0e70fSEmmanuel Vadot 56d5b0e70fSEmmanuel Vadot mediatek,hifsys: 57d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 58d5b0e70fSEmmanuel Vadot description: 59d5b0e70fSEmmanuel Vadot Phandle to the mediatek hifsys controller used to provide various clocks 60d5b0e70fSEmmanuel Vadot and reset to the system. 61d5b0e70fSEmmanuel Vadot 62d5b0e70fSEmmanuel Vadot mediatek,sgmiisys: 63d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 64d5b0e70fSEmmanuel Vadot minItems: 1 65d5b0e70fSEmmanuel Vadot maxItems: 2 66d5b0e70fSEmmanuel Vadot items: 67d5b0e70fSEmmanuel Vadot maxItems: 1 68d5b0e70fSEmmanuel Vadot description: 69d5b0e70fSEmmanuel Vadot A list of phandle to the syscon node that handles the SGMII setup which is required for 70d5b0e70fSEmmanuel Vadot those SoCs equipped with SGMII. 71d5b0e70fSEmmanuel Vadot 72*7ef62cebSEmmanuel Vadot mediatek,wed: 73*7ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 74*7ef62cebSEmmanuel Vadot minItems: 2 75*7ef62cebSEmmanuel Vadot maxItems: 2 76*7ef62cebSEmmanuel Vadot items: 77*7ef62cebSEmmanuel Vadot maxItems: 1 78*7ef62cebSEmmanuel Vadot description: 79*7ef62cebSEmmanuel Vadot List of phandles to wireless ethernet dispatch nodes. 80*7ef62cebSEmmanuel Vadot 81d5b0e70fSEmmanuel Vadot dma-coherent: true 82d5b0e70fSEmmanuel Vadot 83d5b0e70fSEmmanuel Vadot mdio-bus: 84d5b0e70fSEmmanuel Vadot $ref: mdio.yaml# 85d5b0e70fSEmmanuel Vadot unevaluatedProperties: false 86d5b0e70fSEmmanuel Vadot 87d5b0e70fSEmmanuel Vadot "#address-cells": 88d5b0e70fSEmmanuel Vadot const: 1 89d5b0e70fSEmmanuel Vadot 90d5b0e70fSEmmanuel Vadot "#size-cells": 91d5b0e70fSEmmanuel Vadot const: 0 92d5b0e70fSEmmanuel Vadot 93d5b0e70fSEmmanuel VadotallOf: 94d5b0e70fSEmmanuel Vadot - $ref: "ethernet-controller.yaml#" 95d5b0e70fSEmmanuel Vadot - if: 96d5b0e70fSEmmanuel Vadot properties: 97d5b0e70fSEmmanuel Vadot compatible: 98d5b0e70fSEmmanuel Vadot contains: 99d5b0e70fSEmmanuel Vadot enum: 100d5b0e70fSEmmanuel Vadot - mediatek,mt2701-eth 101d5b0e70fSEmmanuel Vadot - mediatek,mt7623-eth 102d5b0e70fSEmmanuel Vadot then: 103d5b0e70fSEmmanuel Vadot properties: 104d5b0e70fSEmmanuel Vadot interrupts: 105d5b0e70fSEmmanuel Vadot maxItems: 3 106d5b0e70fSEmmanuel Vadot 107d5b0e70fSEmmanuel Vadot clocks: 108d5b0e70fSEmmanuel Vadot minItems: 4 109d5b0e70fSEmmanuel Vadot maxItems: 4 110d5b0e70fSEmmanuel Vadot 111d5b0e70fSEmmanuel Vadot clock-names: 112d5b0e70fSEmmanuel Vadot items: 113d5b0e70fSEmmanuel Vadot - const: ethif 114d5b0e70fSEmmanuel Vadot - const: esw 115d5b0e70fSEmmanuel Vadot - const: gp1 116d5b0e70fSEmmanuel Vadot - const: gp2 117d5b0e70fSEmmanuel Vadot 118d5b0e70fSEmmanuel Vadot mediatek,pctl: 119d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 120d5b0e70fSEmmanuel Vadot description: 121d5b0e70fSEmmanuel Vadot Phandle to the syscon node that handles the ports slew rate and 122d5b0e70fSEmmanuel Vadot driver current. 123d5b0e70fSEmmanuel Vadot 124*7ef62cebSEmmanuel Vadot mediatek,wed: false 125*7ef62cebSEmmanuel Vadot 126d5b0e70fSEmmanuel Vadot - if: 127d5b0e70fSEmmanuel Vadot properties: 128d5b0e70fSEmmanuel Vadot compatible: 129d5b0e70fSEmmanuel Vadot contains: 130d5b0e70fSEmmanuel Vadot const: mediatek,mt7622-eth 131d5b0e70fSEmmanuel Vadot then: 132d5b0e70fSEmmanuel Vadot properties: 133d5b0e70fSEmmanuel Vadot interrupts: 134d5b0e70fSEmmanuel Vadot maxItems: 3 135d5b0e70fSEmmanuel Vadot 136d5b0e70fSEmmanuel Vadot clocks: 137d5b0e70fSEmmanuel Vadot minItems: 11 138d5b0e70fSEmmanuel Vadot maxItems: 11 139d5b0e70fSEmmanuel Vadot 140d5b0e70fSEmmanuel Vadot clock-names: 141d5b0e70fSEmmanuel Vadot items: 142d5b0e70fSEmmanuel Vadot - const: ethif 143d5b0e70fSEmmanuel Vadot - const: esw 144d5b0e70fSEmmanuel Vadot - const: gp0 145d5b0e70fSEmmanuel Vadot - const: gp1 146d5b0e70fSEmmanuel Vadot - const: gp2 147d5b0e70fSEmmanuel Vadot - const: sgmii_tx250m 148d5b0e70fSEmmanuel Vadot - const: sgmii_rx250m 149d5b0e70fSEmmanuel Vadot - const: sgmii_cdr_ref 150d5b0e70fSEmmanuel Vadot - const: sgmii_cdr_fb 151d5b0e70fSEmmanuel Vadot - const: sgmii_ck 152d5b0e70fSEmmanuel Vadot - const: eth2pll 153d5b0e70fSEmmanuel Vadot 154d5b0e70fSEmmanuel Vadot mediatek,sgmiisys: 155d5b0e70fSEmmanuel Vadot minItems: 1 156d5b0e70fSEmmanuel Vadot maxItems: 1 157d5b0e70fSEmmanuel Vadot 158d5b0e70fSEmmanuel Vadot mediatek,pcie-mirror: 159d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 160d5b0e70fSEmmanuel Vadot description: 161d5b0e70fSEmmanuel Vadot Phandle to the mediatek pcie-mirror controller. 162d5b0e70fSEmmanuel Vadot 163d5b0e70fSEmmanuel Vadot - if: 164d5b0e70fSEmmanuel Vadot properties: 165d5b0e70fSEmmanuel Vadot compatible: 166d5b0e70fSEmmanuel Vadot contains: 167d5b0e70fSEmmanuel Vadot const: mediatek,mt7629-eth 168d5b0e70fSEmmanuel Vadot then: 169d5b0e70fSEmmanuel Vadot properties: 170d5b0e70fSEmmanuel Vadot interrupts: 171d5b0e70fSEmmanuel Vadot maxItems: 3 172d5b0e70fSEmmanuel Vadot 173d5b0e70fSEmmanuel Vadot clocks: 174d5b0e70fSEmmanuel Vadot minItems: 17 175d5b0e70fSEmmanuel Vadot maxItems: 17 176d5b0e70fSEmmanuel Vadot 177d5b0e70fSEmmanuel Vadot clock-names: 178d5b0e70fSEmmanuel Vadot items: 179d5b0e70fSEmmanuel Vadot - const: ethif 180d5b0e70fSEmmanuel Vadot - const: sgmiitop 181d5b0e70fSEmmanuel Vadot - const: esw 182d5b0e70fSEmmanuel Vadot - const: gp0 183d5b0e70fSEmmanuel Vadot - const: gp1 184d5b0e70fSEmmanuel Vadot - const: gp2 185d5b0e70fSEmmanuel Vadot - const: fe 186d5b0e70fSEmmanuel Vadot - const: sgmii_tx250m 187d5b0e70fSEmmanuel Vadot - const: sgmii_rx250m 188d5b0e70fSEmmanuel Vadot - const: sgmii_cdr_ref 189d5b0e70fSEmmanuel Vadot - const: sgmii_cdr_fb 190d5b0e70fSEmmanuel Vadot - const: sgmii2_tx250m 191d5b0e70fSEmmanuel Vadot - const: sgmii2_rx250m 192d5b0e70fSEmmanuel Vadot - const: sgmii2_cdr_ref 193d5b0e70fSEmmanuel Vadot - const: sgmii2_cdr_fb 194d5b0e70fSEmmanuel Vadot - const: sgmii_ck 195d5b0e70fSEmmanuel Vadot - const: eth2pll 196d5b0e70fSEmmanuel Vadot 197d5b0e70fSEmmanuel Vadot mediatek,infracfg: 198d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 199d5b0e70fSEmmanuel Vadot description: 200d5b0e70fSEmmanuel Vadot Phandle to the syscon node that handles the path from GMAC to 201d5b0e70fSEmmanuel Vadot PHY variants. 202d5b0e70fSEmmanuel Vadot 203d5b0e70fSEmmanuel Vadot mediatek,sgmiisys: 204d5b0e70fSEmmanuel Vadot minItems: 2 205d5b0e70fSEmmanuel Vadot maxItems: 2 206d5b0e70fSEmmanuel Vadot 207*7ef62cebSEmmanuel Vadot mediatek,wed: false 208*7ef62cebSEmmanuel Vadot 209d5b0e70fSEmmanuel Vadot - if: 210d5b0e70fSEmmanuel Vadot properties: 211d5b0e70fSEmmanuel Vadot compatible: 212d5b0e70fSEmmanuel Vadot contains: 213d5b0e70fSEmmanuel Vadot const: mediatek,mt7986-eth 214d5b0e70fSEmmanuel Vadot then: 215d5b0e70fSEmmanuel Vadot properties: 216d5b0e70fSEmmanuel Vadot interrupts: 217d5b0e70fSEmmanuel Vadot minItems: 4 218d5b0e70fSEmmanuel Vadot 219d5b0e70fSEmmanuel Vadot clocks: 220d5b0e70fSEmmanuel Vadot minItems: 15 221d5b0e70fSEmmanuel Vadot maxItems: 15 222d5b0e70fSEmmanuel Vadot 223d5b0e70fSEmmanuel Vadot clock-names: 224d5b0e70fSEmmanuel Vadot items: 225d5b0e70fSEmmanuel Vadot - const: fe 226d5b0e70fSEmmanuel Vadot - const: gp2 227d5b0e70fSEmmanuel Vadot - const: gp1 228d5b0e70fSEmmanuel Vadot - const: wocpu1 229d5b0e70fSEmmanuel Vadot - const: wocpu0 230d5b0e70fSEmmanuel Vadot - const: sgmii_tx250m 231d5b0e70fSEmmanuel Vadot - const: sgmii_rx250m 232d5b0e70fSEmmanuel Vadot - const: sgmii_cdr_ref 233d5b0e70fSEmmanuel Vadot - const: sgmii_cdr_fb 234d5b0e70fSEmmanuel Vadot - const: sgmii2_tx250m 235d5b0e70fSEmmanuel Vadot - const: sgmii2_rx250m 236d5b0e70fSEmmanuel Vadot - const: sgmii2_cdr_ref 237d5b0e70fSEmmanuel Vadot - const: sgmii2_cdr_fb 238d5b0e70fSEmmanuel Vadot - const: netsys0 239d5b0e70fSEmmanuel Vadot - const: netsys1 240d5b0e70fSEmmanuel Vadot 241d5b0e70fSEmmanuel Vadot mediatek,sgmiisys: 242d5b0e70fSEmmanuel Vadot minItems: 2 243d5b0e70fSEmmanuel Vadot maxItems: 2 244d5b0e70fSEmmanuel Vadot 245*7ef62cebSEmmanuel Vadot mediatek,wed-pcie: 246*7ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 247*7ef62cebSEmmanuel Vadot description: 248*7ef62cebSEmmanuel Vadot Phandle to the mediatek wed-pcie controller. 249*7ef62cebSEmmanuel Vadot 250d5b0e70fSEmmanuel VadotpatternProperties: 251d5b0e70fSEmmanuel Vadot "^mac@[0-1]$": 252d5b0e70fSEmmanuel Vadot type: object 253d5b0e70fSEmmanuel Vadot additionalProperties: false 254d5b0e70fSEmmanuel Vadot allOf: 255d5b0e70fSEmmanuel Vadot - $ref: ethernet-controller.yaml# 256d5b0e70fSEmmanuel Vadot description: 257d5b0e70fSEmmanuel Vadot Ethernet MAC node 258d5b0e70fSEmmanuel Vadot properties: 259d5b0e70fSEmmanuel Vadot compatible: 260d5b0e70fSEmmanuel Vadot const: mediatek,eth-mac 261d5b0e70fSEmmanuel Vadot 262d5b0e70fSEmmanuel Vadot reg: 263d5b0e70fSEmmanuel Vadot maxItems: 1 264d5b0e70fSEmmanuel Vadot 265d5b0e70fSEmmanuel Vadot phy-handle: true 266d5b0e70fSEmmanuel Vadot 267d5b0e70fSEmmanuel Vadot phy-mode: true 268d5b0e70fSEmmanuel Vadot 269d5b0e70fSEmmanuel Vadot required: 270d5b0e70fSEmmanuel Vadot - reg 271d5b0e70fSEmmanuel Vadot - compatible 272d5b0e70fSEmmanuel Vadot - phy-handle 273d5b0e70fSEmmanuel Vadot 274d5b0e70fSEmmanuel Vadotrequired: 275d5b0e70fSEmmanuel Vadot - compatible 276d5b0e70fSEmmanuel Vadot - reg 277d5b0e70fSEmmanuel Vadot - interrupts 278d5b0e70fSEmmanuel Vadot - clocks 279d5b0e70fSEmmanuel Vadot - clock-names 280d5b0e70fSEmmanuel Vadot - mediatek,ethsys 281d5b0e70fSEmmanuel Vadot 282d5b0e70fSEmmanuel VadotunevaluatedProperties: false 283d5b0e70fSEmmanuel Vadot 284d5b0e70fSEmmanuel Vadotexamples: 285d5b0e70fSEmmanuel Vadot - | 286d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 287d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 288d5b0e70fSEmmanuel Vadot #include <dt-bindings/clock/mt7622-clk.h> 289d5b0e70fSEmmanuel Vadot #include <dt-bindings/power/mt7622-power.h> 290d5b0e70fSEmmanuel Vadot 291d5b0e70fSEmmanuel Vadot soc { 292d5b0e70fSEmmanuel Vadot #address-cells = <2>; 293d5b0e70fSEmmanuel Vadot #size-cells = <2>; 294d5b0e70fSEmmanuel Vadot 295d5b0e70fSEmmanuel Vadot ethernet: ethernet@1b100000 { 296d5b0e70fSEmmanuel Vadot compatible = "mediatek,mt7622-eth"; 297d5b0e70fSEmmanuel Vadot reg = <0 0x1b100000 0 0x20000>; 298d5b0e70fSEmmanuel Vadot interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_LOW>, 299d5b0e70fSEmmanuel Vadot <GIC_SPI 224 IRQ_TYPE_LEVEL_LOW>, 300d5b0e70fSEmmanuel Vadot <GIC_SPI 225 IRQ_TYPE_LEVEL_LOW>; 301d5b0e70fSEmmanuel Vadot clocks = <&topckgen CLK_TOP_ETH_SEL>, 302d5b0e70fSEmmanuel Vadot <ðsys CLK_ETH_ESW_EN>, 303d5b0e70fSEmmanuel Vadot <ðsys CLK_ETH_GP0_EN>, 304d5b0e70fSEmmanuel Vadot <ðsys CLK_ETH_GP1_EN>, 305d5b0e70fSEmmanuel Vadot <ðsys CLK_ETH_GP2_EN>, 306d5b0e70fSEmmanuel Vadot <&sgmiisys CLK_SGMII_TX250M_EN>, 307d5b0e70fSEmmanuel Vadot <&sgmiisys CLK_SGMII_RX250M_EN>, 308d5b0e70fSEmmanuel Vadot <&sgmiisys CLK_SGMII_CDR_REF>, 309d5b0e70fSEmmanuel Vadot <&sgmiisys CLK_SGMII_CDR_FB>, 310d5b0e70fSEmmanuel Vadot <&topckgen CLK_TOP_SGMIIPLL>, 311d5b0e70fSEmmanuel Vadot <&apmixedsys CLK_APMIXED_ETH2PLL>; 312d5b0e70fSEmmanuel Vadot clock-names = "ethif", "esw", "gp0", "gp1", "gp2", 313d5b0e70fSEmmanuel Vadot "sgmii_tx250m", "sgmii_rx250m", 314d5b0e70fSEmmanuel Vadot "sgmii_cdr_ref", "sgmii_cdr_fb", "sgmii_ck", 315d5b0e70fSEmmanuel Vadot "eth2pll"; 316d5b0e70fSEmmanuel Vadot power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>; 317d5b0e70fSEmmanuel Vadot mediatek,ethsys = <ðsys>; 318d5b0e70fSEmmanuel Vadot mediatek,sgmiisys = <&sgmiisys>; 319d5b0e70fSEmmanuel Vadot cci-control-port = <&cci_control2>; 320d5b0e70fSEmmanuel Vadot mediatek,pcie-mirror = <&pcie_mirror>; 321d5b0e70fSEmmanuel Vadot mediatek,hifsys = <&hifsys>; 322d5b0e70fSEmmanuel Vadot dma-coherent; 323d5b0e70fSEmmanuel Vadot 324d5b0e70fSEmmanuel Vadot #address-cells = <1>; 325d5b0e70fSEmmanuel Vadot #size-cells = <0>; 326d5b0e70fSEmmanuel Vadot 327d5b0e70fSEmmanuel Vadot mdio0: mdio-bus { 328d5b0e70fSEmmanuel Vadot #address-cells = <1>; 329d5b0e70fSEmmanuel Vadot #size-cells = <0>; 330d5b0e70fSEmmanuel Vadot 331d5b0e70fSEmmanuel Vadot phy0: ethernet-phy@0 { 332d5b0e70fSEmmanuel Vadot reg = <0>; 333d5b0e70fSEmmanuel Vadot }; 334d5b0e70fSEmmanuel Vadot 335d5b0e70fSEmmanuel Vadot phy1: ethernet-phy@1 { 336d5b0e70fSEmmanuel Vadot reg = <1>; 337d5b0e70fSEmmanuel Vadot }; 338d5b0e70fSEmmanuel Vadot }; 339d5b0e70fSEmmanuel Vadot 340d5b0e70fSEmmanuel Vadot gmac0: mac@0 { 341d5b0e70fSEmmanuel Vadot compatible = "mediatek,eth-mac"; 342d5b0e70fSEmmanuel Vadot phy-mode = "rgmii"; 343d5b0e70fSEmmanuel Vadot phy-handle = <&phy0>; 344d5b0e70fSEmmanuel Vadot reg = <0>; 345d5b0e70fSEmmanuel Vadot }; 346d5b0e70fSEmmanuel Vadot 347d5b0e70fSEmmanuel Vadot gmac1: mac@1 { 348d5b0e70fSEmmanuel Vadot compatible = "mediatek,eth-mac"; 349d5b0e70fSEmmanuel Vadot phy-mode = "rgmii"; 350d5b0e70fSEmmanuel Vadot phy-handle = <&phy1>; 351d5b0e70fSEmmanuel Vadot reg = <1>; 352d5b0e70fSEmmanuel Vadot }; 353d5b0e70fSEmmanuel Vadot }; 354d5b0e70fSEmmanuel Vadot }; 355d5b0e70fSEmmanuel Vadot 356d5b0e70fSEmmanuel Vadot - | 357d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 358d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 359d5b0e70fSEmmanuel Vadot #include <dt-bindings/clock/mt7622-clk.h> 360d5b0e70fSEmmanuel Vadot 361d5b0e70fSEmmanuel Vadot soc { 362d5b0e70fSEmmanuel Vadot #address-cells = <2>; 363d5b0e70fSEmmanuel Vadot #size-cells = <2>; 364d5b0e70fSEmmanuel Vadot 365d5b0e70fSEmmanuel Vadot eth: ethernet@15100000 { 366d5b0e70fSEmmanuel Vadot #define CLK_ETH_FE_EN 0 367d5b0e70fSEmmanuel Vadot #define CLK_ETH_WOCPU1_EN 3 368d5b0e70fSEmmanuel Vadot #define CLK_ETH_WOCPU0_EN 4 369d5b0e70fSEmmanuel Vadot #define CLK_TOP_NETSYS_SEL 43 370d5b0e70fSEmmanuel Vadot #define CLK_TOP_NETSYS_500M_SEL 44 371d5b0e70fSEmmanuel Vadot #define CLK_TOP_NETSYS_2X_SEL 46 372d5b0e70fSEmmanuel Vadot #define CLK_TOP_SGM_325M_SEL 47 373d5b0e70fSEmmanuel Vadot #define CLK_APMIXED_NET2PLL 1 374d5b0e70fSEmmanuel Vadot #define CLK_APMIXED_SGMPLL 3 375d5b0e70fSEmmanuel Vadot 376d5b0e70fSEmmanuel Vadot compatible = "mediatek,mt7986-eth"; 377d5b0e70fSEmmanuel Vadot reg = <0 0x15100000 0 0x80000>; 378d5b0e70fSEmmanuel Vadot interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 379d5b0e70fSEmmanuel Vadot <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>, 380d5b0e70fSEmmanuel Vadot <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, 381d5b0e70fSEmmanuel Vadot <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>; 382d5b0e70fSEmmanuel Vadot clocks = <ðsys CLK_ETH_FE_EN>, 383d5b0e70fSEmmanuel Vadot <ðsys CLK_ETH_GP2_EN>, 384d5b0e70fSEmmanuel Vadot <ðsys CLK_ETH_GP1_EN>, 385d5b0e70fSEmmanuel Vadot <ðsys CLK_ETH_WOCPU1_EN>, 386d5b0e70fSEmmanuel Vadot <ðsys CLK_ETH_WOCPU0_EN>, 387d5b0e70fSEmmanuel Vadot <&sgmiisys0 CLK_SGMII_TX250M_EN>, 388d5b0e70fSEmmanuel Vadot <&sgmiisys0 CLK_SGMII_RX250M_EN>, 389d5b0e70fSEmmanuel Vadot <&sgmiisys0 CLK_SGMII_CDR_REF>, 390d5b0e70fSEmmanuel Vadot <&sgmiisys0 CLK_SGMII_CDR_FB>, 391d5b0e70fSEmmanuel Vadot <&sgmiisys1 CLK_SGMII_TX250M_EN>, 392d5b0e70fSEmmanuel Vadot <&sgmiisys1 CLK_SGMII_RX250M_EN>, 393d5b0e70fSEmmanuel Vadot <&sgmiisys1 CLK_SGMII_CDR_REF>, 394d5b0e70fSEmmanuel Vadot <&sgmiisys1 CLK_SGMII_CDR_FB>, 395d5b0e70fSEmmanuel Vadot <&topckgen CLK_TOP_NETSYS_SEL>, 396d5b0e70fSEmmanuel Vadot <&topckgen CLK_TOP_NETSYS_SEL>; 397d5b0e70fSEmmanuel Vadot clock-names = "fe", "gp2", "gp1", "wocpu1", "wocpu0", 398d5b0e70fSEmmanuel Vadot "sgmii_tx250m", "sgmii_rx250m", 399d5b0e70fSEmmanuel Vadot "sgmii_cdr_ref", "sgmii_cdr_fb", 400d5b0e70fSEmmanuel Vadot "sgmii2_tx250m", "sgmii2_rx250m", 401d5b0e70fSEmmanuel Vadot "sgmii2_cdr_ref", "sgmii2_cdr_fb", 402d5b0e70fSEmmanuel Vadot "netsys0", "netsys1"; 403d5b0e70fSEmmanuel Vadot mediatek,ethsys = <ðsys>; 404d5b0e70fSEmmanuel Vadot mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>; 405d5b0e70fSEmmanuel Vadot assigned-clocks = <&topckgen CLK_TOP_NETSYS_2X_SEL>, 406d5b0e70fSEmmanuel Vadot <&topckgen CLK_TOP_SGM_325M_SEL>; 407d5b0e70fSEmmanuel Vadot assigned-clock-parents = <&apmixedsys CLK_APMIXED_NET2PLL>, 408d5b0e70fSEmmanuel Vadot <&apmixedsys CLK_APMIXED_SGMPLL>; 409d5b0e70fSEmmanuel Vadot 410d5b0e70fSEmmanuel Vadot #address-cells = <1>; 411d5b0e70fSEmmanuel Vadot #size-cells = <0>; 412d5b0e70fSEmmanuel Vadot 413d5b0e70fSEmmanuel Vadot mdio: mdio-bus { 414d5b0e70fSEmmanuel Vadot #address-cells = <1>; 415d5b0e70fSEmmanuel Vadot #size-cells = <0>; 416d5b0e70fSEmmanuel Vadot 417d5b0e70fSEmmanuel Vadot phy5: ethernet-phy@0 { 418d5b0e70fSEmmanuel Vadot compatible = "ethernet-phy-id67c9.de0a"; 419d5b0e70fSEmmanuel Vadot phy-mode = "2500base-x"; 420d5b0e70fSEmmanuel Vadot reset-gpios = <&pio 6 1>; 421d5b0e70fSEmmanuel Vadot reset-deassert-us = <20000>; 422d5b0e70fSEmmanuel Vadot reg = <5>; 423d5b0e70fSEmmanuel Vadot }; 424d5b0e70fSEmmanuel Vadot 425d5b0e70fSEmmanuel Vadot phy6: ethernet-phy@1 { 426d5b0e70fSEmmanuel Vadot compatible = "ethernet-phy-id67c9.de0a"; 427d5b0e70fSEmmanuel Vadot phy-mode = "2500base-x"; 428d5b0e70fSEmmanuel Vadot reg = <6>; 429d5b0e70fSEmmanuel Vadot }; 430d5b0e70fSEmmanuel Vadot }; 431d5b0e70fSEmmanuel Vadot 432d5b0e70fSEmmanuel Vadot mac0: mac@0 { 433d5b0e70fSEmmanuel Vadot compatible = "mediatek,eth-mac"; 434d5b0e70fSEmmanuel Vadot phy-mode = "2500base-x"; 435d5b0e70fSEmmanuel Vadot phy-handle = <&phy5>; 436d5b0e70fSEmmanuel Vadot reg = <0>; 437d5b0e70fSEmmanuel Vadot }; 438d5b0e70fSEmmanuel Vadot 439d5b0e70fSEmmanuel Vadot mac1: mac@1 { 440d5b0e70fSEmmanuel Vadot compatible = "mediatek,eth-mac"; 441d5b0e70fSEmmanuel Vadot phy-mode = "2500base-x"; 442d5b0e70fSEmmanuel Vadot phy-handle = <&phy6>; 443d5b0e70fSEmmanuel Vadot reg = <1>; 444d5b0e70fSEmmanuel Vadot }; 445d5b0e70fSEmmanuel Vadot }; 446d5b0e70fSEmmanuel Vadot }; 447