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