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