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) binding
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  #include <dt-bindings/interrupt-controller/arm-gic.h>
77
78  - |
79    ethernet@f0b60000 {
80        phy-mode = "internal";
81        phy-handle = <&phy1>;
82        mac-address = [ 00 10 18 36 23 1a ];
83        compatible = "brcm,genet-v4";
84        reg = <0xf0b60000 0xfc4c>;
85        interrupts = <0x0 0x14 0x0>, <0x0 0x15 0x0>;
86        #address-cells = <1>;
87        #size-cells = <1>;
88
89        mdio0: mdio@e14 {
90           compatible = "brcm,genet-mdio-v4";
91           #address-cells = <1>;
92           #size-cells = <0>;
93           reg = <0xe14 0x8>;
94
95           phy1: ethernet-phy@1 {
96                max-speed = <1000>;
97                reg = <1>;
98                compatible = "ethernet-phy-ieee802.3-c22";
99           };
100        };
101    };
102
103  - |
104    ethernet@f0b80000 {
105        phy-mode = "moca";
106        fixed-link = <1 0 1000 0 0>;
107        mac-address = [ 00 10 18 36 24 1a ];
108        compatible = "brcm,genet-v4";
109        #address-cells = <1>;
110        #size-cells = <1>;
111        reg = <0xf0b80000 0xfc4c>;
112        interrupts = <0x0 0x16 0x0>, <0x0 0x17 0x0>;
113
114        mdio1: mdio@e14 {
115           compatible = "brcm,genet-mdio-v4";
116           #address-cells = <1>;
117           #size-cells = <0>;
118           reg = <0xe14 0x8>;
119        };
120    };
121
122  - |
123    ethernet@f0ba0000 {
124        phy-mode = "rgmii";
125        phy-handle = <&phy0>;
126        mac-address = [ 00 10 18 36 26 1a ];
127        compatible = "brcm,genet-v4";
128        #address-cells = <1>;
129        #size-cells = <1>;
130        reg = <0xf0ba0000 0xfc4c>;
131        interrupts = <0x0 0x18 0x0>, <0x0 0x19 0x0>;
132
133        mdio2: mdio@e14 {
134           compatible = "brcm,genet-mdio-v4";
135           #address-cells = <1>;
136           #size-cells = <0>;
137           reg = <0xe14 0x8>;
138
139           phy0: ethernet-phy@0 {
140                max-speed = <1000>;
141                reg = <0>;
142                compatible = "ethernet-phy-ieee802.3-c22";
143           };
144        };
145    };
146