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