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