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