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