GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / net / brcm,bcmgenet.yaml
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
7 title: Broadcom BCM7xxx Ethernet Controller (GENET) binding
8
9 maintainers:
10   - Doug Berger <opendmb@gmail.com>
11   - Florian Fainelli <f.fainelli@gmail.com>
12
13 properties:
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
55 patternProperties:
56   "^mdio@[0-9a-f]+$":
57     type: object
58     $ref: "brcm,unimac-mdio.yaml"
59
60     description:
61       GENET internal UniMAC MDIO bus
62
63 required:
64   - reg
65   - interrupts
66   - phy-mode
67   - "#address-cells"
68   - "#size-cells"
69
70 allOf:
71   - $ref: ethernet-controller.yaml
72
73 unevaluatedProperties: false
74
75 examples:
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     };