blob: 22277ff0ad7b42de3fe5b90f7c1ed5286159a237 [file] [log] [blame]
Kever Yangc61ad662016-07-19 21:16:58 +08001/*
2 * (C) Copyright 2016 Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7#include <dt-bindings/clock/rk3399-cru.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/interrupt-controller/irq.h>
11#include <dt-bindings/pinctrl/rockchip.h>
MengDongyangf15293c2016-08-24 12:02:20 +080012#define USB_CLASS_HUB 9
Kever Yangc61ad662016-07-19 21:16:58 +080013
14/ {
15 compatible = "rockchip,rk3399";
16
17 interrupt-parent = <&gic>;
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 aliases {
22 serial0 = &uart0;
23 serial1 = &uart1;
24 serial2 = &uart2;
25 serial3 = &uart3;
26 serial4 = &uart4;
27 };
28
29 cpus {
30 #address-cells = <2>;
31 #size-cells = <0>;
32
33 cpu-map {
34 cluster0 {
35 core0 {
36 cpu = <&cpu_l0>;
37 };
38 core1 {
39 cpu = <&cpu_l1>;
40 };
41 core2 {
42 cpu = <&cpu_l2>;
43 };
44 core3 {
45 cpu = <&cpu_l3>;
46 };
47 };
48
49 cluster1 {
50 core0 {
51 cpu = <&cpu_b0>;
52 };
53 core1 {
54 cpu = <&cpu_b1>;
55 };
56 };
57 };
58
59 cpu_l0: cpu@0 {
60 device_type = "cpu";
61 compatible = "arm,cortex-a53", "arm,armv8";
62 reg = <0x0 0x0>;
63 enable-method = "psci";
64 #cooling-cells = <2>; /* min followed by max */
65 clocks = <&cru ARMCLKL>;
66 };
67
68 cpu_l1: cpu@1 {
69 device_type = "cpu";
70 compatible = "arm,cortex-a53", "arm,armv8";
71 reg = <0x0 0x1>;
72 enable-method = "psci";
73 clocks = <&cru ARMCLKL>;
74 };
75
76 cpu_l2: cpu@2 {
77 device_type = "cpu";
78 compatible = "arm,cortex-a53", "arm,armv8";
79 reg = <0x0 0x2>;
80 enable-method = "psci";
81 clocks = <&cru ARMCLKL>;
82 };
83
84 cpu_l3: cpu@3 {
85 device_type = "cpu";
86 compatible = "arm,cortex-a53", "arm,armv8";
87 reg = <0x0 0x3>;
88 enable-method = "psci";
89 clocks = <&cru ARMCLKL>;
90 };
91
92 cpu_b0: cpu@100 {
93 device_type = "cpu";
94 compatible = "arm,cortex-a72", "arm,armv8";
95 reg = <0x0 0x100>;
96 enable-method = "psci";
97 #cooling-cells = <2>; /* min followed by max */
98 clocks = <&cru ARMCLKB>;
99 };
100
101 cpu_b1: cpu@101 {
102 device_type = "cpu";
103 compatible = "arm,cortex-a72", "arm,armv8";
104 reg = <0x0 0x101>;
105 enable-method = "psci";
106 clocks = <&cru ARMCLKB>;
107 };
108 };
109
110 psci {
111 compatible = "arm,psci-1.0";
112 method = "smc";
113 };
114
115 timer {
116 compatible = "arm,armv8-timer";
117 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
118 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
119 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
120 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
121 };
122
123 xin24m: xin24m {
124 compatible = "fixed-clock";
125 clock-frequency = <24000000>;
126 clock-output-names = "xin24m";
127 #clock-cells = <0>;
128 };
129
130 amba {
131 compatible = "simple-bus";
132 #address-cells = <2>;
133 #size-cells = <2>;
134 ranges;
135
136 dmac_bus: dma-controller@ff6d0000 {
137 compatible = "arm,pl330", "arm,primecell";
138 reg = <0x0 0xff6d0000 0x0 0x4000>;
139 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
140 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
141 #dma-cells = <1>;
142 clocks = <&cru ACLK_DMAC0_PERILP>;
143 clock-names = "apb_pclk";
144 };
145
146 dmac_peri: dma-controller@ff6e0000 {
147 compatible = "arm,pl330", "arm,primecell";
148 reg = <0x0 0xff6e0000 0x0 0x4000>;
149 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
150 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
151 #dma-cells = <1>;
152 clocks = <&cru ACLK_DMAC1_PERILP>;
153 clock-names = "apb_pclk";
154 };
155 };
156
157 sdio0: dwmmc@fe310000 {
158 compatible = "rockchip,rk3399-dw-mshc",
159 "rockchip,rk3288-dw-mshc";
160 reg = <0x0 0xfe310000 0x0 0x4000>;
161 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
162 clock-freq-min-max = <400000 150000000>;
163 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
164 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
165 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
166 fifo-depth = <0x100>;
167 status = "disabled";
168 };
169
170 sdmmc: dwmmc@fe320000 {
171 compatible = "rockchip,rk3399-dw-mshc",
172 "rockchip,rk3288-dw-mshc";
173 reg = <0x0 0xfe320000 0x0 0x4000>;
174 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
175 clock-freq-min-max = <400000 150000000>;
Kever Yang70176162016-08-04 11:44:59 +0800176 clocks = <&cru SCLK_SDMMC>, <&cru HCLK_SDMMC>,
Kever Yangc61ad662016-07-19 21:16:58 +0800177 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
Kever Yang70176162016-08-04 11:44:59 +0800178 clock-names = "ciu", "biu", "ciu-drive", "ciu-sample";
Kever Yang56b45952016-08-16 17:58:14 +0800179 pinctrl-names = "default";
180 pinctrl-0 = <&sdmmc_clk>;
Kever Yangc61ad662016-07-19 21:16:58 +0800181 fifo-depth = <0x100>;
182 status = "disabled";
183 };
184
185 sdhci: sdhci@fe330000 {
186 compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
187 reg = <0x0 0xfe330000 0x0 0x10000>;
188 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
189 assigned-clocks = <&cru SCLK_EMMC>;
190 assigned-clock-rates = <200000000>;
Kever Yangbbab8ea2016-12-28 11:32:36 +0800191 max-frequency = <200000000>;
Kever Yangc61ad662016-07-19 21:16:58 +0800192 clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
193 clock-names = "clk_xin", "clk_ahb";
194 phys = <&emmc_phy>;
195 phy-names = "phy_arasan";
196 status = "disabled";
197 };
198
199 usb_host0_ehci: usb@fe380000 {
200 compatible = "generic-ehci";
201 reg = <0x0 0xfe380000 0x0 0x20000>;
202 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
203 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>;
204 clock-names = "hclk_host0", "hclk_host0_arb";
205 status = "disabled";
206 };
207
208 usb_host0_ohci: usb@fe3a0000 {
209 compatible = "generic-ohci";
210 reg = <0x0 0xfe3a0000 0x0 0x20000>;
211 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
212 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>;
213 clock-names = "hclk_host0", "hclk_host0_arb";
214 status = "disabled";
215 };
216
217 usb_host1_ehci: usb@fe3c0000 {
218 compatible = "generic-ehci";
219 reg = <0x0 0xfe3c0000 0x0 0x20000>;
220 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
221 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>;
222 clock-names = "hclk_host1", "hclk_host1_arb";
223 status = "disabled";
224 };
225
226 usb_host1_ohci: usb@fe3e0000 {
227 compatible = "generic-ohci";
228 reg = <0x0 0xfe3e0000 0x0 0x20000>;
229 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
230 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>;
231 clock-names = "hclk_host1", "hclk_host1_arb";
232 status = "disabled";
233 };
234
MengDongyangf15293c2016-08-24 12:02:20 +0800235 dwc3_typec0: usb@fe800000 {
236 compatible = "rockchip,rk3399-xhci";
237 reg = <0x0 0xfe800000 0x0 0x100000>;
238 status = "disabled";
239 rockchip,vbus-gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
240 snps,dis-enblslpm-quirk;
241 snps,phyif-utmi-bits = <16>;
242 snps,dis-u2-freeclk-exists-quirk;
243 snps,dis-u2-susphy-quirk;
244
245 #address-cells = <2>;
246 #size-cells = <2>;
247 hub {
248 compatible = "usb-hub";
249 usb,device-class = <USB_CLASS_HUB>;
250 };
251 typec_phy0 {
252 compatible = "rockchip,rk3399-usb3-phy";
253 reg = <0x0 0xff7c0000 0x0 0x40000>;
254 };
255 };
256
257 dwc3_typec1: usb@fe900000 {
258 compatible = "rockchip,rk3399-xhci";
259 reg = <0x0 0xfe900000 0x0 0x100000>;
260 status = "disabled";
261 rockchip,vbus-gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
262 snps,dis-enblslpm-quirk;
263 snps,phyif-utmi-bits = <16>;
264 snps,dis-u2-freeclk-exists-quirk;
265 snps,dis-u2-susphy-quirk;
266
267 #address-cells = <2>;
268 #size-cells = <2>;
269 hub {
270 compatible = "usb-hub";
271 usb,device-class = <USB_CLASS_HUB>;
272 };
273 typec_phy1 {
274 compatible = "rockchip,rk3399-usb3-phy";
275 reg = <0x0 0xff800000 0x0 0x40000>;
276 };
277 };
278
Kever Yangc61ad662016-07-19 21:16:58 +0800279 gic: interrupt-controller@fee00000 {
280 compatible = "arm,gic-v3";
281 #interrupt-cells = <3>;
282 #address-cells = <2>;
283 #size-cells = <2>;
284 ranges;
285 interrupt-controller;
286
287 reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
288 <0x0 0xfef00000 0 0xc0000>, /* GICR */
289 <0x0 0xfff00000 0 0x10000>, /* GICC */
290 <0x0 0xfff10000 0 0x10000>, /* GICH */
291 <0x0 0xfff20000 0 0x10000>; /* GICV */
292 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
293 its: interrupt-controller@fee20000 {
294 compatible = "arm,gic-v3-its";
295 msi-controller;
296 reg = <0x0 0xfee20000 0x0 0x20000>;
297 };
298 };
299
300 uart0: serial@ff180000 {
301 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
302 reg = <0x0 0xff180000 0x0 0x100>;
303 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
304 clock-names = "baudclk", "apb_pclk";
305 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
306 reg-shift = <2>;
307 reg-io-width = <4>;
308 pinctrl-names = "default";
309 pinctrl-0 = <&uart0_xfer>;
310 status = "disabled";
311 };
312
313 uart1: serial@ff190000 {
314 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
315 reg = <0x0 0xff190000 0x0 0x100>;
316 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
317 clock-names = "baudclk", "apb_pclk";
318 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
319 reg-shift = <2>;
320 reg-io-width = <4>;
321 pinctrl-names = "default";
322 pinctrl-0 = <&uart1_xfer>;
323 status = "disabled";
324 };
325
326 uart2: serial@ff1a0000 {
327 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
328 reg = <0x0 0xff1a0000 0x0 0x100>;
329 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
330 clock-names = "baudclk", "apb_pclk";
331 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
332 clock-frequency = <24000000>;
333 reg-shift = <2>;
334 reg-io-width = <4>;
335 pinctrl-names = "default";
336 pinctrl-0 = <&uart2c_xfer>;
337 status = "disabled";
338 };
339
340 uart3: serial@ff1b0000 {
341 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
342 reg = <0x0 0xff1b0000 0x0 0x100>;
343 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
344 clock-names = "baudclk", "apb_pclk";
345 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
346 reg-shift = <2>;
347 reg-io-width = <4>;
348 pinctrl-names = "default";
349 pinctrl-0 = <&uart3_xfer>;
350 status = "disabled";
351 };
352
353 spi0: spi@ff1c0000 {
354 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
355 reg = <0x0 0xff1c0000 0x0 0x1000>;
356 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
357 clock-names = "spiclk", "apb_pclk";
358 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
359 pinctrl-names = "default";
360 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
361 #address-cells = <1>;
362 #size-cells = <0>;
363 status = "disabled";
364 };
365
366 spi1: spi@ff1d0000 {
367 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
368 reg = <0x0 0xff1d0000 0x0 0x1000>;
369 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
370 clock-names = "spiclk", "apb_pclk";
371 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
372 pinctrl-names = "default";
373 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
374 #address-cells = <1>;
375 #size-cells = <0>;
376 status = "disabled";
377 };
378
379 spi2: spi@ff1e0000 {
380 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
381 reg = <0x0 0xff1e0000 0x0 0x1000>;
382 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
383 clock-names = "spiclk", "apb_pclk";
384 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
385 pinctrl-names = "default";
386 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
387 #address-cells = <1>;
388 #size-cells = <0>;
389 status = "disabled";
390 };
391
392 spi4: spi@ff1f0000 {
393 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
394 reg = <0x0 0xff1f0000 0x0 0x1000>;
395 clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
396 clock-names = "spiclk", "apb_pclk";
397 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
398 pinctrl-names = "default";
399 pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
400 #address-cells = <1>;
401 #size-cells = <0>;
402 status = "disabled";
403 };
404
405 spi5: spi@ff200000 {
406 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
407 reg = <0x0 0xff200000 0x0 0x1000>;
408 clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
409 clock-names = "spiclk", "apb_pclk";
410 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
411 pinctrl-names = "default";
412 pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
413 #address-cells = <1>;
414 #size-cells = <0>;
415 status = "disabled";
416 };
417
418 pmugrf: syscon@ff320000 {
419 compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
420 reg = <0x0 0xff320000 0x0 0x1000>;
421 #address-cells = <1>;
422 #size-cells = <1>;
423
424 pmu_io_domains: io-domains {
425 compatible = "rockchip,rk3399-pmu-io-voltage-domain";
426 status = "disabled";
427 };
428 };
429
430 spi3: spi@ff350000 {
431 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
432 reg = <0x0 0xff350000 0x0 0x1000>;
433 clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
434 clock-names = "spiclk", "apb_pclk";
435 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
436 pinctrl-names = "default";
437 pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
438 #address-cells = <1>;
439 #size-cells = <0>;
440 status = "disabled";
441 };
442
443 uart4: serial@ff370000 {
444 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
445 reg = <0x0 0xff370000 0x0 0x100>;
446 clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
447 clock-names = "baudclk", "apb_pclk";
448 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
449 reg-shift = <2>;
450 reg-io-width = <4>;
451 pinctrl-names = "default";
452 pinctrl-0 = <&uart4_xfer>;
453 status = "disabled";
454 };
455
456 pwm0: pwm@ff420000 {
457 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
458 reg = <0x0 0xff420000 0x0 0x10>;
459 #pwm-cells = <3>;
460 pinctrl-names = "default";
461 pinctrl-0 = <&pwm0_pin>;
462 clocks = <&pmucru PCLK_RKPWM_PMU>;
463 clock-names = "pwm";
464 status = "disabled";
465 };
466
467 pwm1: pwm@ff420010 {
468 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
469 reg = <0x0 0xff420010 0x0 0x10>;
470 #pwm-cells = <3>;
471 pinctrl-names = "default";
472 pinctrl-0 = <&pwm1_pin>;
473 clocks = <&pmucru PCLK_RKPWM_PMU>;
474 clock-names = "pwm";
475 status = "disabled";
476 };
477
478 pwm2: pwm@ff420020 {
479 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
480 reg = <0x0 0xff420020 0x0 0x10>;
481 #pwm-cells = <3>;
482 pinctrl-names = "default";
483 pinctrl-0 = <&pwm2_pin>;
484 clocks = <&pmucru PCLK_RKPWM_PMU>;
485 clock-names = "pwm";
486 status = "disabled";
487 };
488
489 pwm3: pwm@ff420030 {
490 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
491 reg = <0x0 0xff420030 0x0 0x10>;
492 #pwm-cells = <3>;
493 pinctrl-names = "default";
494 pinctrl-0 = <&pwm3a_pin>;
495 clocks = <&pmucru PCLK_RKPWM_PMU>;
496 clock-names = "pwm";
497 status = "disabled";
498 };
499
500 pmucru: pmu-clock-controller@ff750000 {
501 compatible = "rockchip,rk3399-pmucru";
502 reg = <0x0 0xff750000 0x0 0x1000>;
503 #clock-cells = <1>;
504 #reset-cells = <1>;
505 assigned-clocks = <&pmucru PLL_PPLL>;
506 assigned-clock-rates = <676000000>;
507 };
508
509 cru: clock-controller@ff760000 {
510 compatible = "rockchip,rk3399-cru";
511 reg = <0x0 0xff760000 0x0 0x1000>;
512 #clock-cells = <1>;
513 #reset-cells = <1>;
514 assigned-clocks =
515 <&cru PLL_GPLL>, <&cru PLL_CPLL>,
516 <&cru PLL_NPLL>,
517 <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
518 <&cru PCLK_PERIHP>,
519 <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
520 <&cru PCLK_PERILP0>,
521 <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>;
522 assigned-clock-rates =
523 <594000000>, <800000000>,
524 <1000000000>,
525 <150000000>, <75000000>,
526 <37500000>,
527 <100000000>, <100000000>,
528 <50000000>,
529 <100000000>, <50000000>;
530 };
531
532 grf: syscon@ff770000 {
533 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
534 reg = <0x0 0xff770000 0x0 0x10000>;
535 #address-cells = <1>;
536 #size-cells = <1>;
537
538 io_domains: io-domains {
539 compatible = "rockchip,rk3399-io-voltage-domain";
540 status = "disabled";
541 };
542
543 emmc_phy: phy@f780 {
544 compatible = "rockchip,rk3399-emmc-phy";
545 reg = <0xf780 0x24>;
546 #phy-cells = <0>;
547 status = "disabled";
548 };
549 };
550
551 watchdog@ff840000 {
552 compatible = "snps,dw-wdt";
553 reg = <0x0 0xff840000 0x0 0x100>;
554 clocks = <&cru PCLK_WDT>;
555 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
556 };
557
558 spdif: spdif@ff870000 {
559 compatible = "rockchip,rk3399-spdif";
560 reg = <0x0 0xff870000 0x0 0x1000>;
561 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
562 dmas = <&dmac_bus 7>;
563 dma-names = "tx";
564 clock-names = "mclk", "hclk";
565 clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
566 pinctrl-names = "default";
567 pinctrl-0 = <&spdif_bus>;
568 status = "disabled";
569 };
570
571 i2s0: i2s@ff880000 {
572 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
573 reg = <0x0 0xff880000 0x0 0x1000>;
574 rockchip,grf = <&grf>;
575 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
576 dmas = <&dmac_bus 0>, <&dmac_bus 1>;
577 dma-names = "tx", "rx";
578 clock-names = "i2s_clk", "i2s_hclk";
579 clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
580 pinctrl-names = "default";
581 pinctrl-0 = <&i2s0_8ch_bus>;
582 status = "disabled";
583 };
584
585 i2s1: i2s@ff890000 {
586 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
587 reg = <0x0 0xff890000 0x0 0x1000>;
588 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
589 dmas = <&dmac_bus 2>, <&dmac_bus 3>;
590 dma-names = "tx", "rx";
591 clock-names = "i2s_clk", "i2s_hclk";
592 clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
593 pinctrl-names = "default";
594 pinctrl-0 = <&i2s1_2ch_bus>;
595 status = "disabled";
596 };
597
598 i2s2: i2s@ff8a0000 {
599 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
600 reg = <0x0 0xff8a0000 0x0 0x1000>;
601 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
602 dmas = <&dmac_bus 4>, <&dmac_bus 5>;
603 dma-names = "tx", "rx";
604 clock-names = "i2s_clk", "i2s_hclk";
605 clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
606 status = "disabled";
607 };
608
609 pinctrl: pinctrl {
610 compatible = "rockchip,rk3399-pinctrl";
611 rockchip,grf = <&grf>;
612 rockchip,pmu = <&pmugrf>;
613 #address-cells = <2>;
614 #size-cells = <2>;
615 ranges;
616
617 gpio0: gpio0@ff720000 {
618 compatible = "rockchip,gpio-bank";
619 reg = <0x0 0xff720000 0x0 0x100>;
620 clocks = <&pmucru PCLK_GPIO0_PMU>;
621 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
622
623 gpio-controller;
624 #gpio-cells = <0x2>;
625
626 interrupt-controller;
627 #interrupt-cells = <0x2>;
628 };
629
630 gpio1: gpio1@ff730000 {
631 compatible = "rockchip,gpio-bank";
632 reg = <0x0 0xff730000 0x0 0x100>;
633 clocks = <&pmucru PCLK_GPIO1_PMU>;
634 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
635
636 gpio-controller;
637 #gpio-cells = <0x2>;
638
639 interrupt-controller;
640 #interrupt-cells = <0x2>;
641 };
642
643 gpio2: gpio2@ff780000 {
644 compatible = "rockchip,gpio-bank";
645 reg = <0x0 0xff780000 0x0 0x100>;
646 clocks = <&cru PCLK_GPIO2>;
647 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
648
649 gpio-controller;
650 #gpio-cells = <0x2>;
651
652 interrupt-controller;
653 #interrupt-cells = <0x2>;
654 };
655
656 gpio3: gpio3@ff788000 {
657 compatible = "rockchip,gpio-bank";
658 reg = <0x0 0xff788000 0x0 0x100>;
659 clocks = <&cru PCLK_GPIO3>;
660 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
661
662 gpio-controller;
663 #gpio-cells = <0x2>;
664
665 interrupt-controller;
666 #interrupt-cells = <0x2>;
667 };
668
669 gpio4: gpio4@ff790000 {
670 compatible = "rockchip,gpio-bank";
671 reg = <0x0 0xff790000 0x0 0x100>;
672 clocks = <&cru PCLK_GPIO4>;
673 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
674
675 gpio-controller;
676 #gpio-cells = <0x2>;
677
678 interrupt-controller;
679 #interrupt-cells = <0x2>;
680 };
681
682 pcfg_pull_up: pcfg-pull-up {
683 bias-pull-up;
684 };
685
686 pcfg_pull_down: pcfg-pull-down {
687 bias-pull-down;
688 };
689
690 pcfg_pull_none: pcfg-pull-none {
691 bias-disable;
692 };
693
694 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
695 bias-disable;
696 drive-strength = <12>;
697 };
698
699 pcfg_pull_up_8ma: pcfg-pull-up-8ma {
700 bias-pull-up;
701 drive-strength = <8>;
702 };
703
704 pcfg_pull_down_4ma: pcfg-pull-down-4ma {
705 bias-pull-down;
706 drive-strength = <4>;
707 };
708
709 pcfg_pull_up_2ma: pcfg-pull-up-2ma {
710 bias-pull-up;
711 drive-strength = <2>;
712 };
713
714 pcfg_pull_down_12ma: pcfg-pull-down-12ma {
715 bias-pull-down;
716 drive-strength = <12>;
717 };
718
719 pcfg_pull_none_13ma: pcfg-pull-none-13ma {
720 bias-disable;
721 drive-strength = <13>;
722 };
723
724 i2c0 {
725 i2c0_xfer: i2c0-xfer {
726 rockchip,pins =
727 <1 15 RK_FUNC_2 &pcfg_pull_none>,
728 <1 16 RK_FUNC_2 &pcfg_pull_none>;
729 };
730 };
731
732 i2c1 {
733 i2c1_xfer: i2c1-xfer {
734 rockchip,pins =
735 <4 2 RK_FUNC_1 &pcfg_pull_none>,
736 <4 1 RK_FUNC_1 &pcfg_pull_none>;
737 };
738 };
739
740 i2c2 {
741 i2c2_xfer: i2c2-xfer {
742 rockchip,pins =
743 <2 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
744 <2 0 RK_FUNC_2 &pcfg_pull_none_12ma>;
745 };
746 };
747
748 i2c3 {
749 i2c3_xfer: i2c3-xfer {
750 rockchip,pins =
751 <4 17 RK_FUNC_1 &pcfg_pull_none>,
752 <4 16 RK_FUNC_1 &pcfg_pull_none>;
753 };
754 };
755
756 i2c4 {
757 i2c4_xfer: i2c4-xfer {
758 rockchip,pins =
759 <1 12 RK_FUNC_1 &pcfg_pull_none>,
760 <1 11 RK_FUNC_1 &pcfg_pull_none>;
761 };
762 };
763
764 i2c5 {
765 i2c5_xfer: i2c5-xfer {
766 rockchip,pins =
767 <3 11 RK_FUNC_2 &pcfg_pull_none>,
768 <3 10 RK_FUNC_2 &pcfg_pull_none>;
769 };
770 };
771
772 i2c6 {
773 i2c6_xfer: i2c6-xfer {
774 rockchip,pins =
775 <2 10 RK_FUNC_2 &pcfg_pull_none>,
776 <2 9 RK_FUNC_2 &pcfg_pull_none>;
777 };
778 };
779
780 i2c7 {
781 i2c7_xfer: i2c7-xfer {
782 rockchip,pins =
783 <2 8 RK_FUNC_2 &pcfg_pull_none>,
784 <2 7 RK_FUNC_2 &pcfg_pull_none>;
785 };
786 };
787
788 i2c8 {
789 i2c8_xfer: i2c8-xfer {
790 rockchip,pins =
791 <1 21 RK_FUNC_1 &pcfg_pull_none>,
792 <1 20 RK_FUNC_1 &pcfg_pull_none>;
793 };
794 };
795
796 i2s0 {
797 i2s0_8ch_bus: i2s0-8ch-bus {
798 rockchip,pins =
799 <3 24 RK_FUNC_1 &pcfg_pull_none>,
800 <3 25 RK_FUNC_1 &pcfg_pull_none>,
801 <3 26 RK_FUNC_1 &pcfg_pull_none>,
802 <3 27 RK_FUNC_1 &pcfg_pull_none>,
803 <3 28 RK_FUNC_1 &pcfg_pull_none>,
804 <3 29 RK_FUNC_1 &pcfg_pull_none>,
805 <3 30 RK_FUNC_1 &pcfg_pull_none>,
806 <3 31 RK_FUNC_1 &pcfg_pull_none>,
807 <4 0 RK_FUNC_1 &pcfg_pull_none>;
808 };
809 };
810
811 i2s1 {
812 i2s1_2ch_bus: i2s1-2ch-bus {
813 rockchip,pins =
814 <4 3 RK_FUNC_1 &pcfg_pull_none>,
815 <4 4 RK_FUNC_1 &pcfg_pull_none>,
816 <4 5 RK_FUNC_1 &pcfg_pull_none>,
817 <4 6 RK_FUNC_1 &pcfg_pull_none>,
818 <4 7 RK_FUNC_1 &pcfg_pull_none>;
819 };
820 };
821
Kever Yang56b45952016-08-16 17:58:14 +0800822 sdmmc {
823 sdmmc_bus1: sdmmc-bus1 {
824 rockchip,pins =
825 <4 8 RK_FUNC_1 &pcfg_pull_up>;
826 };
827
828 sdmmc_bus4: sdmmc-bus4 {
829 rockchip,pins =
830 <4 8 RK_FUNC_1 &pcfg_pull_up>,
831 <4 9 RK_FUNC_1 &pcfg_pull_up>,
832 <4 10 RK_FUNC_1 &pcfg_pull_up>,
833 <4 11 RK_FUNC_1 &pcfg_pull_up>;
834 };
835
836 sdmmc_clk: sdmmc-clk {
837 rockchip,pins =
838 <4 12 RK_FUNC_1 &pcfg_pull_none>;
839 };
840
841 sdmmc_cmd: sdmmc-cmd {
842 rockchip,pins =
843 <4 13 RK_FUNC_1 &pcfg_pull_up>;
844 };
845
846 sdmmc_cd: sdmcc-cd {
847 rockchip,pins =
848 <0 7 RK_FUNC_1 &pcfg_pull_up>;
849 };
850
851 sdmmc_wp: sdmmc-wp {
852 rockchip,pins =
853 <0 8 RK_FUNC_1 &pcfg_pull_up>;
854 };
855 };
856
Kever Yangc61ad662016-07-19 21:16:58 +0800857 spdif {
858 spdif_bus: spdif-bus {
859 rockchip,pins =
860 <4 21 RK_FUNC_1 &pcfg_pull_none>;
861 };
862 };
863
864 spi0 {
865 spi0_clk: spi0-clk {
866 rockchip,pins =
867 <3 6 RK_FUNC_2 &pcfg_pull_up>;
868 };
869 spi0_cs0: spi0-cs0 {
870 rockchip,pins =
871 <3 7 RK_FUNC_2 &pcfg_pull_up>;
872 };
873 spi0_cs1: spi0-cs1 {
874 rockchip,pins =
875 <3 8 RK_FUNC_2 &pcfg_pull_up>;
876 };
877 spi0_tx: spi0-tx {
878 rockchip,pins =
879 <3 5 RK_FUNC_2 &pcfg_pull_up>;
880 };
881 spi0_rx: spi0-rx {
882 rockchip,pins =
883 <3 4 RK_FUNC_2 &pcfg_pull_up>;
884 };
885 };
886
887 spi1 {
888 spi1_clk: spi1-clk {
889 rockchip,pins =
890 <1 9 RK_FUNC_2 &pcfg_pull_up>;
891 };
892 spi1_cs0: spi1-cs0 {
893 rockchip,pins =
894 <1 10 RK_FUNC_2 &pcfg_pull_up>;
895 };
896 spi1_rx: spi1-rx {
897 rockchip,pins =
898 <1 7 RK_FUNC_2 &pcfg_pull_up>;
899 };
900 spi1_tx: spi1-tx {
901 rockchip,pins =
902 <1 8 RK_FUNC_2 &pcfg_pull_up>;
903 };
904 };
905
906 spi2 {
907 spi2_clk: spi2-clk {
908 rockchip,pins =
909 <2 11 RK_FUNC_1 &pcfg_pull_up>;
910 };
911 spi2_cs0: spi2-cs0 {
912 rockchip,pins =
913 <2 12 RK_FUNC_1 &pcfg_pull_up>;
914 };
915 spi2_rx: spi2-rx {
916 rockchip,pins =
917 <2 9 RK_FUNC_1 &pcfg_pull_up>;
918 };
919 spi2_tx: spi2-tx {
920 rockchip,pins =
921 <2 10 RK_FUNC_1 &pcfg_pull_up>;
922 };
923 };
924
925 spi3 {
926 spi3_clk: spi3-clk {
927 rockchip,pins =
928 <1 17 RK_FUNC_1 &pcfg_pull_up>;
929 };
930 spi3_cs0: spi3-cs0 {
931 rockchip,pins =
932 <1 18 RK_FUNC_1 &pcfg_pull_up>;
933 };
934 spi3_rx: spi3-rx {
935 rockchip,pins =
936 <1 15 RK_FUNC_1 &pcfg_pull_up>;
937 };
938 spi3_tx: spi3-tx {
939 rockchip,pins =
940 <1 16 RK_FUNC_1 &pcfg_pull_up>;
941 };
942 };
943
944 spi4 {
945 spi4_clk: spi4-clk {
946 rockchip,pins =
947 <3 2 RK_FUNC_2 &pcfg_pull_up>;
948 };
949 spi4_cs0: spi4-cs0 {
950 rockchip,pins =
951 <3 3 RK_FUNC_2 &pcfg_pull_up>;
952 };
953 spi4_rx: spi4-rx {
954 rockchip,pins =
955 <3 0 RK_FUNC_2 &pcfg_pull_up>;
956 };
957 spi4_tx: spi4-tx {
958 rockchip,pins =
959 <3 1 RK_FUNC_2 &pcfg_pull_up>;
960 };
961 };
962
963 spi5 {
964 spi5_clk: spi5-clk {
965 rockchip,pins =
966 <2 22 RK_FUNC_2 &pcfg_pull_up>;
967 };
968 spi5_cs0: spi5-cs0 {
969 rockchip,pins =
970 <2 23 RK_FUNC_2 &pcfg_pull_up>;
971 };
972 spi5_rx: spi5-rx {
973 rockchip,pins =
974 <2 20 RK_FUNC_2 &pcfg_pull_up>;
975 };
976 spi5_tx: spi5-tx {
977 rockchip,pins =
978 <2 21 RK_FUNC_2 &pcfg_pull_up>;
979 };
980 };
981
982 uart0 {
983 uart0_xfer: uart0-xfer {
984 rockchip,pins =
985 <2 16 RK_FUNC_1 &pcfg_pull_up>,
986 <2 17 RK_FUNC_1 &pcfg_pull_none>;
987 };
988
989 uart0_cts: uart0-cts {
990 rockchip,pins =
991 <2 18 RK_FUNC_1 &pcfg_pull_none>;
992 };
993
994 uart0_rts: uart0-rts {
995 rockchip,pins =
996 <2 19 RK_FUNC_1 &pcfg_pull_none>;
997 };
998 };
999
1000 uart1 {
1001 uart1_xfer: uart1-xfer {
1002 rockchip,pins =
1003 <3 12 RK_FUNC_2 &pcfg_pull_up>,
1004 <3 13 RK_FUNC_2 &pcfg_pull_none>;
1005 };
1006 };
1007
1008 uart2a {
1009 uart2a_xfer: uart2a-xfer {
1010 rockchip,pins =
1011 <4 8 RK_FUNC_2 &pcfg_pull_up>,
1012 <4 9 RK_FUNC_2 &pcfg_pull_none>;
1013 };
1014 };
1015
1016 uart2b {
1017 uart2b_xfer: uart2b-xfer {
1018 rockchip,pins =
1019 <4 16 RK_FUNC_2 &pcfg_pull_up>,
1020 <4 17 RK_FUNC_2 &pcfg_pull_none>;
1021 };
1022 };
1023
1024 uart2c {
1025 uart2c_xfer: uart2c-xfer {
1026 rockchip,pins =
1027 <4 19 RK_FUNC_1 &pcfg_pull_up>,
1028 <4 20 RK_FUNC_1 &pcfg_pull_none>;
1029 };
1030 };
1031
1032 uart3 {
1033 uart3_xfer: uart3-xfer {
1034 rockchip,pins =
1035 <3 14 RK_FUNC_2 &pcfg_pull_up>,
1036 <3 15 RK_FUNC_2 &pcfg_pull_none>;
1037 };
1038
1039 uart3_cts: uart3-cts {
1040 rockchip,pins =
1041 <3 18 RK_FUNC_2 &pcfg_pull_none>;
1042 };
1043
1044 uart3_rts: uart3-rts {
1045 rockchip,pins =
1046 <3 19 RK_FUNC_2 &pcfg_pull_none>;
1047 };
1048 };
1049
1050 uart4 {
1051 uart4_xfer: uart4-xfer {
1052 rockchip,pins =
1053 <1 7 RK_FUNC_1 &pcfg_pull_up>,
1054 <1 8 RK_FUNC_1 &pcfg_pull_none>;
1055 };
1056 };
1057
1058 uarthdcp {
1059 uarthdcp_xfer: uarthdcp-xfer {
1060 rockchip,pins =
1061 <4 21 RK_FUNC_2 &pcfg_pull_up>,
1062 <4 22 RK_FUNC_2 &pcfg_pull_none>;
1063 };
1064 };
1065
1066 pwm0 {
1067 pwm0_pin: pwm0-pin {
1068 rockchip,pins =
1069 <4 18 RK_FUNC_1 &pcfg_pull_none>;
1070 };
1071
1072 vop0_pwm_pin: vop0-pwm-pin {
1073 rockchip,pins =
1074 <4 18 RK_FUNC_2 &pcfg_pull_none>;
1075 };
1076 };
1077
1078 pwm1 {
1079 pwm1_pin: pwm1-pin {
1080 rockchip,pins =
1081 <4 22 RK_FUNC_1 &pcfg_pull_none>;
1082 };
1083
1084 vop1_pwm_pin: vop1-pwm-pin {
1085 rockchip,pins =
1086 <4 18 RK_FUNC_3 &pcfg_pull_none>;
1087 };
1088 };
1089
1090 pwm2 {
1091 pwm2_pin: pwm2-pin {
1092 rockchip,pins =
1093 <1 19 RK_FUNC_1 &pcfg_pull_none>;
1094 };
1095 };
1096
1097 pwm3a {
1098 pwm3a_pin: pwm3a-pin {
1099 rockchip,pins =
1100 <0 6 RK_FUNC_1 &pcfg_pull_none>;
1101 };
1102 };
1103
1104 pwm3b {
1105 pwm3b_pin: pwm3b-pin {
1106 rockchip,pins =
1107 <1 14 RK_FUNC_1 &pcfg_pull_none>;
1108 };
1109 };
1110 };
1111};