1*3a470447SFlorian Fainelli# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*3a470447SFlorian Fainelli%YAML 1.2
3*3a470447SFlorian Fainelli---
4*3a470447SFlorian Fainelli$id: http://devicetree.org/schemas/net/brcm,bcmgenet.yaml#
5*3a470447SFlorian Fainelli$schema: http://devicetree.org/meta-schemas/core.yaml#
6*3a470447SFlorian Fainelli
7*3a470447SFlorian Fainellititle: Broadcom BCM7xxx Ethernet Controller (GENET) binding
8*3a470447SFlorian Fainelli
9*3a470447SFlorian Fainellimaintainers:
10*3a470447SFlorian Fainelli  - Doug Berger <opendmb@gmail.com>
11*3a470447SFlorian Fainelli  - Florian Fainelli <f.fainelli@gmail.com>
12*3a470447SFlorian Fainelli
13*3a470447SFlorian Fainelliproperties:
14*3a470447SFlorian Fainelli  compatible:
15*3a470447SFlorian Fainelli    enum:
16*3a470447SFlorian Fainelli      - brcm,genet-v1
17*3a470447SFlorian Fainelli      - brcm,genet-v2
18*3a470447SFlorian Fainelli      - brcm,genet-v3
19*3a470447SFlorian Fainelli      - brcm,genet-v4
20*3a470447SFlorian Fainelli      - brcm,genet-v5
21*3a470447SFlorian Fainelli      - brcm,bcm2711-genet-v5
22*3a470447SFlorian Fainelli      - brcm,bcm7712-genet-v5
23*3a470447SFlorian Fainelli
24*3a470447SFlorian Fainelli  reg:
25*3a470447SFlorian Fainelli    maxItems: 1
26*3a470447SFlorian Fainelli
27*3a470447SFlorian Fainelli  interrupts:
28*3a470447SFlorian Fainelli    minItems: 2
29*3a470447SFlorian Fainelli    items:
30*3a470447SFlorian Fainelli      - description: general purpose interrupt line
31*3a470447SFlorian Fainelli      - description: RX and TX rings interrupt line
32*3a470447SFlorian Fainelli      - description: Wake-on-LAN interrupt line
33*3a470447SFlorian Fainelli
34*3a470447SFlorian Fainelli
35*3a470447SFlorian Fainelli  clocks:
36*3a470447SFlorian Fainelli    minItems: 1
37*3a470447SFlorian Fainelli    items:
38*3a470447SFlorian Fainelli      - description: main clock
39*3a470447SFlorian Fainelli      - description: EEE clock
40*3a470447SFlorian Fainelli      - description: Wake-on-LAN clock
41*3a470447SFlorian Fainelli
42*3a470447SFlorian Fainelli  clock-names:
43*3a470447SFlorian Fainelli    minItems: 1
44*3a470447SFlorian Fainelli    items:
45*3a470447SFlorian Fainelli      - const: enet
46*3a470447SFlorian Fainelli      - const: enet-eee
47*3a470447SFlorian Fainelli      - const: enet-wol
48*3a470447SFlorian Fainelli
49*3a470447SFlorian Fainelli  "#address-cells":
50*3a470447SFlorian Fainelli    const: 1
51*3a470447SFlorian Fainelli
52*3a470447SFlorian Fainelli  "#size-cells":
53*3a470447SFlorian Fainelli    const: 1
54*3a470447SFlorian Fainelli
55*3a470447SFlorian FainellipatternProperties:
56*3a470447SFlorian Fainelli  "^mdio@[0-9a-f]+$":
57*3a470447SFlorian Fainelli    type: object
58*3a470447SFlorian Fainelli    $ref: "brcm,unimac-mdio.yaml"
59*3a470447SFlorian Fainelli
60*3a470447SFlorian Fainelli    description:
61*3a470447SFlorian Fainelli      GENET internal UniMAC MDIO bus
62*3a470447SFlorian Fainelli
63*3a470447SFlorian Fainellirequired:
64*3a470447SFlorian Fainelli  - reg
65*3a470447SFlorian Fainelli  - interrupts
66*3a470447SFlorian Fainelli  - phy-mode
67*3a470447SFlorian Fainelli  - "#address-cells"
68*3a470447SFlorian Fainelli  - "#size-cells"
69*3a470447SFlorian Fainelli
70*3a470447SFlorian FainelliallOf:
71*3a470447SFlorian Fainelli  - $ref: ethernet-controller.yaml
72*3a470447SFlorian Fainelli
73*3a470447SFlorian FainelliunevaluatedProperties: false
74*3a470447SFlorian Fainelli
75*3a470447SFlorian Fainelliexamples:
76*3a470447SFlorian Fainelli  #include <dt-bindings/interrupt-controller/arm-gic.h>
77*3a470447SFlorian Fainelli
78*3a470447SFlorian Fainelli  - |
79*3a470447SFlorian Fainelli    ethernet@f0b60000 {
80*3a470447SFlorian Fainelli        phy-mode = "internal";
81*3a470447SFlorian Fainelli        phy-handle = <&phy1>;
82*3a470447SFlorian Fainelli        mac-address = [ 00 10 18 36 23 1a ];
83*3a470447SFlorian Fainelli        compatible = "brcm,genet-v4";
84*3a470447SFlorian Fainelli        reg = <0xf0b60000 0xfc4c>;
85*3a470447SFlorian Fainelli        interrupts = <0x0 0x14 0x0>, <0x0 0x15 0x0>;
86*3a470447SFlorian Fainelli        #address-cells = <1>;
87*3a470447SFlorian Fainelli        #size-cells = <1>;
88*3a470447SFlorian Fainelli
89*3a470447SFlorian Fainelli        mdio0: mdio@e14 {
90*3a470447SFlorian Fainelli           compatible = "brcm,genet-mdio-v4";
91*3a470447SFlorian Fainelli           #address-cells = <1>;
92*3a470447SFlorian Fainelli           #size-cells = <0>;
93*3a470447SFlorian Fainelli           reg = <0xe14 0x8>;
94*3a470447SFlorian Fainelli
95*3a470447SFlorian Fainelli           phy1: ethernet-phy@1 {
96*3a470447SFlorian Fainelli                max-speed = <1000>;
97*3a470447SFlorian Fainelli                reg = <1>;
98*3a470447SFlorian Fainelli                compatible = "ethernet-phy-ieee802.3-c22";
99*3a470447SFlorian Fainelli           };
100*3a470447SFlorian Fainelli        };
101*3a470447SFlorian Fainelli    };
102*3a470447SFlorian Fainelli
103*3a470447SFlorian Fainelli  - |
104*3a470447SFlorian Fainelli    ethernet@f0b80000 {
105*3a470447SFlorian Fainelli        phy-mode = "moca";
106*3a470447SFlorian Fainelli        fixed-link = <1 0 1000 0 0>;
107*3a470447SFlorian Fainelli        mac-address = [ 00 10 18 36 24 1a ];
108*3a470447SFlorian Fainelli        compatible = "brcm,genet-v4";
109*3a470447SFlorian Fainelli        #address-cells = <1>;
110*3a470447SFlorian Fainelli        #size-cells = <1>;
111*3a470447SFlorian Fainelli        reg = <0xf0b80000 0xfc4c>;
112*3a470447SFlorian Fainelli        interrupts = <0x0 0x16 0x0>, <0x0 0x17 0x0>;
113*3a470447SFlorian Fainelli
114*3a470447SFlorian Fainelli        mdio1: mdio@e14 {
115*3a470447SFlorian Fainelli           compatible = "brcm,genet-mdio-v4";
116*3a470447SFlorian Fainelli           #address-cells = <1>;
117*3a470447SFlorian Fainelli           #size-cells = <0>;
118*3a470447SFlorian Fainelli           reg = <0xe14 0x8>;
119*3a470447SFlorian Fainelli        };
120*3a470447SFlorian Fainelli    };
121*3a470447SFlorian Fainelli
122*3a470447SFlorian Fainelli  - |
123*3a470447SFlorian Fainelli    ethernet@f0ba0000 {
124*3a470447SFlorian Fainelli        phy-mode = "rgmii";
125*3a470447SFlorian Fainelli        phy-handle = <&phy0>;
126*3a470447SFlorian Fainelli        mac-address = [ 00 10 18 36 26 1a ];
127*3a470447SFlorian Fainelli        compatible = "brcm,genet-v4";
128*3a470447SFlorian Fainelli        #address-cells = <1>;
129*3a470447SFlorian Fainelli        #size-cells = <1>;
130*3a470447SFlorian Fainelli        reg = <0xf0ba0000 0xfc4c>;
131*3a470447SFlorian Fainelli        interrupts = <0x0 0x18 0x0>, <0x0 0x19 0x0>;
132*3a470447SFlorian Fainelli
133*3a470447SFlorian Fainelli        mdio2: mdio@e14 {
134*3a470447SFlorian Fainelli           compatible = "brcm,genet-mdio-v4";
135*3a470447SFlorian Fainelli           #address-cells = <1>;
136*3a470447SFlorian Fainelli           #size-cells = <0>;
137*3a470447SFlorian Fainelli           reg = <0xe14 0x8>;
138*3a470447SFlorian Fainelli
139*3a470447SFlorian Fainelli           phy0: ethernet-phy@0 {
140*3a470447SFlorian Fainelli                max-speed = <1000>;
141*3a470447SFlorian Fainelli                reg = <0>;
142*3a470447SFlorian Fainelli                compatible = "ethernet-phy-ieee802.3-c22";
143*3a470447SFlorian Fainelli           };
144*3a470447SFlorian Fainelli        };
145*3a470447SFlorian Fainelli    };
146