xref: /openbmc/u-boot/arch/arm/dts/rk3xxx.dtsi (revision ebce73f0afe6efe926328c10316e54f3e43a33a1)
1 /*
2  * Copyright (c) 2013 MundoReader S.L.
3  * Author: Heiko Stuebner <heiko@sntech.de>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+ or X11
6  */
7 
8 #include <dt-bindings/interrupt-controller/irq.h>
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
10 #include "skeleton.dtsi"
11 
12 / {
13 	interrupt-parent = <&gic>;
14 
15 	aliases {
16 		ethernet0 = &emac;
17 		i2c0 = &i2c0;
18 		i2c1 = &i2c1;
19 		i2c2 = &i2c2;
20 		i2c3 = &i2c3;
21 		i2c4 = &i2c4;
22 		mshc0 = &emmc;
23 		mshc1 = &mmc0;
24 		mshc2 = &mmc1;
25 		serial0 = &uart0;
26 		serial1 = &uart1;
27 		serial2 = &uart2;
28 		serial3 = &uart3;
29 		spi0 = &spi0;
30 		spi1 = &spi1;
31 	};
32 
33 	amba {
34 		compatible = "simple-bus";
35 		#address-cells = <1>;
36 		#size-cells = <1>;
37 		ranges;
38 
39 		dmac1_s: dma-controller@20018000 {
40 			compatible = "arm,pl330", "arm,primecell";
41 			reg = <0x20018000 0x4000>;
42 			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
43 				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
44 			#dma-cells = <1>;
45 			arm,pl330-broken-no-flushp;
46 			clocks = <&cru ACLK_DMA1>;
47 			clock-names = "apb_pclk";
48 		};
49 
50 		dmac1_ns: dma-controller@2001c000 {
51 			compatible = "arm,pl330", "arm,primecell";
52 			reg = <0x2001c000 0x4000>;
53 			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
54 				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
55 			#dma-cells = <1>;
56 			arm,pl330-broken-no-flushp;
57 			clocks = <&cru ACLK_DMA1>;
58 			clock-names = "apb_pclk";
59 			status = "disabled";
60 		};
61 
62 		dmac2: dma-controller@20078000 {
63 			compatible = "arm,pl330", "arm,primecell";
64 			reg = <0x20078000 0x4000>;
65 			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
66 				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
67 			#dma-cells = <1>;
68 			arm,pl330-broken-no-flushp;
69 			clocks = <&cru ACLK_DMA2>;
70 			clock-names = "apb_pclk";
71 		};
72 	};
73 
74 	xin24m: oscillator {
75 		compatible = "fixed-clock";
76 		clock-frequency = <24000000>;
77 		#clock-cells = <0>;
78 		clock-output-names = "xin24m";
79 	};
80 
81 	L2: l2-cache-controller@10138000 {
82 		compatible = "arm,pl310-cache";
83 		reg = <0x10138000 0x1000>;
84 		cache-unified;
85 		cache-level = <2>;
86 	};
87 
88 	scu@1013c000 {
89 		compatible = "arm,cortex-a9-scu";
90 		reg = <0x1013c000 0x100>;
91 	};
92 
93 	global_timer: global-timer@1013c200 {
94 		compatible = "arm,cortex-a9-global-timer";
95 		reg = <0x1013c200 0x20>;
96 		interrupts = <GIC_PPI 11 0x304>;
97 		clocks = <&cru CORE_PERI>;
98 	};
99 
100 	local_timer: local-timer@1013c600 {
101 		compatible = "arm,cortex-a9-twd-timer";
102 		reg = <0x1013c600 0x20>;
103 		interrupts = <GIC_PPI 13 0x304>;
104 		clocks = <&cru CORE_PERI>;
105 	};
106 
107 	gic: interrupt-controller@1013d000 {
108 		compatible = "arm,cortex-a9-gic";
109 		interrupt-controller;
110 		#interrupt-cells = <3>;
111 		reg = <0x1013d000 0x1000>,
112 		      <0x1013c100 0x0100>;
113 	};
114 
115 	uart0: serial@10124000 {
116 		compatible = "snps,dw-apb-uart";
117 		reg = <0x10124000 0x400>;
118 		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
119 		reg-shift = <2>;
120 		reg-io-width = <1>;
121 		clock-names = "baudclk", "apb_pclk";
122 		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
123 		status = "disabled";
124 	};
125 
126 	uart1: serial@10126000 {
127 		compatible = "snps,dw-apb-uart";
128 		reg = <0x10126000 0x400>;
129 		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
130 		reg-shift = <2>;
131 		reg-io-width = <1>;
132 		clock-names = "baudclk", "apb_pclk";
133 		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
134 		status = "disabled";
135 	};
136 
137 	noc: syscon@10128000 {
138 		u-boot,dm-spl;
139 		compatible = "rockchip,rk3188-noc", "syscon";
140 		reg = <0x10128000 0x2000>;
141 	};
142 
143 	usb_otg: usb@10180000 {
144 		compatible = "rockchip,rk3066-usb", "snps,dwc2";
145 		reg = <0x10180000 0x40000>;
146 		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
147 		clocks = <&cru HCLK_OTG0>;
148 		clock-names = "otg";
149 		dr_mode = "otg";
150 		g-np-tx-fifo-size = <16>;
151 		g-rx-fifo-size = <275>;
152 		g-tx-fifo-size = <256 128 128 64 64 32>;
153 		g-use-dma;
154 		phys = <&usbphy0>;
155 		phy-names = "usb2-phy";
156 		status = "disabled";
157 	};
158 
159 	usb_host: usb@101c0000 {
160 		compatible = "snps,dwc2";
161 		reg = <0x101c0000 0x40000>;
162 		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
163 		clocks = <&cru HCLK_OTG1>;
164 		clock-names = "otg";
165 		dr_mode = "host";
166 		phys = <&usbphy1>;
167 		phy-names = "usb2-phy";
168 		status = "disabled";
169 	};
170 
171 	emac: ethernet@10204000 {
172 		compatible = "snps,arc-emac";
173 		reg = <0x10204000 0x3c>;
174 		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
175 		#address-cells = <1>;
176 		#size-cells = <0>;
177 
178 		rockchip,grf = <&grf>;
179 
180 		clocks = <&cru HCLK_EMAC>, <&cru SCLK_MAC>;
181 		clock-names = "hclk", "macref";
182 		max-speed = <100>;
183 		phy-mode = "rmii";
184 
185 		status = "disabled";
186 	};
187 
188 	mmc0: dwmmc@10214000 {
189 		compatible = "rockchip,rk2928-dw-mshc";
190 		reg = <0x10214000 0x1000>;
191 		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
192 		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
193 		clock-names = "biu", "ciu";
194 		fifo-depth = <256>;
195 		status = "disabled";
196 	};
197 
198 	mmc1: dwmmc@10218000 {
199 		compatible = "rockchip,rk2928-dw-mshc";
200 		reg = <0x10218000 0x1000>;
201 		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
202 		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>;
203 		clock-names = "biu", "ciu";
204 		fifo-depth = <256>;
205 		status = "disabled";
206 	};
207 
208 	emmc: dwmmc@1021c000 {
209 		compatible = "rockchip,rk2928-dw-mshc";
210 		reg = <0x1021c000 0x1000>;
211 		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
212 		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
213 		clock-names = "biu", "ciu";
214 		fifo-depth = <256>;
215 		status = "disabled";
216 	};
217 
218 	pmu: pmu@20004000 {
219 		compatible = "rockchip,rk3066-pmu", "syscon";
220 		reg = <0x20004000 0x100>;
221 		u-boot,dm-spl;
222 	};
223 
224 	grf: grf@20008000 {
225 		compatible = "syscon";
226 		reg = <0x20008000 0x200>;
227 		u-boot,dm-spl;
228 	};
229 
230 	dmc: dmc@20020000 {
231 		/* unreviewed u-boot-specific binding */
232 		compatible = "rockchip,rk3188-dmc", "syscon";
233 		rockchip,cru = <&cru>;
234 		rockchip,grf = <&grf>;
235 		rockchip,pmu = <&pmu>;
236 		rockchip,noc = <&noc>;
237 		reg = <0x20020000 0x3fc
238 		       0x20040000 0x294>;
239 		clocks = <&cru PCLK_DDRUPCTL>, <&cru PCLK_PUBL>;
240 		clock-names = "pclk_ddrupctl", "pclk_publ";
241 		u-boot,dm-spl;
242 	};
243 
244 	i2c0: i2c@2002d000 {
245 		compatible = "rockchip,rk3066-i2c";
246 		reg = <0x2002d000 0x1000>;
247 		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
248 		#address-cells = <1>;
249 		#size-cells = <0>;
250 
251 		rockchip,grf = <&grf>;
252 
253 		clock-names = "i2c";
254 		clocks = <&cru PCLK_I2C0>;
255 
256 		status = "disabled";
257 	};
258 
259 	i2c1: i2c@2002f000 {
260 		compatible = "rockchip,rk3066-i2c";
261 		reg = <0x2002f000 0x1000>;
262 		interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
263 		#address-cells = <1>;
264 		#size-cells = <0>;
265 
266 		rockchip,grf = <&grf>;
267 
268 		clocks = <&cru PCLK_I2C1>;
269 		clock-names = "i2c";
270 
271 		status = "disabled";
272 	};
273 
274 	pwm0: pwm@20030000 {
275 		compatible = "rockchip,rk2928-pwm";
276 		reg = <0x20030000 0x10>;
277 		#pwm-cells = <2>;
278 		clocks = <&cru PCLK_PWM01>;
279 		status = "disabled";
280 	};
281 
282 	pwm1: pwm@20030010 {
283 		compatible = "rockchip,rk2928-pwm";
284 		reg = <0x20030010 0x10>;
285 		#pwm-cells = <2>;
286 		clocks = <&cru PCLK_PWM01>;
287 		status = "disabled";
288 	};
289 
290 	wdt: watchdog@2004c000 {
291 		compatible = "snps,dw-wdt";
292 		reg = <0x2004c000 0x100>;
293 		clocks = <&cru PCLK_WDT>;
294 		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
295 		status = "disabled";
296 	};
297 
298 	pwm2: pwm@20050020 {
299 		compatible = "rockchip,rk2928-pwm";
300 		reg = <0x20050020 0x10>;
301 		#pwm-cells = <2>;
302 		clocks = <&cru PCLK_PWM23>;
303 		status = "disabled";
304 	};
305 
306 	pwm3: pwm@20050030 {
307 		compatible = "rockchip,rk2928-pwm";
308 		reg = <0x20050030 0x10>;
309 		#pwm-cells = <2>;
310 		clocks = <&cru PCLK_PWM23>;
311 		status = "disabled";
312 	};
313 
314 	i2c2: i2c@20056000 {
315 		compatible = "rockchip,rk3066-i2c";
316 		reg = <0x20056000 0x1000>;
317 		interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
318 		#address-cells = <1>;
319 		#size-cells = <0>;
320 
321 		rockchip,grf = <&grf>;
322 
323 		clocks = <&cru PCLK_I2C2>;
324 		clock-names = "i2c";
325 
326 		status = "disabled";
327 	};
328 
329 	i2c3: i2c@2005a000 {
330 		compatible = "rockchip,rk3066-i2c";
331 		reg = <0x2005a000 0x1000>;
332 		interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
333 		#address-cells = <1>;
334 		#size-cells = <0>;
335 
336 		rockchip,grf = <&grf>;
337 
338 		clocks = <&cru PCLK_I2C3>;
339 		clock-names = "i2c";
340 
341 		status = "disabled";
342 	};
343 
344 	i2c4: i2c@2005e000 {
345 		compatible = "rockchip,rk3066-i2c";
346 		reg = <0x2005e000 0x1000>;
347 		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
348 		#address-cells = <1>;
349 		#size-cells = <0>;
350 
351 		rockchip,grf = <&grf>;
352 
353 		clocks = <&cru PCLK_I2C4>;
354 		clock-names = "i2c";
355 
356 		status = "disabled";
357 	};
358 
359 	uart2: serial@20064000 {
360 		compatible = "snps,dw-apb-uart";
361 		reg = <0x20064000 0x400>;
362 		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
363 		reg-shift = <2>;
364 		reg-io-width = <1>;
365 		clock-frequency = <24000000>;
366 		clock-names = "baudclk", "apb_pclk";
367 		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
368 		status = "disabled";
369 	};
370 
371 	uart3: serial@20068000 {
372 		compatible = "snps,dw-apb-uart";
373 		reg = <0x20068000 0x400>;
374 		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
375 		reg-shift = <2>;
376 		reg-io-width = <1>;
377 		clock-names = "baudclk", "apb_pclk";
378 		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
379 		status = "disabled";
380 	};
381 
382 	saradc: saradc@2006c000 {
383 		compatible = "rockchip,saradc";
384 		reg = <0x2006c000 0x100>;
385 		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
386 		#io-channel-cells = <1>;
387 		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
388 		clock-names = "saradc", "apb_pclk";
389 		status = "disabled";
390 	};
391 
392 	spi0: spi@20070000 {
393 		compatible = "rockchip,rk3066-spi";
394 		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
395 		clock-names = "spiclk", "apb_pclk";
396 		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
397 		reg = <0x20070000 0x1000>;
398 		#address-cells = <1>;
399 		#size-cells = <0>;
400 		dmas = <&dmac2 10>, <&dmac2 11>;
401 		dma-names = "tx", "rx";
402 		status = "disabled";
403 	};
404 
405 	spi1: spi@20074000 {
406 		compatible = "rockchip,rk3066-spi";
407 		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
408 		clock-names = "spiclk", "apb_pclk";
409 		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
410 		reg = <0x20074000 0x1000>;
411 		#address-cells = <1>;
412 		#size-cells = <0>;
413 		dmas = <&dmac2 12>, <&dmac2 13>;
414 		dma-names = "tx", "rx";
415 		status = "disabled";
416 	};
417 };
418