xref: /freebsd/sys/contrib/device-tree/Bindings/net/dsa/qca8k.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Qualcomm Atheros QCA8xxx switch family
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot
5*c66ec88fSEmmanuel Vadot- compatible: should be one of:
6*c66ec88fSEmmanuel Vadot    "qca,qca8334"
7*c66ec88fSEmmanuel Vadot    "qca,qca8337"
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot- #size-cells: must be 0
10*c66ec88fSEmmanuel Vadot- #address-cells: must be 1
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel VadotOptional properties:
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel Vadot- reset-gpios: GPIO to be used to reset the whole device
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel VadotSubnodes:
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotThe integrated switch subnode should be specified according to the binding
19*c66ec88fSEmmanuel Vadotdescribed in dsa/dsa.txt. If the QCA8K switch is connect to a SoC's external
20*c66ec88fSEmmanuel Vadotmdio-bus each subnode describing a port needs to have a valid phandle
21*c66ec88fSEmmanuel Vadotreferencing the internal PHY it is connected to. This is because there's no
22*c66ec88fSEmmanuel VadotN:N mapping of port and PHY id.
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel VadotDon't use mixed external and internal mdio-bus configurations, as this is
25*c66ec88fSEmmanuel Vadotnot supported by the hardware.
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel VadotThe CPU port of this switch is always port 0.
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel VadotA CPU port node has the following optional node:
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel Vadot- fixed-link            : Fixed-link subnode describing a link to a non-MDIO
32*c66ec88fSEmmanuel Vadot                          managed entity. See
33*c66ec88fSEmmanuel Vadot                          Documentation/devicetree/bindings/net/fixed-link.txt
34*c66ec88fSEmmanuel Vadot                          for details.
35*c66ec88fSEmmanuel Vadot
36*c66ec88fSEmmanuel VadotFor QCA8K the 'fixed-link' sub-node supports only the following properties:
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot- 'speed' (integer, mandatory), to indicate the link speed. Accepted
39*c66ec88fSEmmanuel Vadot  values are 10, 100 and 1000
40*c66ec88fSEmmanuel Vadot- 'full-duplex' (boolean, optional), to indicate that full duplex is
41*c66ec88fSEmmanuel Vadot  used. When absent, half duplex is assumed.
42*c66ec88fSEmmanuel Vadot
43*c66ec88fSEmmanuel VadotExamples:
44*c66ec88fSEmmanuel Vadot
45*c66ec88fSEmmanuel Vadotfor the external mdio-bus configuration:
46*c66ec88fSEmmanuel Vadot
47*c66ec88fSEmmanuel Vadot	&mdio0 {
48*c66ec88fSEmmanuel Vadot		phy_port1: phy@0 {
49*c66ec88fSEmmanuel Vadot			reg = <0>;
50*c66ec88fSEmmanuel Vadot		};
51*c66ec88fSEmmanuel Vadot
52*c66ec88fSEmmanuel Vadot		phy_port2: phy@1 {
53*c66ec88fSEmmanuel Vadot			reg = <1>;
54*c66ec88fSEmmanuel Vadot		};
55*c66ec88fSEmmanuel Vadot
56*c66ec88fSEmmanuel Vadot		phy_port3: phy@2 {
57*c66ec88fSEmmanuel Vadot			reg = <2>;
58*c66ec88fSEmmanuel Vadot		};
59*c66ec88fSEmmanuel Vadot
60*c66ec88fSEmmanuel Vadot		phy_port4: phy@3 {
61*c66ec88fSEmmanuel Vadot			reg = <3>;
62*c66ec88fSEmmanuel Vadot		};
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel Vadot		phy_port5: phy@4 {
65*c66ec88fSEmmanuel Vadot			reg = <4>;
66*c66ec88fSEmmanuel Vadot		};
67*c66ec88fSEmmanuel Vadot
68*c66ec88fSEmmanuel Vadot		switch@10 {
69*c66ec88fSEmmanuel Vadot			compatible = "qca,qca8337";
70*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
71*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
72*c66ec88fSEmmanuel Vadot
73*c66ec88fSEmmanuel Vadot			reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
74*c66ec88fSEmmanuel Vadot			reg = <0x10>;
75*c66ec88fSEmmanuel Vadot
76*c66ec88fSEmmanuel Vadot			ports {
77*c66ec88fSEmmanuel Vadot				#address-cells = <1>;
78*c66ec88fSEmmanuel Vadot				#size-cells = <0>;
79*c66ec88fSEmmanuel Vadot				port@0 {
80*c66ec88fSEmmanuel Vadot					reg = <0>;
81*c66ec88fSEmmanuel Vadot					label = "cpu";
82*c66ec88fSEmmanuel Vadot					ethernet = <&gmac1>;
83*c66ec88fSEmmanuel Vadot					phy-mode = "rgmii";
84*c66ec88fSEmmanuel Vadot					fixed-link {
85*c66ec88fSEmmanuel Vadot						speed = 1000;
86*c66ec88fSEmmanuel Vadot						full-duplex;
87*c66ec88fSEmmanuel Vadot					};
88*c66ec88fSEmmanuel Vadot				};
89*c66ec88fSEmmanuel Vadot
90*c66ec88fSEmmanuel Vadot				port@1 {
91*c66ec88fSEmmanuel Vadot					reg = <1>;
92*c66ec88fSEmmanuel Vadot					label = "lan1";
93*c66ec88fSEmmanuel Vadot					phy-handle = <&phy_port1>;
94*c66ec88fSEmmanuel Vadot				};
95*c66ec88fSEmmanuel Vadot
96*c66ec88fSEmmanuel Vadot				port@2 {
97*c66ec88fSEmmanuel Vadot					reg = <2>;
98*c66ec88fSEmmanuel Vadot					label = "lan2";
99*c66ec88fSEmmanuel Vadot					phy-handle = <&phy_port2>;
100*c66ec88fSEmmanuel Vadot				};
101*c66ec88fSEmmanuel Vadot
102*c66ec88fSEmmanuel Vadot				port@3 {
103*c66ec88fSEmmanuel Vadot					reg = <3>;
104*c66ec88fSEmmanuel Vadot					label = "lan3";
105*c66ec88fSEmmanuel Vadot					phy-handle = <&phy_port3>;
106*c66ec88fSEmmanuel Vadot				};
107*c66ec88fSEmmanuel Vadot
108*c66ec88fSEmmanuel Vadot				port@4 {
109*c66ec88fSEmmanuel Vadot					reg = <4>;
110*c66ec88fSEmmanuel Vadot					label = "lan4";
111*c66ec88fSEmmanuel Vadot					phy-handle = <&phy_port4>;
112*c66ec88fSEmmanuel Vadot				};
113*c66ec88fSEmmanuel Vadot
114*c66ec88fSEmmanuel Vadot				port@5 {
115*c66ec88fSEmmanuel Vadot					reg = <5>;
116*c66ec88fSEmmanuel Vadot					label = "wan";
117*c66ec88fSEmmanuel Vadot					phy-handle = <&phy_port5>;
118*c66ec88fSEmmanuel Vadot				};
119*c66ec88fSEmmanuel Vadot			};
120*c66ec88fSEmmanuel Vadot		};
121*c66ec88fSEmmanuel Vadot	};
122*c66ec88fSEmmanuel Vadot
123*c66ec88fSEmmanuel Vadotfor the internal master mdio-bus configuration:
124*c66ec88fSEmmanuel Vadot
125*c66ec88fSEmmanuel Vadot	&mdio0 {
126*c66ec88fSEmmanuel Vadot		switch@10 {
127*c66ec88fSEmmanuel Vadot			compatible = "qca,qca8337";
128*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
129*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
130*c66ec88fSEmmanuel Vadot
131*c66ec88fSEmmanuel Vadot			reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
132*c66ec88fSEmmanuel Vadot			reg = <0x10>;
133*c66ec88fSEmmanuel Vadot
134*c66ec88fSEmmanuel Vadot			ports {
135*c66ec88fSEmmanuel Vadot				#address-cells = <1>;
136*c66ec88fSEmmanuel Vadot				#size-cells = <0>;
137*c66ec88fSEmmanuel Vadot
138*c66ec88fSEmmanuel Vadot				port@0 {
139*c66ec88fSEmmanuel Vadot					reg = <0>;
140*c66ec88fSEmmanuel Vadot					label = "cpu";
141*c66ec88fSEmmanuel Vadot					ethernet = <&gmac1>;
142*c66ec88fSEmmanuel Vadot					phy-mode = "rgmii";
143*c66ec88fSEmmanuel Vadot					fixed-link {
144*c66ec88fSEmmanuel Vadot						speed = 1000;
145*c66ec88fSEmmanuel Vadot						full-duplex;
146*c66ec88fSEmmanuel Vadot					};
147*c66ec88fSEmmanuel Vadot				};
148*c66ec88fSEmmanuel Vadot
149*c66ec88fSEmmanuel Vadot				port@1 {
150*c66ec88fSEmmanuel Vadot					reg = <1>;
151*c66ec88fSEmmanuel Vadot					label = "lan1";
152*c66ec88fSEmmanuel Vadot				};
153*c66ec88fSEmmanuel Vadot
154*c66ec88fSEmmanuel Vadot				port@2 {
155*c66ec88fSEmmanuel Vadot					reg = <2>;
156*c66ec88fSEmmanuel Vadot					label = "lan2";
157*c66ec88fSEmmanuel Vadot				};
158*c66ec88fSEmmanuel Vadot
159*c66ec88fSEmmanuel Vadot				port@3 {
160*c66ec88fSEmmanuel Vadot					reg = <3>;
161*c66ec88fSEmmanuel Vadot					label = "lan3";
162*c66ec88fSEmmanuel Vadot				};
163*c66ec88fSEmmanuel Vadot
164*c66ec88fSEmmanuel Vadot				port@4 {
165*c66ec88fSEmmanuel Vadot					reg = <4>;
166*c66ec88fSEmmanuel Vadot					label = "lan4";
167*c66ec88fSEmmanuel Vadot				};
168*c66ec88fSEmmanuel Vadot
169*c66ec88fSEmmanuel Vadot				port@5 {
170*c66ec88fSEmmanuel Vadot					reg = <5>;
171*c66ec88fSEmmanuel Vadot					label = "wan";
172*c66ec88fSEmmanuel Vadot				};
173*c66ec88fSEmmanuel Vadot			};
174*c66ec88fSEmmanuel Vadot		};
175*c66ec88fSEmmanuel Vadot	};
176