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