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