blob: e3b8b4dfc6314010e2af089f0498a09ff8d7d79f [file] [log] [blame]
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License as published by
4 * the Free Software Foundation; either version 2 of the License, or
5 * (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <dt-bindings/gpio/gpio.h>
14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/interrupt-controller/arm-gic.h>
16#include <dt-bindings/pinctrl/rockchip.h>
17#include <dt-bindings/clock/rk3288-cru.h>
18#include "skeleton.dtsi"
19
20/ {
21 compatible = "rockchip,rk3288";
22
23 interrupt-parent = <&gic>;
24
25 aliases {
26 i2c0 = &i2c0;
27 i2c1 = &i2c1;
28 i2c2 = &i2c2;
29 i2c3 = &i2c3;
30 i2c4 = &i2c4;
31 i2c5 = &i2c5;
Doug Andersond7f9a382014-09-03 16:05:23 -070032 mshc0 = &emmc;
33 mshc1 = &sdmmc;
34 mshc2 = &sdio0;
35 mshc3 = &sdio1;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020036 serial0 = &uart0;
37 serial1 = &uart1;
38 serial2 = &uart2;
39 serial3 = &uart3;
40 serial4 = &uart4;
huang lin1f531702014-09-05 09:53:11 -070041 spi0 = &spi0;
42 spi1 = &spi1;
43 spi2 = &spi2;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020044 };
45
46 cpus {
47 #address-cells = <1>;
48 #size-cells = <0>;
Kever Yangfbdbc732014-10-15 10:23:02 -070049 enable-method = "rockchip,rk3066-smp";
50 rockchip,pmu = <&pmu>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020051
Heiko Stuebnerbe8a77c2014-09-13 00:34:29 +020052 cpu0: cpu@500 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020053 device_type = "cpu";
54 compatible = "arm,cortex-a12";
55 reg = <0x500>;
Heiko Stuebnerbe8a77c2014-09-13 00:34:29 +020056 operating-points = <
57 /* KHz uV */
58 1608000 1350000
59 1512000 1300000
60 1416000 1200000
61 1200000 1100000
62 1008000 1050000
63 816000 1000000
64 696000 950000
65 600000 900000
66 408000 900000
67 312000 900000
68 216000 900000
69 126000 900000
70 >;
71 clock-latency = <40000>;
72 clocks = <&cru ARMCLK>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020073 };
74 cpu@501 {
75 device_type = "cpu";
76 compatible = "arm,cortex-a12";
77 reg = <0x501>;
78 };
79 cpu@502 {
80 device_type = "cpu";
81 compatible = "arm,cortex-a12";
82 reg = <0x502>;
83 };
84 cpu@503 {
85 device_type = "cpu";
86 compatible = "arm,cortex-a12";
87 reg = <0x503>;
88 };
89 };
90
Heiko Stübner982891c2014-08-14 23:01:25 +020091 amba {
92 compatible = "arm,amba-bus";
93 #address-cells = <1>;
94 #size-cells = <1>;
95 ranges;
96
97 dmac_peri: dma-controller@ff250000 {
98 compatible = "arm,pl330", "arm,primecell";
99 reg = <0xff250000 0x4000>;
100 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
101 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
102 #dma-cells = <1>;
103 clocks = <&cru ACLK_DMAC2>;
104 clock-names = "apb_pclk";
105 };
106
107 dmac_bus_ns: dma-controller@ff600000 {
108 compatible = "arm,pl330", "arm,primecell";
109 reg = <0xff600000 0x4000>;
110 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
111 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
112 #dma-cells = <1>;
113 clocks = <&cru ACLK_DMAC1>;
114 clock-names = "apb_pclk";
115 status = "disabled";
116 };
117
118 dmac_bus_s: dma-controller@ffb20000 {
119 compatible = "arm,pl330", "arm,primecell";
120 reg = <0xffb20000 0x4000>;
121 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
122 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
123 #dma-cells = <1>;
124 clocks = <&cru ACLK_DMAC1>;
125 clock-names = "apb_pclk";
126 };
127 };
128
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200129 xin24m: oscillator {
130 compatible = "fixed-clock";
131 clock-frequency = <24000000>;
132 clock-output-names = "xin24m";
133 #clock-cells = <0>;
134 };
135
136 timer {
137 compatible = "arm,armv7-timer";
138 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
139 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
140 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
141 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
142 clock-frequency = <24000000>;
143 };
144
Doug Anderson85095bf2014-08-12 16:21:13 -0700145 sdmmc: dwmmc@ff0c0000 {
146 compatible = "rockchip,rk3288-dw-mshc";
147 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
148 clock-names = "biu", "ciu";
149 fifo-depth = <0x100>;
150 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
151 reg = <0xff0c0000 0x4000>;
152 status = "disabled";
153 };
154
Addy Kef1a07232014-08-19 18:21:08 +0800155 sdio0: dwmmc@ff0d0000 {
156 compatible = "rockchip,rk3288-dw-mshc";
157 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>;
158 clock-names = "biu", "ciu";
159 fifo-depth = <0x100>;
160 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
161 reg = <0xff0d0000 0x4000>;
162 status = "disabled";
163 };
164
165 sdio1: dwmmc@ff0e0000 {
166 compatible = "rockchip,rk3288-dw-mshc";
167 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>;
168 clock-names = "biu", "ciu";
169 fifo-depth = <0x100>;
170 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
171 reg = <0xff0e0000 0x4000>;
172 status = "disabled";
173 };
174
Doug Anderson85095bf2014-08-12 16:21:13 -0700175 emmc: dwmmc@ff0f0000 {
176 compatible = "rockchip,rk3288-dw-mshc";
177 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
178 clock-names = "biu", "ciu";
179 fifo-depth = <0x100>;
180 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
181 reg = <0xff0f0000 0x4000>;
182 status = "disabled";
183 };
184
Heiko Stübnerf23a6172014-08-20 21:09:24 +0200185 saradc: saradc@ff100000 {
186 compatible = "rockchip,saradc";
187 reg = <0xff100000 0x100>;
188 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
189 #io-channel-cells = <1>;
190 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
191 clock-names = "saradc", "apb_pclk";
192 status = "disabled";
193 };
194
huang lin1f531702014-09-05 09:53:11 -0700195 spi0: spi@ff110000 {
196 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
197 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
198 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700199 dmas = <&dmac_peri 11>, <&dmac_peri 12>;
200 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700201 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
202 pinctrl-names = "default";
203 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
204 reg = <0xff110000 0x1000>;
205 #address-cells = <1>;
206 #size-cells = <0>;
207 status = "disabled";
208 };
209
210 spi1: spi@ff120000 {
211 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
212 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
213 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700214 dmas = <&dmac_peri 13>, <&dmac_peri 14>;
215 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700216 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
217 pinctrl-names = "default";
218 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
219 reg = <0xff120000 0x1000>;
220 #address-cells = <1>;
221 #size-cells = <0>;
222 status = "disabled";
223 };
224
225 spi2: spi@ff130000 {
226 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
227 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
228 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700229 dmas = <&dmac_peri 15>, <&dmac_peri 16>;
230 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700231 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
232 pinctrl-names = "default";
233 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
234 reg = <0xff130000 0x1000>;
235 #address-cells = <1>;
236 #size-cells = <0>;
237 status = "disabled";
238 };
239
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200240 i2c1: i2c@ff140000 {
241 compatible = "rockchip,rk3288-i2c";
242 reg = <0xff140000 0x1000>;
243 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
244 #address-cells = <1>;
245 #size-cells = <0>;
246 clock-names = "i2c";
247 clocks = <&cru PCLK_I2C1>;
248 pinctrl-names = "default";
249 pinctrl-0 = <&i2c1_xfer>;
250 status = "disabled";
251 };
252
253 i2c3: i2c@ff150000 {
254 compatible = "rockchip,rk3288-i2c";
255 reg = <0xff150000 0x1000>;
256 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
257 #address-cells = <1>;
258 #size-cells = <0>;
259 clock-names = "i2c";
260 clocks = <&cru PCLK_I2C3>;
261 pinctrl-names = "default";
262 pinctrl-0 = <&i2c3_xfer>;
263 status = "disabled";
264 };
265
266 i2c4: i2c@ff160000 {
267 compatible = "rockchip,rk3288-i2c";
268 reg = <0xff160000 0x1000>;
269 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
270 #address-cells = <1>;
271 #size-cells = <0>;
272 clock-names = "i2c";
273 clocks = <&cru PCLK_I2C4>;
274 pinctrl-names = "default";
275 pinctrl-0 = <&i2c4_xfer>;
276 status = "disabled";
277 };
278
279 i2c5: i2c@ff170000 {
280 compatible = "rockchip,rk3288-i2c";
281 reg = <0xff170000 0x1000>;
282 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
283 #address-cells = <1>;
284 #size-cells = <0>;
285 clock-names = "i2c";
286 clocks = <&cru PCLK_I2C5>;
287 pinctrl-names = "default";
288 pinctrl-0 = <&i2c5_xfer>;
289 status = "disabled";
290 };
291
292 uart0: serial@ff180000 {
293 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
294 reg = <0xff180000 0x100>;
295 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
296 reg-shift = <2>;
297 reg-io-width = <4>;
298 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
299 clock-names = "baudclk", "apb_pclk";
300 pinctrl-names = "default";
301 pinctrl-0 = <&uart0_xfer>;
302 status = "disabled";
303 };
304
305 uart1: serial@ff190000 {
306 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
307 reg = <0xff190000 0x100>;
308 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
309 reg-shift = <2>;
310 reg-io-width = <4>;
311 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
312 clock-names = "baudclk", "apb_pclk";
313 pinctrl-names = "default";
314 pinctrl-0 = <&uart1_xfer>;
315 status = "disabled";
316 };
317
318 uart2: serial@ff690000 {
319 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
320 reg = <0xff690000 0x100>;
321 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
322 reg-shift = <2>;
323 reg-io-width = <4>;
324 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
325 clock-names = "baudclk", "apb_pclk";
326 pinctrl-names = "default";
327 pinctrl-0 = <&uart2_xfer>;
328 status = "disabled";
329 };
330
331 uart3: serial@ff1b0000 {
332 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
333 reg = <0xff1b0000 0x100>;
334 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
335 reg-shift = <2>;
336 reg-io-width = <4>;
337 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
338 clock-names = "baudclk", "apb_pclk";
339 pinctrl-names = "default";
340 pinctrl-0 = <&uart3_xfer>;
341 status = "disabled";
342 };
343
344 uart4: serial@ff1c0000 {
345 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
346 reg = <0xff1c0000 0x100>;
347 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
348 reg-shift = <2>;
349 reg-io-width = <4>;
350 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
351 clock-names = "baudclk", "apb_pclk";
352 pinctrl-names = "default";
353 pinctrl-0 = <&uart4_xfer>;
354 status = "disabled";
355 };
356
Doug Andersonc9c32c52014-08-07 17:44:19 +0200357 usb_host0_ehci: usb@ff500000 {
358 compatible = "generic-ehci";
359 reg = <0xff500000 0x100>;
360 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
361 clocks = <&cru HCLK_USBHOST0>;
362 clock-names = "usbhost";
363 status = "disabled";
364 };
365
366 /* NOTE: ohci@ff520000 doesn't actually work on hardware */
367
Kever Yang12dd3652014-08-08 11:55:58 +0800368 usb_host1: usb@ff540000 {
369 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
370 "snps,dwc2";
371 reg = <0xff540000 0x40000>;
372 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
373 clocks = <&cru HCLK_USBHOST1>;
374 clock-names = "otg";
375 status = "disabled";
376 };
377
378 usb_otg: usb@ff580000 {
379 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
380 "snps,dwc2";
381 reg = <0xff580000 0x40000>;
382 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
383 clocks = <&cru HCLK_OTG0>;
384 clock-names = "otg";
385 status = "disabled";
386 };
387
Doug Andersonc9c32c52014-08-07 17:44:19 +0200388 usb_hsic: usb@ff5c0000 {
389 compatible = "generic-ehci";
390 reg = <0xff5c0000 0x100>;
391 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
392 clocks = <&cru HCLK_HSIC>;
393 clock-names = "usbhost";
394 status = "disabled";
395 };
396
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200397 i2c0: i2c@ff650000 {
398 compatible = "rockchip,rk3288-i2c";
399 reg = <0xff650000 0x1000>;
400 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
401 #address-cells = <1>;
402 #size-cells = <0>;
403 clock-names = "i2c";
404 clocks = <&cru PCLK_I2C0>;
405 pinctrl-names = "default";
406 pinctrl-0 = <&i2c0_xfer>;
407 status = "disabled";
408 };
409
410 i2c2: i2c@ff660000 {
411 compatible = "rockchip,rk3288-i2c";
412 reg = <0xff660000 0x1000>;
413 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
414 #address-cells = <1>;
415 #size-cells = <0>;
416 clock-names = "i2c";
417 clocks = <&cru PCLK_I2C2>;
418 pinctrl-names = "default";
419 pinctrl-0 = <&i2c2_xfer>;
420 status = "disabled";
421 };
422
Doug Andersondf542df2014-08-25 15:59:26 -0700423 pwm0: pwm@ff680000 {
424 compatible = "rockchip,rk3288-pwm";
425 reg = <0xff680000 0x10>;
426 #pwm-cells = <3>;
427 pinctrl-names = "default";
428 pinctrl-0 = <&pwm0_pin>;
429 clocks = <&cru PCLK_PWM>;
430 clock-names = "pwm";
431 status = "disabled";
432 };
433
434 pwm1: pwm@ff680010 {
435 compatible = "rockchip,rk3288-pwm";
436 reg = <0xff680010 0x10>;
437 #pwm-cells = <3>;
438 pinctrl-names = "default";
439 pinctrl-0 = <&pwm1_pin>;
440 clocks = <&cru PCLK_PWM>;
441 clock-names = "pwm";
442 status = "disabled";
443 };
444
445 pwm2: pwm@ff680020 {
446 compatible = "rockchip,rk3288-pwm";
447 reg = <0xff680020 0x10>;
448 #pwm-cells = <3>;
449 pinctrl-names = "default";
450 pinctrl-0 = <&pwm2_pin>;
451 clocks = <&cru PCLK_PWM>;
452 clock-names = "pwm";
453 status = "disabled";
454 };
455
456 pwm3: pwm@ff680030 {
457 compatible = "rockchip,rk3288-pwm";
458 reg = <0xff680030 0x10>;
459 #pwm-cells = <2>;
460 pinctrl-names = "default";
461 pinctrl-0 = <&pwm3_pin>;
462 clocks = <&cru PCLK_PWM>;
463 clock-names = "pwm";
464 status = "disabled";
465 };
466
Kever Yang1123d412014-10-15 10:23:04 -0700467 bus_intmem@ff700000 {
468 compatible = "mmio-sram";
469 reg = <0xff700000 0x18000>;
470 #address-cells = <1>;
471 #size-cells = <1>;
472 ranges = <0 0xff700000 0x18000>;
473 smp-sram@0 {
474 compatible = "rockchip,rk3066-smp-sram";
475 reg = <0x00 0x10>;
476 };
477 };
478
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200479 pmu: power-management@ff730000 {
480 compatible = "rockchip,rk3288-pmu", "syscon";
481 reg = <0xff730000 0x100>;
482 };
483
484 sgrf: syscon@ff740000 {
485 compatible = "rockchip,rk3288-sgrf", "syscon";
486 reg = <0xff740000 0x1000>;
487 };
488
489 cru: clock-controller@ff760000 {
490 compatible = "rockchip,rk3288-cru";
491 reg = <0xff760000 0x1000>;
492 rockchip,grf = <&grf>;
493 #clock-cells = <1>;
494 #reset-cells = <1>;
Kever Yangcd78d0c2014-10-09 21:50:30 -0700495 assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
496 <&cru PLL_NPLL>, <&cru ACLK_CPU>,
497 <&cru HCLK_CPU>, <&cru PCLK_CPU>,
498 <&cru ACLK_PERI>, <&cru HCLK_PERI>,
499 <&cru PCLK_PERI>;
500 assigned-clock-rates = <594000000>, <400000000>,
501 <500000000>, <300000000>,
502 <150000000>, <75000000>,
503 <300000000>, <150000000>,
504 <75000000>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200505 };
506
507 grf: syscon@ff770000 {
508 compatible = "rockchip,rk3288-grf", "syscon";
509 reg = <0xff770000 0x1000>;
510 };
511
512 wdt: watchdog@ff800000 {
513 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
514 reg = <0xff800000 0x100>;
515 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
516 status = "disabled";
517 };
518
Jianquna0f95e32014-09-12 18:54:55 +0800519 i2s: i2s@ff890000 {
520 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
521 reg = <0xff890000 0x10000>;
522 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
523 #address-cells = <1>;
524 #size-cells = <0>;
525 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
526 dma-names = "tx", "rx";
527 clock-names = "i2s_hclk", "i2s_clk";
528 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
529 pinctrl-names = "default";
530 pinctrl-0 = <&i2s0_bus>;
531 status = "disabled";
532 };
533
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200534 gic: interrupt-controller@ffc01000 {
535 compatible = "arm,gic-400";
536 interrupt-controller;
537 #interrupt-cells = <3>;
538 #address-cells = <0>;
539
540 reg = <0xffc01000 0x1000>,
541 <0xffc02000 0x1000>,
542 <0xffc04000 0x2000>,
543 <0xffc06000 0x2000>;
544 interrupts = <GIC_PPI 9 0xf04>;
545 };
546
547 pinctrl: pinctrl {
548 compatible = "rockchip,rk3288-pinctrl";
549 rockchip,grf = <&grf>;
550 rockchip,pmu = <&pmu>;
551 #address-cells = <1>;
552 #size-cells = <1>;
553 ranges;
554
555 gpio0: gpio0@ff750000 {
556 compatible = "rockchip,gpio-bank";
557 reg = <0xff750000 0x100>;
558 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
559 clocks = <&cru PCLK_GPIO0>;
560
561 gpio-controller;
562 #gpio-cells = <2>;
563
564 interrupt-controller;
565 #interrupt-cells = <2>;
566 };
567
568 gpio1: gpio1@ff780000 {
569 compatible = "rockchip,gpio-bank";
570 reg = <0xff780000 0x100>;
571 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
572 clocks = <&cru PCLK_GPIO1>;
573
574 gpio-controller;
575 #gpio-cells = <2>;
576
577 interrupt-controller;
578 #interrupt-cells = <2>;
579 };
580
581 gpio2: gpio2@ff790000 {
582 compatible = "rockchip,gpio-bank";
583 reg = <0xff790000 0x100>;
584 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
585 clocks = <&cru PCLK_GPIO2>;
586
587 gpio-controller;
588 #gpio-cells = <2>;
589
590 interrupt-controller;
591 #interrupt-cells = <2>;
592 };
593
594 gpio3: gpio3@ff7a0000 {
595 compatible = "rockchip,gpio-bank";
596 reg = <0xff7a0000 0x100>;
597 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
598 clocks = <&cru PCLK_GPIO3>;
599
600 gpio-controller;
601 #gpio-cells = <2>;
602
603 interrupt-controller;
604 #interrupt-cells = <2>;
605 };
606
607 gpio4: gpio4@ff7b0000 {
608 compatible = "rockchip,gpio-bank";
609 reg = <0xff7b0000 0x100>;
610 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
611 clocks = <&cru PCLK_GPIO4>;
612
613 gpio-controller;
614 #gpio-cells = <2>;
615
616 interrupt-controller;
617 #interrupt-cells = <2>;
618 };
619
620 gpio5: gpio5@ff7c0000 {
621 compatible = "rockchip,gpio-bank";
622 reg = <0xff7c0000 0x100>;
623 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
624 clocks = <&cru PCLK_GPIO5>;
625
626 gpio-controller;
627 #gpio-cells = <2>;
628
629 interrupt-controller;
630 #interrupt-cells = <2>;
631 };
632
633 gpio6: gpio6@ff7d0000 {
634 compatible = "rockchip,gpio-bank";
635 reg = <0xff7d0000 0x100>;
636 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
637 clocks = <&cru PCLK_GPIO6>;
638
639 gpio-controller;
640 #gpio-cells = <2>;
641
642 interrupt-controller;
643 #interrupt-cells = <2>;
644 };
645
646 gpio7: gpio7@ff7e0000 {
647 compatible = "rockchip,gpio-bank";
648 reg = <0xff7e0000 0x100>;
649 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
650 clocks = <&cru PCLK_GPIO7>;
651
652 gpio-controller;
653 #gpio-cells = <2>;
654
655 interrupt-controller;
656 #interrupt-cells = <2>;
657 };
658
659 gpio8: gpio8@ff7f0000 {
660 compatible = "rockchip,gpio-bank";
661 reg = <0xff7f0000 0x100>;
662 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
663 clocks = <&cru PCLK_GPIO8>;
664
665 gpio-controller;
666 #gpio-cells = <2>;
667
668 interrupt-controller;
669 #interrupt-cells = <2>;
670 };
671
672 pcfg_pull_up: pcfg-pull-up {
673 bias-pull-up;
674 };
675
676 pcfg_pull_down: pcfg-pull-down {
677 bias-pull-down;
678 };
679
680 pcfg_pull_none: pcfg-pull-none {
681 bias-disable;
682 };
683
684 i2c0 {
685 i2c0_xfer: i2c0-xfer {
686 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
687 <0 16 RK_FUNC_1 &pcfg_pull_none>;
688 };
689 };
690
691 i2c1 {
692 i2c1_xfer: i2c1-xfer {
693 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
694 <8 5 RK_FUNC_1 &pcfg_pull_none>;
695 };
696 };
697
698 i2c2 {
699 i2c2_xfer: i2c2-xfer {
700 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
701 <6 10 RK_FUNC_1 &pcfg_pull_none>;
702 };
703 };
704
705 i2c3 {
706 i2c3_xfer: i2c3-xfer {
707 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
708 <2 17 RK_FUNC_1 &pcfg_pull_none>;
709 };
710 };
711
712 i2c4 {
713 i2c4_xfer: i2c4-xfer {
714 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
715 <7 18 RK_FUNC_1 &pcfg_pull_none>;
716 };
717 };
718
719 i2c5 {
720 i2c5_xfer: i2c5-xfer {
721 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
722 <7 20 RK_FUNC_1 &pcfg_pull_none>;
723 };
724 };
725
Jianquna0f95e32014-09-12 18:54:55 +0800726 i2s0 {
727 i2s0_bus: i2s0-bus {
728 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
729 <6 1 RK_FUNC_1 &pcfg_pull_none>,
730 <6 2 RK_FUNC_1 &pcfg_pull_none>,
731 <6 3 RK_FUNC_1 &pcfg_pull_none>,
732 <6 4 RK_FUNC_1 &pcfg_pull_none>,
733 <6 8 RK_FUNC_1 &pcfg_pull_none>;
734 };
735 };
736
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200737 sdmmc {
738 sdmmc_clk: sdmmc-clk {
739 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
740 };
741
742 sdmmc_cmd: sdmmc-cmd {
743 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
744 };
745
746 sdmmc_cd: sdmcc-cd {
747 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
748 };
749
750 sdmmc_bus1: sdmmc-bus1 {
751 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
752 };
753
754 sdmmc_bus4: sdmmc-bus4 {
755 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
756 <6 17 RK_FUNC_1 &pcfg_pull_up>,
757 <6 18 RK_FUNC_1 &pcfg_pull_up>,
758 <6 19 RK_FUNC_1 &pcfg_pull_up>;
759 };
760 };
761
Addy Kef1a07232014-08-19 18:21:08 +0800762 sdio0 {
763 sdio0_bus1: sdio0-bus1 {
764 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
765 };
766
767 sdio0_bus4: sdio0-bus4 {
768 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
769 <4 21 RK_FUNC_1 &pcfg_pull_up>,
770 <4 22 RK_FUNC_1 &pcfg_pull_up>,
771 <4 23 RK_FUNC_1 &pcfg_pull_up>;
772 };
773
774 sdio0_cmd: sdio0-cmd {
775 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
776 };
777
778 sdio0_clk: sdio0-clk {
779 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
780 };
781
782 sdio0_cd: sdio0-cd {
783 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
784 };
785
786 sdio0_wp: sdio0-wp {
787 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
788 };
789
790 sdio0_pwr: sdio0-pwr {
791 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
792 };
793
794 sdio0_bkpwr: sdio0-bkpwr {
795 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
796 };
797
798 sdio0_int: sdio0-int {
799 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
800 };
801 };
802
803 sdio1 {
804 sdio1_bus1: sdio1-bus1 {
805 rockchip,pins = <3 24 4 &pcfg_pull_up>;
806 };
807
808 sdio1_bus4: sdio1-bus4 {
809 rockchip,pins = <3 24 4 &pcfg_pull_up>,
810 <3 25 4 &pcfg_pull_up>,
811 <3 26 4 &pcfg_pull_up>,
812 <3 27 4 &pcfg_pull_up>;
813 };
814
815 sdio1_cd: sdio1-cd {
816 rockchip,pins = <3 28 4 &pcfg_pull_up>;
817 };
818
819 sdio1_wp: sdio1-wp {
820 rockchip,pins = <3 29 4 &pcfg_pull_up>;
821 };
822
823 sdio1_bkpwr: sdio1-bkpwr {
824 rockchip,pins = <3 30 4 &pcfg_pull_up>;
825 };
826
827 sdio1_int: sdio1-int {
828 rockchip,pins = <3 31 4 &pcfg_pull_up>;
829 };
830
831 sdio1_cmd: sdio1-cmd {
832 rockchip,pins = <4 6 4 &pcfg_pull_up>;
833 };
834
835 sdio1_clk: sdio1-clk {
836 rockchip,pins = <4 7 4 &pcfg_pull_none>;
837 };
838
839 sdio1_pwr: sdio1-pwr {
840 rockchip,pins = <4 9 4 &pcfg_pull_up>;
841 };
842 };
843
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200844 emmc {
845 emmc_clk: emmc-clk {
846 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
847 };
848
849 emmc_cmd: emmc-cmd {
850 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
851 };
852
853 emmc_pwr: emmc-pwr {
854 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
855 };
856
857 emmc_bus1: emmc-bus1 {
858 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
859 };
860
861 emmc_bus4: emmc-bus4 {
862 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
863 <3 1 RK_FUNC_2 &pcfg_pull_up>,
864 <3 2 RK_FUNC_2 &pcfg_pull_up>,
865 <3 3 RK_FUNC_2 &pcfg_pull_up>;
866 };
867
868 emmc_bus8: emmc-bus8 {
869 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
870 <3 1 RK_FUNC_2 &pcfg_pull_up>,
871 <3 2 RK_FUNC_2 &pcfg_pull_up>,
872 <3 3 RK_FUNC_2 &pcfg_pull_up>,
873 <3 4 RK_FUNC_2 &pcfg_pull_up>,
874 <3 5 RK_FUNC_2 &pcfg_pull_up>,
875 <3 6 RK_FUNC_2 &pcfg_pull_up>,
876 <3 7 RK_FUNC_2 &pcfg_pull_up>;
877 };
878 };
879
huang lin1f531702014-09-05 09:53:11 -0700880 spi0 {
881 spi0_clk: spi0-clk {
882 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
883 };
884 spi0_cs0: spi0-cs0 {
885 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
886 };
887 spi0_tx: spi0-tx {
888 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
889 };
890 spi0_rx: spi0-rx {
891 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
892 };
893 spi0_cs1: spi0-cs1 {
894 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
895 };
896 };
897 spi1 {
898 spi1_clk: spi1-clk {
899 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
900 };
901 spi1_cs0: spi1-cs0 {
902 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
903 };
904 spi1_rx: spi1-rx {
905 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
906 };
907 spi1_tx: spi1-tx {
908 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
909 };
910 };
911
912 spi2 {
913 spi2_cs1: spi2-cs1 {
914 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
915 };
916 spi2_clk: spi2-clk {
917 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
918 };
919 spi2_cs0: spi2-cs0 {
920 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
921 };
922 spi2_rx: spi2-rx {
923 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
924 };
925 spi2_tx: spi2-tx {
926 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
927 };
928 };
929
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200930 uart0 {
931 uart0_xfer: uart0-xfer {
932 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
933 <4 17 RK_FUNC_1 &pcfg_pull_none>;
934 };
935
936 uart0_cts: uart0-cts {
937 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
938 };
939
940 uart0_rts: uart0-rts {
941 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
942 };
943 };
944
945 uart1 {
946 uart1_xfer: uart1-xfer {
947 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
948 <5 9 RK_FUNC_1 &pcfg_pull_none>;
949 };
950
951 uart1_cts: uart1-cts {
952 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
953 };
954
955 uart1_rts: uart1-rts {
956 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
957 };
958 };
959
960 uart2 {
961 uart2_xfer: uart2-xfer {
962 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
963 <7 23 RK_FUNC_1 &pcfg_pull_none>;
964 };
965 /* no rts / cts for uart2 */
966 };
967
968 uart3 {
969 uart3_xfer: uart3-xfer {
970 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
971 <7 8 RK_FUNC_1 &pcfg_pull_none>;
972 };
973
974 uart3_cts: uart3-cts {
975 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
976 };
977
978 uart3_rts: uart3-rts {
979 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
980 };
981 };
982
983 uart4 {
984 uart4_xfer: uart4-xfer {
985 rockchip,pins = <5 12 3 &pcfg_pull_up>,
986 <5 13 3 &pcfg_pull_none>;
987 };
988
989 uart4_cts: uart4-cts {
990 rockchip,pins = <5 14 3 &pcfg_pull_none>;
991 };
992
993 uart4_rts: uart4-rts {
994 rockchip,pins = <5 15 3 &pcfg_pull_none>;
995 };
996 };
Doug Andersondf542df2014-08-25 15:59:26 -0700997
998 pwm0 {
999 pwm0_pin: pwm0-pin {
1000 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1001 };
1002 };
1003
1004 pwm1 {
1005 pwm1_pin: pwm1-pin {
1006 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1007 };
1008 };
1009
1010 pwm2 {
1011 pwm2_pin: pwm2-pin {
1012 rockchip,pins = <7 22 3 &pcfg_pull_none>;
1013 };
1014 };
1015
1016 pwm3 {
1017 pwm3_pin: pwm3-pin {
1018 rockchip,pins = <7 23 3 &pcfg_pull_none>;
1019 };
1020 };
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001021 };
1022};