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