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