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