rockchip: dts: rk3399: sync with kernel dts
[platform/kernel/u-boot.git] / arch / arm / dts / rk3399.dtsi
1 /*
2  * Copyright (c) 2016-2017 Fuzhou 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 #include <dt-bindings/power/rk3399-power.h>
13 #include <dt-bindings/thermal/thermal.h>
14 #define USB_CLASS_HUB                   9
15
16 / {
17         compatible = "rockchip,rk3399";
18
19         interrupt-parent = <&gic>;
20         #address-cells = <2>;
21         #size-cells = <2>;
22
23         aliases {
24                 i2c0 = &i2c0;
25                 i2c1 = &i2c1;
26                 i2c2 = &i2c2;
27                 i2c3 = &i2c3;
28                 i2c4 = &i2c4;
29                 i2c5 = &i2c5;
30                 i2c6 = &i2c6;
31                 i2c7 = &i2c7;
32                 i2c8 = &i2c8;
33                 serial0 = &uart0;
34                 serial1 = &uart1;
35                 serial2 = &uart2;
36                 serial3 = &uart3;
37                 serial4 = &uart4;
38                 mmc0 = &sdhci;
39                 mmc1 = &sdmmc;
40         };
41
42         cpus {
43                 #address-cells = <2>;
44                 #size-cells = <0>;
45
46                 cpu-map {
47                         cluster0 {
48                                 core0 {
49                                         cpu = <&cpu_l0>;
50                                 };
51                                 core1 {
52                                         cpu = <&cpu_l1>;
53                                 };
54                                 core2 {
55                                         cpu = <&cpu_l2>;
56                                 };
57                                 core3 {
58                                         cpu = <&cpu_l3>;
59                                 };
60                         };
61
62                         cluster1 {
63                                 core0 {
64                                         cpu = <&cpu_b0>;
65                                 };
66                                 core1 {
67                                         cpu = <&cpu_b1>;
68                                 };
69                         };
70                 };
71
72                 cpu_l0: cpu@0 {
73                         device_type = "cpu";
74                         compatible = "arm,cortex-a53", "arm,armv8";
75                         reg = <0x0 0x0>;
76                         enable-method = "psci";
77                         #cooling-cells = <2>; /* min followed by max */
78                         clocks = <&cru ARMCLKL>;
79                 };
80
81                 cpu_l1: cpu@1 {
82                         device_type = "cpu";
83                         compatible = "arm,cortex-a53", "arm,armv8";
84                         reg = <0x0 0x1>;
85                         enable-method = "psci";
86                         clocks = <&cru ARMCLKL>;
87                 };
88
89                 cpu_l2: cpu@2 {
90                         device_type = "cpu";
91                         compatible = "arm,cortex-a53", "arm,armv8";
92                         reg = <0x0 0x2>;
93                         enable-method = "psci";
94                         clocks = <&cru ARMCLKL>;
95                 };
96
97                 cpu_l3: cpu@3 {
98                         device_type = "cpu";
99                         compatible = "arm,cortex-a53", "arm,armv8";
100                         reg = <0x0 0x3>;
101                         enable-method = "psci";
102                         clocks = <&cru ARMCLKL>;
103                 };
104
105                 cpu_b0: cpu@100 {
106                         device_type = "cpu";
107                         compatible = "arm,cortex-a72", "arm,armv8";
108                         reg = <0x0 0x100>;
109                         enable-method = "psci";
110                         #cooling-cells = <2>; /* min followed by max */
111                         clocks = <&cru ARMCLKB>;
112                 };
113
114                 cpu_b1: cpu@101 {
115                         device_type = "cpu";
116                         compatible = "arm,cortex-a72", "arm,armv8";
117                         reg = <0x0 0x101>;
118                         enable-method = "psci";
119                         clocks = <&cru ARMCLKB>;
120                 };
121         };
122
123         pmu_a53 {
124                 compatible = "arm,cortex-a53-pmu";
125                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
126         };
127
128         pmu_a72 {
129                 compatible = "arm,cortex-a72-pmu";
130                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
131         };
132
133         psci {
134                 compatible = "arm,psci-1.0";
135                 method = "smc";
136         };
137
138         timer {
139                 compatible = "arm,armv8-timer";
140                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
141                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
142                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
143                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
144                 arm,no-tick-in-suspend;
145         };
146
147         xin24m: xin24m {
148                 compatible = "fixed-clock";
149                 clock-frequency = <24000000>;
150                 clock-output-names = "xin24m";
151                 #clock-cells = <0>;
152         };
153
154         amba {
155                 compatible = "simple-bus";
156                 #address-cells = <2>;
157                 #size-cells = <2>;
158                 ranges;
159
160                 dmac_bus: dma-controller@ff6d0000 {
161                         compatible = "arm,pl330", "arm,primecell";
162                         reg = <0x0 0xff6d0000 0x0 0x4000>;
163                         interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
164                                      <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
165                         #dma-cells = <1>;
166                         clocks = <&cru ACLK_DMAC0_PERILP>;
167                         clock-names = "apb_pclk";
168                 };
169
170                 dmac_peri: dma-controller@ff6e0000 {
171                         compatible = "arm,pl330", "arm,primecell";
172                         reg = <0x0 0xff6e0000 0x0 0x4000>;
173                         interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
174                                      <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
175                         #dma-cells = <1>;
176                         clocks = <&cru ACLK_DMAC1_PERILP>;
177                         clock-names = "apb_pclk";
178                 };
179         };
180
181         pcie0: pcie@f8000000 {
182                 compatible = "rockchip,rk3399-pcie";
183                 reg = <0x0 0xf8000000 0x0 0x2000000>,
184                       <0x0 0xfd000000 0x0 0x1000000>;
185                 reg-names = "axi-base", "apb-base";
186                 #address-cells = <3>;
187                 #size-cells = <2>;
188                 #interrupt-cells = <1>;
189                 aspm-no-l0s;
190                 bus-range = <0x0 0x1>;
191                 clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
192                          <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
193                 clock-names = "aclk", "aclk-perf",
194                               "hclk", "pm";
195                 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
196                              <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
197                              <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
198                 interrupt-names = "sys", "legacy", "client";
199                 interrupt-map-mask = <0 0 0 7>;
200                 interrupt-map = <0 0 0 1 &pcie0_intc 0>,
201                                 <0 0 0 2 &pcie0_intc 1>,
202                                 <0 0 0 3 &pcie0_intc 2>,
203                                 <0 0 0 4 &pcie0_intc 3>;
204                 linux,pci-domain = <0>;
205                 max-link-speed = <1>;
206                 msi-map = <0x0 &its 0x0 0x1000>;
207                 phys = <&pcie_phy>;
208                 phy-names = "pcie-phy";
209                 ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000
210                           0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>;
211                 resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
212                          <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
213                          <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
214                          <&cru SRST_A_PCIE>;
215                 reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
216                               "pm", "pclk", "aclk";
217                 status = "disabled";
218
219                 pcie0_intc: interrupt-controller {
220                         interrupt-controller;
221                         #address-cells = <0>;
222                         #interrupt-cells = <1>;
223                 };
224         };
225
226         gmac: ethernet@fe300000 {
227                 compatible = "rockchip,rk3399-gmac";
228                 reg = <0x0 0xfe300000 0x0 0x10000>;
229                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
230                 interrupt-names = "macirq";
231                 clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
232                          <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
233                          <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
234                          <&cru PCLK_GMAC>;
235                 clock-names = "stmmaceth", "mac_clk_rx",
236                               "mac_clk_tx", "clk_mac_ref",
237                               "clk_mac_refout", "aclk_mac",
238                               "pclk_mac";
239                 power-domains = <&power RK3399_PD_GMAC>;
240                 resets = <&cru SRST_A_GMAC>;
241                 reset-names = "stmmaceth";
242                 rockchip,grf = <&grf>;
243                 status = "disabled";
244         };
245
246         sdio0: dwmmc@fe310000 {
247                 compatible = "rockchip,rk3399-dw-mshc",
248                              "rockchip,rk3288-dw-mshc";
249                 reg = <0x0 0xfe310000 0x0 0x4000>;
250                 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
251                 max-frequency = <150000000>;
252                 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
253                          <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
254                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
255                 fifo-depth = <0x100>;
256                 power-domains = <&power RK3399_PD_SDIOAUDIO>;
257                 resets = <&cru SRST_SDIO0>;
258                 reset-names = "reset";
259                 status = "disabled";
260         };
261
262         sdmmc: dwmmc@fe320000 {
263                 compatible = "rockchip,rk3399-dw-mshc",
264                              "rockchip,rk3288-dw-mshc";
265                 reg = <0x0 0xfe320000 0x0 0x4000>;
266                 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
267                 max-frequency = <150000000>;
268                 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
269                          <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
270                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
271                 fifo-depth = <0x100>;
272                 power-domains = <&power RK3399_PD_SD>;
273                 resets = <&cru SRST_SDMMC>;
274                 reset-names = "reset";
275                 status = "disabled";
276         };
277
278         sdhci: sdhci@fe330000 {
279                 u-boot,dm-pre-reloc;
280                 compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
281                 reg = <0x0 0xfe330000 0x0 0x10000>;
282                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
283                 arasan,soc-ctl-syscon = <&grf>;
284                 assigned-clocks = <&cru SCLK_EMMC>;
285                 assigned-clock-rates = <200000000>;
286                 max-frequency = <200000000>;
287                 clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
288                 clock-names = "clk_xin", "clk_ahb";
289                 clock-output-names = "emmc_cardclock";
290                 #clock-cells = <0>;
291                 phys = <&emmc_phy>;
292                 phy-names = "phy_arasan";
293                 power-domains = <&power RK3399_PD_EMMC>;
294                 status = "disabled";
295         };
296
297         usb_host0_ehci: usb@fe380000 {
298                 compatible = "generic-ehci";
299                 reg = <0x0 0xfe380000 0x0 0x20000>;
300                 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>;
301                 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
302                          <&u2phy0>;
303                 clock-names = "usbhost", "arbiter",
304                               "utmi";
305                 phys = <&u2phy0_host>;
306                 phy-names = "usb";
307                 power-domains = <&power RK3399_PD_PERIHP>;
308                 status = "disabled";
309         };
310
311         usb_host0_ohci: usb@fe3a0000 {
312                 compatible = "generic-ohci";
313                 reg = <0x0 0xfe3a0000 0x0 0x20000>;
314                 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>;
315                 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
316                          <&u2phy0>;
317                 clock-names = "usbhost", "arbiter",
318                               "utmi";
319                 phys = <&u2phy0_host>;
320                 phy-names = "usb";
321                 power-domains = <&power RK3399_PD_PERIHP>;
322                 status = "disabled";
323         };
324
325         usb_host1_ehci: usb@fe3c0000 {
326                 compatible = "generic-ehci";
327                 reg = <0x0 0xfe3c0000 0x0 0x20000>;
328                 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>;
329                 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
330                          <&u2phy1>;
331                 clock-names = "usbhost", "arbiter",
332                               "utmi";
333                 phys = <&u2phy1_host>;
334                 phy-names = "usb";
335                 power-domains = <&power RK3399_PD_PERIHP>;
336                 status = "disabled";
337         };
338
339         usb_host1_ohci: usb@fe3e0000 {
340                 compatible = "generic-ohci";
341                 reg = <0x0 0xfe3e0000 0x0 0x20000>;
342                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
343                 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
344                          <&u2phy1>;
345                 clock-names = "usbhost", "arbiter",
346                               "utmi";
347                 phys = <&u2phy1_host>;
348                 phy-names = "usb";
349                 power-domains = <&power RK3399_PD_PERIHP>;
350                 status = "disabled";
351         };
352
353         dwc3_typec0: usb@fe800000 {
354                 compatible = "rockchip,rk3399-xhci";
355                 reg = <0x0 0xfe800000 0x0 0x100000>;
356                 status = "disabled";
357                 snps,dis-enblslpm-quirk;
358                 snps,phyif-utmi-bits = <16>;
359                 snps,dis-u2-freeclk-exists-quirk;
360                 snps,dis-u2-susphy-quirk;
361
362                 #address-cells = <2>;
363                 #size-cells = <2>;
364                 hub {
365                         compatible = "usb-hub";
366                         usb,device-class = <USB_CLASS_HUB>;
367                 };
368                 typec_phy0 {
369                         compatible = "rockchip,rk3399-usb3-phy";
370                         reg = <0x0 0xff7c0000 0x0 0x40000>;
371                 };
372         };
373
374         dwc3_typec1: usb@fe900000 {
375                 compatible = "rockchip,rk3399-xhci";
376                 reg = <0x0 0xfe900000 0x0 0x100000>;
377                 status = "disabled";
378                 snps,dis-enblslpm-quirk;
379                 snps,phyif-utmi-bits = <16>;
380                 snps,dis-u2-freeclk-exists-quirk;
381                 snps,dis-u2-susphy-quirk;
382
383                 #address-cells = <2>;
384                 #size-cells = <2>;
385                 hub {
386                         compatible = "usb-hub";
387                         usb,device-class = <USB_CLASS_HUB>;
388                 };
389                 typec_phy1 {
390                         compatible = "rockchip,rk3399-usb3-phy";
391                         reg = <0x0 0xff800000 0x0 0x40000>;
392                 };
393         };
394
395         gic: interrupt-controller@fee00000 {
396                 compatible = "arm,gic-v3";
397                 #interrupt-cells = <4>;
398                 #address-cells = <2>;
399                 #size-cells = <2>;
400                 ranges;
401                 interrupt-controller;
402
403                 reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
404                       <0x0 0xfef00000 0 0xc0000>, /* GICR */
405                       <0x0 0xfff00000 0 0x10000>, /* GICC */
406                       <0x0 0xfff10000 0 0x10000>, /* GICH */
407                       <0x0 0xfff20000 0 0x10000>; /* GICV */
408                 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
409                 its: interrupt-controller@fee20000 {
410                         compatible = "arm,gic-v3-its";
411                         msi-controller;
412                         reg = <0x0 0xfee20000 0x0 0x20000>;
413                 };
414
415                 ppi-partitions {
416                         ppi_cluster0: interrupt-partition-0 {
417                                 affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
418                         };
419
420                         ppi_cluster1: interrupt-partition-1 {
421                                 affinity = <&cpu_b0 &cpu_b1>;
422                         };
423                 };
424         };
425
426         saradc: saradc@ff100000 {
427                 compatible = "rockchip,rk3399-saradc";
428                 reg = <0x0 0xff100000 0x0 0x100>;
429                 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
430                 #io-channel-cells = <1>;
431                 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
432                 clock-names = "saradc", "apb_pclk";
433                 resets = <&cru SRST_P_SARADC>;
434                 reset-names = "saradc-apb";
435                 status = "disabled";
436         };
437
438         i2c1: i2c@ff110000 {
439                 compatible = "rockchip,rk3399-i2c";
440                 reg = <0x0 0xff110000 0x0 0x1000>;
441                 assigned-clocks = <&cru SCLK_I2C1>;
442                 assigned-clock-rates = <200000000>;
443                 clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
444                 clock-names = "i2c", "pclk";
445                 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>;
446                 pinctrl-names = "default";
447                 pinctrl-0 = <&i2c1_xfer>;
448                 #address-cells = <1>;
449                 #size-cells = <0>;
450                 status = "disabled";
451         };
452
453         i2c2: i2c@ff120000 {
454                 compatible = "rockchip,rk3399-i2c";
455                 reg = <0x0 0xff120000 0x0 0x1000>;
456                 assigned-clocks = <&cru SCLK_I2C2>;
457                 assigned-clock-rates = <200000000>;
458                 clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
459                 clock-names = "i2c", "pclk";
460                 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>;
461                 pinctrl-names = "default";
462                 pinctrl-0 = <&i2c2_xfer>;
463                 #address-cells = <1>;
464                 #size-cells = <0>;
465                 status = "disabled";
466         };
467
468         i2c3: i2c@ff130000 {
469                 compatible = "rockchip,rk3399-i2c";
470                 reg = <0x0 0xff130000 0x0 0x1000>;
471                 assigned-clocks = <&cru SCLK_I2C3>;
472                 assigned-clock-rates = <200000000>;
473                 clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
474                 clock-names = "i2c", "pclk";
475                 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
476                 pinctrl-names = "default";
477                 pinctrl-0 = <&i2c3_xfer>;
478                 #address-cells = <1>;
479                 #size-cells = <0>;
480                 status = "disabled";
481         };
482
483         i2c5: i2c@ff140000 {
484                 compatible = "rockchip,rk3399-i2c";
485                 reg = <0x0 0xff140000 0x0 0x1000>;
486                 assigned-clocks = <&cru SCLK_I2C5>;
487                 assigned-clock-rates = <200000000>;
488                 clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
489                 clock-names = "i2c", "pclk";
490                 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>;
491                 pinctrl-names = "default";
492                 pinctrl-0 = <&i2c5_xfer>;
493                 #address-cells = <1>;
494                 #size-cells = <0>;
495                 status = "disabled";
496         };
497
498         i2c6: i2c@ff150000 {
499                 compatible = "rockchip,rk3399-i2c";
500                 reg = <0x0 0xff150000 0x0 0x1000>;
501                 assigned-clocks = <&cru SCLK_I2C6>;
502                 assigned-clock-rates = <200000000>;
503                 clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
504                 clock-names = "i2c", "pclk";
505                 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>;
506                 pinctrl-names = "default";
507                 pinctrl-0 = <&i2c6_xfer>;
508                 #address-cells = <1>;
509                 #size-cells = <0>;
510                 status = "disabled";
511         };
512
513         i2c7: i2c@ff160000 {
514                 compatible = "rockchip,rk3399-i2c";
515                 reg = <0x0 0xff160000 0x0 0x1000>;
516                 assigned-clocks = <&cru SCLK_I2C7>;
517                 assigned-clock-rates = <200000000>;
518                 clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
519                 clock-names = "i2c", "pclk";
520                 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>;
521                 pinctrl-names = "default";
522                 pinctrl-0 = <&i2c7_xfer>;
523                 #address-cells = <1>;
524                 #size-cells = <0>;
525                 status = "disabled";
526         };
527
528         uart0: serial@ff180000 {
529                 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
530                 reg = <0x0 0xff180000 0x0 0x100>;
531                 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
532                 clock-names = "baudclk", "apb_pclk";
533                 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
534                 reg-shift = <2>;
535                 reg-io-width = <4>;
536                 pinctrl-names = "default";
537                 pinctrl-0 = <&uart0_xfer>;
538                 status = "disabled";
539         };
540
541         uart1: serial@ff190000 {
542                 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
543                 reg = <0x0 0xff190000 0x0 0x100>;
544                 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
545                 clock-names = "baudclk", "apb_pclk";
546                 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
547                 reg-shift = <2>;
548                 reg-io-width = <4>;
549                 pinctrl-names = "default";
550                 pinctrl-0 = <&uart1_xfer>;
551                 status = "disabled";
552         };
553
554         uart2: serial@ff1a0000 {
555                 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
556                 reg = <0x0 0xff1a0000 0x0 0x100>;
557                 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
558                 clock-names = "baudclk", "apb_pclk";
559                 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
560                 clock-frequency = <24000000>;
561                 reg-shift = <2>;
562                 reg-io-width = <4>;
563                 pinctrl-names = "default";
564                 pinctrl-0 = <&uart2c_xfer>;
565                 status = "disabled";
566         };
567
568         uart3: serial@ff1b0000 {
569                 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
570                 reg = <0x0 0xff1b0000 0x0 0x100>;
571                 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
572                 clock-names = "baudclk", "apb_pclk";
573                 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
574                 reg-shift = <2>;
575                 reg-io-width = <4>;
576                 pinctrl-names = "default";
577                 pinctrl-0 = <&uart3_xfer>;
578                 status = "disabled";
579         };
580
581         spi0: spi@ff1c0000 {
582                 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
583                 reg = <0x0 0xff1c0000 0x0 0x1000>;
584                 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
585                 clock-names = "spiclk", "apb_pclk";
586                 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>;
587                 pinctrl-names = "default";
588                 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
589                 #address-cells = <1>;
590                 #size-cells = <0>;
591                 status = "disabled";
592         };
593
594         spi1: spi@ff1d0000 {
595                 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
596                 reg = <0x0 0xff1d0000 0x0 0x1000>;
597                 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
598                 clock-names = "spiclk", "apb_pclk";
599                 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
600                 pinctrl-names = "default";
601                 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
602                 #address-cells = <1>;
603                 #size-cells = <0>;
604                 status = "disabled";
605         };
606
607         spi2: spi@ff1e0000 {
608                 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
609                 reg = <0x0 0xff1e0000 0x0 0x1000>;
610                 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
611                 clock-names = "spiclk", "apb_pclk";
612                 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
613                 pinctrl-names = "default";
614                 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
615                 #address-cells = <1>;
616                 #size-cells = <0>;
617                 status = "disabled";
618         };
619
620         spi4: spi@ff1f0000 {
621                 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
622                 reg = <0x0 0xff1f0000 0x0 0x1000>;
623                 clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
624                 clock-names = "spiclk", "apb_pclk";
625                 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>;
626                 pinctrl-names = "default";
627                 pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
628                 #address-cells = <1>;
629                 #size-cells = <0>;
630                 status = "disabled";
631         };
632
633         spi5: spi@ff200000 {
634                 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
635                 reg = <0x0 0xff200000 0x0 0x1000>;
636                 clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
637                 clock-names = "spiclk", "apb_pclk";
638                 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
639                 pinctrl-names = "default";
640                 pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
641                 #address-cells = <1>;
642                 #size-cells = <0>;
643                 status = "disabled";
644         };
645
646         thermal_zones: thermal-zones {
647                 cpu_thermal: cpu {
648                         polling-delay-passive = <100>;
649                         polling-delay = <1000>;
650
651                         thermal-sensors = <&tsadc 0>;
652
653                         trips {
654                                 cpu_alert0: cpu_alert0 {
655                                         temperature = <70000>;
656                                         hysteresis = <2000>;
657                                         type = "passive";
658                                 };
659                                 cpu_alert1: cpu_alert1 {
660                                         temperature = <75000>;
661                                         hysteresis = <2000>;
662                                         type = "passive";
663                                 };
664                                 cpu_crit: cpu_crit {
665                                         temperature = <95000>;
666                                         hysteresis = <2000>;
667                                         type = "critical";
668                                 };
669                         };
670
671                         cooling-maps {
672                                 map0 {
673                                         trip = <&cpu_alert0>;
674                                         cooling-device =
675                                                 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
676                                 };
677                                 map1 {
678                                         trip = <&cpu_alert1>;
679                                         cooling-device =
680                                                 <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
681                                                 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
682                                 };
683                         };
684                 };
685
686                 gpu_thermal: gpu {
687                         polling-delay-passive = <100>;
688                         polling-delay = <1000>;
689
690                         thermal-sensors = <&tsadc 1>;
691
692                         trips {
693                                 gpu_alert0: gpu_alert0 {
694                                         temperature = <75000>;
695                                         hysteresis = <2000>;
696                                         type = "passive";
697                                 };
698                                 gpu_crit: gpu_crit {
699                                         temperature = <95000>;
700                                         hysteresis = <2000>;
701                                         type = "critical";
702                                 };
703                         };
704
705                         cooling-maps {
706                                 map0 {
707                                         trip = <&gpu_alert0>;
708                                         cooling-device =
709                                                 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
710                                 };
711                         };
712                 };
713         };
714
715         tsadc: tsadc@ff260000 {
716                 compatible = "rockchip,rk3399-tsadc";
717                 reg = <0x0 0xff260000 0x0 0x100>;
718                 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
719                 assigned-clocks = <&cru SCLK_TSADC>;
720                 assigned-clock-rates = <750000>;
721                 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
722                 clock-names = "tsadc", "apb_pclk";
723                 resets = <&cru SRST_TSADC>;
724                 reset-names = "tsadc-apb";
725                 rockchip,grf = <&grf>;
726                 rockchip,hw-tshut-temp = <95000>;
727                 pinctrl-names = "init", "default", "sleep";
728                 pinctrl-0 = <&otp_gpio>;
729                 pinctrl-1 = <&otp_out>;
730                 pinctrl-2 = <&otp_gpio>;
731                 #thermal-sensor-cells = <1>;
732                 status = "disabled";
733         };
734
735         qos_emmc: qos@ffa58000 {
736                 compatible = "syscon";
737                 reg = <0x0 0xffa58000 0x0 0x20>;
738         };
739
740         qos_gmac: qos@ffa5c000 {
741                 compatible = "syscon";
742                 reg = <0x0 0xffa5c000 0x0 0x20>;
743         };
744
745         qos_pcie: qos@ffa60080 {
746                 compatible = "syscon";
747                 reg = <0x0 0xffa60080 0x0 0x20>;
748         };
749
750         qos_usb_host0: qos@ffa60100 {
751                 compatible = "syscon";
752                 reg = <0x0 0xffa60100 0x0 0x20>;
753         };
754
755         qos_usb_host1: qos@ffa60180 {
756                 compatible = "syscon";
757                 reg = <0x0 0xffa60180 0x0 0x20>;
758         };
759
760         qos_usb_otg0: qos@ffa70000 {
761                 compatible = "syscon";
762                 reg = <0x0 0xffa70000 0x0 0x20>;
763         };
764
765         qos_usb_otg1: qos@ffa70080 {
766                 compatible = "syscon";
767                 reg = <0x0 0xffa70080 0x0 0x20>;
768         };
769
770         qos_sd: qos@ffa74000 {
771                 compatible = "syscon";
772                 reg = <0x0 0xffa74000 0x0 0x20>;
773         };
774
775         qos_sdioaudio: qos@ffa76000 {
776                 compatible = "syscon";
777                 reg = <0x0 0xffa76000 0x0 0x20>;
778         };
779
780         qos_hdcp: qos@ffa90000 {
781                 compatible = "syscon";
782                 reg = <0x0 0xffa90000 0x0 0x20>;
783         };
784
785         qos_iep: qos@ffa98000 {
786                 compatible = "syscon";
787                 reg = <0x0 0xffa98000 0x0 0x20>;
788         };
789
790         qos_isp0_m0: qos@ffaa0000 {
791                 compatible = "syscon";
792                 reg = <0x0 0xffaa0000 0x0 0x20>;
793         };
794
795         qos_isp0_m1: qos@ffaa0080 {
796                 compatible = "syscon";
797                 reg = <0x0 0xffaa0080 0x0 0x20>;
798         };
799
800         qos_isp1_m0: qos@ffaa8000 {
801                 compatible = "syscon";
802                 reg = <0x0 0xffaa8000 0x0 0x20>;
803         };
804
805         qos_isp1_m1: qos@ffaa8080 {
806                 compatible = "syscon";
807                 reg = <0x0 0xffaa8080 0x0 0x20>;
808         };
809
810         qos_rga_r: qos@ffab0000 {
811                 compatible = "syscon";
812                 reg = <0x0 0xffab0000 0x0 0x20>;
813         };
814
815         qos_rga_w: qos@ffab0080 {
816                 compatible = "syscon";
817                 reg = <0x0 0xffab0080 0x0 0x20>;
818         };
819
820         qos_video_m0: qos@ffab8000 {
821                 compatible = "syscon";
822                 reg = <0x0 0xffab8000 0x0 0x20>;
823         };
824
825         qos_video_m1_r: qos@ffac0000 {
826                 compatible = "syscon";
827                 reg = <0x0 0xffac0000 0x0 0x20>;
828         };
829
830         qos_video_m1_w: qos@ffac0080 {
831                 compatible = "syscon";
832                 reg = <0x0 0xffac0080 0x0 0x20>;
833         };
834
835         qos_vop_big_r: qos@ffac8000 {
836                 compatible = "syscon";
837                 reg = <0x0 0xffac8000 0x0 0x20>;
838         };
839
840         qos_vop_big_w: qos@ffac8080 {
841                 compatible = "syscon";
842                 reg = <0x0 0xffac8080 0x0 0x20>;
843         };
844
845         qos_vop_little: qos@ffad0000 {
846                 compatible = "syscon";
847                 reg = <0x0 0xffad0000 0x0 0x20>;
848         };
849
850         qos_perihp: qos@ffad8080 {
851                 compatible = "syscon";
852                 reg = <0x0 0xffad8080 0x0 0x20>;
853         };
854
855         qos_gpu: qos@ffae0000 {
856                 compatible = "syscon";
857                 reg = <0x0 0xffae0000 0x0 0x20>;
858         };
859
860         pmu: power-management@ff310000 {
861                 compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
862                 reg = <0x0 0xff310000 0x0 0x1000>;
863
864                 /*
865                  * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
866                  * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
867                  * Some of the power domains are grouped together for every
868                  * voltage domain.
869                  * The detail contents as below.
870                  */
871                 power: power-controller {
872                         compatible = "rockchip,rk3399-power-controller";
873                         #power-domain-cells = <1>;
874                         #address-cells = <1>;
875                         #size-cells = <0>;
876
877                         /* These power domains are grouped by VD_CENTER */
878                         pd_iep@RK3399_PD_IEP {
879                                 reg = <RK3399_PD_IEP>;
880                                 clocks = <&cru ACLK_IEP>,
881                                          <&cru HCLK_IEP>;
882                                 pm_qos = <&qos_iep>;
883                         };
884                         pd_rga@RK3399_PD_RGA {
885                                 reg = <RK3399_PD_RGA>;
886                                 clocks = <&cru ACLK_RGA>,
887                                          <&cru HCLK_RGA>;
888                                 pm_qos = <&qos_rga_r>,
889                                          <&qos_rga_w>;
890                         };
891                         pd_vcodec@RK3399_PD_VCODEC {
892                                 reg = <RK3399_PD_VCODEC>;
893                                 clocks = <&cru ACLK_VCODEC>,
894                                          <&cru HCLK_VCODEC>;
895                                 pm_qos = <&qos_video_m0>;
896                         };
897                         pd_vdu@RK3399_PD_VDU {
898                                 reg = <RK3399_PD_VDU>;
899                                 clocks = <&cru ACLK_VDU>,
900                                          <&cru HCLK_VDU>;
901                                 pm_qos = <&qos_video_m1_r>,
902                                          <&qos_video_m1_w>;
903                         };
904
905                         /* These power domains are grouped by VD_GPU */
906                         pd_gpu@RK3399_PD_GPU {
907                                 reg = <RK3399_PD_GPU>;
908                                 clocks = <&cru ACLK_GPU>;
909                                 pm_qos = <&qos_gpu>;
910                         };
911
912                         /* These power domains are grouped by VD_LOGIC */
913                         pd_edp@RK3399_PD_EDP {
914                                 reg = <RK3399_PD_EDP>;
915                                 clocks = <&cru PCLK_EDP_CTRL>;
916                         };
917                         pd_emmc@RK3399_PD_EMMC {
918                                 reg = <RK3399_PD_EMMC>;
919                                 clocks = <&cru ACLK_EMMC>;
920                                 pm_qos = <&qos_emmc>;
921                         };
922                         pd_gmac@RK3399_PD_GMAC {
923                                 reg = <RK3399_PD_GMAC>;
924                                 clocks = <&cru ACLK_GMAC>,
925                                          <&cru PCLK_GMAC>;
926                                 pm_qos = <&qos_gmac>;
927                         };
928                         pd_perihp@RK3399_PD_PERIHP {
929                                 reg = <RK3399_PD_PERIHP>;
930                                 #address-cells = <1>;
931                                 #size-cells = <0>;
932                                 clocks = <&cru ACLK_PERIHP>;
933                                 pm_qos = <&qos_perihp>,
934                                          <&qos_pcie>,
935                                          <&qos_usb_host0>,
936                                          <&qos_usb_host1>;
937
938                                 pd_sd@RK3399_PD_SD {
939                                         reg = <RK3399_PD_SD>;
940                                         clocks = <&cru HCLK_SDMMC>,
941                                                  <&cru SCLK_SDMMC>;
942                                         pm_qos = <&qos_sd>;
943                                 };
944                         };
945                         pd_sdioaudio@RK3399_PD_SDIOAUDIO {
946                                 reg = <RK3399_PD_SDIOAUDIO>;
947                                 clocks = <&cru HCLK_SDIO>;
948                                 pm_qos = <&qos_sdioaudio>;
949                         };
950                         pd_usb3@RK3399_PD_USB3 {
951                                 reg = <RK3399_PD_USB3>;
952                                 clocks = <&cru ACLK_USB3>;
953                                 pm_qos = <&qos_usb_otg0>,
954                                          <&qos_usb_otg1>;
955                         };
956                         pd_vio@RK3399_PD_VIO {
957                                 reg = <RK3399_PD_VIO>;
958                                 #address-cells = <1>;
959                                 #size-cells = <0>;
960
961                                 pd_hdcp@RK3399_PD_HDCP {
962                                         reg = <RK3399_PD_HDCP>;
963                                         clocks = <&cru ACLK_HDCP>,
964                                                  <&cru HCLK_HDCP>,
965                                                  <&cru PCLK_HDCP>;
966                                         pm_qos = <&qos_hdcp>;
967                                 };
968                                 pd_isp0@RK3399_PD_ISP0 {
969                                         reg = <RK3399_PD_ISP0>;
970                                         clocks = <&cru ACLK_ISP0>,
971                                                  <&cru HCLK_ISP0>;
972                                         pm_qos = <&qos_isp0_m0>,
973                                                  <&qos_isp0_m1>;
974                                 };
975                                 pd_isp1@RK3399_PD_ISP1 {
976                                         reg = <RK3399_PD_ISP1>;
977                                         clocks = <&cru ACLK_ISP1>,
978                                                  <&cru HCLK_ISP1>;
979                                         pm_qos = <&qos_isp1_m0>,
980                                                  <&qos_isp1_m1>;
981                                 };
982                                 pd_tcpc0@RK3399_PD_TCPC0 {
983                                         reg = <RK3399_PD_TCPD0>;
984                                         clocks = <&cru SCLK_UPHY0_TCPDCORE>,
985                                                  <&cru SCLK_UPHY0_TCPDPHY_REF>;
986                                 };
987                                 pd_tcpc1@RK3399_PD_TCPC1 {
988                                         reg = <RK3399_PD_TCPD1>;
989                                         clocks = <&cru SCLK_UPHY1_TCPDCORE>,
990                                                  <&cru SCLK_UPHY1_TCPDPHY_REF>;
991                                 };
992                                 pd_vo@RK3399_PD_VO {
993                                         reg = <RK3399_PD_VO>;
994                                         #address-cells = <1>;
995                                         #size-cells = <0>;
996
997                                         pd_vopb@RK3399_PD_VOPB {
998                                                 reg = <RK3399_PD_VOPB>;
999                                                 clocks = <&cru ACLK_VOP0>,
1000                                                          <&cru HCLK_VOP0>;
1001                                                 pm_qos = <&qos_vop_big_r>,
1002                                                          <&qos_vop_big_w>;
1003                                         };
1004                                         pd_vopl@RK3399_PD_VOPL {
1005                                                 reg = <RK3399_PD_VOPL>;
1006                                                 clocks = <&cru ACLK_VOP1>,
1007                                                          <&cru HCLK_VOP1>;
1008                                                 pm_qos = <&qos_vop_little>;
1009                                         };
1010                                 };
1011                         };
1012                 };
1013         };
1014
1015         pmugrf: syscon@ff320000 {
1016                 u-boot,dm-pre-reloc;
1017                 compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
1018                 reg = <0x0 0xff320000 0x0 0x1000>;
1019                 #address-cells = <1>;
1020                 #size-cells = <1>;
1021
1022                 pmu_io_domains: io-domains {
1023                         compatible = "rockchip,rk3399-pmu-io-voltage-domain";
1024                         status = "disabled";
1025                 };
1026         };
1027
1028         pmusgrf: syscon@ff330000 {
1029                 u-boot,dm-pre-reloc;
1030                 compatible = "rockchip,rk3399-pmusgrf", "syscon";
1031                 reg = <0x0 0xff330000 0x0 0xe3d4>;
1032         };
1033
1034         spi3: spi@ff350000 {
1035                 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
1036                 reg = <0x0 0xff350000 0x0 0x1000>;
1037                 clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
1038                 clock-names = "spiclk", "apb_pclk";
1039                 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>;
1040                 pinctrl-names = "default";
1041                 pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
1042                 #address-cells = <1>;
1043                 #size-cells = <0>;
1044                 status = "disabled";
1045         };
1046
1047         uart4: serial@ff370000 {
1048                 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
1049                 reg = <0x0 0xff370000 0x0 0x100>;
1050                 clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
1051                 clock-names = "baudclk", "apb_pclk";
1052                 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
1053                 reg-shift = <2>;
1054                 reg-io-width = <4>;
1055                 pinctrl-names = "default";
1056                 pinctrl-0 = <&uart4_xfer>;
1057                 status = "disabled";
1058         };
1059
1060         i2c4: i2c@ff3d0000 {
1061                 compatible = "rockchip,rk3399-i2c";
1062                 reg = <0x0 0xff3d0000 0x0 0x1000>;
1063                 assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
1064                 assigned-clock-rates = <200000000>;
1065                 clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
1066                 clock-names = "i2c", "pclk";
1067                 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
1068                 pinctrl-names = "default";
1069                 pinctrl-0 = <&i2c4_xfer>;
1070                 #address-cells = <1>;
1071                 #size-cells = <0>;
1072                 status = "disabled";
1073         };
1074
1075         i2c8: i2c@ff3e0000 {
1076                 compatible = "rockchip,rk3399-i2c";
1077                 reg = <0x0 0xff3e0000 0x0 0x1000>;
1078                 assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
1079                 assigned-clock-rates = <200000000>;
1080                 clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
1081                 clock-names = "i2c", "pclk";
1082                 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
1083                 pinctrl-names = "default";
1084                 pinctrl-0 = <&i2c8_xfer>;
1085                 #address-cells = <1>;
1086                 #size-cells = <0>;
1087                 status = "disabled";
1088         };
1089
1090         pwm0: pwm@ff420000 {
1091                 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1092                 reg = <0x0 0xff420000 0x0 0x10>;
1093                 #pwm-cells = <3>;
1094                 pinctrl-names = "default";
1095                 pinctrl-0 = <&pwm0_pin>;
1096                 clocks = <&pmucru PCLK_RKPWM_PMU>;
1097                 clock-names = "pwm";
1098                 status = "disabled";
1099         };
1100
1101         pwm1: pwm@ff420010 {
1102                 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1103                 reg = <0x0 0xff420010 0x0 0x10>;
1104                 #pwm-cells = <3>;
1105                 pinctrl-names = "default";
1106                 pinctrl-0 = <&pwm1_pin>;
1107                 clocks = <&pmucru PCLK_RKPWM_PMU>;
1108                 clock-names = "pwm";
1109                 status = "disabled";
1110         };
1111
1112         pwm2: pwm@ff420020 {
1113                 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1114                 reg = <0x0 0xff420020 0x0 0x10>;
1115                 #pwm-cells = <3>;
1116                 pinctrl-names = "default";
1117                 pinctrl-0 = <&pwm2_pin>;
1118                 clocks = <&pmucru PCLK_RKPWM_PMU>;
1119                 clock-names = "pwm";
1120                 status = "disabled";
1121         };
1122
1123         pwm3: pwm@ff420030 {
1124                 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1125                 reg = <0x0 0xff420030 0x0 0x10>;
1126                 #pwm-cells = <3>;
1127                 pinctrl-names = "default";
1128                 pinctrl-0 = <&pwm3a_pin>;
1129                 clocks = <&pmucru PCLK_RKPWM_PMU>;
1130                 clock-names = "pwm";
1131                 status = "disabled";
1132         };
1133
1134         cic: syscon@ff620000 {
1135                 u-boot,dm-pre-reloc;
1136                 compatible = "rockchip,rk3399-cic", "syscon";
1137                 reg = <0x0 0xff620000 0x0 0x100>;
1138         };
1139
1140         dfi: dfi@ff630000 {
1141                 reg = <0x00 0xff630000 0x00 0x4000>;
1142                 compatible = "rockchip,rk3399-dfi";
1143                 rockchip,pmu = <&pmugrf>;
1144                 clocks = <&cru PCLK_DDR_MON>;
1145                 clock-names = "pclk_ddr_mon";
1146                 status = "disabled";
1147         };
1148
1149         dmc: dmc {
1150                 u-boot,dm-pre-reloc;
1151                 compatible = "rockchip,rk3399-dmc";
1152                 devfreq-events = <&dfi>;
1153                 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>;
1154                 clocks = <&cru SCLK_DDRCLK>;
1155                 clock-names = "dmc_clk";
1156                 reg = <0x0 0xffa80000 0x0 0x0800
1157                        0x0 0xffa80800 0x0 0x1800
1158                        0x0 0xffa82000 0x0 0x2000
1159                        0x0 0xffa84000 0x0 0x1000
1160                        0x0 0xffa88000 0x0 0x0800
1161                        0x0 0xffa88800 0x0 0x1800
1162                        0x0 0xffa8a000 0x0 0x2000
1163                        0x0 0xffa8c000 0x0 0x1000>;
1164         };
1165
1166         efuse0: efuse@ff690000 {
1167                 compatible = "rockchip,rk3399-efuse";
1168                 reg = <0x0 0xff690000 0x0 0x80>;
1169                 #address-cells = <1>;
1170                 #size-cells = <1>;
1171                 clocks = <&cru PCLK_EFUSE1024NS>;
1172                 clock-names = "pclk_efuse";
1173
1174                 /* Data cells */
1175                 cpu_id: cpu-id@7 {
1176                         reg = <0x07 0x10>;
1177                 };
1178                 cpub_leakage: cpu-leakage@17 {
1179                         reg = <0x17 0x1>;
1180                 };
1181                 gpu_leakage: gpu-leakage@18 {
1182                         reg = <0x18 0x1>;
1183                 };
1184                 center_leakage: center-leakage@19 {
1185                         reg = <0x19 0x1>;
1186                 };
1187                 cpul_leakage: cpu-leakage@1a {
1188                         reg = <0x1a 0x1>;
1189                 };
1190                 logic_leakage: logic-leakage@1b {
1191                         reg = <0x1b 0x1>;
1192                 };
1193                 wafer_info: wafer-info@1c {
1194                         reg = <0x1c 0x1>;
1195                 };
1196         };
1197
1198         pmucru: pmu-clock-controller@ff750000 {
1199                 u-boot,dm-pre-reloc;
1200                 compatible = "rockchip,rk3399-pmucru";
1201                 reg = <0x0 0xff750000 0x0 0x1000>;
1202                 rockchip,grf = <&pmugrf>;
1203                 #clock-cells = <1>;
1204                 #reset-cells = <1>;
1205                 assigned-clocks = <&pmucru PLL_PPLL>;
1206                 assigned-clock-rates = <676000000>;
1207         };
1208
1209         cru: clock-controller@ff760000 {
1210                 u-boot,dm-pre-reloc;
1211                 compatible = "rockchip,rk3399-cru";
1212                 reg = <0x0 0xff760000 0x0 0x1000>;
1213                 rockchip,grf = <&grf>;
1214                 #clock-cells = <1>;
1215                 #reset-cells = <1>;
1216                 assigned-clocks =
1217                         <&cru PLL_GPLL>, <&cru PLL_CPLL>,
1218                         <&cru PLL_NPLL>,
1219                         <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
1220                         <&cru PCLK_PERIHP>,
1221                         <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
1222                         <&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
1223                         <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>;
1224                 assigned-clock-rates =
1225                          <594000000>,  <800000000>,
1226                         <1000000000>,
1227                          <150000000>,   <75000000>,
1228                           <37500000>,
1229                          <100000000>,  <100000000>,
1230                           <50000000>, <600000000>,
1231                          <100000000>,   <50000000>;
1232         };
1233
1234         grf: syscon@ff770000 {
1235                 u-boot,dm-pre-reloc;
1236                 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
1237                 reg = <0x0 0xff770000 0x0 0x10000>;
1238                 #address-cells = <1>;
1239                 #size-cells = <1>;
1240
1241                 io_domains: io-domains {
1242                         compatible = "rockchip,rk3399-io-voltage-domain";
1243                         status = "disabled";
1244                 };
1245
1246                 u2phy0: usb2-phy@e450 {
1247                         compatible = "rockchip,rk3399-usb2phy";
1248                         reg = <0xe450 0x10>;
1249                         clocks = <&cru SCLK_USB2PHY0_REF>;
1250                         clock-names = "phyclk";
1251                         #clock-cells = <0>;
1252                         clock-output-names = "clk_usbphy0_480m";
1253                         status = "disabled";
1254
1255                         u2phy0_host: host-port {
1256                                 #phy-cells = <0>;
1257                                 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
1258                                 interrupt-names = "linestate";
1259                                 status = "disabled";
1260                         };
1261
1262                         u2phy0_otg: otg-port {
1263                                 #phy-cells = <0>;
1264                                 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
1265                                              <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
1266                                              <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
1267                                 interrupt-names = "otg-bvalid", "otg-id",
1268                                                   "linestate";
1269                                 status = "disabled";
1270                         };
1271                 };
1272
1273                 u2phy1: usb2-phy@e460 {
1274                         compatible = "rockchip,rk3399-usb2phy";
1275                         reg = <0xe460 0x10>;
1276                         clocks = <&cru SCLK_USB2PHY1_REF>;
1277                         clock-names = "phyclk";
1278                         #clock-cells = <0>;
1279                         clock-output-names = "clk_usbphy1_480m";
1280                         status = "disabled";
1281
1282                         u2phy1_host: host-port {
1283                                 #phy-cells = <0>;
1284                                 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>;
1285                                 interrupt-names = "linestate";
1286                                 status = "disabled";
1287                         };
1288
1289                         u2phy1_otg: otg-port {
1290                                 #phy-cells = <0>;
1291                                 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
1292                                              <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
1293                                              <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
1294                                 interrupt-names = "otg-bvalid", "otg-id",
1295                                                   "linestate";
1296                                 status = "disabled";
1297                         };
1298                 };
1299
1300                 emmc_phy: phy@f780 {
1301                         compatible = "rockchip,rk3399-emmc-phy";
1302                         reg = <0xf780 0x24>;
1303                         clocks = <&sdhci>;
1304                         clock-names = "emmcclk";
1305                         #phy-cells = <0>;
1306                         status = "disabled";
1307                 };
1308
1309                 pcie_phy: pcie-phy {
1310                         compatible = "rockchip,rk3399-pcie-phy";
1311                         clocks = <&cru SCLK_PCIEPHY_REF>;
1312                         clock-names = "refclk";
1313                         #phy-cells = <0>;
1314                         resets = <&cru SRST_PCIEPHY>;
1315                         reset-names = "phy";
1316                         status = "disabled";
1317                 };
1318         };
1319
1320         watchdog@ff848000 {
1321                 compatible = "snps,dw-wdt";
1322                 reg = <0x0 0xff848000 0x0 0x100>;
1323                 clocks = <&cru PCLK_WDT>;
1324                 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
1325         };
1326
1327         rktimer: rktimer@ff850000 {
1328                 compatible = "rockchip,rk3399-timer";
1329                 reg = <0x0 0xff850000 0x0 0x1000>;
1330                 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
1331                 clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
1332                 clock-names = "pclk", "timer";
1333         };
1334
1335         spdif: spdif@ff870000 {
1336                 compatible = "rockchip,rk3399-spdif";
1337                 reg = <0x0 0xff870000 0x0 0x1000>;
1338                 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
1339                 dmas = <&dmac_bus 7>;
1340                 dma-names = "tx";
1341                 clock-names = "mclk", "hclk";
1342                 clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
1343                 pinctrl-names = "default";
1344                 pinctrl-0 = <&spdif_bus>;
1345                 power-domains = <&power RK3399_PD_SDIOAUDIO>;
1346                 status = "disabled";
1347         };
1348
1349         i2s0: i2s@ff880000 {
1350                 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1351                 reg = <0x0 0xff880000 0x0 0x1000>;
1352                 rockchip,grf = <&grf>;
1353                 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
1354                 dmas = <&dmac_bus 0>, <&dmac_bus 1>;
1355                 dma-names = "tx", "rx";
1356                 clock-names = "i2s_clk", "i2s_hclk";
1357                 clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
1358                 pinctrl-names = "default";
1359                 pinctrl-0 = <&i2s0_8ch_bus>;
1360                 power-domains = <&power RK3399_PD_SDIOAUDIO>;
1361                 status = "disabled";
1362         };
1363
1364         i2s1: i2s@ff890000 {
1365                 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1366                 reg = <0x0 0xff890000 0x0 0x1000>;
1367                 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
1368                 dmas = <&dmac_bus 2>, <&dmac_bus 3>;
1369                 dma-names = "tx", "rx";
1370                 clock-names = "i2s_clk", "i2s_hclk";
1371                 clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
1372                 pinctrl-names = "default";
1373                 pinctrl-0 = <&i2s1_2ch_bus>;
1374                 power-domains = <&power RK3399_PD_SDIOAUDIO>;
1375                 status = "disabled";
1376         };
1377
1378         i2s2: i2s@ff8a0000 {
1379                 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1380                 reg = <0x0 0xff8a0000 0x0 0x1000>;
1381                 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
1382                 dmas = <&dmac_bus 4>, <&dmac_bus 5>;
1383                 dma-names = "tx", "rx";
1384                 clock-names = "i2s_clk", "i2s_hclk";
1385                 clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
1386                 power-domains = <&power RK3399_PD_SDIOAUDIO>;
1387                 status = "disabled";
1388         };
1389
1390         i2c0: i2c@ff3c0000 {
1391                 compatible = "rockchip,rk3399-i2c";
1392                 reg = <0x0 0xff3c0000 0x0 0x1000>;
1393                 assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
1394                 assigned-clock-rates = <200000000>;
1395                 clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
1396                 clock-names = "i2c", "pclk";
1397                 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
1398                 pinctrl-names = "default";
1399                 pinctrl-0 = <&i2c0_xfer>;
1400                 #address-cells = <1>;
1401                 #size-cells = <0>;
1402                 status = "disabled";
1403         };
1404
1405         pinctrl: pinctrl {
1406                 u-boot,dm-pre-reloc;
1407                 compatible = "rockchip,rk3399-pinctrl";
1408                 rockchip,grf = <&grf>;
1409                 rockchip,pmu = <&pmugrf>;
1410                 #address-cells = <2>;
1411                 #size-cells = <2>;
1412                 ranges;
1413
1414                 gpio0: gpio0@ff720000 {
1415                         compatible = "rockchip,gpio-bank";
1416                         reg = <0x0 0xff720000 0x0 0x100>;
1417                         clocks = <&pmucru PCLK_GPIO0_PMU>;
1418                         interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
1419
1420                         gpio-controller;
1421                         #gpio-cells = <0x2>;
1422
1423                         interrupt-controller;
1424                         #interrupt-cells = <0x2>;
1425                 };
1426
1427                 gpio1: gpio1@ff730000 {
1428                         compatible = "rockchip,gpio-bank";
1429                         reg = <0x0 0xff730000 0x0 0x100>;
1430                         clocks = <&pmucru PCLK_GPIO1_PMU>;
1431                         interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
1432
1433                         gpio-controller;
1434                         #gpio-cells = <0x2>;
1435
1436                         interrupt-controller;
1437                         #interrupt-cells = <0x2>;
1438                 };
1439
1440                 gpio2: gpio2@ff780000 {
1441                         compatible = "rockchip,gpio-bank";
1442                         reg = <0x0 0xff780000 0x0 0x100>;
1443                         clocks = <&cru PCLK_GPIO2>;
1444                         interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
1445
1446                         gpio-controller;
1447                         #gpio-cells = <0x2>;
1448
1449                         interrupt-controller;
1450                         #interrupt-cells = <0x2>;
1451                 };
1452
1453                 gpio3: gpio3@ff788000 {
1454                         compatible = "rockchip,gpio-bank";
1455                         reg = <0x0 0xff788000 0x0 0x100>;
1456                         clocks = <&cru PCLK_GPIO3>;
1457                         interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
1458
1459                         gpio-controller;
1460                         #gpio-cells = <0x2>;
1461
1462                         interrupt-controller;
1463                         #interrupt-cells = <0x2>;
1464                 };
1465
1466                 gpio4: gpio4@ff790000 {
1467                         compatible = "rockchip,gpio-bank";
1468                         reg = <0x0 0xff790000 0x0 0x100>;
1469                         clocks = <&cru PCLK_GPIO4>;
1470                         interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
1471
1472                         gpio-controller;
1473                         #gpio-cells = <0x2>;
1474
1475                         interrupt-controller;
1476                         #interrupt-cells = <0x2>;
1477                 };
1478
1479                 pcfg_pull_up: pcfg-pull-up {
1480                         bias-pull-up;
1481                 };
1482
1483                 pcfg_pull_down: pcfg-pull-down {
1484                         bias-pull-down;
1485                 };
1486
1487                 pcfg_pull_none: pcfg-pull-none {
1488                         bias-disable;
1489                 };
1490
1491                 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1492                         bias-disable;
1493                         drive-strength = <12>;
1494                 };
1495
1496                 pcfg_pull_up_8ma: pcfg-pull-up-8ma {
1497                         bias-pull-up;
1498                         drive-strength = <8>;
1499                 };
1500
1501                 pcfg_pull_down_4ma: pcfg-pull-down-4ma {
1502                         bias-pull-down;
1503                         drive-strength = <4>;
1504                 };
1505
1506                 pcfg_pull_up_2ma: pcfg-pull-up-2ma {
1507                         bias-pull-up;
1508                         drive-strength = <2>;
1509                 };
1510
1511                 pcfg_pull_down_12ma: pcfg-pull-down-12ma {
1512                         bias-pull-down;
1513                         drive-strength = <12>;
1514                 };
1515
1516                 pcfg_pull_none_13ma: pcfg-pull-none-13ma {
1517                         bias-disable;
1518                         drive-strength = <13>;
1519                 };
1520
1521                 clock {
1522                         clk_32k: clk-32k {
1523                                 rockchip,pins = <0 RK_PA0 RK_FUNC_2 &pcfg_pull_none>;
1524                         };
1525                 };
1526
1527                 edp {
1528                         edp_hpd: edp-hpd {
1529                                 rockchip,pins =
1530                                         <4 RK_PC7 RK_FUNC_2 &pcfg_pull_none>;
1531                         };
1532                 };
1533
1534                 gmac {
1535                         rgmii_pins: rgmii-pins {
1536                                 rockchip,pins =
1537                                         /* mac_txclk */
1538                                         <3 RK_PC1 RK_FUNC_1 &pcfg_pull_none_13ma>,
1539                                         /* mac_rxclk */
1540                                         <3 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
1541                                         /* mac_mdio */
1542                                         <3 RK_PB5 RK_FUNC_1 &pcfg_pull_none>,
1543                                         /* mac_txen */
1544                                         <3 RK_PB4 RK_FUNC_1 &pcfg_pull_none_13ma>,
1545                                         /* mac_clk */
1546                                         <3 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
1547                                         /* mac_rxdv */
1548                                         <3 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
1549                                         /* mac_mdc */
1550                                         <3 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
1551                                         /* mac_rxd1 */
1552                                         <3 RK_PA7 RK_FUNC_1 &pcfg_pull_none>,
1553                                         /* mac_rxd0 */
1554                                         <3 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
1555                                         /* mac_txd1 */
1556                                         <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none_13ma>,
1557                                         /* mac_txd0 */
1558                                         <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none_13ma>,
1559                                         /* mac_rxd3 */
1560                                         <3 RK_PA3 RK_FUNC_1 &pcfg_pull_none>,
1561                                         /* mac_rxd2 */
1562                                         <3 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
1563                                         /* mac_txd3 */
1564                                         <3 RK_PA1 RK_FUNC_1 &pcfg_pull_none_13ma>,
1565                                         /* mac_txd2 */
1566                                         <3 RK_PA0 RK_FUNC_1 &pcfg_pull_none_13ma>;
1567                         };
1568
1569                         rmii_pins: rmii-pins {
1570                                 rockchip,pins =
1571                                         /* mac_mdio */
1572                                         <3 RK_PB5 RK_FUNC_1 &pcfg_pull_none>,
1573                                         /* mac_txen */
1574                                         <3 RK_PB4 RK_FUNC_1 &pcfg_pull_none_13ma>,
1575                                         /* mac_clk */
1576                                         <3 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
1577                                         /* mac_rxer */
1578                                         <3 RK_PB2 RK_FUNC_1 &pcfg_pull_none>,
1579                                         /* mac_rxdv */
1580                                         <3 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
1581                                         /* mac_mdc */
1582                                         <3 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
1583                                         /* mac_rxd1 */
1584                                         <3 RK_PA7 RK_FUNC_1 &pcfg_pull_none>,
1585                                         /* mac_rxd0 */
1586                                         <3 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
1587                                         /* mac_txd1 */
1588                                         <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none_13ma>,
1589                                         /* mac_txd0 */
1590                                         <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none_13ma>;
1591                         };
1592                 };
1593
1594                 i2c0 {
1595                         i2c0_xfer: i2c0-xfer {
1596                                 rockchip,pins =
1597                                         <1 RK_PB7 RK_FUNC_2 &pcfg_pull_none>,
1598                                         <1 RK_PC0 RK_FUNC_2 &pcfg_pull_none>;
1599                         };
1600                 };
1601
1602                 i2c1 {
1603                         i2c1_xfer: i2c1-xfer {
1604                                 rockchip,pins =
1605                                         <4 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
1606                                         <4 RK_PA1 RK_FUNC_1 &pcfg_pull_none>;
1607                         };
1608                 };
1609
1610                 i2c2 {
1611                         i2c2_xfer: i2c2-xfer {
1612                                 rockchip,pins =
1613                                         <2 RK_PA1 RK_FUNC_2 &pcfg_pull_none_12ma>,
1614                                         <2 RK_PA0 RK_FUNC_2 &pcfg_pull_none_12ma>;
1615                         };
1616                 };
1617
1618                 i2c3 {
1619                         i2c3_xfer: i2c3-xfer {
1620                                 rockchip,pins =
1621                                         <4 RK_PC1 RK_FUNC_1 &pcfg_pull_none>,
1622                                         <4 RK_PC0 RK_FUNC_1 &pcfg_pull_none>;
1623                         };
1624                 };
1625
1626                 i2c4 {
1627                         i2c4_xfer: i2c4-xfer {
1628                                 rockchip,pins =
1629                                         <1 RK_PB4 RK_FUNC_1 &pcfg_pull_none>,
1630                                         <1 RK_PB3 RK_FUNC_1 &pcfg_pull_none>;
1631                         };
1632                 };
1633
1634                 i2c5 {
1635                         i2c5_xfer: i2c5-xfer {
1636                                 rockchip,pins =
1637                                         <3 RK_PB3 RK_FUNC_2 &pcfg_pull_none>,
1638                                         <3 RK_PB2 RK_FUNC_2 &pcfg_pull_none>;
1639                         };
1640                 };
1641
1642                 i2c6 {
1643                         i2c6_xfer: i2c6-xfer {
1644                                 rockchip,pins =
1645                                         <2 RK_PB2 RK_FUNC_2 &pcfg_pull_none>,
1646                                         <2 RK_PB1 RK_FUNC_2 &pcfg_pull_none>;
1647                         };
1648                 };
1649
1650                 i2c7 {
1651                         i2c7_xfer: i2c7-xfer {
1652                                 rockchip,pins =
1653                                         <2 RK_PB0 RK_FUNC_2 &pcfg_pull_none>,
1654                                         <2 RK_PA7 RK_FUNC_2 &pcfg_pull_none>;
1655                         };
1656                 };
1657
1658                 i2c8 {
1659                         i2c8_xfer: i2c8-xfer {
1660                                 rockchip,pins =
1661                                         <1 RK_PC5 RK_FUNC_1 &pcfg_pull_none>,
1662                                         <1 RK_PC4 RK_FUNC_1 &pcfg_pull_none>;
1663                         };
1664                 };
1665
1666                 i2s0 {
1667                         i2s0_8ch_bus: i2s0-8ch-bus {
1668                                 rockchip,pins =
1669                                         <3 RK_PD0 RK_FUNC_1 &pcfg_pull_none>,
1670                                         <3 RK_PD1 RK_FUNC_1 &pcfg_pull_none>,
1671                                         <3 RK_PD2 RK_FUNC_1 &pcfg_pull_none>,
1672                                         <3 RK_PD3 RK_FUNC_1 &pcfg_pull_none>,
1673                                         <3 RK_PD4 RK_FUNC_1 &pcfg_pull_none>,
1674                                         <3 RK_PD5 RK_FUNC_1 &pcfg_pull_none>,
1675                                         <3 RK_PD6 RK_FUNC_1 &pcfg_pull_none>,
1676                                         <3 RK_PD7 RK_FUNC_1 &pcfg_pull_none>,
1677                                         <4 RK_PA0 RK_FUNC_1 &pcfg_pull_none>;
1678                         };
1679                 };
1680
1681                 i2s1 {
1682                         i2s1_2ch_bus: i2s1-2ch-bus {
1683                                 rockchip,pins =
1684                                         <4 RK_PA3 RK_FUNC_1 &pcfg_pull_none>,
1685                                         <4 RK_PA4 RK_FUNC_1 &pcfg_pull_none>,
1686                                         <4 RK_PA5 RK_FUNC_1 &pcfg_pull_none>,
1687                                         <4 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
1688                                         <4 RK_PA7 RK_FUNC_1 &pcfg_pull_none>;
1689                         };
1690                 };
1691
1692                 sdio0 {
1693                         sdio0_bus1: sdio0-bus1 {
1694                                 rockchip,pins =
1695                                         <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>;
1696                         };
1697
1698                         sdio0_bus4: sdio0-bus4 {
1699                                 rockchip,pins =
1700                                         <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>,
1701                                         <2 RK_PC5 RK_FUNC_1 &pcfg_pull_up>,
1702                                         <2 RK_PC6 RK_FUNC_1 &pcfg_pull_up>,
1703                                         <2 RK_PC7 RK_FUNC_1 &pcfg_pull_up>;
1704                         };
1705
1706                         sdio0_cmd: sdio0-cmd {
1707                                 rockchip,pins =
1708                                         <2 RK_PD0 RK_FUNC_1 &pcfg_pull_up>;
1709                         };
1710
1711                         sdio0_clk: sdio0-clk {
1712                                 rockchip,pins =
1713                                         <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
1714                         };
1715
1716                         sdio0_cd: sdio0-cd {
1717                                 rockchip,pins =
1718                                         <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>;
1719                         };
1720
1721                         sdio0_pwr: sdio0-pwr {
1722                                 rockchip,pins =
1723                                         <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>;
1724                         };
1725
1726                         sdio0_bkpwr: sdio0-bkpwr {
1727                                 rockchip,pins =
1728                                         <2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>;
1729                         };
1730
1731                         sdio0_wp: sdio0-wp {
1732                                 rockchip,pins =
1733                                         <0 RK_PA3 RK_FUNC_1 &pcfg_pull_up>;
1734                         };
1735
1736                         sdio0_int: sdio0-int {
1737                                 rockchip,pins =
1738                                         <0 RK_PA4 RK_FUNC_1 &pcfg_pull_up>;
1739                         };
1740                 };
1741
1742                 sdmmc {
1743                         sdmmc_bus1: sdmmc-bus1 {
1744                                 rockchip,pins =
1745                                         <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>;
1746                         };
1747
1748                         sdmmc_bus4: sdmmc-bus4 {
1749                                 rockchip,pins =
1750                                         <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>,
1751                                         <4 RK_PB1 RK_FUNC_1 &pcfg_pull_up>,
1752                                         <4 RK_PB2 RK_FUNC_1 &pcfg_pull_up>,
1753                                         <4 RK_PB3 RK_FUNC_1 &pcfg_pull_up>;
1754                         };
1755
1756                         sdmmc_clk: sdmmc-clk {
1757                                 rockchip,pins =
1758                                         <4 RK_PB4 RK_FUNC_1 &pcfg_pull_none>;
1759                         };
1760
1761                         sdmmc_cmd: sdmmc-cmd {
1762                                 rockchip,pins =
1763                                         <4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>;
1764                         };
1765
1766                         sdmmc_cd: sdmcc-cd {
1767                                 rockchip,pins =
1768                                         <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>;
1769                         };
1770
1771                         sdmmc_wp: sdmmc-wp {
1772                                 rockchip,pins =
1773                                         <0 RK_PB0 RK_FUNC_1 &pcfg_pull_up>;
1774                         };
1775                 };
1776
1777                 sleep {
1778                         ap_pwroff: ap-pwroff {
1779                                 rockchip,pins = <1 RK_PA5 RK_FUNC_1 &pcfg_pull_none>;
1780                         };
1781
1782                         ddrio_pwroff: ddrio-pwroff {
1783                                 rockchip,pins = <0 RK_PA1 RK_FUNC_1 &pcfg_pull_none>;
1784                         };
1785                 };
1786
1787                 spdif {
1788                         spdif_bus: spdif-bus {
1789                                 rockchip,pins =
1790                                         <4 RK_PC5 RK_FUNC_1 &pcfg_pull_none>;
1791                         };
1792
1793                         spdif_bus_1: spdif-bus-1 {
1794                                 rockchip,pins =
1795                                         <3 RK_PC0 RK_FUNC_3 &pcfg_pull_none>;
1796                         };
1797                 };
1798
1799                 spi0 {
1800                         spi0_clk: spi0-clk {
1801                                 rockchip,pins =
1802                                         <3 RK_PA6 RK_FUNC_2 &pcfg_pull_up>;
1803                         };
1804                         spi0_cs0: spi0-cs0 {
1805                                 rockchip,pins =
1806                                         <3 RK_PA7 RK_FUNC_2 &pcfg_pull_up>;
1807                         };
1808                         spi0_cs1: spi0-cs1 {
1809                                 rockchip,pins =
1810                                         <3 RK_PB0 RK_FUNC_2 &pcfg_pull_up>;
1811                         };
1812                         spi0_tx: spi0-tx {
1813                                 rockchip,pins =
1814                                         <3 RK_PA5 RK_FUNC_2 &pcfg_pull_up>;
1815                         };
1816                         spi0_rx: spi0-rx {
1817                                 rockchip,pins =
1818                                         <3 RK_PA4 RK_FUNC_2 &pcfg_pull_up>;
1819                         };
1820                 };
1821
1822                 spi1 {
1823                         spi1_clk: spi1-clk {
1824                                 rockchip,pins =
1825                                         <1 RK_PB1 RK_FUNC_2 &pcfg_pull_up>;
1826                         };
1827                         spi1_cs0: spi1-cs0 {
1828                                 rockchip,pins =
1829                                         <1 RK_PB2 RK_FUNC_2 &pcfg_pull_up>;
1830                         };
1831                         spi1_rx: spi1-rx {
1832                                 rockchip,pins =
1833                                         <1 RK_PA7 RK_FUNC_2 &pcfg_pull_up>;
1834                         };
1835                         spi1_tx: spi1-tx {
1836                                 rockchip,pins =
1837                                         <1 RK_PB0 RK_FUNC_2 &pcfg_pull_up>;
1838                         };
1839                 };
1840
1841                 spi2 {
1842                         spi2_clk: spi2-clk {
1843                                 rockchip,pins =
1844                                         <2 RK_PB3 RK_FUNC_1 &pcfg_pull_up>;
1845                         };
1846                         spi2_cs0: spi2-cs0 {
1847                                 rockchip,pins =
1848                                         <2 RK_PB4 RK_FUNC_1 &pcfg_pull_up>;
1849                         };
1850                         spi2_rx: spi2-rx {
1851                                 rockchip,pins =
1852                                         <2 RK_PB1 RK_FUNC_1 &pcfg_pull_up>;
1853                         };
1854                         spi2_tx: spi2-tx {
1855                                 rockchip,pins =
1856                                         <2 RK_PB2 RK_FUNC_1 &pcfg_pull_up>;
1857                         };
1858                 };
1859
1860                 spi3 {
1861                         spi3_clk: spi3-clk {
1862                                 rockchip,pins =
1863                                         <1 RK_PC1 RK_FUNC_1 &pcfg_pull_up>;
1864                         };
1865                         spi3_cs0: spi3-cs0 {
1866                                 rockchip,pins =
1867                                         <1 RK_PC2 RK_FUNC_1 &pcfg_pull_up>;
1868                         };
1869                         spi3_rx: spi3-rx {
1870                                 rockchip,pins =
1871                                         <1 RK_PB7 RK_FUNC_1 &pcfg_pull_up>;
1872                         };
1873                         spi3_tx: spi3-tx {
1874                                 rockchip,pins =
1875                                         <1 RK_PC0 RK_FUNC_1 &pcfg_pull_up>;
1876                         };
1877                 };
1878
1879                 spi4 {
1880                         spi4_clk: spi4-clk {
1881                                 rockchip,pins =
1882                                         <3 RK_PA2 RK_FUNC_2 &pcfg_pull_up>;
1883                         };
1884                         spi4_cs0: spi4-cs0 {
1885                                 rockchip,pins =
1886                                         <3 RK_PA3 RK_FUNC_2 &pcfg_pull_up>;
1887                         };
1888                         spi4_rx: spi4-rx {
1889                                 rockchip,pins =
1890                                         <3 RK_PA0 RK_FUNC_2 &pcfg_pull_up>;
1891                         };
1892                         spi4_tx: spi4-tx {
1893                                 rockchip,pins =
1894                                         <3 RK_PA1 RK_FUNC_2 &pcfg_pull_up>;
1895                         };
1896                 };
1897
1898                 spi5 {
1899                         spi5_clk: spi5-clk {
1900                                 rockchip,pins =
1901                                         <2 RK_PC6 RK_FUNC_2 &pcfg_pull_up>;
1902                         };
1903                         spi5_cs0: spi5-cs0 {
1904                                 rockchip,pins =
1905                                         <2 RK_PC7 RK_FUNC_2 &pcfg_pull_up>;
1906                         };
1907                         spi5_rx: spi5-rx {
1908                                 rockchip,pins =
1909                                         <2 RK_PC4 RK_FUNC_2 &pcfg_pull_up>;
1910                         };
1911                         spi5_tx: spi5-tx {
1912                                 rockchip,pins =
1913                                         <2 RK_PC5 RK_FUNC_2 &pcfg_pull_up>;
1914                         };
1915                 };
1916
1917                 tsadc {
1918                         otp_gpio: otp-gpio {
1919                                 rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
1920                         };
1921
1922                         otp_out: otp-out {
1923                                 rockchip,pins = <1 RK_PA6 RK_FUNC_1 &pcfg_pull_none>;
1924                         };
1925                 };
1926
1927                 uart0 {
1928                         uart0_xfer: uart0-xfer {
1929                                 rockchip,pins =
1930                                         <2 RK_PC0 RK_FUNC_1 &pcfg_pull_up>,
1931                                         <2 RK_PC1 RK_FUNC_1 &pcfg_pull_none>;
1932                         };
1933
1934                         uart0_cts: uart0-cts {
1935                                 rockchip,pins =
1936                                         <2 RK_PC2 RK_FUNC_1 &pcfg_pull_none>;
1937                         };
1938
1939                         uart0_rts: uart0-rts {
1940                                 rockchip,pins =
1941                                         <2 RK_PC3 RK_FUNC_1 &pcfg_pull_none>;
1942                         };
1943                 };
1944
1945                 uart1 {
1946                         uart1_xfer: uart1-xfer {
1947                                 rockchip,pins =
1948                                         <3 RK_PB4 RK_FUNC_2 &pcfg_pull_up>,
1949                                         <3 RK_PB5 RK_FUNC_2 &pcfg_pull_none>;
1950                         };
1951                 };
1952
1953                 uart2a {
1954                         uart2a_xfer: uart2a-xfer {
1955                                 rockchip,pins =
1956                                         <4 RK_PB0 RK_FUNC_2 &pcfg_pull_up>,
1957                                         <4 RK_PB1 RK_FUNC_2 &pcfg_pull_none>;
1958                         };
1959                 };
1960
1961                 uart2b {
1962                         uart2b_xfer: uart2b-xfer {
1963                                 rockchip,pins =
1964                                         <4 RK_PC0 RK_FUNC_2 &pcfg_pull_up>,
1965                                         <4 RK_PC1 RK_FUNC_2 &pcfg_pull_none>;
1966                         };
1967                 };
1968
1969                 uart2c {
1970                         uart2c_xfer: uart2c-xfer {
1971                                 rockchip,pins =
1972                                         <4 RK_PC3 RK_FUNC_1 &pcfg_pull_up>,
1973                                         <4 RK_PC4 RK_FUNC_1 &pcfg_pull_none>;
1974                         };
1975                 };
1976
1977                 uart3 {
1978                         uart3_xfer: uart3-xfer {
1979                                 rockchip,pins =
1980                                         <3 RK_PB6 RK_FUNC_2 &pcfg_pull_up>,
1981                                         <3 RK_PB7 RK_FUNC_2 &pcfg_pull_none>;
1982                         };
1983
1984                         uart3_cts: uart3-cts {
1985                                 rockchip,pins =
1986                                         <3 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
1987                         };
1988
1989                         uart3_rts: uart3-rts {
1990                                 rockchip,pins =
1991                                         <3 RK_PC3 RK_FUNC_2 &pcfg_pull_none>;
1992                         };
1993                 };
1994
1995                 uart4 {
1996                         uart4_xfer: uart4-xfer {
1997                                 rockchip,pins =
1998                                         <1 RK_PA7 RK_FUNC_1 &pcfg_pull_up>,
1999                                         <1 RK_PB0 RK_FUNC_1 &pcfg_pull_none>;
2000                         };
2001                 };
2002
2003                 uarthdcp {
2004                         uarthdcp_xfer: uarthdcp-xfer {
2005                                 rockchip,pins =
2006                                         <4 RK_PC5 RK_FUNC_2 &pcfg_pull_up>,
2007                                         <4 RK_PC6 RK_FUNC_2 &pcfg_pull_none>;
2008                         };
2009                 };
2010
2011                 pwm0 {
2012                         pwm0_pin: pwm0-pin {
2013                                 rockchip,pins =
2014                                         <4 RK_PC2 RK_FUNC_1 &pcfg_pull_none>;
2015                         };
2016
2017                         vop0_pwm_pin: vop0-pwm-pin {
2018                                 rockchip,pins =
2019                                         <4 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
2020                         };
2021                 };
2022
2023                 pwm1 {
2024                         pwm1_pin: pwm1-pin {
2025                                 rockchip,pins =
2026                                         <4 RK_PC6 RK_FUNC_1 &pcfg_pull_none>;
2027                         };
2028
2029                         vop1_pwm_pin: vop1-pwm-pin {
2030                                 rockchip,pins =
2031                                         <4 RK_PC2 RK_FUNC_3 &pcfg_pull_none>;
2032                         };
2033                 };
2034
2035                 pwm2 {
2036                         pwm2_pin: pwm2-pin {
2037                                 rockchip,pins =
2038                                         <1 RK_PC3 RK_FUNC_1 &pcfg_pull_none>;
2039                         };
2040                 };
2041
2042                 pwm3a {
2043                         pwm3a_pin: pwm3a-pin {
2044                                 rockchip,pins =
2045                                         <0 RK_PA6 RK_FUNC_1 &pcfg_pull_none>;
2046                         };
2047                 };
2048
2049                 pwm3b {
2050                         pwm3b_pin: pwm3b-pin {
2051                                 rockchip,pins =
2052                                         <1 RK_PB6 RK_FUNC_1 &pcfg_pull_none>;
2053                         };
2054                 };
2055
2056                 hdmi {
2057                         hdmi_i2c_xfer: hdmi-i2c-xfer {
2058                                 rockchip,pins =
2059                                         <4 RK_PC1 RK_FUNC_3 &pcfg_pull_none>,
2060                                         <4 RK_PC0 RK_FUNC_3 &pcfg_pull_none>;
2061                         };
2062
2063                         hdmi_cec: hdmi-cec {
2064                                 rockchip,pins =
2065                                         <4 RK_PC7 RK_FUNC_1 &pcfg_pull_none>;
2066                         };
2067                 };
2068
2069                 pcie {
2070                         pcie_clkreqn: pci-clkreqn {
2071                                 rockchip,pins =
2072                                         <2 RK_PD2 RK_FUNC_2 &pcfg_pull_none>;
2073                         };
2074
2075                         pcie_clkreqnb: pci-clkreqnb {
2076                                 rockchip,pins =
2077                                         <4 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
2078                         };
2079
2080                         pcie_clkreqn_cpm: pci-clkreqn-cpm {
2081                                 rockchip,pins =
2082                                         <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
2083                         };
2084
2085                         pcie_clkreqnb_cpm: pci-clkreqnb-cpm {
2086                                 rockchip,pins =
2087                                         <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
2088                         };
2089                 };
2090
2091         };
2092 };