xref: /OK3568_Linux_fs/kernel/arch/mips/boot/dts/cavium-octeon/octeon_68xx.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/dts-v1/;
3*4882a593Smuzhiyun/*
4*4882a593Smuzhiyun * OCTEON 68XX device tree skeleton.
5*4882a593Smuzhiyun *
6*4882a593Smuzhiyun * This device tree is pruned and patched by early boot code before
7*4882a593Smuzhiyun * use.	 Because of this, it contains a super-set of the available
8*4882a593Smuzhiyun * devices and properties.
9*4882a593Smuzhiyun */
10*4882a593Smuzhiyun/ {
11*4882a593Smuzhiyun	compatible = "cavium,octeon-6880";
12*4882a593Smuzhiyun	#address-cells = <2>;
13*4882a593Smuzhiyun	#size-cells = <2>;
14*4882a593Smuzhiyun	interrupt-parent = <&ciu2>;
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	soc@0 {
17*4882a593Smuzhiyun		compatible = "simple-bus";
18*4882a593Smuzhiyun		#address-cells = <2>;
19*4882a593Smuzhiyun		#size-cells = <2>;
20*4882a593Smuzhiyun		ranges; /* Direct mapping */
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun		ciu2: interrupt-controller@1070100000000 {
23*4882a593Smuzhiyun			compatible = "cavium,octeon-6880-ciu2";
24*4882a593Smuzhiyun			interrupt-controller;
25*4882a593Smuzhiyun			/* Interrupts are specified by two parts:
26*4882a593Smuzhiyun			 * 1) Controller register (0 or 7)
27*4882a593Smuzhiyun			 * 2) Bit within the register (0..63)
28*4882a593Smuzhiyun			 */
29*4882a593Smuzhiyun			#address-cells = <0>;
30*4882a593Smuzhiyun			#interrupt-cells = <2>;
31*4882a593Smuzhiyun			reg = <0x10701 0x00000000 0x0 0x4000000>;
32*4882a593Smuzhiyun		};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun		gpio: gpio-controller@1070000000800 {
35*4882a593Smuzhiyun			#gpio-cells = <2>;
36*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-gpio";
37*4882a593Smuzhiyun			reg = <0x10700 0x00000800 0x0 0x100>;
38*4882a593Smuzhiyun			gpio-controller;
39*4882a593Smuzhiyun			/* Interrupts are specified by two parts:
40*4882a593Smuzhiyun			 * 1) GPIO pin number (0..15)
41*4882a593Smuzhiyun			 * 2) Triggering (1 - edge rising
42*4882a593Smuzhiyun			 *		  2 - edge falling
43*4882a593Smuzhiyun			 *		  4 - level active high
44*4882a593Smuzhiyun			 *		  8 - level active low)
45*4882a593Smuzhiyun			 */
46*4882a593Smuzhiyun			interrupt-controller;
47*4882a593Smuzhiyun			#interrupt-cells = <2>;
48*4882a593Smuzhiyun			/* The GPIO pins connect to 16 consecutive CUI bits */
49*4882a593Smuzhiyun			interrupts = <7 0>,  <7 1>,  <7 2>,  <7 3>,
50*4882a593Smuzhiyun				     <7 4>,  <7 5>,  <7 6>,  <7 7>,
51*4882a593Smuzhiyun				     <7 8>,  <7 9>,  <7 10>, <7 11>,
52*4882a593Smuzhiyun				     <7 12>, <7 13>, <7 14>, <7 15>;
53*4882a593Smuzhiyun		};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun		smi0: mdio@1180000003800 {
56*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-mdio";
57*4882a593Smuzhiyun			#address-cells = <1>;
58*4882a593Smuzhiyun			#size-cells = <0>;
59*4882a593Smuzhiyun			reg = <0x11800 0x00003800 0x0 0x40>;
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun			phy0: ethernet-phy@6 {
62*4882a593Smuzhiyun				compatible = "marvell,88e1118";
63*4882a593Smuzhiyun				marvell,reg-init =
64*4882a593Smuzhiyun					/* Fix rx and tx clock transition timing */
65*4882a593Smuzhiyun					<2 0x15 0xffcf 0>, /* Reg 2,21 Clear bits 4, 5 */
66*4882a593Smuzhiyun					/* Adjust LED drive. */
67*4882a593Smuzhiyun					<3 0x11 0 0x442a>, /* Reg 3,17 <- 0442a */
68*4882a593Smuzhiyun					/* irq, blink-activity, blink-link */
69*4882a593Smuzhiyun					<3 0x10 0 0x0242>; /* Reg 3,16 <- 0x0242 */
70*4882a593Smuzhiyun				reg = <6>;
71*4882a593Smuzhiyun			};
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun			phy1: ethernet-phy@1 {
74*4882a593Smuzhiyun				cavium,qlm-trim = "4,sgmii";
75*4882a593Smuzhiyun				reg = <1>;
76*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
77*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
78*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
79*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
80*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
81*4882a593Smuzhiyun			};
82*4882a593Smuzhiyun			phy2: ethernet-phy@2 {
83*4882a593Smuzhiyun				cavium,qlm-trim = "4,sgmii";
84*4882a593Smuzhiyun				reg = <2>;
85*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
86*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
87*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
88*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
89*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
90*4882a593Smuzhiyun			};
91*4882a593Smuzhiyun			phy3: ethernet-phy@3 {
92*4882a593Smuzhiyun				cavium,qlm-trim = "4,sgmii";
93*4882a593Smuzhiyun				reg = <3>;
94*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
95*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
96*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
97*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
98*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
99*4882a593Smuzhiyun			};
100*4882a593Smuzhiyun			phy4: ethernet-phy@4 {
101*4882a593Smuzhiyun				cavium,qlm-trim = "4,sgmii";
102*4882a593Smuzhiyun				reg = <4>;
103*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
104*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
105*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
106*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
107*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
108*4882a593Smuzhiyun			};
109*4882a593Smuzhiyun		};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun		smi1: mdio@1180000003880 {
112*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-mdio";
113*4882a593Smuzhiyun			#address-cells = <1>;
114*4882a593Smuzhiyun			#size-cells = <0>;
115*4882a593Smuzhiyun			reg = <0x11800 0x00003880 0x0 0x40>;
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun			phy41: ethernet-phy@1 {
118*4882a593Smuzhiyun				cavium,qlm-trim = "0,sgmii";
119*4882a593Smuzhiyun				reg = <1>;
120*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
121*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
122*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
123*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
124*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
125*4882a593Smuzhiyun			};
126*4882a593Smuzhiyun			phy42: ethernet-phy@2 {
127*4882a593Smuzhiyun				cavium,qlm-trim = "0,sgmii";
128*4882a593Smuzhiyun				reg = <2>;
129*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
130*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
131*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
132*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
133*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
134*4882a593Smuzhiyun			};
135*4882a593Smuzhiyun			phy43: ethernet-phy@3 {
136*4882a593Smuzhiyun				cavium,qlm-trim = "0,sgmii";
137*4882a593Smuzhiyun				reg = <3>;
138*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
139*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
140*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
141*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
142*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
143*4882a593Smuzhiyun			};
144*4882a593Smuzhiyun			phy44: ethernet-phy@4 {
145*4882a593Smuzhiyun				cavium,qlm-trim = "0,sgmii";
146*4882a593Smuzhiyun				reg = <4>;
147*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
148*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
149*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
150*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
151*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
152*4882a593Smuzhiyun			};
153*4882a593Smuzhiyun		};
154*4882a593Smuzhiyun
155*4882a593Smuzhiyun		smi2: mdio@1180000003900 {
156*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-mdio";
157*4882a593Smuzhiyun			#address-cells = <1>;
158*4882a593Smuzhiyun			#size-cells = <0>;
159*4882a593Smuzhiyun			reg = <0x11800 0x00003900 0x0 0x40>;
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun			phy21: ethernet-phy@1 {
162*4882a593Smuzhiyun				cavium,qlm-trim = "2,sgmii";
163*4882a593Smuzhiyun				reg = <1>;
164*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
165*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
166*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
167*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
168*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
169*4882a593Smuzhiyun			};
170*4882a593Smuzhiyun			phy22: ethernet-phy@2 {
171*4882a593Smuzhiyun				cavium,qlm-trim = "2,sgmii";
172*4882a593Smuzhiyun				reg = <2>;
173*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
174*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
175*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
176*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
177*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
178*4882a593Smuzhiyun			};
179*4882a593Smuzhiyun			phy23: ethernet-phy@3 {
180*4882a593Smuzhiyun				cavium,qlm-trim = "2,sgmii";
181*4882a593Smuzhiyun				reg = <3>;
182*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
183*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
184*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
185*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
186*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
187*4882a593Smuzhiyun			};
188*4882a593Smuzhiyun			phy24: ethernet-phy@4 {
189*4882a593Smuzhiyun				cavium,qlm-trim = "2,sgmii";
190*4882a593Smuzhiyun				reg = <4>;
191*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
192*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
193*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
194*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
195*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
196*4882a593Smuzhiyun			};
197*4882a593Smuzhiyun		};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun		smi3: mdio@1180000003980 {
200*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-mdio";
201*4882a593Smuzhiyun			#address-cells = <1>;
202*4882a593Smuzhiyun			#size-cells = <0>;
203*4882a593Smuzhiyun			reg = <0x11800 0x00003980 0x0 0x40>;
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun			phy11: ethernet-phy@1 {
206*4882a593Smuzhiyun				cavium,qlm-trim = "3,sgmii";
207*4882a593Smuzhiyun				reg = <1>;
208*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
209*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
210*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
211*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
212*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
213*4882a593Smuzhiyun			};
214*4882a593Smuzhiyun			phy12: ethernet-phy@2 {
215*4882a593Smuzhiyun				cavium,qlm-trim = "3,sgmii";
216*4882a593Smuzhiyun				reg = <2>;
217*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
218*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
219*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
220*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
221*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
222*4882a593Smuzhiyun			};
223*4882a593Smuzhiyun			phy13: ethernet-phy@3 {
224*4882a593Smuzhiyun				cavium,qlm-trim = "3,sgmii";
225*4882a593Smuzhiyun				reg = <3>;
226*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
227*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
228*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
229*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
230*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
231*4882a593Smuzhiyun			};
232*4882a593Smuzhiyun			phy14: ethernet-phy@4 {
233*4882a593Smuzhiyun				cavium,qlm-trim = "3,sgmii";
234*4882a593Smuzhiyun				reg = <4>;
235*4882a593Smuzhiyun				compatible = "marvell,88e1149r";
236*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
237*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
238*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
239*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
240*4882a593Smuzhiyun			};
241*4882a593Smuzhiyun		};
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun		mix0: ethernet@1070000100000 {
244*4882a593Smuzhiyun			compatible = "cavium,octeon-5750-mix";
245*4882a593Smuzhiyun			reg = <0x10700 0x00100000 0x0 0x100>, /* MIX */
246*4882a593Smuzhiyun			      <0x11800 0xE0000000 0x0 0x300>, /* AGL */
247*4882a593Smuzhiyun			      <0x11800 0xE0000400 0x0 0x400>, /* AGL_SHARED  */
248*4882a593Smuzhiyun			      <0x11800 0xE0002000 0x0 0x8>;   /* AGL_PRT_CTL */
249*4882a593Smuzhiyun			cell-index = <0>;
250*4882a593Smuzhiyun			interrupts = <6 40>, <6 32>;
251*4882a593Smuzhiyun			local-mac-address = [ 00 00 00 00 00 00 ];
252*4882a593Smuzhiyun			phy-handle = <&phy0>;
253*4882a593Smuzhiyun		};
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun		pip: pip@11800a0000000 {
256*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-pip";
257*4882a593Smuzhiyun			#address-cells = <1>;
258*4882a593Smuzhiyun			#size-cells = <0>;
259*4882a593Smuzhiyun			reg = <0x11800 0xa0000000 0x0 0x2000>;
260*4882a593Smuzhiyun
261*4882a593Smuzhiyun			interface@4 {
262*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-pip-interface";
263*4882a593Smuzhiyun				#address-cells = <1>;
264*4882a593Smuzhiyun				#size-cells = <0>;
265*4882a593Smuzhiyun				reg = <0x4>; /* interface */
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun				ethernet@0 {
268*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
269*4882a593Smuzhiyun					reg = <0x0>; /* Port */
270*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
271*4882a593Smuzhiyun					phy-handle = <&phy1>;
272*4882a593Smuzhiyun				};
273*4882a593Smuzhiyun				ethernet@1 {
274*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
275*4882a593Smuzhiyun					reg = <0x1>; /* Port */
276*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
277*4882a593Smuzhiyun					phy-handle = <&phy2>;
278*4882a593Smuzhiyun				};
279*4882a593Smuzhiyun				ethernet@2 {
280*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
281*4882a593Smuzhiyun					reg = <0x2>; /* Port */
282*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
283*4882a593Smuzhiyun					phy-handle = <&phy3>;
284*4882a593Smuzhiyun				};
285*4882a593Smuzhiyun				ethernet@3 {
286*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
287*4882a593Smuzhiyun					reg = <0x3>; /* Port */
288*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
289*4882a593Smuzhiyun					phy-handle = <&phy4>;
290*4882a593Smuzhiyun				};
291*4882a593Smuzhiyun			};
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun			interface@3 {
294*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-pip-interface";
295*4882a593Smuzhiyun				#address-cells = <1>;
296*4882a593Smuzhiyun				#size-cells = <0>;
297*4882a593Smuzhiyun				reg = <0x3>; /* interface */
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun				ethernet@0 {
300*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
301*4882a593Smuzhiyun					reg = <0x0>; /* Port */
302*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
303*4882a593Smuzhiyun					phy-handle = <&phy11>;
304*4882a593Smuzhiyun				};
305*4882a593Smuzhiyun				ethernet@1 {
306*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
307*4882a593Smuzhiyun					reg = <0x1>; /* Port */
308*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
309*4882a593Smuzhiyun					phy-handle = <&phy12>;
310*4882a593Smuzhiyun				};
311*4882a593Smuzhiyun				ethernet@2 {
312*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
313*4882a593Smuzhiyun					reg = <0x2>; /* Port */
314*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
315*4882a593Smuzhiyun					phy-handle = <&phy13>;
316*4882a593Smuzhiyun				};
317*4882a593Smuzhiyun				ethernet@3 {
318*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
319*4882a593Smuzhiyun					reg = <0x3>; /* Port */
320*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
321*4882a593Smuzhiyun					phy-handle = <&phy14>;
322*4882a593Smuzhiyun				};
323*4882a593Smuzhiyun			};
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun			interface@2 {
326*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-pip-interface";
327*4882a593Smuzhiyun				#address-cells = <1>;
328*4882a593Smuzhiyun				#size-cells = <0>;
329*4882a593Smuzhiyun				reg = <0x2>; /* interface */
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun				ethernet@0 {
332*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
333*4882a593Smuzhiyun					reg = <0x0>; /* Port */
334*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
335*4882a593Smuzhiyun					phy-handle = <&phy21>;
336*4882a593Smuzhiyun				};
337*4882a593Smuzhiyun				ethernet@1 {
338*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
339*4882a593Smuzhiyun					reg = <0x1>; /* Port */
340*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
341*4882a593Smuzhiyun					phy-handle = <&phy22>;
342*4882a593Smuzhiyun				};
343*4882a593Smuzhiyun				ethernet@2 {
344*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
345*4882a593Smuzhiyun					reg = <0x2>; /* Port */
346*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
347*4882a593Smuzhiyun					phy-handle = <&phy23>;
348*4882a593Smuzhiyun				};
349*4882a593Smuzhiyun				ethernet@3 {
350*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
351*4882a593Smuzhiyun					reg = <0x3>; /* Port */
352*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
353*4882a593Smuzhiyun					phy-handle = <&phy24>;
354*4882a593Smuzhiyun				};
355*4882a593Smuzhiyun			};
356*4882a593Smuzhiyun
357*4882a593Smuzhiyun			interface@1 {
358*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-pip-interface";
359*4882a593Smuzhiyun				#address-cells = <1>;
360*4882a593Smuzhiyun				#size-cells = <0>;
361*4882a593Smuzhiyun				reg = <0x1>; /* interface */
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun				ethernet@0 {
364*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
365*4882a593Smuzhiyun					reg = <0x0>; /* Port */
366*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
367*4882a593Smuzhiyun				};
368*4882a593Smuzhiyun			};
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun			interface@0 {
371*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-pip-interface";
372*4882a593Smuzhiyun				#address-cells = <1>;
373*4882a593Smuzhiyun				#size-cells = <0>;
374*4882a593Smuzhiyun				reg = <0x0>; /* interface */
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun				ethernet@0 {
377*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
378*4882a593Smuzhiyun					reg = <0x0>; /* Port */
379*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
380*4882a593Smuzhiyun					phy-handle = <&phy41>;
381*4882a593Smuzhiyun				};
382*4882a593Smuzhiyun				ethernet@1 {
383*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
384*4882a593Smuzhiyun					reg = <0x1>; /* Port */
385*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
386*4882a593Smuzhiyun					phy-handle = <&phy42>;
387*4882a593Smuzhiyun				};
388*4882a593Smuzhiyun				ethernet@2 {
389*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
390*4882a593Smuzhiyun					reg = <0x2>; /* Port */
391*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
392*4882a593Smuzhiyun					phy-handle = <&phy43>;
393*4882a593Smuzhiyun				};
394*4882a593Smuzhiyun				ethernet@3 {
395*4882a593Smuzhiyun					compatible = "cavium,octeon-3860-pip-port";
396*4882a593Smuzhiyun					reg = <0x3>; /* Port */
397*4882a593Smuzhiyun					local-mac-address = [ 00 00 00 00 00 00 ];
398*4882a593Smuzhiyun					phy-handle = <&phy44>;
399*4882a593Smuzhiyun				};
400*4882a593Smuzhiyun			};
401*4882a593Smuzhiyun		};
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun		twsi0: i2c@1180000001000 {
404*4882a593Smuzhiyun			#address-cells = <1>;
405*4882a593Smuzhiyun			#size-cells = <0>;
406*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-twsi";
407*4882a593Smuzhiyun			reg = <0x11800 0x00001000 0x0 0x200>;
408*4882a593Smuzhiyun			interrupts = <3 32>;
409*4882a593Smuzhiyun			clock-frequency = <100000>;
410*4882a593Smuzhiyun
411*4882a593Smuzhiyun			rtc@68 {
412*4882a593Smuzhiyun				compatible = "dallas,ds1337";
413*4882a593Smuzhiyun				reg = <0x68>;
414*4882a593Smuzhiyun			};
415*4882a593Smuzhiyun			tmp@4c {
416*4882a593Smuzhiyun				compatible = "ti,tmp421";
417*4882a593Smuzhiyun				reg = <0x4c>;
418*4882a593Smuzhiyun			};
419*4882a593Smuzhiyun		};
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun		twsi1: i2c@1180000001200 {
422*4882a593Smuzhiyun			#address-cells = <1>;
423*4882a593Smuzhiyun			#size-cells = <0>;
424*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-twsi";
425*4882a593Smuzhiyun			reg = <0x11800 0x00001200 0x0 0x200>;
426*4882a593Smuzhiyun			interrupts = <3 33>;
427*4882a593Smuzhiyun			clock-frequency = <100000>;
428*4882a593Smuzhiyun		};
429*4882a593Smuzhiyun
430*4882a593Smuzhiyun		uart0: serial@1180000000800 {
431*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-uart","ns16550";
432*4882a593Smuzhiyun			reg = <0x11800 0x00000800 0x0 0x400>;
433*4882a593Smuzhiyun			clock-frequency = <0>;
434*4882a593Smuzhiyun			current-speed = <115200>;
435*4882a593Smuzhiyun			reg-shift = <3>;
436*4882a593Smuzhiyun			interrupts = <3 36>;
437*4882a593Smuzhiyun		};
438*4882a593Smuzhiyun
439*4882a593Smuzhiyun		uart1: serial@1180000000c00 {
440*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-uart","ns16550";
441*4882a593Smuzhiyun			reg = <0x11800 0x00000c00 0x0 0x400>;
442*4882a593Smuzhiyun			clock-frequency = <0>;
443*4882a593Smuzhiyun			current-speed = <115200>;
444*4882a593Smuzhiyun			reg-shift = <3>;
445*4882a593Smuzhiyun			interrupts = <3 37>;
446*4882a593Smuzhiyun		};
447*4882a593Smuzhiyun
448*4882a593Smuzhiyun		bootbus: bootbus@1180000000000 {
449*4882a593Smuzhiyun			compatible = "cavium,octeon-3860-bootbus";
450*4882a593Smuzhiyun			reg = <0x11800 0x00000000 0x0 0x200>;
451*4882a593Smuzhiyun			/* The chip select number and offset */
452*4882a593Smuzhiyun			#address-cells = <2>;
453*4882a593Smuzhiyun			/* The size of the chip select region */
454*4882a593Smuzhiyun			#size-cells = <1>;
455*4882a593Smuzhiyun			ranges = <0 0  0       0x1f400000  0xc00000>,
456*4882a593Smuzhiyun				 <1 0  0x10000 0x30000000  0>,
457*4882a593Smuzhiyun				 <2 0  0x10000 0x40000000  0>,
458*4882a593Smuzhiyun				 <3 0  0x10000 0x50000000  0>,
459*4882a593Smuzhiyun				 <4 0  0       0x1d020000  0x10000>,
460*4882a593Smuzhiyun				 <5 0  0       0x1d040000  0x10000>,
461*4882a593Smuzhiyun				 <6 0  0       0x1d050000  0x10000>,
462*4882a593Smuzhiyun				 <7 0  0x10000 0x90000000  0>;
463*4882a593Smuzhiyun
464*4882a593Smuzhiyun			cavium,cs-config@0 {
465*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-bootbus-config";
466*4882a593Smuzhiyun				cavium,cs-index = <0>;
467*4882a593Smuzhiyun				cavium,t-adr  = <10>;
468*4882a593Smuzhiyun				cavium,t-ce   = <50>;
469*4882a593Smuzhiyun				cavium,t-oe   = <50>;
470*4882a593Smuzhiyun				cavium,t-we   = <35>;
471*4882a593Smuzhiyun				cavium,t-rd-hld = <25>;
472*4882a593Smuzhiyun				cavium,t-wr-hld = <35>;
473*4882a593Smuzhiyun				cavium,t-pause	= <0>;
474*4882a593Smuzhiyun				cavium,t-wait	= <300>;
475*4882a593Smuzhiyun				cavium,t-page	= <25>;
476*4882a593Smuzhiyun				cavium,t-rd-dly = <0>;
477*4882a593Smuzhiyun
478*4882a593Smuzhiyun				cavium,pages	 = <0>;
479*4882a593Smuzhiyun				cavium,bus-width = <8>;
480*4882a593Smuzhiyun			};
481*4882a593Smuzhiyun			cavium,cs-config@4 {
482*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-bootbus-config";
483*4882a593Smuzhiyun				cavium,cs-index = <4>;
484*4882a593Smuzhiyun				cavium,t-adr  = <320>;
485*4882a593Smuzhiyun				cavium,t-ce   = <320>;
486*4882a593Smuzhiyun				cavium,t-oe   = <320>;
487*4882a593Smuzhiyun				cavium,t-we   = <320>;
488*4882a593Smuzhiyun				cavium,t-rd-hld = <320>;
489*4882a593Smuzhiyun				cavium,t-wr-hld = <320>;
490*4882a593Smuzhiyun				cavium,t-pause	= <320>;
491*4882a593Smuzhiyun				cavium,t-wait	= <320>;
492*4882a593Smuzhiyun				cavium,t-page	= <320>;
493*4882a593Smuzhiyun				cavium,t-rd-dly = <0>;
494*4882a593Smuzhiyun
495*4882a593Smuzhiyun				cavium,pages	 = <0>;
496*4882a593Smuzhiyun				cavium,bus-width = <8>;
497*4882a593Smuzhiyun			};
498*4882a593Smuzhiyun			cavium,cs-config@5 {
499*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-bootbus-config";
500*4882a593Smuzhiyun				cavium,cs-index = <5>;
501*4882a593Smuzhiyun				cavium,t-adr  = <0>;
502*4882a593Smuzhiyun				cavium,t-ce   = <300>;
503*4882a593Smuzhiyun				cavium,t-oe   = <125>;
504*4882a593Smuzhiyun				cavium,t-we   = <150>;
505*4882a593Smuzhiyun				cavium,t-rd-hld = <100>;
506*4882a593Smuzhiyun				cavium,t-wr-hld = <300>;
507*4882a593Smuzhiyun				cavium,t-pause	= <0>;
508*4882a593Smuzhiyun				cavium,t-wait	= <300>;
509*4882a593Smuzhiyun				cavium,t-page	= <310>;
510*4882a593Smuzhiyun				cavium,t-rd-dly = <0>;
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun				cavium,pages	 = <0>;
513*4882a593Smuzhiyun				cavium,bus-width = <16>;
514*4882a593Smuzhiyun			};
515*4882a593Smuzhiyun			cavium,cs-config@6 {
516*4882a593Smuzhiyun				compatible = "cavium,octeon-3860-bootbus-config";
517*4882a593Smuzhiyun				cavium,cs-index = <6>;
518*4882a593Smuzhiyun				cavium,t-adr  = <0>;
519*4882a593Smuzhiyun				cavium,t-ce   = <30>;
520*4882a593Smuzhiyun				cavium,t-oe   = <125>;
521*4882a593Smuzhiyun				cavium,t-we   = <150>;
522*4882a593Smuzhiyun				cavium,t-rd-hld = <100>;
523*4882a593Smuzhiyun				cavium,t-wr-hld = <30>;
524*4882a593Smuzhiyun				cavium,t-pause	= <0>;
525*4882a593Smuzhiyun				cavium,t-wait	= <30>;
526*4882a593Smuzhiyun				cavium,t-page	= <310>;
527*4882a593Smuzhiyun				cavium,t-rd-dly = <0>;
528*4882a593Smuzhiyun
529*4882a593Smuzhiyun				cavium,pages	 = <0>;
530*4882a593Smuzhiyun				cavium,wait-mode;
531*4882a593Smuzhiyun				cavium,bus-width = <16>;
532*4882a593Smuzhiyun			};
533*4882a593Smuzhiyun
534*4882a593Smuzhiyun			flash0: nor@0,0 {
535*4882a593Smuzhiyun				compatible = "cfi-flash";
536*4882a593Smuzhiyun				reg = <0 0 0x800000>;
537*4882a593Smuzhiyun				#address-cells = <1>;
538*4882a593Smuzhiyun				#size-cells = <1>;
539*4882a593Smuzhiyun
540*4882a593Smuzhiyun				partition@0 {
541*4882a593Smuzhiyun					label = "bootloader";
542*4882a593Smuzhiyun					reg = <0 0x200000>;
543*4882a593Smuzhiyun					read-only;
544*4882a593Smuzhiyun				};
545*4882a593Smuzhiyun				partition@200000 {
546*4882a593Smuzhiyun					label = "kernel";
547*4882a593Smuzhiyun					reg = <0x200000 0x200000>;
548*4882a593Smuzhiyun				};
549*4882a593Smuzhiyun				partition@400000 {
550*4882a593Smuzhiyun					label = "cramfs";
551*4882a593Smuzhiyun					reg = <0x400000 0x3fe000>;
552*4882a593Smuzhiyun				};
553*4882a593Smuzhiyun				partition@7fe000 {
554*4882a593Smuzhiyun					label = "environment";
555*4882a593Smuzhiyun					reg = <0x7fe000 0x2000>;
556*4882a593Smuzhiyun					read-only;
557*4882a593Smuzhiyun				};
558*4882a593Smuzhiyun			};
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun			led0: led-display@4,0 {
561*4882a593Smuzhiyun				compatible = "avago,hdsp-253x";
562*4882a593Smuzhiyun				reg = <4 0x20 0x20>, <4 0 0x20>;
563*4882a593Smuzhiyun			};
564*4882a593Smuzhiyun
565*4882a593Smuzhiyun			compact-flash@5,0 {
566*4882a593Smuzhiyun				compatible = "cavium,ebt3000-compact-flash";
567*4882a593Smuzhiyun				reg = <5 0 0x10000>, <6 0 0x10000>;
568*4882a593Smuzhiyun				cavium,bus-width = <16>;
569*4882a593Smuzhiyun				cavium,true-ide;
570*4882a593Smuzhiyun				cavium,dma-engine-handle = <&dma0>;
571*4882a593Smuzhiyun			};
572*4882a593Smuzhiyun		};
573*4882a593Smuzhiyun
574*4882a593Smuzhiyun		dma0: dma-engine@1180000000100 {
575*4882a593Smuzhiyun			compatible = "cavium,octeon-5750-bootbus-dma";
576*4882a593Smuzhiyun			reg = <0x11800 0x00000100 0x0 0x8>;
577*4882a593Smuzhiyun			interrupts = <0 63>;
578*4882a593Smuzhiyun		};
579*4882a593Smuzhiyun		dma1: dma-engine@1180000000108 {
580*4882a593Smuzhiyun			compatible = "cavium,octeon-5750-bootbus-dma";
581*4882a593Smuzhiyun			reg = <0x11800 0x00000108 0x0 0x8>;
582*4882a593Smuzhiyun			interrupts = <0 63>;
583*4882a593Smuzhiyun		};
584*4882a593Smuzhiyun
585*4882a593Smuzhiyun		uctl: uctl@118006f000000 {
586*4882a593Smuzhiyun			compatible = "cavium,octeon-6335-uctl";
587*4882a593Smuzhiyun			reg = <0x11800 0x6f000000 0x0 0x100>;
588*4882a593Smuzhiyun			ranges; /* Direct mapping */
589*4882a593Smuzhiyun			#address-cells = <2>;
590*4882a593Smuzhiyun			#size-cells = <2>;
591*4882a593Smuzhiyun			/* 12MHz, 24MHz and 48MHz allowed */
592*4882a593Smuzhiyun			refclk-frequency = <12000000>;
593*4882a593Smuzhiyun			/* Either "crystal" or "external" */
594*4882a593Smuzhiyun			refclk-type = "crystal";
595*4882a593Smuzhiyun
596*4882a593Smuzhiyun			ehci@16f0000000000 {
597*4882a593Smuzhiyun				compatible = "cavium,octeon-6335-ehci","usb-ehci";
598*4882a593Smuzhiyun				reg = <0x16f00 0x00000000 0x0 0x100>;
599*4882a593Smuzhiyun				interrupts = <3 44>;
600*4882a593Smuzhiyun				big-endian-regs;
601*4882a593Smuzhiyun			};
602*4882a593Smuzhiyun			ohci@16f0000000400 {
603*4882a593Smuzhiyun				compatible = "cavium,octeon-6335-ohci","usb-ohci";
604*4882a593Smuzhiyun				reg = <0x16f00 0x00000400 0x0 0x100>;
605*4882a593Smuzhiyun				interrupts = <3 44>;
606*4882a593Smuzhiyun				big-endian-regs;
607*4882a593Smuzhiyun			};
608*4882a593Smuzhiyun		};
609*4882a593Smuzhiyun	};
610*4882a593Smuzhiyun
611*4882a593Smuzhiyun	aliases {
612*4882a593Smuzhiyun		mix0 = &mix0;
613*4882a593Smuzhiyun		pip = &pip;
614*4882a593Smuzhiyun		smi0 = &smi0;
615*4882a593Smuzhiyun		smi1 = &smi1;
616*4882a593Smuzhiyun		smi2 = &smi2;
617*4882a593Smuzhiyun		smi3 = &smi3;
618*4882a593Smuzhiyun		twsi0 = &twsi0;
619*4882a593Smuzhiyun		twsi1 = &twsi1;
620*4882a593Smuzhiyun		uart0 = &uart0;
621*4882a593Smuzhiyun		uart1 = &uart1;
622*4882a593Smuzhiyun		uctl = &uctl;
623*4882a593Smuzhiyun		led0 = &led0;
624*4882a593Smuzhiyun		flash0 = &flash0;
625*4882a593Smuzhiyun	};
626*4882a593Smuzhiyun };
627