xref: /freebsd/sys/contrib/device-tree/src/mips/cavium-octeon/octeon_3xxx.dtsi (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*c66ec88fSEmmanuel Vadot/* OCTEON 3XXX DTS common parts. */
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel Vadot/dts-v1/;
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel Vadot/ {
7*c66ec88fSEmmanuel Vadot	compatible = "cavium,octeon-3860";
8*c66ec88fSEmmanuel Vadot	#address-cells = <2>;
9*c66ec88fSEmmanuel Vadot	#size-cells = <2>;
10*c66ec88fSEmmanuel Vadot	interrupt-parent = <&ciu>;
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel Vadot	soc@0 {
13*c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
14*c66ec88fSEmmanuel Vadot		#address-cells = <2>;
15*c66ec88fSEmmanuel Vadot		#size-cells = <2>;
16*c66ec88fSEmmanuel Vadot		ranges; /* Direct mapping */
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel Vadot		ciu: interrupt-controller@1070000000000 {
19*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-3860-ciu";
20*c66ec88fSEmmanuel Vadot			interrupt-controller;
21*c66ec88fSEmmanuel Vadot			/* Interrupts are specified by two parts:
22*c66ec88fSEmmanuel Vadot			 * 1) Controller register (0 or 1)
23*c66ec88fSEmmanuel Vadot			 * 2) Bit within the register (0..63)
24*c66ec88fSEmmanuel Vadot			 */
25*c66ec88fSEmmanuel Vadot			#interrupt-cells = <2>;
26*c66ec88fSEmmanuel Vadot			reg = <0x10700 0x00000000 0x0 0x7000>;
27*c66ec88fSEmmanuel Vadot		};
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel Vadot		gpio: gpio-controller@1070000000800 {
30*c66ec88fSEmmanuel Vadot			#gpio-cells = <2>;
31*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-3860-gpio";
32*c66ec88fSEmmanuel Vadot			reg = <0x10700 0x00000800 0x0 0x100>;
33*c66ec88fSEmmanuel Vadot			gpio-controller;
34*c66ec88fSEmmanuel Vadot			/* Interrupts are specified by two parts:
35*c66ec88fSEmmanuel Vadot			 * 1) GPIO pin number (0..15)
36*c66ec88fSEmmanuel Vadot			 * 2) Triggering (1 - edge rising
37*c66ec88fSEmmanuel Vadot			 *		  2 - edge falling
38*c66ec88fSEmmanuel Vadot			 *		  4 - level active high
39*c66ec88fSEmmanuel Vadot			 *		  8 - level active low)
40*c66ec88fSEmmanuel Vadot			 */
41*c66ec88fSEmmanuel Vadot			interrupt-controller;
42*c66ec88fSEmmanuel Vadot			#interrupt-cells = <2>;
43*c66ec88fSEmmanuel Vadot			/* The GPIO pin connect to 16 consecutive CUI bits */
44*c66ec88fSEmmanuel Vadot			interrupts = <0 16>, <0 17>, <0 18>, <0 19>,
45*c66ec88fSEmmanuel Vadot				     <0 20>, <0 21>, <0 22>, <0 23>,
46*c66ec88fSEmmanuel Vadot				     <0 24>, <0 25>, <0 26>, <0 27>,
47*c66ec88fSEmmanuel Vadot				     <0 28>, <0 29>, <0 30>, <0 31>;
48*c66ec88fSEmmanuel Vadot		};
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel Vadot		smi0: mdio@1180000001800 {
51*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-3860-mdio";
52*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
53*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
54*c66ec88fSEmmanuel Vadot			reg = <0x11800 0x00001800 0x0 0x40>;
55*c66ec88fSEmmanuel Vadot		};
56*c66ec88fSEmmanuel Vadot
57*c66ec88fSEmmanuel Vadot		pip: pip@11800a0000000 {
58*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-3860-pip";
59*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
60*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
61*c66ec88fSEmmanuel Vadot			reg = <0x11800 0xa0000000 0x0 0x2000>;
62*c66ec88fSEmmanuel Vadot
63*c66ec88fSEmmanuel Vadot			interface@0 {
64*c66ec88fSEmmanuel Vadot				compatible = "cavium,octeon-3860-pip-interface";
65*c66ec88fSEmmanuel Vadot				#address-cells = <1>;
66*c66ec88fSEmmanuel Vadot				#size-cells = <0>;
67*c66ec88fSEmmanuel Vadot				reg = <0>; /* interface */
68*c66ec88fSEmmanuel Vadot
69*c66ec88fSEmmanuel Vadot				ethernet@0 {
70*c66ec88fSEmmanuel Vadot					compatible = "cavium,octeon-3860-pip-port";
71*c66ec88fSEmmanuel Vadot					reg = <0x0>; /* Port */
72*c66ec88fSEmmanuel Vadot					local-mac-address = [ 00 00 00 00 00 00 ];
73*c66ec88fSEmmanuel Vadot				};
74*c66ec88fSEmmanuel Vadot				ethernet@1 {
75*c66ec88fSEmmanuel Vadot					compatible = "cavium,octeon-3860-pip-port";
76*c66ec88fSEmmanuel Vadot					reg = <0x1>; /* Port */
77*c66ec88fSEmmanuel Vadot					local-mac-address = [ 00 00 00 00 00 00 ];
78*c66ec88fSEmmanuel Vadot				};
79*c66ec88fSEmmanuel Vadot				ethernet@2 {
80*c66ec88fSEmmanuel Vadot					compatible = "cavium,octeon-3860-pip-port";
81*c66ec88fSEmmanuel Vadot					reg = <0x2>; /* Port */
82*c66ec88fSEmmanuel Vadot					local-mac-address = [ 00 00 00 00 00 00 ];
83*c66ec88fSEmmanuel Vadot				};
84*c66ec88fSEmmanuel Vadot			};
85*c66ec88fSEmmanuel Vadot
86*c66ec88fSEmmanuel Vadot			interface@1 {
87*c66ec88fSEmmanuel Vadot				compatible = "cavium,octeon-3860-pip-interface";
88*c66ec88fSEmmanuel Vadot				#address-cells = <1>;
89*c66ec88fSEmmanuel Vadot				#size-cells = <0>;
90*c66ec88fSEmmanuel Vadot				reg = <1>; /* interface */
91*c66ec88fSEmmanuel Vadot			};
92*c66ec88fSEmmanuel Vadot		};
93*c66ec88fSEmmanuel Vadot
94*c66ec88fSEmmanuel Vadot		twsi0: i2c@1180000001000 {
95*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
96*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
97*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-3860-twsi";
98*c66ec88fSEmmanuel Vadot			reg = <0x11800 0x00001000 0x0 0x200>;
99*c66ec88fSEmmanuel Vadot			interrupts = <0 45>;
100*c66ec88fSEmmanuel Vadot			clock-frequency = <100000>;
101*c66ec88fSEmmanuel Vadot		};
102*c66ec88fSEmmanuel Vadot
103*c66ec88fSEmmanuel Vadot		uart0: serial@1180000000800 {
104*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-3860-uart","ns16550";
105*c66ec88fSEmmanuel Vadot			reg = <0x11800 0x00000800 0x0 0x400>;
106*c66ec88fSEmmanuel Vadot			clock-frequency = <0>;
107*c66ec88fSEmmanuel Vadot			current-speed = <115200>;
108*c66ec88fSEmmanuel Vadot			reg-shift = <3>;
109*c66ec88fSEmmanuel Vadot			interrupts = <0 34>;
110*c66ec88fSEmmanuel Vadot		};
111*c66ec88fSEmmanuel Vadot
112*c66ec88fSEmmanuel Vadot		bootbus: bootbus@1180000000000 {
113*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-3860-bootbus";
114*c66ec88fSEmmanuel Vadot			reg = <0x11800 0x00000000 0x0 0x200>;
115*c66ec88fSEmmanuel Vadot			/* The chip select number and offset */
116*c66ec88fSEmmanuel Vadot			#address-cells = <2>;
117*c66ec88fSEmmanuel Vadot			/* The size of the chip select region */
118*c66ec88fSEmmanuel Vadot			#size-cells = <1>;
119*c66ec88fSEmmanuel Vadot			ranges = <0 0  0x0 0x1f400000  0xc00000>,
120*c66ec88fSEmmanuel Vadot				 <1 0  0x10000 0x30000000  0>,
121*c66ec88fSEmmanuel Vadot				 <2 0  0x10000 0x40000000  0>,
122*c66ec88fSEmmanuel Vadot				 <3 0  0x10000 0x50000000  0>,
123*c66ec88fSEmmanuel Vadot				 <4 0  0x0 0x1d020000  0x10000>,
124*c66ec88fSEmmanuel Vadot				 <5 0  0x0 0x1d040000  0x10000>,
125*c66ec88fSEmmanuel Vadot				 <6 0  0x0 0x1d050000  0x10000>,
126*c66ec88fSEmmanuel Vadot				 <7 0  0x10000 0x90000000  0>;
127*c66ec88fSEmmanuel Vadot
128*c66ec88fSEmmanuel Vadot			cavium,cs-config@0 {
129*c66ec88fSEmmanuel Vadot				compatible = "cavium,octeon-3860-bootbus-config";
130*c66ec88fSEmmanuel Vadot				cavium,cs-index = <0>;
131*c66ec88fSEmmanuel Vadot				cavium,t-adr  = <20>;
132*c66ec88fSEmmanuel Vadot				cavium,t-ce   = <60>;
133*c66ec88fSEmmanuel Vadot				cavium,t-oe   = <60>;
134*c66ec88fSEmmanuel Vadot				cavium,t-we   = <45>;
135*c66ec88fSEmmanuel Vadot				cavium,t-rd-hld = <35>;
136*c66ec88fSEmmanuel Vadot				cavium,t-wr-hld = <45>;
137*c66ec88fSEmmanuel Vadot				cavium,t-pause	= <0>;
138*c66ec88fSEmmanuel Vadot				cavium,t-wait	= <0>;
139*c66ec88fSEmmanuel Vadot				cavium,t-page	= <35>;
140*c66ec88fSEmmanuel Vadot				cavium,t-rd-dly = <0>;
141*c66ec88fSEmmanuel Vadot
142*c66ec88fSEmmanuel Vadot				cavium,pages	 = <0>;
143*c66ec88fSEmmanuel Vadot				cavium,bus-width = <8>;
144*c66ec88fSEmmanuel Vadot			};
145*c66ec88fSEmmanuel Vadot			cavium,cs-config@4 {
146*c66ec88fSEmmanuel Vadot				compatible = "cavium,octeon-3860-bootbus-config";
147*c66ec88fSEmmanuel Vadot				cavium,cs-index = <4>;
148*c66ec88fSEmmanuel Vadot				cavium,t-adr  = <320>;
149*c66ec88fSEmmanuel Vadot				cavium,t-ce   = <320>;
150*c66ec88fSEmmanuel Vadot				cavium,t-oe   = <320>;
151*c66ec88fSEmmanuel Vadot				cavium,t-we   = <320>;
152*c66ec88fSEmmanuel Vadot				cavium,t-rd-hld = <320>;
153*c66ec88fSEmmanuel Vadot				cavium,t-wr-hld = <320>;
154*c66ec88fSEmmanuel Vadot				cavium,t-pause	= <320>;
155*c66ec88fSEmmanuel Vadot				cavium,t-wait	= <320>;
156*c66ec88fSEmmanuel Vadot				cavium,t-page	= <320>;
157*c66ec88fSEmmanuel Vadot				cavium,t-rd-dly = <0>;
158*c66ec88fSEmmanuel Vadot
159*c66ec88fSEmmanuel Vadot				cavium,pages	 = <0>;
160*c66ec88fSEmmanuel Vadot				cavium,bus-width = <8>;
161*c66ec88fSEmmanuel Vadot			};
162*c66ec88fSEmmanuel Vadot			cavium,cs-config@5 {
163*c66ec88fSEmmanuel Vadot				compatible = "cavium,octeon-3860-bootbus-config";
164*c66ec88fSEmmanuel Vadot				cavium,cs-index = <5>;
165*c66ec88fSEmmanuel Vadot				cavium,t-adr  = <5>;
166*c66ec88fSEmmanuel Vadot				cavium,t-ce   = <300>;
167*c66ec88fSEmmanuel Vadot				cavium,t-oe   = <125>;
168*c66ec88fSEmmanuel Vadot				cavium,t-we   = <150>;
169*c66ec88fSEmmanuel Vadot				cavium,t-rd-hld = <100>;
170*c66ec88fSEmmanuel Vadot				cavium,t-wr-hld = <30>;
171*c66ec88fSEmmanuel Vadot				cavium,t-pause	= <0>;
172*c66ec88fSEmmanuel Vadot				cavium,t-wait	= <30>;
173*c66ec88fSEmmanuel Vadot				cavium,t-page	= <320>;
174*c66ec88fSEmmanuel Vadot				cavium,t-rd-dly = <0>;
175*c66ec88fSEmmanuel Vadot
176*c66ec88fSEmmanuel Vadot				cavium,pages	 = <0>;
177*c66ec88fSEmmanuel Vadot				cavium,bus-width = <16>;
178*c66ec88fSEmmanuel Vadot			};
179*c66ec88fSEmmanuel Vadot			cavium,cs-config@6 {
180*c66ec88fSEmmanuel Vadot				compatible = "cavium,octeon-3860-bootbus-config";
181*c66ec88fSEmmanuel Vadot				cavium,cs-index = <6>;
182*c66ec88fSEmmanuel Vadot				cavium,t-adr  = <5>;
183*c66ec88fSEmmanuel Vadot				cavium,t-ce   = <300>;
184*c66ec88fSEmmanuel Vadot				cavium,t-oe   = <270>;
185*c66ec88fSEmmanuel Vadot				cavium,t-we   = <150>;
186*c66ec88fSEmmanuel Vadot				cavium,t-rd-hld = <100>;
187*c66ec88fSEmmanuel Vadot				cavium,t-wr-hld = <70>;
188*c66ec88fSEmmanuel Vadot				cavium,t-pause	= <0>;
189*c66ec88fSEmmanuel Vadot				cavium,t-wait	= <0>;
190*c66ec88fSEmmanuel Vadot				cavium,t-page	= <320>;
191*c66ec88fSEmmanuel Vadot				cavium,t-rd-dly = <0>;
192*c66ec88fSEmmanuel Vadot
193*c66ec88fSEmmanuel Vadot				cavium,pages	 = <0>;
194*c66ec88fSEmmanuel Vadot				cavium,wait-mode;
195*c66ec88fSEmmanuel Vadot				cavium,bus-width = <16>;
196*c66ec88fSEmmanuel Vadot			};
197*c66ec88fSEmmanuel Vadot
198*c66ec88fSEmmanuel Vadot			flash0: nor@0,0 {
199*c66ec88fSEmmanuel Vadot				compatible = "cfi-flash";
200*c66ec88fSEmmanuel Vadot				reg = <0 0 0x800000>;
201*c66ec88fSEmmanuel Vadot				#address-cells = <1>;
202*c66ec88fSEmmanuel Vadot				#size-cells = <1>;
203*c66ec88fSEmmanuel Vadot			};
204*c66ec88fSEmmanuel Vadot		};
205*c66ec88fSEmmanuel Vadot
206*c66ec88fSEmmanuel Vadot		dma0: dma-engine@1180000000100 {
207*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-5750-bootbus-dma";
208*c66ec88fSEmmanuel Vadot			reg = <0x11800 0x00000100 0x0 0x8>;
209*c66ec88fSEmmanuel Vadot			interrupts = <0 63>;
210*c66ec88fSEmmanuel Vadot		};
211*c66ec88fSEmmanuel Vadot
212*c66ec88fSEmmanuel Vadot		dma1: dma-engine@1180000000108 {
213*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-5750-bootbus-dma";
214*c66ec88fSEmmanuel Vadot			reg = <0x11800 0x00000108 0x0 0x8>;
215*c66ec88fSEmmanuel Vadot			interrupts = <0 63>;
216*c66ec88fSEmmanuel Vadot		};
217*c66ec88fSEmmanuel Vadot
218*c66ec88fSEmmanuel Vadot		usbn: usbn@1180068000000 {
219*c66ec88fSEmmanuel Vadot			compatible = "cavium,octeon-5750-usbn";
220*c66ec88fSEmmanuel Vadot			reg = <0x11800 0x68000000 0x0 0x1000>;
221*c66ec88fSEmmanuel Vadot			ranges; /* Direct mapping */
222*c66ec88fSEmmanuel Vadot			#address-cells = <2>;
223*c66ec88fSEmmanuel Vadot			#size-cells = <2>;
224*c66ec88fSEmmanuel Vadot
225*c66ec88fSEmmanuel Vadot			usbc@16f0010000000 {
226*c66ec88fSEmmanuel Vadot				compatible = "cavium,octeon-5750-usbc";
227*c66ec88fSEmmanuel Vadot				reg = <0x16f00 0x10000000 0x0 0x80000>;
228*c66ec88fSEmmanuel Vadot				interrupts = <0 56>;
229*c66ec88fSEmmanuel Vadot			};
230*c66ec88fSEmmanuel Vadot		};
231*c66ec88fSEmmanuel Vadot	};
232*c66ec88fSEmmanuel Vadot};
233