xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/net/qca,ar71xx.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/net/qca,ar71xx.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: QCA AR71XX MAC
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunallOf:
10*4882a593Smuzhiyun  - $ref: ethernet-controller.yaml#
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunmaintainers:
13*4882a593Smuzhiyun  - Oleksij Rempel <o.rempel@pengutronix.de>
14*4882a593Smuzhiyun
15*4882a593Smuzhiyunproperties:
16*4882a593Smuzhiyun  compatible:
17*4882a593Smuzhiyun    oneOf:
18*4882a593Smuzhiyun      - items:
19*4882a593Smuzhiyun          - enum:
20*4882a593Smuzhiyun              - qca,ar7100-eth   # Atheros AR7100
21*4882a593Smuzhiyun              - qca,ar7240-eth   # Atheros AR7240
22*4882a593Smuzhiyun              - qca,ar7241-eth   # Atheros AR7241
23*4882a593Smuzhiyun              - qca,ar7242-eth   # Atheros AR7242
24*4882a593Smuzhiyun              - qca,ar9130-eth   # Atheros AR9130
25*4882a593Smuzhiyun              - qca,ar9330-eth   # Atheros AR9330
26*4882a593Smuzhiyun              - qca,ar9340-eth   # Atheros AR9340
27*4882a593Smuzhiyun              - qca,qca9530-eth  # Qualcomm Atheros QCA9530
28*4882a593Smuzhiyun              - qca,qca9550-eth  # Qualcomm Atheros QCA9550
29*4882a593Smuzhiyun              - qca,qca9560-eth  # Qualcomm Atheros QCA9560
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun  reg:
32*4882a593Smuzhiyun    maxItems: 1
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun  interrupts:
35*4882a593Smuzhiyun    maxItems: 1
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun  '#address-cells':
38*4882a593Smuzhiyun    description: number of address cells for the MDIO bus
39*4882a593Smuzhiyun    const: 1
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun  '#size-cells':
42*4882a593Smuzhiyun    description: number of size cells on the MDIO bus
43*4882a593Smuzhiyun    const: 0
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun  clocks:
46*4882a593Smuzhiyun    items:
47*4882a593Smuzhiyun      - description: MAC main clock
48*4882a593Smuzhiyun      - description: MDIO clock
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun  clock-names:
51*4882a593Smuzhiyun    items:
52*4882a593Smuzhiyun      - const: eth
53*4882a593Smuzhiyun      - const: mdio
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun  resets:
56*4882a593Smuzhiyun    items:
57*4882a593Smuzhiyun      - description: MAC reset
58*4882a593Smuzhiyun      - description: MDIO reset
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun  reset-names:
61*4882a593Smuzhiyun    items:
62*4882a593Smuzhiyun      - const: mac
63*4882a593Smuzhiyun      - const: mdio
64*4882a593Smuzhiyun
65*4882a593Smuzhiyunrequired:
66*4882a593Smuzhiyun  - compatible
67*4882a593Smuzhiyun  - reg
68*4882a593Smuzhiyun  - interrupts
69*4882a593Smuzhiyun  - phy-mode
70*4882a593Smuzhiyun  - clocks
71*4882a593Smuzhiyun  - clock-names
72*4882a593Smuzhiyun  - resets
73*4882a593Smuzhiyun  - reset-names
74*4882a593Smuzhiyun
75*4882a593SmuzhiyununevaluatedProperties: false
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunexamples:
78*4882a593Smuzhiyun  # Lager board
79*4882a593Smuzhiyun  - |
80*4882a593Smuzhiyun    eth0: ethernet@19000000 {
81*4882a593Smuzhiyun        compatible = "qca,ar9330-eth";
82*4882a593Smuzhiyun        reg = <0x19000000 0x200>;
83*4882a593Smuzhiyun        interrupts = <4>;
84*4882a593Smuzhiyun        resets = <&rst 9>, <&rst 22>;
85*4882a593Smuzhiyun        reset-names = "mac", "mdio";
86*4882a593Smuzhiyun        clocks = <&pll 1>, <&pll 2>;
87*4882a593Smuzhiyun        clock-names = "eth", "mdio";
88*4882a593Smuzhiyun        qca,ethcfg = <&ethcfg>;
89*4882a593Smuzhiyun        phy-mode = "mii";
90*4882a593Smuzhiyun        phy-handle = <&phy_port4>;
91*4882a593Smuzhiyun    };
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun    eth1: ethernet@1a000000 {
94*4882a593Smuzhiyun        compatible = "qca,ar9330-eth";
95*4882a593Smuzhiyun        reg = <0x1a000000 0x200>;
96*4882a593Smuzhiyun        interrupts = <5>;
97*4882a593Smuzhiyun        resets = <&rst 13>, <&rst 23>;
98*4882a593Smuzhiyun        reset-names = "mac", "mdio";
99*4882a593Smuzhiyun        clocks = <&pll 1>, <&pll 2>;
100*4882a593Smuzhiyun        clock-names = "eth", "mdio";
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun        phy-mode = "gmii";
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun        status = "disabled";
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun        fixed-link {
107*4882a593Smuzhiyun            speed = <1000>;
108*4882a593Smuzhiyun            full-duplex;
109*4882a593Smuzhiyun        };
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun        mdio {
112*4882a593Smuzhiyun            #address-cells = <1>;
113*4882a593Smuzhiyun            #size-cells = <0>;
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun            switch10: switch@10 {
116*4882a593Smuzhiyun                #address-cells = <1>;
117*4882a593Smuzhiyun                #size-cells = <0>;
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun                compatible = "qca,ar9331-switch";
120*4882a593Smuzhiyun                reg = <0x10>;
121*4882a593Smuzhiyun                resets = <&rst 8>;
122*4882a593Smuzhiyun                reset-names = "switch";
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun                interrupt-parent = <&miscintc>;
125*4882a593Smuzhiyun                interrupts = <12>;
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun                interrupt-controller;
128*4882a593Smuzhiyun                #interrupt-cells = <1>;
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun                ports {
131*4882a593Smuzhiyun                    #address-cells = <1>;
132*4882a593Smuzhiyun                    #size-cells = <0>;
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun                    switch_port0: port@0 {
135*4882a593Smuzhiyun                        reg = <0x0>;
136*4882a593Smuzhiyun                        label = "cpu";
137*4882a593Smuzhiyun                        ethernet = <&eth1>;
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun                        phy-mode = "gmii";
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun                        fixed-link {
142*4882a593Smuzhiyun                            speed = <1000>;
143*4882a593Smuzhiyun                            full-duplex;
144*4882a593Smuzhiyun                        };
145*4882a593Smuzhiyun                    };
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun                    switch_port1: port@1 {
148*4882a593Smuzhiyun                        reg = <0x1>;
149*4882a593Smuzhiyun                        phy-handle = <&phy_port0>;
150*4882a593Smuzhiyun                        phy-mode = "internal";
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun                        status = "disabled";
153*4882a593Smuzhiyun                    };
154*4882a593Smuzhiyun
155*4882a593Smuzhiyun                    switch_port2: port@2 {
156*4882a593Smuzhiyun                        reg = <0x2>;
157*4882a593Smuzhiyun                        phy-handle = <&phy_port1>;
158*4882a593Smuzhiyun                        phy-mode = "internal";
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun                        status = "disabled";
161*4882a593Smuzhiyun                    };
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun                    switch_port3: port@3 {
164*4882a593Smuzhiyun                        reg = <0x3>;
165*4882a593Smuzhiyun                        phy-handle = <&phy_port2>;
166*4882a593Smuzhiyun                        phy-mode = "internal";
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun                        status = "disabled";
169*4882a593Smuzhiyun                    };
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun                    switch_port4: port@4 {
172*4882a593Smuzhiyun                        reg = <0x4>;
173*4882a593Smuzhiyun                        phy-handle = <&phy_port3>;
174*4882a593Smuzhiyun                        phy-mode = "internal";
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun                        status = "disabled";
177*4882a593Smuzhiyun                    };
178*4882a593Smuzhiyun                };
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun                mdio {
181*4882a593Smuzhiyun                    #address-cells = <1>;
182*4882a593Smuzhiyun                    #size-cells = <0>;
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun                    interrupt-parent = <&switch10>;
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun                    phy_port0: phy@0 {
187*4882a593Smuzhiyun                        reg = <0x0>;
188*4882a593Smuzhiyun                        interrupts = <0>;
189*4882a593Smuzhiyun                        status = "disabled";
190*4882a593Smuzhiyun                    };
191*4882a593Smuzhiyun
192*4882a593Smuzhiyun                    phy_port1: phy@1 {
193*4882a593Smuzhiyun                        reg = <0x1>;
194*4882a593Smuzhiyun                        interrupts = <0>;
195*4882a593Smuzhiyun                        status = "disabled";
196*4882a593Smuzhiyun                    };
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun                    phy_port2: phy@2 {
199*4882a593Smuzhiyun                        reg = <0x2>;
200*4882a593Smuzhiyun                        interrupts = <0>;
201*4882a593Smuzhiyun                        status = "disabled";
202*4882a593Smuzhiyun                    };
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun                    phy_port3: phy@3 {
205*4882a593Smuzhiyun                        reg = <0x3>;
206*4882a593Smuzhiyun                        interrupts = <0>;
207*4882a593Smuzhiyun                        status = "disabled";
208*4882a593Smuzhiyun                    };
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun                    phy_port4: phy@4 {
211*4882a593Smuzhiyun                        reg = <0x4>;
212*4882a593Smuzhiyun                        interrupts = <0>;
213*4882a593Smuzhiyun                        status = "disabled";
214*4882a593Smuzhiyun                    };
215*4882a593Smuzhiyun                };
216*4882a593Smuzhiyun            };
217*4882a593Smuzhiyun        };
218*4882a593Smuzhiyun    };
219