xref: /openbmc/u-boot/arch/arm/dts/rk3399.dtsi (revision fe9ee579)
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 = <200000000>;
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			compatible = "rockchip,rk3399-emmc-phy";
1302			reg = <0xf780 0x24>;
1303			clocks = <&sdhci>;
1304			clock-names = "emmcclk";
1305			#phy-cells = <0>;
1306			status = "disabled";
1307		};
1308
1309		pcie_phy: pcie-phy {
1310			compatible = "rockchip,rk3399-pcie-phy";
1311			clocks = <&cru SCLK_PCIEPHY_REF>;
1312			clock-names = "refclk";
1313			#phy-cells = <0>;
1314			resets = <&cru SRST_PCIEPHY>;
1315			reset-names = "phy";
1316			status = "disabled";
1317		};
1318	};
1319
1320	watchdog@ff848000 {
1321		compatible = "snps,dw-wdt";
1322		reg = <0x0 0xff848000 0x0 0x100>;
1323		clocks = <&cru PCLK_WDT>;
1324		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
1325	};
1326
1327	rktimer: rktimer@ff850000 {
1328		compatible = "rockchip,rk3399-timer";
1329		reg = <0x0 0xff850000 0x0 0x1000>;
1330		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
1331		clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
1332		clock-names = "pclk", "timer";
1333	};
1334
1335	spdif: spdif@ff870000 {
1336		compatible = "rockchip,rk3399-spdif";
1337		reg = <0x0 0xff870000 0x0 0x1000>;
1338		interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
1339		dmas = <&dmac_bus 7>;
1340		dma-names = "tx";
1341		clock-names = "mclk", "hclk";
1342		clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
1343		pinctrl-names = "default";
1344		pinctrl-0 = <&spdif_bus>;
1345		power-domains = <&power RK3399_PD_SDIOAUDIO>;
1346		status = "disabled";
1347	};
1348
1349	i2s0: i2s@ff880000 {
1350		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1351		reg = <0x0 0xff880000 0x0 0x1000>;
1352		rockchip,grf = <&grf>;
1353		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
1354		dmas = <&dmac_bus 0>, <&dmac_bus 1>;
1355		dma-names = "tx", "rx";
1356		clock-names = "i2s_clk", "i2s_hclk";
1357		clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
1358		pinctrl-names = "default";
1359		pinctrl-0 = <&i2s0_8ch_bus>;
1360		power-domains = <&power RK3399_PD_SDIOAUDIO>;
1361		status = "disabled";
1362	};
1363
1364	i2s1: i2s@ff890000 {
1365		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1366		reg = <0x0 0xff890000 0x0 0x1000>;
1367		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
1368		dmas = <&dmac_bus 2>, <&dmac_bus 3>;
1369		dma-names = "tx", "rx";
1370		clock-names = "i2s_clk", "i2s_hclk";
1371		clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
1372		pinctrl-names = "default";
1373		pinctrl-0 = <&i2s1_2ch_bus>;
1374		power-domains = <&power RK3399_PD_SDIOAUDIO>;
1375		status = "disabled";
1376	};
1377
1378	i2s2: i2s@ff8a0000 {
1379		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1380		reg = <0x0 0xff8a0000 0x0 0x1000>;
1381		interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
1382		dmas = <&dmac_bus 4>, <&dmac_bus 5>;
1383		dma-names = "tx", "rx";
1384		clock-names = "i2s_clk", "i2s_hclk";
1385		clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
1386		power-domains = <&power RK3399_PD_SDIOAUDIO>;
1387		status = "disabled";
1388	};
1389
1390	i2c0: i2c@ff3c0000 {
1391		compatible = "rockchip,rk3399-i2c";
1392		reg = <0x0 0xff3c0000 0x0 0x1000>;
1393		assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
1394		assigned-clock-rates = <200000000>;
1395		clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
1396		clock-names = "i2c", "pclk";
1397		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
1398		pinctrl-names = "default";
1399		pinctrl-0 = <&i2c0_xfer>;
1400		#address-cells = <1>;
1401		#size-cells = <0>;
1402		status = "disabled";
1403	};
1404
1405	vopl: vop@ff8f0000 {
1406		u-boot,dm-pre-reloc;
1407		compatible = "rockchip,rk3399-vop-lit";
1408		reg = <0x0 0xff8f0000 0x0 0x3efc>;
1409		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
1410		clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
1411		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1412		resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
1413		reset-names = "axi", "ahb", "dclk";
1414		status = "disabled";
1415		vopl_out: port {
1416			#address-cells = <1>;
1417			#size-cells = <0>;
1418			vopl_out_mipi: endpoint@0 {
1419				reg = <3>;
1420				remote-endpoint = <&mipi_in_vopl>;
1421			};
1422		};
1423	};
1424
1425	vopb: vop@ff900000 {
1426		u-boot,dm-pre-reloc;
1427		compatible = "rockchip,rk3399-vop-big";
1428		reg = <0x0 0xff900000 0x0 0x3efc>;
1429		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
1430		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
1431		#clock-cells = <0>;
1432		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1433		resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
1434		reset-names = "axi", "ahb", "dclk";
1435		status = "disabled";
1436		vopb_out: port {
1437			#address-cells = <1>;
1438			#size-cells = <0>;
1439			vopb_out_mipi: endpoint@0 {
1440				reg = <3>;
1441				remote-endpoint = <&mipi_in_vopb>;
1442			};
1443		};
1444	};
1445
1446	mipi_dsi: mipi@ff960000 {
1447		compatible = "rockchip,rk3399_mipi_dsi";
1448		reg = <0x0 0xff960000 0x0 0x8000>;
1449		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>;
1450		clocks = <&cru SCLK_MIPIDPHY_REF>, <&cru PCLK_MIPI_DSI0>,
1451		         <&cru SCLK_DPHY_TX0_CFG>;
1452		clock-names = "ref", "pclk", "phy_cfg";
1453		rockchip,grf = <&grf>;
1454		#address-cells = <1>;
1455		#size-cells = <0>;
1456		status = "disabled";
1457		ports {
1458			#address-cells = <1>;
1459			#size-cells = <0>;
1460			reg = <1>;
1461			mipi_in: port {
1462				#address-cells = <1>;
1463				#size-cells = <0>;
1464				mipi_in_vopb: endpoint@0 {
1465					reg = <0>;
1466					remote-endpoint = <&vopb_out_mipi>;
1467				};
1468				mipi_in_vopl: endpoint@1 {
1469					reg = <1>;
1470					remote-endpoint = <&vopl_out_mipi>;
1471				};
1472			};
1473		};
1474	};
1475
1476	pinctrl: pinctrl {
1477		u-boot,dm-pre-reloc;
1478		compatible = "rockchip,rk3399-pinctrl";
1479		rockchip,grf = <&grf>;
1480		rockchip,pmu = <&pmugrf>;
1481		#address-cells = <2>;
1482		#size-cells = <2>;
1483		ranges;
1484
1485		gpio0: gpio0@ff720000 {
1486			compatible = "rockchip,gpio-bank";
1487			reg = <0x0 0xff720000 0x0 0x100>;
1488			clocks = <&pmucru PCLK_GPIO0_PMU>;
1489			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
1490
1491			gpio-controller;
1492			#gpio-cells = <0x2>;
1493
1494			interrupt-controller;
1495			#interrupt-cells = <0x2>;
1496		};
1497
1498		gpio1: gpio1@ff730000 {
1499			compatible = "rockchip,gpio-bank";
1500			reg = <0x0 0xff730000 0x0 0x100>;
1501			clocks = <&pmucru PCLK_GPIO1_PMU>;
1502			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
1503
1504			gpio-controller;
1505			#gpio-cells = <0x2>;
1506
1507			interrupt-controller;
1508			#interrupt-cells = <0x2>;
1509		};
1510
1511		gpio2: gpio2@ff780000 {
1512			compatible = "rockchip,gpio-bank";
1513			reg = <0x0 0xff780000 0x0 0x100>;
1514			clocks = <&cru PCLK_GPIO2>;
1515			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
1516
1517			gpio-controller;
1518			#gpio-cells = <0x2>;
1519
1520			interrupt-controller;
1521			#interrupt-cells = <0x2>;
1522		};
1523
1524		gpio3: gpio3@ff788000 {
1525			compatible = "rockchip,gpio-bank";
1526			reg = <0x0 0xff788000 0x0 0x100>;
1527			clocks = <&cru PCLK_GPIO3>;
1528			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
1529
1530			gpio-controller;
1531			#gpio-cells = <0x2>;
1532
1533			interrupt-controller;
1534			#interrupt-cells = <0x2>;
1535		};
1536
1537		gpio4: gpio4@ff790000 {
1538			compatible = "rockchip,gpio-bank";
1539			reg = <0x0 0xff790000 0x0 0x100>;
1540			clocks = <&cru PCLK_GPIO4>;
1541			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
1542
1543			gpio-controller;
1544			#gpio-cells = <0x2>;
1545
1546			interrupt-controller;
1547			#interrupt-cells = <0x2>;
1548		};
1549
1550		pcfg_pull_up: pcfg-pull-up {
1551			bias-pull-up;
1552		};
1553
1554		pcfg_pull_down: pcfg-pull-down {
1555			bias-pull-down;
1556		};
1557
1558		pcfg_pull_none: pcfg-pull-none {
1559			bias-disable;
1560		};
1561
1562		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1563			bias-disable;
1564			drive-strength = <12>;
1565		};
1566
1567		pcfg_pull_up_8ma: pcfg-pull-up-8ma {
1568			bias-pull-up;
1569			drive-strength = <8>;
1570		};
1571
1572		pcfg_pull_down_4ma: pcfg-pull-down-4ma {
1573			bias-pull-down;
1574			drive-strength = <4>;
1575		};
1576
1577		pcfg_pull_up_2ma: pcfg-pull-up-2ma {
1578			bias-pull-up;
1579			drive-strength = <2>;
1580		};
1581
1582		pcfg_pull_down_12ma: pcfg-pull-down-12ma {
1583			bias-pull-down;
1584			drive-strength = <12>;
1585		};
1586
1587		pcfg_pull_none_13ma: pcfg-pull-none-13ma {
1588			bias-disable;
1589			drive-strength = <13>;
1590		};
1591
1592		clock {
1593			clk_32k: clk-32k {
1594				rockchip,pins = <0 RK_PA0 RK_FUNC_2 &pcfg_pull_none>;
1595			};
1596		};
1597
1598		edp {
1599			edp_hpd: edp-hpd {
1600				rockchip,pins =
1601					<4 RK_PC7 RK_FUNC_2 &pcfg_pull_none>;
1602			};
1603		};
1604
1605		gmac {
1606			rgmii_pins: rgmii-pins {
1607				rockchip,pins =
1608					/* mac_txclk */
1609					<3 RK_PC1 RK_FUNC_1 &pcfg_pull_none_13ma>,
1610					/* mac_rxclk */
1611					<3 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
1612					/* mac_mdio */
1613					<3 RK_PB5 RK_FUNC_1 &pcfg_pull_none>,
1614					/* mac_txen */
1615					<3 RK_PB4 RK_FUNC_1 &pcfg_pull_none_13ma>,
1616					/* mac_clk */
1617					<3 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
1618					/* mac_rxdv */
1619					<3 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
1620					/* mac_mdc */
1621					<3 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
1622					/* mac_rxd1 */
1623					<3 RK_PA7 RK_FUNC_1 &pcfg_pull_none>,
1624					/* mac_rxd0 */
1625					<3 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
1626					/* mac_txd1 */
1627					<3 RK_PA5 RK_FUNC_1 &pcfg_pull_none_13ma>,
1628					/* mac_txd0 */
1629					<3 RK_PA4 RK_FUNC_1 &pcfg_pull_none_13ma>,
1630					/* mac_rxd3 */
1631					<3 RK_PA3 RK_FUNC_1 &pcfg_pull_none>,
1632					/* mac_rxd2 */
1633					<3 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
1634					/* mac_txd3 */
1635					<3 RK_PA1 RK_FUNC_1 &pcfg_pull_none_13ma>,
1636					/* mac_txd2 */
1637					<3 RK_PA0 RK_FUNC_1 &pcfg_pull_none_13ma>;
1638			};
1639
1640			rmii_pins: rmii-pins {
1641				rockchip,pins =
1642					/* mac_mdio */
1643					<3 RK_PB5 RK_FUNC_1 &pcfg_pull_none>,
1644					/* mac_txen */
1645					<3 RK_PB4 RK_FUNC_1 &pcfg_pull_none_13ma>,
1646					/* mac_clk */
1647					<3 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
1648					/* mac_rxer */
1649					<3 RK_PB2 RK_FUNC_1 &pcfg_pull_none>,
1650					/* mac_rxdv */
1651					<3 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
1652					/* mac_mdc */
1653					<3 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
1654					/* mac_rxd1 */
1655					<3 RK_PA7 RK_FUNC_1 &pcfg_pull_none>,
1656					/* mac_rxd0 */
1657					<3 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
1658					/* mac_txd1 */
1659					<3 RK_PA5 RK_FUNC_1 &pcfg_pull_none_13ma>,
1660					/* mac_txd0 */
1661					<3 RK_PA4 RK_FUNC_1 &pcfg_pull_none_13ma>;
1662			};
1663		};
1664
1665		i2c0 {
1666			i2c0_xfer: i2c0-xfer {
1667				rockchip,pins =
1668					<1 RK_PB7 RK_FUNC_2 &pcfg_pull_none>,
1669					<1 RK_PC0 RK_FUNC_2 &pcfg_pull_none>;
1670			};
1671		};
1672
1673		i2c1 {
1674			i2c1_xfer: i2c1-xfer {
1675				rockchip,pins =
1676					<4 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
1677					<4 RK_PA1 RK_FUNC_1 &pcfg_pull_none>;
1678			};
1679		};
1680
1681		i2c2 {
1682			i2c2_xfer: i2c2-xfer {
1683				rockchip,pins =
1684					<2 RK_PA1 RK_FUNC_2 &pcfg_pull_none_12ma>,
1685					<2 RK_PA0 RK_FUNC_2 &pcfg_pull_none_12ma>;
1686			};
1687		};
1688
1689		i2c3 {
1690			i2c3_xfer: i2c3-xfer {
1691				rockchip,pins =
1692					<4 RK_PC1 RK_FUNC_1 &pcfg_pull_none>,
1693					<4 RK_PC0 RK_FUNC_1 &pcfg_pull_none>;
1694			};
1695		};
1696
1697		i2c4 {
1698			i2c4_xfer: i2c4-xfer {
1699				rockchip,pins =
1700					<1 RK_PB4 RK_FUNC_1 &pcfg_pull_none>,
1701					<1 RK_PB3 RK_FUNC_1 &pcfg_pull_none>;
1702			};
1703		};
1704
1705		i2c5 {
1706			i2c5_xfer: i2c5-xfer {
1707				rockchip,pins =
1708					<3 RK_PB3 RK_FUNC_2 &pcfg_pull_none>,
1709					<3 RK_PB2 RK_FUNC_2 &pcfg_pull_none>;
1710			};
1711		};
1712
1713		i2c6 {
1714			i2c6_xfer: i2c6-xfer {
1715				rockchip,pins =
1716					<2 RK_PB2 RK_FUNC_2 &pcfg_pull_none>,
1717					<2 RK_PB1 RK_FUNC_2 &pcfg_pull_none>;
1718			};
1719		};
1720
1721		i2c7 {
1722			i2c7_xfer: i2c7-xfer {
1723				rockchip,pins =
1724					<2 RK_PB0 RK_FUNC_2 &pcfg_pull_none>,
1725					<2 RK_PA7 RK_FUNC_2 &pcfg_pull_none>;
1726			};
1727		};
1728
1729		i2c8 {
1730			i2c8_xfer: i2c8-xfer {
1731				rockchip,pins =
1732					<1 RK_PC5 RK_FUNC_1 &pcfg_pull_none>,
1733					<1 RK_PC4 RK_FUNC_1 &pcfg_pull_none>;
1734			};
1735		};
1736
1737		i2s0 {
1738			i2s0_8ch_bus: i2s0-8ch-bus {
1739				rockchip,pins =
1740					<3 RK_PD0 RK_FUNC_1 &pcfg_pull_none>,
1741					<3 RK_PD1 RK_FUNC_1 &pcfg_pull_none>,
1742					<3 RK_PD2 RK_FUNC_1 &pcfg_pull_none>,
1743					<3 RK_PD3 RK_FUNC_1 &pcfg_pull_none>,
1744					<3 RK_PD4 RK_FUNC_1 &pcfg_pull_none>,
1745					<3 RK_PD5 RK_FUNC_1 &pcfg_pull_none>,
1746					<3 RK_PD6 RK_FUNC_1 &pcfg_pull_none>,
1747					<3 RK_PD7 RK_FUNC_1 &pcfg_pull_none>,
1748					<4 RK_PA0 RK_FUNC_1 &pcfg_pull_none>;
1749			};
1750		};
1751
1752		i2s1 {
1753			i2s1_2ch_bus: i2s1-2ch-bus {
1754				rockchip,pins =
1755					<4 RK_PA3 RK_FUNC_1 &pcfg_pull_none>,
1756					<4 RK_PA4 RK_FUNC_1 &pcfg_pull_none>,
1757					<4 RK_PA5 RK_FUNC_1 &pcfg_pull_none>,
1758					<4 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
1759					<4 RK_PA7 RK_FUNC_1 &pcfg_pull_none>;
1760			};
1761		};
1762
1763		sdio0 {
1764			sdio0_bus1: sdio0-bus1 {
1765				rockchip,pins =
1766					<2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>;
1767			};
1768
1769			sdio0_bus4: sdio0-bus4 {
1770				rockchip,pins =
1771					<2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>,
1772					<2 RK_PC5 RK_FUNC_1 &pcfg_pull_up>,
1773					<2 RK_PC6 RK_FUNC_1 &pcfg_pull_up>,
1774					<2 RK_PC7 RK_FUNC_1 &pcfg_pull_up>;
1775			};
1776
1777			sdio0_cmd: sdio0-cmd {
1778				rockchip,pins =
1779					<2 RK_PD0 RK_FUNC_1 &pcfg_pull_up>;
1780			};
1781
1782			sdio0_clk: sdio0-clk {
1783				rockchip,pins =
1784					<2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
1785			};
1786
1787			sdio0_cd: sdio0-cd {
1788				rockchip,pins =
1789					<2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>;
1790			};
1791
1792			sdio0_pwr: sdio0-pwr {
1793				rockchip,pins =
1794					<2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>;
1795			};
1796
1797			sdio0_bkpwr: sdio0-bkpwr {
1798				rockchip,pins =
1799					<2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>;
1800			};
1801
1802			sdio0_wp: sdio0-wp {
1803				rockchip,pins =
1804					<0 RK_PA3 RK_FUNC_1 &pcfg_pull_up>;
1805			};
1806
1807			sdio0_int: sdio0-int {
1808				rockchip,pins =
1809					<0 RK_PA4 RK_FUNC_1 &pcfg_pull_up>;
1810			};
1811		};
1812
1813		sdmmc {
1814			sdmmc_bus1: sdmmc-bus1 {
1815				rockchip,pins =
1816					<4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>;
1817			};
1818
1819			sdmmc_bus4: sdmmc-bus4 {
1820				rockchip,pins =
1821					<4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>,
1822					<4 RK_PB1 RK_FUNC_1 &pcfg_pull_up>,
1823					<4 RK_PB2 RK_FUNC_1 &pcfg_pull_up>,
1824					<4 RK_PB3 RK_FUNC_1 &pcfg_pull_up>;
1825			};
1826
1827			sdmmc_clk: sdmmc-clk {
1828				rockchip,pins =
1829					<4 RK_PB4 RK_FUNC_1 &pcfg_pull_none>;
1830			};
1831
1832			sdmmc_cmd: sdmmc-cmd {
1833				rockchip,pins =
1834					<4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>;
1835			};
1836
1837			sdmmc_cd: sdmcc-cd {
1838				rockchip,pins =
1839					<0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>;
1840			};
1841
1842			sdmmc_wp: sdmmc-wp {
1843				rockchip,pins =
1844					<0 RK_PB0 RK_FUNC_1 &pcfg_pull_up>;
1845			};
1846		};
1847
1848		sleep {
1849			ap_pwroff: ap-pwroff {
1850				rockchip,pins = <1 RK_PA5 RK_FUNC_1 &pcfg_pull_none>;
1851			};
1852
1853			ddrio_pwroff: ddrio-pwroff {
1854				rockchip,pins = <0 RK_PA1 RK_FUNC_1 &pcfg_pull_none>;
1855			};
1856		};
1857
1858		spdif {
1859			spdif_bus: spdif-bus {
1860				rockchip,pins =
1861					<4 RK_PC5 RK_FUNC_1 &pcfg_pull_none>;
1862			};
1863
1864			spdif_bus_1: spdif-bus-1 {
1865				rockchip,pins =
1866					<3 RK_PC0 RK_FUNC_3 &pcfg_pull_none>;
1867			};
1868		};
1869
1870		spi0 {
1871			spi0_clk: spi0-clk {
1872				rockchip,pins =
1873					<3 RK_PA6 RK_FUNC_2 &pcfg_pull_up>;
1874			};
1875			spi0_cs0: spi0-cs0 {
1876				rockchip,pins =
1877					<3 RK_PA7 RK_FUNC_2 &pcfg_pull_up>;
1878			};
1879			spi0_cs1: spi0-cs1 {
1880				rockchip,pins =
1881					<3 RK_PB0 RK_FUNC_2 &pcfg_pull_up>;
1882			};
1883			spi0_tx: spi0-tx {
1884				rockchip,pins =
1885					<3 RK_PA5 RK_FUNC_2 &pcfg_pull_up>;
1886			};
1887			spi0_rx: spi0-rx {
1888				rockchip,pins =
1889					<3 RK_PA4 RK_FUNC_2 &pcfg_pull_up>;
1890			};
1891		};
1892
1893		spi1 {
1894			spi1_clk: spi1-clk {
1895				rockchip,pins =
1896					<1 RK_PB1 RK_FUNC_2 &pcfg_pull_up>;
1897			};
1898			spi1_cs0: spi1-cs0 {
1899				rockchip,pins =
1900					<1 RK_PB2 RK_FUNC_2 &pcfg_pull_up>;
1901			};
1902			spi1_rx: spi1-rx {
1903				rockchip,pins =
1904					<1 RK_PA7 RK_FUNC_2 &pcfg_pull_up>;
1905			};
1906			spi1_tx: spi1-tx {
1907				rockchip,pins =
1908					<1 RK_PB0 RK_FUNC_2 &pcfg_pull_up>;
1909			};
1910		};
1911
1912		spi2 {
1913			spi2_clk: spi2-clk {
1914				rockchip,pins =
1915					<2 RK_PB3 RK_FUNC_1 &pcfg_pull_up>;
1916			};
1917			spi2_cs0: spi2-cs0 {
1918				rockchip,pins =
1919					<2 RK_PB4 RK_FUNC_1 &pcfg_pull_up>;
1920			};
1921			spi2_rx: spi2-rx {
1922				rockchip,pins =
1923					<2 RK_PB1 RK_FUNC_1 &pcfg_pull_up>;
1924			};
1925			spi2_tx: spi2-tx {
1926				rockchip,pins =
1927					<2 RK_PB2 RK_FUNC_1 &pcfg_pull_up>;
1928			};
1929		};
1930
1931		spi3 {
1932			spi3_clk: spi3-clk {
1933				rockchip,pins =
1934					<1 RK_PC1 RK_FUNC_1 &pcfg_pull_up>;
1935			};
1936			spi3_cs0: spi3-cs0 {
1937				rockchip,pins =
1938					<1 RK_PC2 RK_FUNC_1 &pcfg_pull_up>;
1939			};
1940			spi3_rx: spi3-rx {
1941				rockchip,pins =
1942					<1 RK_PB7 RK_FUNC_1 &pcfg_pull_up>;
1943			};
1944			spi3_tx: spi3-tx {
1945				rockchip,pins =
1946					<1 RK_PC0 RK_FUNC_1 &pcfg_pull_up>;
1947			};
1948		};
1949
1950		spi4 {
1951			spi4_clk: spi4-clk {
1952				rockchip,pins =
1953					<3 RK_PA2 RK_FUNC_2 &pcfg_pull_up>;
1954			};
1955			spi4_cs0: spi4-cs0 {
1956				rockchip,pins =
1957					<3 RK_PA3 RK_FUNC_2 &pcfg_pull_up>;
1958			};
1959			spi4_rx: spi4-rx {
1960				rockchip,pins =
1961					<3 RK_PA0 RK_FUNC_2 &pcfg_pull_up>;
1962			};
1963			spi4_tx: spi4-tx {
1964				rockchip,pins =
1965					<3 RK_PA1 RK_FUNC_2 &pcfg_pull_up>;
1966			};
1967		};
1968
1969		spi5 {
1970			spi5_clk: spi5-clk {
1971				rockchip,pins =
1972					<2 RK_PC6 RK_FUNC_2 &pcfg_pull_up>;
1973			};
1974			spi5_cs0: spi5-cs0 {
1975				rockchip,pins =
1976					<2 RK_PC7 RK_FUNC_2 &pcfg_pull_up>;
1977			};
1978			spi5_rx: spi5-rx {
1979				rockchip,pins =
1980					<2 RK_PC4 RK_FUNC_2 &pcfg_pull_up>;
1981			};
1982			spi5_tx: spi5-tx {
1983				rockchip,pins =
1984					<2 RK_PC5 RK_FUNC_2 &pcfg_pull_up>;
1985			};
1986		};
1987
1988		tsadc {
1989			otp_gpio: otp-gpio {
1990				rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
1991			};
1992
1993			otp_out: otp-out {
1994				rockchip,pins = <1 RK_PA6 RK_FUNC_1 &pcfg_pull_none>;
1995			};
1996		};
1997
1998		uart0 {
1999			uart0_xfer: uart0-xfer {
2000				rockchip,pins =
2001					<2 RK_PC0 RK_FUNC_1 &pcfg_pull_up>,
2002					<2 RK_PC1 RK_FUNC_1 &pcfg_pull_none>;
2003			};
2004
2005			uart0_cts: uart0-cts {
2006				rockchip,pins =
2007					<2 RK_PC2 RK_FUNC_1 &pcfg_pull_none>;
2008			};
2009
2010			uart0_rts: uart0-rts {
2011				rockchip,pins =
2012					<2 RK_PC3 RK_FUNC_1 &pcfg_pull_none>;
2013			};
2014		};
2015
2016		uart1 {
2017			uart1_xfer: uart1-xfer {
2018				rockchip,pins =
2019					<3 RK_PB4 RK_FUNC_2 &pcfg_pull_up>,
2020					<3 RK_PB5 RK_FUNC_2 &pcfg_pull_none>;
2021			};
2022		};
2023
2024		uart2a {
2025			uart2a_xfer: uart2a-xfer {
2026				rockchip,pins =
2027					<4 RK_PB0 RK_FUNC_2 &pcfg_pull_up>,
2028					<4 RK_PB1 RK_FUNC_2 &pcfg_pull_none>;
2029			};
2030		};
2031
2032		uart2b {
2033			uart2b_xfer: uart2b-xfer {
2034				rockchip,pins =
2035					<4 RK_PC0 RK_FUNC_2 &pcfg_pull_up>,
2036					<4 RK_PC1 RK_FUNC_2 &pcfg_pull_none>;
2037			};
2038		};
2039
2040		uart2c {
2041			uart2c_xfer: uart2c-xfer {
2042				rockchip,pins =
2043					<4 RK_PC3 RK_FUNC_1 &pcfg_pull_up>,
2044					<4 RK_PC4 RK_FUNC_1 &pcfg_pull_none>;
2045			};
2046		};
2047
2048		uart3 {
2049			uart3_xfer: uart3-xfer {
2050				rockchip,pins =
2051					<3 RK_PB6 RK_FUNC_2 &pcfg_pull_up>,
2052					<3 RK_PB7 RK_FUNC_2 &pcfg_pull_none>;
2053			};
2054
2055			uart3_cts: uart3-cts {
2056				rockchip,pins =
2057					<3 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
2058			};
2059
2060			uart3_rts: uart3-rts {
2061				rockchip,pins =
2062					<3 RK_PC3 RK_FUNC_2 &pcfg_pull_none>;
2063			};
2064		};
2065
2066		uart4 {
2067			uart4_xfer: uart4-xfer {
2068				rockchip,pins =
2069					<1 RK_PA7 RK_FUNC_1 &pcfg_pull_up>,
2070					<1 RK_PB0 RK_FUNC_1 &pcfg_pull_none>;
2071			};
2072		};
2073
2074		uarthdcp {
2075			uarthdcp_xfer: uarthdcp-xfer {
2076				rockchip,pins =
2077					<4 RK_PC5 RK_FUNC_2 &pcfg_pull_up>,
2078					<4 RK_PC6 RK_FUNC_2 &pcfg_pull_none>;
2079			};
2080		};
2081
2082		pwm0 {
2083			pwm0_pin: pwm0-pin {
2084				rockchip,pins =
2085					<4 RK_PC2 RK_FUNC_1 &pcfg_pull_none>;
2086			};
2087
2088			vop0_pwm_pin: vop0-pwm-pin {
2089				rockchip,pins =
2090					<4 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
2091			};
2092		};
2093
2094		pwm1 {
2095			pwm1_pin: pwm1-pin {
2096				rockchip,pins =
2097					<4 RK_PC6 RK_FUNC_1 &pcfg_pull_none>;
2098			};
2099
2100			vop1_pwm_pin: vop1-pwm-pin {
2101				rockchip,pins =
2102					<4 RK_PC2 RK_FUNC_3 &pcfg_pull_none>;
2103			};
2104		};
2105
2106		pwm2 {
2107			pwm2_pin: pwm2-pin {
2108				rockchip,pins =
2109					<1 RK_PC3 RK_FUNC_1 &pcfg_pull_none>;
2110			};
2111		};
2112
2113		pwm3a {
2114			pwm3a_pin: pwm3a-pin {
2115				rockchip,pins =
2116					<0 RK_PA6 RK_FUNC_1 &pcfg_pull_none>;
2117			};
2118		};
2119
2120		pwm3b {
2121			pwm3b_pin: pwm3b-pin {
2122				rockchip,pins =
2123					<1 RK_PB6 RK_FUNC_1 &pcfg_pull_none>;
2124			};
2125		};
2126
2127		hdmi {
2128			hdmi_i2c_xfer: hdmi-i2c-xfer {
2129				rockchip,pins =
2130					<4 RK_PC1 RK_FUNC_3 &pcfg_pull_none>,
2131					<4 RK_PC0 RK_FUNC_3 &pcfg_pull_none>;
2132			};
2133
2134			hdmi_cec: hdmi-cec {
2135				rockchip,pins =
2136					<4 RK_PC7 RK_FUNC_1 &pcfg_pull_none>;
2137			};
2138		};
2139
2140		pcie {
2141			pcie_clkreqn: pci-clkreqn {
2142				rockchip,pins =
2143					<2 RK_PD2 RK_FUNC_2 &pcfg_pull_none>;
2144			};
2145
2146			pcie_clkreqnb: pci-clkreqnb {
2147				rockchip,pins =
2148					<4 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
2149			};
2150
2151			pcie_clkreqn_cpm: pci-clkreqn-cpm {
2152				rockchip,pins =
2153					<2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
2154			};
2155
2156			pcie_clkreqnb_cpm: pci-clkreqnb-cpm {
2157				rockchip,pins =
2158					<4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
2159			};
2160		};
2161
2162	};
2163};
2164