xref: /linux/arch/arm64/boot/dts/rockchip/rk3399.dtsi (revision 335bbdf01d25517ae832ac1807fd8323c1f4f3b9)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
4 */
5
6#include <dt-bindings/clock/rk3399-cru.h>
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/pinctrl/rockchip.h>
11#include <dt-bindings/power/rk3399-power.h>
12#include <dt-bindings/thermal/thermal.h>
13
14/ {
15	compatible = "rockchip,rk3399";
16
17	interrupt-parent = <&gic>;
18	#address-cells = <2>;
19	#size-cells = <2>;
20
21	aliases {
22		ethernet0 = &gmac;
23		i2c0 = &i2c0;
24		i2c1 = &i2c1;
25		i2c2 = &i2c2;
26		i2c3 = &i2c3;
27		i2c4 = &i2c4;
28		i2c5 = &i2c5;
29		i2c6 = &i2c6;
30		i2c7 = &i2c7;
31		i2c8 = &i2c8;
32		serial0 = &uart0;
33		serial1 = &uart1;
34		serial2 = &uart2;
35		serial3 = &uart3;
36		serial4 = &uart4;
37	};
38
39	cpus {
40		#address-cells = <2>;
41		#size-cells = <0>;
42
43		cpu-map {
44			cluster0 {
45				core0 {
46					cpu = <&cpu_l0>;
47				};
48				core1 {
49					cpu = <&cpu_l1>;
50				};
51				core2 {
52					cpu = <&cpu_l2>;
53				};
54				core3 {
55					cpu = <&cpu_l3>;
56				};
57			};
58
59			cluster1 {
60				core0 {
61					cpu = <&cpu_b0>;
62				};
63				core1 {
64					cpu = <&cpu_b1>;
65				};
66			};
67		};
68
69		cpu_l0: cpu@0 {
70			device_type = "cpu";
71			compatible = "arm,cortex-a53";
72			reg = <0x0 0x0>;
73			enable-method = "psci";
74			capacity-dmips-mhz = <485>;
75			clocks = <&cru ARMCLKL>;
76			#cooling-cells = <2>; /* min followed by max */
77			dynamic-power-coefficient = <100>;
78			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
79		};
80
81		cpu_l1: cpu@1 {
82			device_type = "cpu";
83			compatible = "arm,cortex-a53";
84			reg = <0x0 0x1>;
85			enable-method = "psci";
86			capacity-dmips-mhz = <485>;
87			clocks = <&cru ARMCLKL>;
88			#cooling-cells = <2>; /* min followed by max */
89			dynamic-power-coefficient = <100>;
90			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
91		};
92
93		cpu_l2: cpu@2 {
94			device_type = "cpu";
95			compatible = "arm,cortex-a53";
96			reg = <0x0 0x2>;
97			enable-method = "psci";
98			capacity-dmips-mhz = <485>;
99			clocks = <&cru ARMCLKL>;
100			#cooling-cells = <2>; /* min followed by max */
101			dynamic-power-coefficient = <100>;
102			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
103		};
104
105		cpu_l3: cpu@3 {
106			device_type = "cpu";
107			compatible = "arm,cortex-a53";
108			reg = <0x0 0x3>;
109			enable-method = "psci";
110			capacity-dmips-mhz = <485>;
111			clocks = <&cru ARMCLKL>;
112			#cooling-cells = <2>; /* min followed by max */
113			dynamic-power-coefficient = <100>;
114			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
115		};
116
117		cpu_b0: cpu@100 {
118			device_type = "cpu";
119			compatible = "arm,cortex-a72";
120			reg = <0x0 0x100>;
121			enable-method = "psci";
122			capacity-dmips-mhz = <1024>;
123			clocks = <&cru ARMCLKB>;
124			#cooling-cells = <2>; /* min followed by max */
125			dynamic-power-coefficient = <436>;
126			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
127
128			thermal-idle {
129				#cooling-cells = <2>;
130				duration-us = <10000>;
131				exit-latency-us = <500>;
132			};
133		};
134
135		cpu_b1: cpu@101 {
136			device_type = "cpu";
137			compatible = "arm,cortex-a72";
138			reg = <0x0 0x101>;
139			enable-method = "psci";
140			capacity-dmips-mhz = <1024>;
141			clocks = <&cru ARMCLKB>;
142			#cooling-cells = <2>; /* min followed by max */
143			dynamic-power-coefficient = <436>;
144			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
145
146			thermal-idle {
147				#cooling-cells = <2>;
148				duration-us = <10000>;
149				exit-latency-us = <500>;
150			};
151		};
152
153		idle-states {
154			entry-method = "psci";
155
156			CPU_SLEEP: cpu-sleep {
157				compatible = "arm,idle-state";
158				local-timer-stop;
159				arm,psci-suspend-param = <0x0010000>;
160				entry-latency-us = <120>;
161				exit-latency-us = <250>;
162				min-residency-us = <900>;
163			};
164
165			CLUSTER_SLEEP: cluster-sleep {
166				compatible = "arm,idle-state";
167				local-timer-stop;
168				arm,psci-suspend-param = <0x1010000>;
169				entry-latency-us = <400>;
170				exit-latency-us = <500>;
171				min-residency-us = <2000>;
172			};
173		};
174	};
175
176	display-subsystem {
177		compatible = "rockchip,display-subsystem";
178		ports = <&vopl_out>, <&vopb_out>;
179	};
180
181	dmc: memory-controller {
182		compatible = "rockchip,rk3399-dmc";
183		rockchip,pmu = <&pmugrf>;
184		devfreq-events = <&dfi>;
185		clocks = <&cru SCLK_DDRC>;
186		clock-names = "dmc_clk";
187		status = "disabled";
188	};
189
190	pmu_a53 {
191		compatible = "arm,cortex-a53-pmu";
192		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
193	};
194
195	pmu_a72 {
196		compatible = "arm,cortex-a72-pmu";
197		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
198	};
199
200	psci {
201		compatible = "arm,psci-1.0";
202		method = "smc";
203	};
204
205	timer {
206		compatible = "arm,armv8-timer";
207		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
208			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
209			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
210			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
211		arm,no-tick-in-suspend;
212	};
213
214	xin24m: xin24m {
215		compatible = "fixed-clock";
216		clock-frequency = <24000000>;
217		clock-output-names = "xin24m";
218		#clock-cells = <0>;
219	};
220
221	pcie0: pcie@f8000000 {
222		compatible = "rockchip,rk3399-pcie";
223		reg = <0x0 0xf8000000 0x0 0x2000000>,
224		      <0x0 0xfd000000 0x0 0x1000000>;
225		reg-names = "axi-base", "apb-base";
226		device_type = "pci";
227		#address-cells = <3>;
228		#size-cells = <2>;
229		#interrupt-cells = <1>;
230		aspm-no-l0s;
231		bus-range = <0x0 0x1f>;
232		clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
233			 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
234		clock-names = "aclk", "aclk-perf",
235			      "hclk", "pm";
236		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
237			     <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
238			     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
239		interrupt-names = "sys", "legacy", "client";
240		interrupt-map-mask = <0 0 0 7>;
241		interrupt-map = <0 0 0 1 &pcie0_intc 0>,
242				<0 0 0 2 &pcie0_intc 1>,
243				<0 0 0 3 &pcie0_intc 2>,
244				<0 0 0 4 &pcie0_intc 3>;
245		max-link-speed = <1>;
246		msi-map = <0x0 &its 0x0 0x1000>;
247		phys = <&pcie_phy 0>, <&pcie_phy 1>,
248		       <&pcie_phy 2>, <&pcie_phy 3>;
249		phy-names = "pcie-phy-0", "pcie-phy-1",
250			    "pcie-phy-2", "pcie-phy-3";
251		ranges = <0x82000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
252			 <0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
253		resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
254			 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
255			 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
256			 <&cru SRST_A_PCIE>;
257		reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
258			      "pm", "pclk", "aclk";
259		status = "disabled";
260
261		pcie0_intc: interrupt-controller {
262			interrupt-controller;
263			#address-cells = <0>;
264			#interrupt-cells = <1>;
265		};
266	};
267
268	pcie0_ep: pcie-ep@f8000000 {
269		compatible = "rockchip,rk3399-pcie-ep";
270		reg = <0x0 0xfd000000 0x0 0x1000000>,
271		      <0x0 0xfa000000 0x0 0x2000000>;
272		reg-names = "apb-base", "mem-base";
273		clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
274			 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
275		clock-names = "aclk", "aclk-perf",
276			      "hclk", "pm";
277		max-functions = /bits/ 8 <8>;
278		num-lanes = <4>;
279		resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
280			 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
281			 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
282			 <&cru SRST_A_PCIE>;
283		reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
284			      "pm", "pclk", "aclk";
285		phys = <&pcie_phy 0>, <&pcie_phy 1>,
286		       <&pcie_phy 2>, <&pcie_phy 3>;
287		phy-names = "pcie-phy-0", "pcie-phy-1",
288			    "pcie-phy-2", "pcie-phy-3";
289		rockchip,max-outbound-regions = <32>;
290		pinctrl-names = "default";
291		pinctrl-0 = <&pcie_clkreqnb_cpm>;
292		status = "disabled";
293	};
294
295	gmac: ethernet@fe300000 {
296		compatible = "rockchip,rk3399-gmac";
297		reg = <0x0 0xfe300000 0x0 0x10000>;
298		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
299		interrupt-names = "macirq";
300		clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
301			 <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
302			 <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
303			 <&cru PCLK_GMAC>;
304		clock-names = "stmmaceth", "mac_clk_rx",
305			      "mac_clk_tx", "clk_mac_ref",
306			      "clk_mac_refout", "aclk_mac",
307			      "pclk_mac";
308		power-domains = <&power RK3399_PD_GMAC>;
309		resets = <&cru SRST_A_GMAC>;
310		reset-names = "stmmaceth";
311		rockchip,grf = <&grf>;
312		snps,txpbl = <0x4>;
313		status = "disabled";
314	};
315
316	sdio0: mmc@fe310000 {
317		compatible = "rockchip,rk3399-dw-mshc",
318			     "rockchip,rk3288-dw-mshc";
319		reg = <0x0 0xfe310000 0x0 0x4000>;
320		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
321		max-frequency = <150000000>;
322		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
323			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
324		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
325		fifo-depth = <0x100>;
326		power-domains = <&power RK3399_PD_SDIOAUDIO>;
327		resets = <&cru SRST_SDIO0>;
328		reset-names = "reset";
329		status = "disabled";
330	};
331
332	sdmmc: mmc@fe320000 {
333		compatible = "rockchip,rk3399-dw-mshc",
334			     "rockchip,rk3288-dw-mshc";
335		reg = <0x0 0xfe320000 0x0 0x4000>;
336		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
337		max-frequency = <150000000>;
338		assigned-clocks = <&cru HCLK_SD>;
339		assigned-clock-rates = <200000000>;
340		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
341			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
342		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
343		fifo-depth = <0x100>;
344		power-domains = <&power RK3399_PD_SD>;
345		resets = <&cru SRST_SDMMC>;
346		reset-names = "reset";
347		status = "disabled";
348	};
349
350	sdhci: mmc@fe330000 {
351		compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
352		reg = <0x0 0xfe330000 0x0 0x10000>;
353		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
354		arasan,soc-ctl-syscon = <&grf>;
355		assigned-clocks = <&cru SCLK_EMMC>;
356		assigned-clock-rates = <200000000>;
357		clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
358		clock-names = "clk_xin", "clk_ahb";
359		clock-output-names = "emmc_cardclock";
360		#clock-cells = <0>;
361		phys = <&emmc_phy>;
362		phy-names = "phy_arasan";
363		power-domains = <&power RK3399_PD_EMMC>;
364		disable-cqe-dcmd;
365		status = "disabled";
366	};
367
368	usb_host0_ehci: usb@fe380000 {
369		compatible = "generic-ehci";
370		reg = <0x0 0xfe380000 0x0 0x20000>;
371		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>;
372		clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
373			 <&u2phy0>;
374		phys = <&u2phy0_host>;
375		phy-names = "usb";
376		status = "disabled";
377	};
378
379	usb_host0_ohci: usb@fe3a0000 {
380		compatible = "generic-ohci";
381		reg = <0x0 0xfe3a0000 0x0 0x20000>;
382		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>;
383		clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
384			 <&u2phy0>;
385		phys = <&u2phy0_host>;
386		phy-names = "usb";
387		status = "disabled";
388	};
389
390	usb_host1_ehci: usb@fe3c0000 {
391		compatible = "generic-ehci";
392		reg = <0x0 0xfe3c0000 0x0 0x20000>;
393		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>;
394		clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
395			 <&u2phy1>;
396		phys = <&u2phy1_host>;
397		phy-names = "usb";
398		status = "disabled";
399	};
400
401	usb_host1_ohci: usb@fe3e0000 {
402		compatible = "generic-ohci";
403		reg = <0x0 0xfe3e0000 0x0 0x20000>;
404		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
405		clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
406			 <&u2phy1>;
407		phys = <&u2phy1_host>;
408		phy-names = "usb";
409		status = "disabled";
410	};
411
412	debug@fe430000 {
413		compatible = "arm,coresight-cpu-debug", "arm,primecell";
414		reg = <0 0xfe430000 0 0x1000>;
415		clocks = <&cru PCLK_COREDBG_L>;
416		clock-names = "apb_pclk";
417		cpu = <&cpu_l0>;
418	};
419
420	debug@fe432000 {
421		compatible = "arm,coresight-cpu-debug", "arm,primecell";
422		reg = <0 0xfe432000 0 0x1000>;
423		clocks = <&cru PCLK_COREDBG_L>;
424		clock-names = "apb_pclk";
425		cpu = <&cpu_l1>;
426	};
427
428	debug@fe434000 {
429		compatible = "arm,coresight-cpu-debug", "arm,primecell";
430		reg = <0 0xfe434000 0 0x1000>;
431		clocks = <&cru PCLK_COREDBG_L>;
432		clock-names = "apb_pclk";
433		cpu = <&cpu_l2>;
434	};
435
436	debug@fe436000 {
437		compatible = "arm,coresight-cpu-debug", "arm,primecell";
438		reg = <0 0xfe436000 0 0x1000>;
439		clocks = <&cru PCLK_COREDBG_L>;
440		clock-names = "apb_pclk";
441		cpu = <&cpu_l3>;
442	};
443
444	debug@fe610000 {
445		compatible = "arm,coresight-cpu-debug", "arm,primecell";
446		reg = <0 0xfe610000 0 0x1000>;
447		clocks = <&cru PCLK_COREDBG_B>;
448		clock-names = "apb_pclk";
449		cpu = <&cpu_b0>;
450	};
451
452	debug@fe710000 {
453		compatible = "arm,coresight-cpu-debug", "arm,primecell";
454		reg = <0 0xfe710000 0 0x1000>;
455		clocks = <&cru PCLK_COREDBG_B>;
456		clock-names = "apb_pclk";
457		cpu = <&cpu_b1>;
458	};
459
460	usbdrd3_0: usb@fe800000 {
461		compatible = "rockchip,rk3399-dwc3";
462		#address-cells = <2>;
463		#size-cells = <2>;
464		ranges;
465		clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
466			 <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
467			 <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
468		clock-names = "ref_clk", "suspend_clk",
469			      "bus_clk", "aclk_usb3_rksoc_axi_perf",
470			      "aclk_usb3", "grf_clk";
471		resets = <&cru SRST_A_USB3_OTG0>;
472		reset-names = "usb3-otg";
473		status = "disabled";
474
475		usbdrd_dwc3_0: usb@fe800000 {
476			compatible = "snps,dwc3";
477			reg = <0x0 0xfe800000 0x0 0x100000>;
478			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
479			clocks = <&cru SCLK_USB3OTG0_REF>, <&cru ACLK_USB3OTG0>,
480				 <&cru SCLK_USB3OTG0_SUSPEND>;
481			clock-names = "ref", "bus_early", "suspend";
482			dr_mode = "otg";
483			phys = <&u2phy0_otg>, <&tcphy0_usb3>;
484			phy-names = "usb2-phy", "usb3-phy";
485			phy_type = "utmi_wide";
486			snps,dis_enblslpm_quirk;
487			snps,dis-u2-freeclk-exists-quirk;
488			snps,dis_u2_susphy_quirk;
489			snps,dis-del-phy-power-chg-quirk;
490			snps,dis-tx-ipgap-linecheck-quirk;
491			power-domains = <&power RK3399_PD_USB3>;
492			status = "disabled";
493		};
494	};
495
496	usbdrd3_1: usb@fe900000 {
497		compatible = "rockchip,rk3399-dwc3";
498		#address-cells = <2>;
499		#size-cells = <2>;
500		ranges;
501		clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
502			 <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
503			 <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
504		clock-names = "ref_clk", "suspend_clk",
505			      "bus_clk", "aclk_usb3_rksoc_axi_perf",
506			      "aclk_usb3", "grf_clk";
507		resets = <&cru SRST_A_USB3_OTG1>;
508		reset-names = "usb3-otg";
509		status = "disabled";
510
511		usbdrd_dwc3_1: usb@fe900000 {
512			compatible = "snps,dwc3";
513			reg = <0x0 0xfe900000 0x0 0x100000>;
514			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
515			clocks = <&cru SCLK_USB3OTG1_REF>, <&cru ACLK_USB3OTG1>,
516				 <&cru SCLK_USB3OTG1_SUSPEND>;
517			clock-names = "ref", "bus_early", "suspend";
518			dr_mode = "otg";
519			phys = <&u2phy1_otg>, <&tcphy1_usb3>;
520			phy-names = "usb2-phy", "usb3-phy";
521			phy_type = "utmi_wide";
522			snps,dis_enblslpm_quirk;
523			snps,dis-u2-freeclk-exists-quirk;
524			snps,dis_u2_susphy_quirk;
525			snps,dis-del-phy-power-chg-quirk;
526			snps,dis-tx-ipgap-linecheck-quirk;
527			power-domains = <&power RK3399_PD_USB3>;
528			status = "disabled";
529		};
530	};
531
532	cdn_dp: dp@fec00000 {
533		compatible = "rockchip,rk3399-cdn-dp";
534		reg = <0x0 0xfec00000 0x0 0x100000>;
535		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
536		assigned-clocks = <&cru SCLK_DP_CORE>, <&cru SCLK_SPDIF_REC_DPTX>;
537		assigned-clock-rates = <100000000>, <200000000>;
538		clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>,
539			 <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>;
540		clock-names = "core-clk", "pclk", "spdif", "grf";
541		phys = <&tcphy0_dp>, <&tcphy1_dp>;
542		power-domains = <&power RK3399_PD_HDCP>;
543		resets = <&cru SRST_DPTX_SPDIF_REC>, <&cru SRST_P_UPHY0_DPTX>,
544			 <&cru SRST_P_UPHY0_APB>, <&cru SRST_DP_CORE>;
545		reset-names = "spdif", "dptx", "apb", "core";
546		rockchip,grf = <&grf>;
547		#sound-dai-cells = <1>;
548		status = "disabled";
549
550		ports {
551			dp_in: port {
552				#address-cells = <1>;
553				#size-cells = <0>;
554
555				dp_in_vopb: endpoint@0 {
556					reg = <0>;
557					remote-endpoint = <&vopb_out_dp>;
558				};
559
560				dp_in_vopl: endpoint@1 {
561					reg = <1>;
562					remote-endpoint = <&vopl_out_dp>;
563				};
564			};
565		};
566	};
567
568	gic: interrupt-controller@fee00000 {
569		compatible = "arm,gic-v3";
570		#interrupt-cells = <4>;
571		#address-cells = <2>;
572		#size-cells = <2>;
573		ranges;
574		interrupt-controller;
575
576		reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
577		      <0x0 0xfef00000 0 0xc0000>, /* GICR */
578		      <0x0 0xfff00000 0 0x10000>, /* GICC */
579		      <0x0 0xfff10000 0 0x10000>, /* GICH */
580		      <0x0 0xfff20000 0 0x10000>; /* GICV */
581		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
582		its: msi-controller@fee20000 {
583			compatible = "arm,gic-v3-its";
584			msi-controller;
585			#msi-cells = <1>;
586			reg = <0x0 0xfee20000 0x0 0x20000>;
587		};
588
589		ppi-partitions {
590			ppi_cluster0: interrupt-partition-0 {
591				affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
592			};
593
594			ppi_cluster1: interrupt-partition-1 {
595				affinity = <&cpu_b0 &cpu_b1>;
596			};
597		};
598	};
599
600	saradc: saradc@ff100000 {
601		compatible = "rockchip,rk3399-saradc";
602		reg = <0x0 0xff100000 0x0 0x100>;
603		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
604		#io-channel-cells = <1>;
605		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
606		clock-names = "saradc", "apb_pclk";
607		resets = <&cru SRST_P_SARADC>;
608		reset-names = "saradc-apb";
609		status = "disabled";
610	};
611
612	crypto0: crypto@ff8b0000 {
613		compatible = "rockchip,rk3399-crypto";
614		reg = <0x0 0xff8b0000 0x0 0x4000>;
615		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH 0>;
616		clocks = <&cru HCLK_M_CRYPTO0>, <&cru HCLK_S_CRYPTO0>, <&cru SCLK_CRYPTO0>;
617		clock-names = "hclk_master", "hclk_slave", "sclk";
618		resets = <&cru SRST_CRYPTO0>, <&cru SRST_CRYPTO0_S>, <&cru SRST_CRYPTO0_M>;
619		reset-names = "master", "slave", "crypto-rst";
620	};
621
622	crypto1: crypto@ff8b8000 {
623		compatible = "rockchip,rk3399-crypto";
624		reg = <0x0 0xff8b8000 0x0 0x4000>;
625		interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH 0>;
626		clocks = <&cru HCLK_M_CRYPTO1>, <&cru HCLK_S_CRYPTO1>, <&cru SCLK_CRYPTO1>;
627		clock-names = "hclk_master", "hclk_slave", "sclk";
628		resets = <&cru SRST_CRYPTO1>, <&cru SRST_CRYPTO1_S>, <&cru SRST_CRYPTO1_M>;
629		reset-names = "master", "slave", "crypto-rst";
630	};
631
632	i2c1: i2c@ff110000 {
633		compatible = "rockchip,rk3399-i2c";
634		reg = <0x0 0xff110000 0x0 0x1000>;
635		assigned-clocks = <&cru SCLK_I2C1>;
636		assigned-clock-rates = <200000000>;
637		clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
638		clock-names = "i2c", "pclk";
639		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>;
640		pinctrl-names = "default";
641		pinctrl-0 = <&i2c1_xfer>;
642		#address-cells = <1>;
643		#size-cells = <0>;
644		status = "disabled";
645	};
646
647	i2c2: i2c@ff120000 {
648		compatible = "rockchip,rk3399-i2c";
649		reg = <0x0 0xff120000 0x0 0x1000>;
650		assigned-clocks = <&cru SCLK_I2C2>;
651		assigned-clock-rates = <200000000>;
652		clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
653		clock-names = "i2c", "pclk";
654		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>;
655		pinctrl-names = "default";
656		pinctrl-0 = <&i2c2_xfer>;
657		#address-cells = <1>;
658		#size-cells = <0>;
659		status = "disabled";
660	};
661
662	i2c3: i2c@ff130000 {
663		compatible = "rockchip,rk3399-i2c";
664		reg = <0x0 0xff130000 0x0 0x1000>;
665		assigned-clocks = <&cru SCLK_I2C3>;
666		assigned-clock-rates = <200000000>;
667		clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
668		clock-names = "i2c", "pclk";
669		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
670		pinctrl-names = "default";
671		pinctrl-0 = <&i2c3_xfer>;
672		#address-cells = <1>;
673		#size-cells = <0>;
674		status = "disabled";
675	};
676
677	i2c5: i2c@ff140000 {
678		compatible = "rockchip,rk3399-i2c";
679		reg = <0x0 0xff140000 0x0 0x1000>;
680		assigned-clocks = <&cru SCLK_I2C5>;
681		assigned-clock-rates = <200000000>;
682		clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
683		clock-names = "i2c", "pclk";
684		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>;
685		pinctrl-names = "default";
686		pinctrl-0 = <&i2c5_xfer>;
687		#address-cells = <1>;
688		#size-cells = <0>;
689		status = "disabled";
690	};
691
692	i2c6: i2c@ff150000 {
693		compatible = "rockchip,rk3399-i2c";
694		reg = <0x0 0xff150000 0x0 0x1000>;
695		assigned-clocks = <&cru SCLK_I2C6>;
696		assigned-clock-rates = <200000000>;
697		clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
698		clock-names = "i2c", "pclk";
699		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>;
700		pinctrl-names = "default";
701		pinctrl-0 = <&i2c6_xfer>;
702		#address-cells = <1>;
703		#size-cells = <0>;
704		status = "disabled";
705	};
706
707	i2c7: i2c@ff160000 {
708		compatible = "rockchip,rk3399-i2c";
709		reg = <0x0 0xff160000 0x0 0x1000>;
710		assigned-clocks = <&cru SCLK_I2C7>;
711		assigned-clock-rates = <200000000>;
712		clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
713		clock-names = "i2c", "pclk";
714		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>;
715		pinctrl-names = "default";
716		pinctrl-0 = <&i2c7_xfer>;
717		#address-cells = <1>;
718		#size-cells = <0>;
719		status = "disabled";
720	};
721
722	uart0: serial@ff180000 {
723		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
724		reg = <0x0 0xff180000 0x0 0x100>;
725		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
726		clock-names = "baudclk", "apb_pclk";
727		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
728		reg-shift = <2>;
729		reg-io-width = <4>;
730		pinctrl-names = "default";
731		pinctrl-0 = <&uart0_xfer>;
732		status = "disabled";
733	};
734
735	uart1: serial@ff190000 {
736		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
737		reg = <0x0 0xff190000 0x0 0x100>;
738		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
739		clock-names = "baudclk", "apb_pclk";
740		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
741		reg-shift = <2>;
742		reg-io-width = <4>;
743		pinctrl-names = "default";
744		pinctrl-0 = <&uart1_xfer>;
745		status = "disabled";
746	};
747
748	uart2: serial@ff1a0000 {
749		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
750		reg = <0x0 0xff1a0000 0x0 0x100>;
751		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
752		clock-names = "baudclk", "apb_pclk";
753		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
754		reg-shift = <2>;
755		reg-io-width = <4>;
756		pinctrl-names = "default";
757		pinctrl-0 = <&uart2c_xfer>;
758		status = "disabled";
759	};
760
761	uart3: serial@ff1b0000 {
762		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
763		reg = <0x0 0xff1b0000 0x0 0x100>;
764		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
765		clock-names = "baudclk", "apb_pclk";
766		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
767		reg-shift = <2>;
768		reg-io-width = <4>;
769		pinctrl-names = "default";
770		pinctrl-0 = <&uart3_xfer>;
771		status = "disabled";
772	};
773
774	spi0: spi@ff1c0000 {
775		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
776		reg = <0x0 0xff1c0000 0x0 0x1000>;
777		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
778		clock-names = "spiclk", "apb_pclk";
779		interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>;
780		dmas = <&dmac_peri 10>, <&dmac_peri 11>;
781		dma-names = "tx", "rx";
782		pinctrl-names = "default";
783		pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
784		#address-cells = <1>;
785		#size-cells = <0>;
786		status = "disabled";
787	};
788
789	spi1: spi@ff1d0000 {
790		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
791		reg = <0x0 0xff1d0000 0x0 0x1000>;
792		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
793		clock-names = "spiclk", "apb_pclk";
794		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
795		dmas = <&dmac_peri 12>, <&dmac_peri 13>;
796		dma-names = "tx", "rx";
797		pinctrl-names = "default";
798		pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
799		#address-cells = <1>;
800		#size-cells = <0>;
801		status = "disabled";
802	};
803
804	spi2: spi@ff1e0000 {
805		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
806		reg = <0x0 0xff1e0000 0x0 0x1000>;
807		clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
808		clock-names = "spiclk", "apb_pclk";
809		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
810		dmas = <&dmac_peri 14>, <&dmac_peri 15>;
811		dma-names = "tx", "rx";
812		pinctrl-names = "default";
813		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
814		#address-cells = <1>;
815		#size-cells = <0>;
816		status = "disabled";
817	};
818
819	spi4: spi@ff1f0000 {
820		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
821		reg = <0x0 0xff1f0000 0x0 0x1000>;
822		clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
823		clock-names = "spiclk", "apb_pclk";
824		interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>;
825		dmas = <&dmac_peri 18>, <&dmac_peri 19>;
826		dma-names = "tx", "rx";
827		pinctrl-names = "default";
828		pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
829		#address-cells = <1>;
830		#size-cells = <0>;
831		status = "disabled";
832	};
833
834	spi5: spi@ff200000 {
835		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
836		reg = <0x0 0xff200000 0x0 0x1000>;
837		clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
838		clock-names = "spiclk", "apb_pclk";
839		interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
840		dmas = <&dmac_bus 8>, <&dmac_bus 9>;
841		dma-names = "tx", "rx";
842		pinctrl-names = "default";
843		pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
844		power-domains = <&power RK3399_PD_SDIOAUDIO>;
845		#address-cells = <1>;
846		#size-cells = <0>;
847		status = "disabled";
848	};
849
850	thermal_zones: thermal-zones {
851		cpu_thermal: cpu-thermal {
852			polling-delay-passive = <100>;
853			polling-delay = <1000>;
854
855			thermal-sensors = <&tsadc 0>;
856
857			trips {
858				cpu_alert0: cpu_alert0 {
859					temperature = <70000>;
860					hysteresis = <2000>;
861					type = "passive";
862				};
863				cpu_alert1: cpu_alert1 {
864					temperature = <75000>;
865					hysteresis = <2000>;
866					type = "passive";
867				};
868				cpu_crit: cpu_crit {
869					temperature = <95000>;
870					hysteresis = <2000>;
871					type = "critical";
872				};
873			};
874
875			cooling-maps {
876				map0 {
877					trip = <&cpu_alert0>;
878					cooling-device =
879						<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
880						<&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
881				};
882				map1 {
883					trip = <&cpu_alert1>;
884					cooling-device =
885						<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
886						<&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
887						<&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
888						<&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
889						<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
890						<&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
891				};
892			};
893		};
894
895		gpu_thermal: gpu-thermal {
896			polling-delay-passive = <100>;
897			polling-delay = <1000>;
898
899			thermal-sensors = <&tsadc 1>;
900
901			trips {
902				gpu_alert0: gpu_alert0 {
903					temperature = <75000>;
904					hysteresis = <2000>;
905					type = "passive";
906				};
907				gpu_crit: gpu_crit {
908					temperature = <95000>;
909					hysteresis = <2000>;
910					type = "critical";
911				};
912			};
913
914			cooling-maps {
915				map0 {
916					trip = <&gpu_alert0>;
917					cooling-device =
918						<&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
919				};
920			};
921		};
922	};
923
924	tsadc: tsadc@ff260000 {
925		compatible = "rockchip,rk3399-tsadc";
926		reg = <0x0 0xff260000 0x0 0x100>;
927		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
928		assigned-clocks = <&cru SCLK_TSADC>;
929		assigned-clock-rates = <750000>;
930		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
931		clock-names = "tsadc", "apb_pclk";
932		resets = <&cru SRST_TSADC>;
933		reset-names = "tsadc-apb";
934		rockchip,grf = <&grf>;
935		rockchip,hw-tshut-temp = <95000>;
936		pinctrl-names = "init", "default", "sleep";
937		pinctrl-0 = <&otp_pin>;
938		pinctrl-1 = <&otp_out>;
939		pinctrl-2 = <&otp_pin>;
940		#thermal-sensor-cells = <1>;
941		status = "disabled";
942	};
943
944	qos_emmc: qos@ffa58000 {
945		compatible = "rockchip,rk3399-qos", "syscon";
946		reg = <0x0 0xffa58000 0x0 0x20>;
947	};
948
949	qos_gmac: qos@ffa5c000 {
950		compatible = "rockchip,rk3399-qos", "syscon";
951		reg = <0x0 0xffa5c000 0x0 0x20>;
952	};
953
954	qos_pcie: qos@ffa60080 {
955		compatible = "rockchip,rk3399-qos", "syscon";
956		reg = <0x0 0xffa60080 0x0 0x20>;
957	};
958
959	qos_usb_host0: qos@ffa60100 {
960		compatible = "rockchip,rk3399-qos", "syscon";
961		reg = <0x0 0xffa60100 0x0 0x20>;
962	};
963
964	qos_usb_host1: qos@ffa60180 {
965		compatible = "rockchip,rk3399-qos", "syscon";
966		reg = <0x0 0xffa60180 0x0 0x20>;
967	};
968
969	qos_usb_otg0: qos@ffa70000 {
970		compatible = "rockchip,rk3399-qos", "syscon";
971		reg = <0x0 0xffa70000 0x0 0x20>;
972	};
973
974	qos_usb_otg1: qos@ffa70080 {
975		compatible = "rockchip,rk3399-qos", "syscon";
976		reg = <0x0 0xffa70080 0x0 0x20>;
977	};
978
979	qos_sd: qos@ffa74000 {
980		compatible = "rockchip,rk3399-qos", "syscon";
981		reg = <0x0 0xffa74000 0x0 0x20>;
982	};
983
984	qos_sdioaudio: qos@ffa76000 {
985		compatible = "rockchip,rk3399-qos", "syscon";
986		reg = <0x0 0xffa76000 0x0 0x20>;
987	};
988
989	qos_hdcp: qos@ffa90000 {
990		compatible = "rockchip,rk3399-qos", "syscon";
991		reg = <0x0 0xffa90000 0x0 0x20>;
992	};
993
994	qos_iep: qos@ffa98000 {
995		compatible = "rockchip,rk3399-qos", "syscon";
996		reg = <0x0 0xffa98000 0x0 0x20>;
997	};
998
999	qos_isp0_m0: qos@ffaa0000 {
1000		compatible = "rockchip,rk3399-qos", "syscon";
1001		reg = <0x0 0xffaa0000 0x0 0x20>;
1002	};
1003
1004	qos_isp0_m1: qos@ffaa0080 {
1005		compatible = "rockchip,rk3399-qos", "syscon";
1006		reg = <0x0 0xffaa0080 0x0 0x20>;
1007	};
1008
1009	qos_isp1_m0: qos@ffaa8000 {
1010		compatible = "rockchip,rk3399-qos", "syscon";
1011		reg = <0x0 0xffaa8000 0x0 0x20>;
1012	};
1013
1014	qos_isp1_m1: qos@ffaa8080 {
1015		compatible = "rockchip,rk3399-qos", "syscon";
1016		reg = <0x0 0xffaa8080 0x0 0x20>;
1017	};
1018
1019	qos_rga_r: qos@ffab0000 {
1020		compatible = "rockchip,rk3399-qos", "syscon";
1021		reg = <0x0 0xffab0000 0x0 0x20>;
1022	};
1023
1024	qos_rga_w: qos@ffab0080 {
1025		compatible = "rockchip,rk3399-qos", "syscon";
1026		reg = <0x0 0xffab0080 0x0 0x20>;
1027	};
1028
1029	qos_video_m0: qos@ffab8000 {
1030		compatible = "rockchip,rk3399-qos", "syscon";
1031		reg = <0x0 0xffab8000 0x0 0x20>;
1032	};
1033
1034	qos_video_m1_r: qos@ffac0000 {
1035		compatible = "rockchip,rk3399-qos", "syscon";
1036		reg = <0x0 0xffac0000 0x0 0x20>;
1037	};
1038
1039	qos_video_m1_w: qos@ffac0080 {
1040		compatible = "rockchip,rk3399-qos", "syscon";
1041		reg = <0x0 0xffac0080 0x0 0x20>;
1042	};
1043
1044	qos_vop_big_r: qos@ffac8000 {
1045		compatible = "rockchip,rk3399-qos", "syscon";
1046		reg = <0x0 0xffac8000 0x0 0x20>;
1047	};
1048
1049	qos_vop_big_w: qos@ffac8080 {
1050		compatible = "rockchip,rk3399-qos", "syscon";
1051		reg = <0x0 0xffac8080 0x0 0x20>;
1052	};
1053
1054	qos_vop_little: qos@ffad0000 {
1055		compatible = "rockchip,rk3399-qos", "syscon";
1056		reg = <0x0 0xffad0000 0x0 0x20>;
1057	};
1058
1059	qos_perihp: qos@ffad8080 {
1060		compatible = "rockchip,rk3399-qos", "syscon";
1061		reg = <0x0 0xffad8080 0x0 0x20>;
1062	};
1063
1064	qos_gpu: qos@ffae0000 {
1065		compatible = "rockchip,rk3399-qos", "syscon";
1066		reg = <0x0 0xffae0000 0x0 0x20>;
1067	};
1068
1069	pmu: power-management@ff310000 {
1070		compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
1071		reg = <0x0 0xff310000 0x0 0x1000>;
1072
1073		/*
1074		 * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
1075		 * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
1076		 * Some of the power domains are grouped together for every
1077		 * voltage domain.
1078		 * The detail contents as below.
1079		 */
1080		power: power-controller {
1081			compatible = "rockchip,rk3399-power-controller";
1082			#power-domain-cells = <1>;
1083			#address-cells = <1>;
1084			#size-cells = <0>;
1085
1086			/* These power domains are grouped by VD_CENTER */
1087			power-domain@RK3399_PD_IEP {
1088				reg = <RK3399_PD_IEP>;
1089				clocks = <&cru ACLK_IEP>,
1090					 <&cru HCLK_IEP>;
1091				pm_qos = <&qos_iep>;
1092				#power-domain-cells = <0>;
1093			};
1094			power-domain@RK3399_PD_RGA {
1095				reg = <RK3399_PD_RGA>;
1096				clocks = <&cru ACLK_RGA>,
1097					 <&cru HCLK_RGA>;
1098				pm_qos = <&qos_rga_r>,
1099					 <&qos_rga_w>;
1100				#power-domain-cells = <0>;
1101			};
1102			power-domain@RK3399_PD_VCODEC {
1103				reg = <RK3399_PD_VCODEC>;
1104				clocks = <&cru ACLK_VCODEC>,
1105					 <&cru HCLK_VCODEC>;
1106				pm_qos = <&qos_video_m0>;
1107				#power-domain-cells = <0>;
1108			};
1109			power-domain@RK3399_PD_VDU {
1110				reg = <RK3399_PD_VDU>;
1111				clocks = <&cru ACLK_VDU>,
1112					 <&cru HCLK_VDU>;
1113				pm_qos = <&qos_video_m1_r>,
1114					 <&qos_video_m1_w>;
1115				#power-domain-cells = <0>;
1116			};
1117
1118			/* These power domains are grouped by VD_GPU */
1119			power-domain@RK3399_PD_GPU {
1120				reg = <RK3399_PD_GPU>;
1121				clocks = <&cru ACLK_GPU>;
1122				pm_qos = <&qos_gpu>;
1123				#power-domain-cells = <0>;
1124			};
1125
1126			/* These power domains are grouped by VD_LOGIC */
1127			power-domain@RK3399_PD_EDP {
1128				reg = <RK3399_PD_EDP>;
1129				clocks = <&cru PCLK_EDP_CTRL>;
1130				#power-domain-cells = <0>;
1131			};
1132			power-domain@RK3399_PD_EMMC {
1133				reg = <RK3399_PD_EMMC>;
1134				clocks = <&cru ACLK_EMMC>;
1135				pm_qos = <&qos_emmc>;
1136				#power-domain-cells = <0>;
1137			};
1138			power-domain@RK3399_PD_GMAC {
1139				reg = <RK3399_PD_GMAC>;
1140				clocks = <&cru ACLK_GMAC>,
1141					 <&cru PCLK_GMAC>;
1142				pm_qos = <&qos_gmac>;
1143				#power-domain-cells = <0>;
1144			};
1145			power-domain@RK3399_PD_SD {
1146				reg = <RK3399_PD_SD>;
1147				clocks = <&cru HCLK_SDMMC>,
1148					 <&cru SCLK_SDMMC>;
1149				pm_qos = <&qos_sd>;
1150				#power-domain-cells = <0>;
1151			};
1152			power-domain@RK3399_PD_SDIOAUDIO {
1153				reg = <RK3399_PD_SDIOAUDIO>;
1154				clocks = <&cru HCLK_SDIO>;
1155				pm_qos = <&qos_sdioaudio>;
1156				#power-domain-cells = <0>;
1157			};
1158			power-domain@RK3399_PD_TCPD0 {
1159				reg = <RK3399_PD_TCPD0>;
1160				clocks = <&cru SCLK_UPHY0_TCPDCORE>,
1161					 <&cru SCLK_UPHY0_TCPDPHY_REF>;
1162				#power-domain-cells = <0>;
1163			};
1164			power-domain@RK3399_PD_TCPD1 {
1165				reg = <RK3399_PD_TCPD1>;
1166				clocks = <&cru SCLK_UPHY1_TCPDCORE>,
1167					 <&cru SCLK_UPHY1_TCPDPHY_REF>;
1168				#power-domain-cells = <0>;
1169			};
1170			power-domain@RK3399_PD_USB3 {
1171				reg = <RK3399_PD_USB3>;
1172				clocks = <&cru ACLK_USB3>;
1173				pm_qos = <&qos_usb_otg0>,
1174					 <&qos_usb_otg1>;
1175				#power-domain-cells = <0>;
1176			};
1177			power-domain@RK3399_PD_VIO {
1178				reg = <RK3399_PD_VIO>;
1179				#power-domain-cells = <1>;
1180				#address-cells = <1>;
1181				#size-cells = <0>;
1182
1183				power-domain@RK3399_PD_HDCP {
1184					reg = <RK3399_PD_HDCP>;
1185					clocks = <&cru ACLK_HDCP>,
1186						 <&cru HCLK_HDCP>,
1187						 <&cru PCLK_HDCP>;
1188					pm_qos = <&qos_hdcp>;
1189					#power-domain-cells = <0>;
1190				};
1191				power-domain@RK3399_PD_ISP0 {
1192					reg = <RK3399_PD_ISP0>;
1193					clocks = <&cru ACLK_ISP0>,
1194						 <&cru HCLK_ISP0>;
1195					pm_qos = <&qos_isp0_m0>,
1196						 <&qos_isp0_m1>;
1197					#power-domain-cells = <0>;
1198				};
1199				power-domain@RK3399_PD_ISP1 {
1200					reg = <RK3399_PD_ISP1>;
1201					clocks = <&cru ACLK_ISP1>,
1202						 <&cru HCLK_ISP1>;
1203					pm_qos = <&qos_isp1_m0>,
1204						 <&qos_isp1_m1>;
1205					#power-domain-cells = <0>;
1206				};
1207				power-domain@RK3399_PD_VO {
1208					reg = <RK3399_PD_VO>;
1209					#power-domain-cells = <1>;
1210					#address-cells = <1>;
1211					#size-cells = <0>;
1212
1213					power-domain@RK3399_PD_VOPB {
1214						reg = <RK3399_PD_VOPB>;
1215						clocks = <&cru ACLK_VOP0>,
1216							 <&cru HCLK_VOP0>;
1217						pm_qos = <&qos_vop_big_r>,
1218							 <&qos_vop_big_w>;
1219						#power-domain-cells = <0>;
1220					};
1221					power-domain@RK3399_PD_VOPL {
1222						reg = <RK3399_PD_VOPL>;
1223						clocks = <&cru ACLK_VOP1>,
1224							 <&cru HCLK_VOP1>;
1225						pm_qos = <&qos_vop_little>;
1226						#power-domain-cells = <0>;
1227					};
1228				};
1229			};
1230		};
1231	};
1232
1233	pmugrf: syscon@ff320000 {
1234		compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
1235		reg = <0x0 0xff320000 0x0 0x1000>;
1236
1237		pmu_io_domains: io-domains {
1238			compatible = "rockchip,rk3399-pmu-io-voltage-domain";
1239			status = "disabled";
1240		};
1241	};
1242
1243	spi3: spi@ff350000 {
1244		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
1245		reg = <0x0 0xff350000 0x0 0x1000>;
1246		clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
1247		clock-names = "spiclk", "apb_pclk";
1248		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>;
1249		pinctrl-names = "default";
1250		pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
1251		#address-cells = <1>;
1252		#size-cells = <0>;
1253		status = "disabled";
1254	};
1255
1256	uart4: serial@ff370000 {
1257		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
1258		reg = <0x0 0xff370000 0x0 0x100>;
1259		clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
1260		clock-names = "baudclk", "apb_pclk";
1261		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
1262		reg-shift = <2>;
1263		reg-io-width = <4>;
1264		pinctrl-names = "default";
1265		pinctrl-0 = <&uart4_xfer>;
1266		status = "disabled";
1267	};
1268
1269	i2c0: i2c@ff3c0000 {
1270		compatible = "rockchip,rk3399-i2c";
1271		reg = <0x0 0xff3c0000 0x0 0x1000>;
1272		assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
1273		assigned-clock-rates = <200000000>;
1274		clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
1275		clock-names = "i2c", "pclk";
1276		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
1277		pinctrl-names = "default";
1278		pinctrl-0 = <&i2c0_xfer>;
1279		#address-cells = <1>;
1280		#size-cells = <0>;
1281		status = "disabled";
1282	};
1283
1284	i2c4: i2c@ff3d0000 {
1285		compatible = "rockchip,rk3399-i2c";
1286		reg = <0x0 0xff3d0000 0x0 0x1000>;
1287		assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
1288		assigned-clock-rates = <200000000>;
1289		clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
1290		clock-names = "i2c", "pclk";
1291		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
1292		pinctrl-names = "default";
1293		pinctrl-0 = <&i2c4_xfer>;
1294		#address-cells = <1>;
1295		#size-cells = <0>;
1296		status = "disabled";
1297	};
1298
1299	i2c8: i2c@ff3e0000 {
1300		compatible = "rockchip,rk3399-i2c";
1301		reg = <0x0 0xff3e0000 0x0 0x1000>;
1302		assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
1303		assigned-clock-rates = <200000000>;
1304		clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
1305		clock-names = "i2c", "pclk";
1306		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
1307		pinctrl-names = "default";
1308		pinctrl-0 = <&i2c8_xfer>;
1309		#address-cells = <1>;
1310		#size-cells = <0>;
1311		status = "disabled";
1312	};
1313
1314	pwm0: pwm@ff420000 {
1315		compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1316		reg = <0x0 0xff420000 0x0 0x10>;
1317		#pwm-cells = <3>;
1318		pinctrl-names = "default";
1319		pinctrl-0 = <&pwm0_pin>;
1320		clocks = <&pmucru PCLK_RKPWM_PMU>;
1321		status = "disabled";
1322	};
1323
1324	pwm1: pwm@ff420010 {
1325		compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1326		reg = <0x0 0xff420010 0x0 0x10>;
1327		#pwm-cells = <3>;
1328		pinctrl-names = "default";
1329		pinctrl-0 = <&pwm1_pin>;
1330		clocks = <&pmucru PCLK_RKPWM_PMU>;
1331		status = "disabled";
1332	};
1333
1334	pwm2: pwm@ff420020 {
1335		compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1336		reg = <0x0 0xff420020 0x0 0x10>;
1337		#pwm-cells = <3>;
1338		pinctrl-names = "default";
1339		pinctrl-0 = <&pwm2_pin>;
1340		clocks = <&pmucru PCLK_RKPWM_PMU>;
1341		status = "disabled";
1342	};
1343
1344	pwm3: pwm@ff420030 {
1345		compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1346		reg = <0x0 0xff420030 0x0 0x10>;
1347		#pwm-cells = <3>;
1348		pinctrl-names = "default";
1349		pinctrl-0 = <&pwm3a_pin>;
1350		clocks = <&pmucru PCLK_RKPWM_PMU>;
1351		status = "disabled";
1352	};
1353
1354	dfi: dfi@ff630000 {
1355		reg = <0x00 0xff630000 0x00 0x4000>;
1356		compatible = "rockchip,rk3399-dfi";
1357		rockchip,pmu = <&pmugrf>;
1358		interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>;
1359		clocks = <&cru PCLK_DDR_MON>;
1360		clock-names = "pclk_ddr_mon";
1361	};
1362
1363	vpu: video-codec@ff650000 {
1364		compatible = "rockchip,rk3399-vpu";
1365		reg = <0x0 0xff650000 0x0 0x800>;
1366		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH 0>,
1367			     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0>;
1368		interrupt-names = "vepu", "vdpu";
1369		clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
1370		clock-names = "aclk", "hclk";
1371		iommus = <&vpu_mmu>;
1372		power-domains = <&power RK3399_PD_VCODEC>;
1373	};
1374
1375	vpu_mmu: iommu@ff650800 {
1376		compatible = "rockchip,iommu";
1377		reg = <0x0 0xff650800 0x0 0x40>;
1378		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>;
1379		clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
1380		clock-names = "aclk", "iface";
1381		#iommu-cells = <0>;
1382		power-domains = <&power RK3399_PD_VCODEC>;
1383	};
1384
1385	vdec: video-codec@ff660000 {
1386		compatible = "rockchip,rk3399-vdec";
1387		reg = <0x0 0xff660000 0x0 0x400>;
1388		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
1389		clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
1390			 <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
1391		clock-names = "axi", "ahb", "cabac", "core";
1392		iommus = <&vdec_mmu>;
1393		power-domains = <&power RK3399_PD_VDU>;
1394	};
1395
1396	vdec_mmu: iommu@ff660480 {
1397		compatible = "rockchip,iommu";
1398		reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
1399		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
1400		clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>;
1401		clock-names = "aclk", "iface";
1402		power-domains = <&power RK3399_PD_VDU>;
1403		#iommu-cells = <0>;
1404	};
1405
1406	iep_mmu: iommu@ff670800 {
1407		compatible = "rockchip,iommu";
1408		reg = <0x0 0xff670800 0x0 0x40>;
1409		interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH 0>;
1410		clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
1411		clock-names = "aclk", "iface";
1412		#iommu-cells = <0>;
1413		status = "disabled";
1414	};
1415
1416	rga: rga@ff680000 {
1417		compatible = "rockchip,rk3399-rga";
1418		reg = <0x0 0xff680000 0x0 0x10000>;
1419		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH 0>;
1420		clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA_CORE>;
1421		clock-names = "aclk", "hclk", "sclk";
1422		resets = <&cru SRST_RGA_CORE>, <&cru SRST_A_RGA>, <&cru SRST_H_RGA>;
1423		reset-names = "core", "axi", "ahb";
1424		power-domains = <&power RK3399_PD_RGA>;
1425	};
1426
1427	efuse0: efuse@ff690000 {
1428		compatible = "rockchip,rk3399-efuse";
1429		reg = <0x0 0xff690000 0x0 0x80>;
1430		#address-cells = <1>;
1431		#size-cells = <1>;
1432		clocks = <&cru PCLK_EFUSE1024NS>;
1433		clock-names = "pclk_efuse";
1434
1435		/* Data cells */
1436		cpu_id: cpu-id@7 {
1437			reg = <0x07 0x10>;
1438		};
1439		cpub_leakage: cpu-leakage@17 {
1440			reg = <0x17 0x1>;
1441		};
1442		gpu_leakage: gpu-leakage@18 {
1443			reg = <0x18 0x1>;
1444		};
1445		center_leakage: center-leakage@19 {
1446			reg = <0x19 0x1>;
1447		};
1448		cpul_leakage: cpu-leakage@1a {
1449			reg = <0x1a 0x1>;
1450		};
1451		logic_leakage: logic-leakage@1b {
1452			reg = <0x1b 0x1>;
1453		};
1454		wafer_info: wafer-info@1c {
1455			reg = <0x1c 0x1>;
1456		};
1457	};
1458
1459	dmac_bus: dma-controller@ff6d0000 {
1460		compatible = "arm,pl330", "arm,primecell";
1461		reg = <0x0 0xff6d0000 0x0 0x4000>;
1462		interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
1463			     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
1464		#dma-cells = <1>;
1465		arm,pl330-periph-burst;
1466		clocks = <&cru ACLK_DMAC0_PERILP>;
1467		clock-names = "apb_pclk";
1468	};
1469
1470	dmac_peri: dma-controller@ff6e0000 {
1471		compatible = "arm,pl330", "arm,primecell";
1472		reg = <0x0 0xff6e0000 0x0 0x4000>;
1473		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
1474			     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
1475		#dma-cells = <1>;
1476		arm,pl330-periph-burst;
1477		clocks = <&cru ACLK_DMAC1_PERILP>;
1478		clock-names = "apb_pclk";
1479	};
1480
1481	pmucru: clock-controller@ff750000 {
1482		compatible = "rockchip,rk3399-pmucru";
1483		reg = <0x0 0xff750000 0x0 0x1000>;
1484		clocks = <&xin24m>;
1485		clock-names = "xin24m";
1486		rockchip,grf = <&pmugrf>;
1487		#clock-cells = <1>;
1488		#reset-cells = <1>;
1489		assigned-clocks = <&pmucru PLL_PPLL>;
1490		assigned-clock-rates = <676000000>;
1491	};
1492
1493	cru: clock-controller@ff760000 {
1494		compatible = "rockchip,rk3399-cru";
1495		reg = <0x0 0xff760000 0x0 0x1000>;
1496		clocks = <&xin24m>;
1497		clock-names = "xin24m";
1498		rockchip,grf = <&grf>;
1499		#clock-cells = <1>;
1500		#reset-cells = <1>;
1501		assigned-clocks =
1502			<&cru PLL_GPLL>, <&cru PLL_CPLL>,
1503			<&cru PLL_NPLL>,
1504			<&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
1505			<&cru PCLK_PERIHP>,
1506			<&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
1507			<&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
1508			<&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
1509			<&cru ACLK_VIO>, <&cru ACLK_HDCP>,
1510			<&cru ACLK_GIC_PRE>,
1511			<&cru PCLK_DDR>,
1512			<&cru ACLK_VDU>;
1513		assigned-clock-rates =
1514			 <594000000>,  <800000000>,
1515			<1000000000>,
1516			 <150000000>,   <75000000>,
1517			  <37500000>,
1518			 <100000000>,  <100000000>,
1519			  <50000000>, <600000000>,
1520			 <100000000>,   <50000000>,
1521			 <400000000>, <400000000>,
1522			 <200000000>,
1523			 <200000000>,
1524			 <400000000>;
1525	};
1526
1527	grf: syscon@ff770000 {
1528		compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
1529		reg = <0x0 0xff770000 0x0 0x10000>;
1530		#address-cells = <1>;
1531		#size-cells = <1>;
1532
1533		io_domains: io-domains {
1534			compatible = "rockchip,rk3399-io-voltage-domain";
1535			status = "disabled";
1536		};
1537
1538		mipi_dphy_rx0: mipi-dphy-rx0 {
1539			compatible = "rockchip,rk3399-mipi-dphy-rx0";
1540			clocks = <&cru SCLK_MIPIDPHY_REF>,
1541				 <&cru SCLK_DPHY_RX0_CFG>,
1542				 <&cru PCLK_VIO_GRF>;
1543			clock-names = "dphy-ref", "dphy-cfg", "grf";
1544			power-domains = <&power RK3399_PD_VIO>;
1545			#phy-cells = <0>;
1546			status = "disabled";
1547		};
1548
1549		u2phy0: usb2phy@e450 {
1550			compatible = "rockchip,rk3399-usb2phy";
1551			reg = <0xe450 0x10>;
1552			clocks = <&cru SCLK_USB2PHY0_REF>;
1553			clock-names = "phyclk";
1554			#clock-cells = <0>;
1555			clock-output-names = "clk_usbphy0_480m";
1556			status = "disabled";
1557
1558			u2phy0_host: host-port {
1559				#phy-cells = <0>;
1560				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
1561				interrupt-names = "linestate";
1562				status = "disabled";
1563			};
1564
1565			u2phy0_otg: otg-port {
1566				#phy-cells = <0>;
1567				interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
1568					     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
1569					     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
1570				interrupt-names = "otg-bvalid", "otg-id",
1571						  "linestate";
1572				status = "disabled";
1573			};
1574		};
1575
1576		u2phy1: usb2phy@e460 {
1577			compatible = "rockchip,rk3399-usb2phy";
1578			reg = <0xe460 0x10>;
1579			clocks = <&cru SCLK_USB2PHY1_REF>;
1580			clock-names = "phyclk";
1581			#clock-cells = <0>;
1582			clock-output-names = "clk_usbphy1_480m";
1583			status = "disabled";
1584
1585			u2phy1_host: host-port {
1586				#phy-cells = <0>;
1587				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>;
1588				interrupt-names = "linestate";
1589				status = "disabled";
1590			};
1591
1592			u2phy1_otg: otg-port {
1593				#phy-cells = <0>;
1594				interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
1595					     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
1596					     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
1597				interrupt-names = "otg-bvalid", "otg-id",
1598						  "linestate";
1599				status = "disabled";
1600			};
1601		};
1602
1603		emmc_phy: phy@f780 {
1604			compatible = "rockchip,rk3399-emmc-phy";
1605			reg = <0xf780 0x24>;
1606			clocks = <&sdhci>;
1607			clock-names = "emmcclk";
1608			drive-impedance-ohm = <50>;
1609			#phy-cells = <0>;
1610			status = "disabled";
1611		};
1612
1613		pcie_phy: pcie-phy {
1614			compatible = "rockchip,rk3399-pcie-phy";
1615			clocks = <&cru SCLK_PCIEPHY_REF>;
1616			clock-names = "refclk";
1617			#phy-cells = <1>;
1618			resets = <&cru SRST_PCIEPHY>;
1619			reset-names = "phy";
1620			status = "disabled";
1621		};
1622	};
1623
1624	tcphy0: phy@ff7c0000 {
1625		compatible = "rockchip,rk3399-typec-phy";
1626		reg = <0x0 0xff7c0000 0x0 0x40000>;
1627		clocks = <&cru SCLK_UPHY0_TCPDCORE>,
1628			 <&cru SCLK_UPHY0_TCPDPHY_REF>;
1629		clock-names = "tcpdcore", "tcpdphy-ref";
1630		assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
1631		assigned-clock-rates = <50000000>;
1632		power-domains = <&power RK3399_PD_TCPD0>;
1633		resets = <&cru SRST_UPHY0>,
1634			 <&cru SRST_UPHY0_PIPE_L00>,
1635			 <&cru SRST_P_UPHY0_TCPHY>;
1636		reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
1637		rockchip,grf = <&grf>;
1638		status = "disabled";
1639
1640		tcphy0_dp: dp-port {
1641			#phy-cells = <0>;
1642		};
1643
1644		tcphy0_usb3: usb3-port {
1645			#phy-cells = <0>;
1646		};
1647	};
1648
1649	tcphy1: phy@ff800000 {
1650		compatible = "rockchip,rk3399-typec-phy";
1651		reg = <0x0 0xff800000 0x0 0x40000>;
1652		clocks = <&cru SCLK_UPHY1_TCPDCORE>,
1653			 <&cru SCLK_UPHY1_TCPDPHY_REF>;
1654		clock-names = "tcpdcore", "tcpdphy-ref";
1655		assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
1656		assigned-clock-rates = <50000000>;
1657		power-domains = <&power RK3399_PD_TCPD1>;
1658		resets = <&cru SRST_UPHY1>,
1659			 <&cru SRST_UPHY1_PIPE_L00>,
1660			 <&cru SRST_P_UPHY1_TCPHY>;
1661		reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
1662		rockchip,grf = <&grf>;
1663		status = "disabled";
1664
1665		tcphy1_dp: dp-port {
1666			#phy-cells = <0>;
1667		};
1668
1669		tcphy1_usb3: usb3-port {
1670			#phy-cells = <0>;
1671		};
1672	};
1673
1674	watchdog@ff848000 {
1675		compatible = "rockchip,rk3399-wdt", "snps,dw-wdt";
1676		reg = <0x0 0xff848000 0x0 0x100>;
1677		clocks = <&cru PCLK_WDT>;
1678		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
1679	};
1680
1681	rktimer: rktimer@ff850000 {
1682		compatible = "rockchip,rk3399-timer";
1683		reg = <0x0 0xff850000 0x0 0x1000>;
1684		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
1685		clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
1686		clock-names = "pclk", "timer";
1687	};
1688
1689	spdif: spdif@ff870000 {
1690		compatible = "rockchip,rk3399-spdif";
1691		reg = <0x0 0xff870000 0x0 0x1000>;
1692		interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
1693		dmas = <&dmac_bus 7>;
1694		dma-names = "tx";
1695		clock-names = "mclk", "hclk";
1696		clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
1697		pinctrl-names = "default";
1698		pinctrl-0 = <&spdif_bus>;
1699		power-domains = <&power RK3399_PD_SDIOAUDIO>;
1700		#sound-dai-cells = <0>;
1701		status = "disabled";
1702	};
1703
1704	i2s0: i2s@ff880000 {
1705		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1706		reg = <0x0 0xff880000 0x0 0x1000>;
1707		rockchip,grf = <&grf>;
1708		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
1709		dmas = <&dmac_bus 0>, <&dmac_bus 1>;
1710		dma-names = "tx", "rx";
1711		clock-names = "i2s_clk", "i2s_hclk";
1712		clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
1713		pinctrl-names = "bclk_on", "bclk_off";
1714		pinctrl-0 = <&i2s0_8ch_bus>;
1715		pinctrl-1 = <&i2s0_8ch_bus_bclk_off>;
1716		power-domains = <&power RK3399_PD_SDIOAUDIO>;
1717		#sound-dai-cells = <0>;
1718		status = "disabled";
1719	};
1720
1721	i2s1: i2s@ff890000 {
1722		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1723		reg = <0x0 0xff890000 0x0 0x1000>;
1724		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
1725		dmas = <&dmac_bus 2>, <&dmac_bus 3>;
1726		dma-names = "tx", "rx";
1727		clock-names = "i2s_clk", "i2s_hclk";
1728		clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
1729		pinctrl-names = "default";
1730		pinctrl-0 = <&i2s1_2ch_bus>;
1731		power-domains = <&power RK3399_PD_SDIOAUDIO>;
1732		#sound-dai-cells = <0>;
1733		status = "disabled";
1734	};
1735
1736	i2s2: i2s@ff8a0000 {
1737		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1738		reg = <0x0 0xff8a0000 0x0 0x1000>;
1739		interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
1740		dmas = <&dmac_bus 4>, <&dmac_bus 5>;
1741		dma-names = "tx", "rx";
1742		clock-names = "i2s_clk", "i2s_hclk";
1743		clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
1744		power-domains = <&power RK3399_PD_SDIOAUDIO>;
1745		#sound-dai-cells = <0>;
1746		status = "disabled";
1747	};
1748
1749	vopl: vop@ff8f0000 {
1750		compatible = "rockchip,rk3399-vop-lit";
1751		reg = <0x0 0xff8f0000 0x0 0x2000>, <0x0 0xff8f2000 0x0 0x400>;
1752		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
1753		assigned-clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
1754		assigned-clock-rates = <400000000>, <100000000>;
1755		clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
1756		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1757		iommus = <&vopl_mmu>;
1758		power-domains = <&power RK3399_PD_VOPL>;
1759		resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
1760		reset-names = "axi", "ahb", "dclk";
1761		status = "disabled";
1762
1763		vopl_out: port {
1764			#address-cells = <1>;
1765			#size-cells = <0>;
1766
1767			vopl_out_mipi: endpoint@0 {
1768				reg = <0>;
1769				remote-endpoint = <&mipi_in_vopl>;
1770			};
1771
1772			vopl_out_edp: endpoint@1 {
1773				reg = <1>;
1774				remote-endpoint = <&edp_in_vopl>;
1775			};
1776
1777			vopl_out_hdmi: endpoint@2 {
1778				reg = <2>;
1779				remote-endpoint = <&hdmi_in_vopl>;
1780			};
1781
1782			vopl_out_mipi1: endpoint@3 {
1783				reg = <3>;
1784				remote-endpoint = <&mipi1_in_vopl>;
1785			};
1786
1787			vopl_out_dp: endpoint@4 {
1788				reg = <4>;
1789				remote-endpoint = <&dp_in_vopl>;
1790			};
1791		};
1792	};
1793
1794	vopl_mmu: iommu@ff8f3f00 {
1795		compatible = "rockchip,iommu";
1796		reg = <0x0 0xff8f3f00 0x0 0x100>;
1797		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
1798		clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
1799		clock-names = "aclk", "iface";
1800		power-domains = <&power RK3399_PD_VOPL>;
1801		#iommu-cells = <0>;
1802		status = "disabled";
1803	};
1804
1805	vopb: vop@ff900000 {
1806		compatible = "rockchip,rk3399-vop-big";
1807		reg = <0x0 0xff900000 0x0 0x2000>, <0x0 0xff902000 0x0 0x1000>;
1808		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
1809		assigned-clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
1810		assigned-clock-rates = <400000000>, <100000000>;
1811		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
1812		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1813		iommus = <&vopb_mmu>;
1814		power-domains = <&power RK3399_PD_VOPB>;
1815		resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
1816		reset-names = "axi", "ahb", "dclk";
1817		status = "disabled";
1818
1819		vopb_out: port {
1820			#address-cells = <1>;
1821			#size-cells = <0>;
1822
1823			vopb_out_edp: endpoint@0 {
1824				reg = <0>;
1825				remote-endpoint = <&edp_in_vopb>;
1826			};
1827
1828			vopb_out_mipi: endpoint@1 {
1829				reg = <1>;
1830				remote-endpoint = <&mipi_in_vopb>;
1831			};
1832
1833			vopb_out_hdmi: endpoint@2 {
1834				reg = <2>;
1835				remote-endpoint = <&hdmi_in_vopb>;
1836			};
1837
1838			vopb_out_mipi1: endpoint@3 {
1839				reg = <3>;
1840				remote-endpoint = <&mipi1_in_vopb>;
1841			};
1842
1843			vopb_out_dp: endpoint@4 {
1844				reg = <4>;
1845				remote-endpoint = <&dp_in_vopb>;
1846			};
1847		};
1848	};
1849
1850	vopb_mmu: iommu@ff903f00 {
1851		compatible = "rockchip,iommu";
1852		reg = <0x0 0xff903f00 0x0 0x100>;
1853		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
1854		clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
1855		clock-names = "aclk", "iface";
1856		power-domains = <&power RK3399_PD_VOPB>;
1857		#iommu-cells = <0>;
1858		status = "disabled";
1859	};
1860
1861	isp0: isp0@ff910000 {
1862		compatible = "rockchip,rk3399-cif-isp";
1863		reg = <0x0 0xff910000 0x0 0x4000>;
1864		interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
1865		clocks = <&cru SCLK_ISP0>,
1866			 <&cru ACLK_ISP0_WRAPPER>,
1867			 <&cru HCLK_ISP0_WRAPPER>;
1868		clock-names = "isp", "aclk", "hclk";
1869		iommus = <&isp0_mmu>;
1870		phys = <&mipi_dphy_rx0>;
1871		phy-names = "dphy";
1872		power-domains = <&power RK3399_PD_ISP0>;
1873		status = "disabled";
1874
1875		ports {
1876			#address-cells = <1>;
1877			#size-cells = <0>;
1878
1879			port@0 {
1880				reg = <0>;
1881				#address-cells = <1>;
1882				#size-cells = <0>;
1883			};
1884		};
1885	};
1886
1887	isp0_mmu: iommu@ff914000 {
1888		compatible = "rockchip,iommu";
1889		reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
1890		interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
1891		clocks = <&cru ACLK_ISP0_WRAPPER>, <&cru HCLK_ISP0_WRAPPER>;
1892		clock-names = "aclk", "iface";
1893		#iommu-cells = <0>;
1894		power-domains = <&power RK3399_PD_ISP0>;
1895		rockchip,disable-mmu-reset;
1896	};
1897
1898	isp1: isp1@ff920000 {
1899		compatible = "rockchip,rk3399-cif-isp";
1900		reg = <0x0 0xff920000 0x0 0x4000>;
1901		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
1902		clocks = <&cru SCLK_ISP1>,
1903			 <&cru ACLK_ISP1_WRAPPER>,
1904			 <&cru HCLK_ISP1_WRAPPER>;
1905		clock-names = "isp", "aclk", "hclk";
1906		iommus = <&isp1_mmu>;
1907		phys = <&mipi_dsi1>;
1908		phy-names = "dphy";
1909		power-domains = <&power RK3399_PD_ISP1>;
1910		status = "disabled";
1911
1912		ports {
1913			#address-cells = <1>;
1914			#size-cells = <0>;
1915
1916			port@0 {
1917				reg = <0>;
1918				#address-cells = <1>;
1919				#size-cells = <0>;
1920			};
1921		};
1922	};
1923
1924	isp1_mmu: iommu@ff924000 {
1925		compatible = "rockchip,iommu";
1926		reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
1927		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
1928		clocks = <&cru ACLK_ISP1_WRAPPER>, <&cru HCLK_ISP1_WRAPPER>;
1929		clock-names = "aclk", "iface";
1930		#iommu-cells = <0>;
1931		power-domains = <&power RK3399_PD_ISP1>;
1932		rockchip,disable-mmu-reset;
1933	};
1934
1935	hdmi_sound: hdmi-sound {
1936		compatible = "simple-audio-card";
1937		simple-audio-card,format = "i2s";
1938		simple-audio-card,mclk-fs = <256>;
1939		simple-audio-card,name = "hdmi-sound";
1940		status = "disabled";
1941
1942		simple-audio-card,cpu {
1943			sound-dai = <&i2s2>;
1944		};
1945		simple-audio-card,codec {
1946			sound-dai = <&hdmi>;
1947		};
1948	};
1949
1950	hdmi: hdmi@ff940000 {
1951		compatible = "rockchip,rk3399-dw-hdmi";
1952		reg = <0x0 0xff940000 0x0 0x20000>;
1953		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
1954		clocks = <&cru PCLK_HDMI_CTRL>,
1955			 <&cru SCLK_HDMI_SFR>,
1956			 <&cru SCLK_HDMI_CEC>,
1957			 <&cru PCLK_VIO_GRF>,
1958			 <&cru PLL_VPLL>;
1959		clock-names = "iahb", "isfr", "cec", "grf", "ref";
1960		power-domains = <&power RK3399_PD_HDCP>;
1961		reg-io-width = <4>;
1962		rockchip,grf = <&grf>;
1963		#sound-dai-cells = <0>;
1964		status = "disabled";
1965
1966		ports {
1967			hdmi_in: port {
1968				#address-cells = <1>;
1969				#size-cells = <0>;
1970
1971				hdmi_in_vopb: endpoint@0 {
1972					reg = <0>;
1973					remote-endpoint = <&vopb_out_hdmi>;
1974				};
1975				hdmi_in_vopl: endpoint@1 {
1976					reg = <1>;
1977					remote-endpoint = <&vopl_out_hdmi>;
1978				};
1979			};
1980		};
1981	};
1982
1983	mipi_dsi: dsi@ff960000 {
1984		compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
1985		reg = <0x0 0xff960000 0x0 0x8000>;
1986		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>;
1987		clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI0>,
1988			 <&cru SCLK_DPHY_TX0_CFG>, <&cru PCLK_VIO_GRF>;
1989		clock-names = "ref", "pclk", "phy_cfg", "grf";
1990		power-domains = <&power RK3399_PD_VIO>;
1991		resets = <&cru SRST_P_MIPI_DSI0>;
1992		reset-names = "apb";
1993		rockchip,grf = <&grf>;
1994		#address-cells = <1>;
1995		#size-cells = <0>;
1996		status = "disabled";
1997
1998		ports {
1999			#address-cells = <1>;
2000			#size-cells = <0>;
2001
2002			mipi_in: port@0 {
2003				reg = <0>;
2004				#address-cells = <1>;
2005				#size-cells = <0>;
2006
2007				mipi_in_vopb: endpoint@0 {
2008					reg = <0>;
2009					remote-endpoint = <&vopb_out_mipi>;
2010				};
2011
2012				mipi_in_vopl: endpoint@1 {
2013					reg = <1>;
2014					remote-endpoint = <&vopl_out_mipi>;
2015				};
2016			};
2017
2018			mipi_out: port@1 {
2019				reg = <1>;
2020			};
2021		};
2022	};
2023
2024	mipi_dsi1: dsi@ff968000 {
2025		compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
2026		reg = <0x0 0xff968000 0x0 0x8000>;
2027		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH 0>;
2028		clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI1>,
2029			 <&cru SCLK_DPHY_TX1RX1_CFG>, <&cru PCLK_VIO_GRF>;
2030		clock-names = "ref", "pclk", "phy_cfg", "grf";
2031		power-domains = <&power RK3399_PD_VIO>;
2032		resets = <&cru SRST_P_MIPI_DSI1>;
2033		reset-names = "apb";
2034		rockchip,grf = <&grf>;
2035		#address-cells = <1>;
2036		#size-cells = <0>;
2037		#phy-cells = <0>;
2038		status = "disabled";
2039
2040		ports {
2041			#address-cells = <1>;
2042			#size-cells = <0>;
2043
2044			mipi1_in: port@0 {
2045				reg = <0>;
2046				#address-cells = <1>;
2047				#size-cells = <0>;
2048
2049				mipi1_in_vopb: endpoint@0 {
2050					reg = <0>;
2051					remote-endpoint = <&vopb_out_mipi1>;
2052				};
2053
2054				mipi1_in_vopl: endpoint@1 {
2055					reg = <1>;
2056					remote-endpoint = <&vopl_out_mipi1>;
2057				};
2058			};
2059
2060			mipi1_out: port@1 {
2061				reg = <1>;
2062			};
2063		};
2064	};
2065
2066	edp: dp@ff970000 {
2067		compatible = "rockchip,rk3399-edp";
2068		reg = <0x0 0xff970000 0x0 0x8000>;
2069		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
2070		clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>, <&cru PCLK_VIO_GRF>;
2071		clock-names = "dp", "pclk", "grf";
2072		pinctrl-names = "default";
2073		pinctrl-0 = <&edp_hpd>;
2074		power-domains = <&power RK3399_PD_EDP>;
2075		resets = <&cru SRST_P_EDP_CTRL>;
2076		reset-names = "dp";
2077		rockchip,grf = <&grf>;
2078		status = "disabled";
2079
2080		ports {
2081			#address-cells = <1>;
2082			#size-cells = <0>;
2083
2084			edp_in: port@0 {
2085				reg = <0>;
2086				#address-cells = <1>;
2087				#size-cells = <0>;
2088
2089				edp_in_vopb: endpoint@0 {
2090					reg = <0>;
2091					remote-endpoint = <&vopb_out_edp>;
2092				};
2093
2094				edp_in_vopl: endpoint@1 {
2095					reg = <1>;
2096					remote-endpoint = <&vopl_out_edp>;
2097				};
2098			};
2099
2100			edp_out: port@1 {
2101				reg = <1>;
2102			};
2103		};
2104	};
2105
2106	gpu: gpu@ff9a0000 {
2107		compatible = "rockchip,rk3399-mali", "arm,mali-t860";
2108		reg = <0x0 0xff9a0000 0x0 0x10000>;
2109		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
2110			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
2111			     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
2112		interrupt-names = "job", "mmu", "gpu";
2113		clocks = <&cru ACLK_GPU>;
2114		#cooling-cells = <2>;
2115		power-domains = <&power RK3399_PD_GPU>;
2116		status = "disabled";
2117	};
2118
2119	pinctrl: pinctrl {
2120		compatible = "rockchip,rk3399-pinctrl";
2121		rockchip,grf = <&grf>;
2122		rockchip,pmu = <&pmugrf>;
2123		#address-cells = <2>;
2124		#size-cells = <2>;
2125		ranges;
2126
2127		gpio0: gpio@ff720000 {
2128			compatible = "rockchip,gpio-bank";
2129			reg = <0x0 0xff720000 0x0 0x100>;
2130			clocks = <&pmucru PCLK_GPIO0_PMU>;
2131			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
2132
2133			gpio-controller;
2134			#gpio-cells = <0x2>;
2135
2136			interrupt-controller;
2137			#interrupt-cells = <0x2>;
2138		};
2139
2140		gpio1: gpio@ff730000 {
2141			compatible = "rockchip,gpio-bank";
2142			reg = <0x0 0xff730000 0x0 0x100>;
2143			clocks = <&pmucru PCLK_GPIO1_PMU>;
2144			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
2145
2146			gpio-controller;
2147			#gpio-cells = <0x2>;
2148
2149			interrupt-controller;
2150			#interrupt-cells = <0x2>;
2151		};
2152
2153		gpio2: gpio@ff780000 {
2154			compatible = "rockchip,gpio-bank";
2155			reg = <0x0 0xff780000 0x0 0x100>;
2156			clocks = <&cru PCLK_GPIO2>;
2157			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
2158
2159			gpio-controller;
2160			#gpio-cells = <0x2>;
2161
2162			interrupt-controller;
2163			#interrupt-cells = <0x2>;
2164		};
2165
2166		gpio3: gpio@ff788000 {
2167			compatible = "rockchip,gpio-bank";
2168			reg = <0x0 0xff788000 0x0 0x100>;
2169			clocks = <&cru PCLK_GPIO3>;
2170			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
2171
2172			gpio-controller;
2173			#gpio-cells = <0x2>;
2174
2175			interrupt-controller;
2176			#interrupt-cells = <0x2>;
2177		};
2178
2179		gpio4: gpio@ff790000 {
2180			compatible = "rockchip,gpio-bank";
2181			reg = <0x0 0xff790000 0x0 0x100>;
2182			clocks = <&cru PCLK_GPIO4>;
2183			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
2184
2185			gpio-controller;
2186			#gpio-cells = <0x2>;
2187
2188			interrupt-controller;
2189			#interrupt-cells = <0x2>;
2190		};
2191
2192		pcfg_pull_up: pcfg-pull-up {
2193			bias-pull-up;
2194		};
2195
2196		pcfg_pull_down: pcfg-pull-down {
2197			bias-pull-down;
2198		};
2199
2200		pcfg_pull_none: pcfg-pull-none {
2201			bias-disable;
2202		};
2203
2204		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
2205			bias-disable;
2206			drive-strength = <12>;
2207		};
2208
2209		pcfg_pull_none_13ma: pcfg-pull-none-13ma {
2210			bias-disable;
2211			drive-strength = <13>;
2212		};
2213
2214		pcfg_pull_none_18ma: pcfg-pull-none-18ma {
2215			bias-disable;
2216			drive-strength = <18>;
2217		};
2218
2219		pcfg_pull_none_20ma: pcfg-pull-none-20ma {
2220			bias-disable;
2221			drive-strength = <20>;
2222		};
2223
2224		pcfg_pull_up_2ma: pcfg-pull-up-2ma {
2225			bias-pull-up;
2226			drive-strength = <2>;
2227		};
2228
2229		pcfg_pull_up_8ma: pcfg-pull-up-8ma {
2230			bias-pull-up;
2231			drive-strength = <8>;
2232		};
2233
2234		pcfg_pull_up_18ma: pcfg-pull-up-18ma {
2235			bias-pull-up;
2236			drive-strength = <18>;
2237		};
2238
2239		pcfg_pull_up_20ma: pcfg-pull-up-20ma {
2240			bias-pull-up;
2241			drive-strength = <20>;
2242		};
2243
2244		pcfg_pull_down_4ma: pcfg-pull-down-4ma {
2245			bias-pull-down;
2246			drive-strength = <4>;
2247		};
2248
2249		pcfg_pull_down_8ma: pcfg-pull-down-8ma {
2250			bias-pull-down;
2251			drive-strength = <8>;
2252		};
2253
2254		pcfg_pull_down_12ma: pcfg-pull-down-12ma {
2255			bias-pull-down;
2256			drive-strength = <12>;
2257		};
2258
2259		pcfg_pull_down_18ma: pcfg-pull-down-18ma {
2260			bias-pull-down;
2261			drive-strength = <18>;
2262		};
2263
2264		pcfg_pull_down_20ma: pcfg-pull-down-20ma {
2265			bias-pull-down;
2266			drive-strength = <20>;
2267		};
2268
2269		pcfg_output_high: pcfg-output-high {
2270			output-high;
2271		};
2272
2273		pcfg_output_low: pcfg-output-low {
2274			output-low;
2275		};
2276
2277		pcfg_input_enable: pcfg-input-enable {
2278			input-enable;
2279		};
2280
2281		pcfg_input_pull_up: pcfg-input-pull-up {
2282			input-enable;
2283			bias-pull-up;
2284		};
2285
2286		pcfg_input_pull_down: pcfg-input-pull-down {
2287			input-enable;
2288			bias-pull-down;
2289		};
2290
2291		clock {
2292			clk_32k: clk-32k {
2293				rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
2294			};
2295		};
2296
2297		cif {
2298			cif_clkin: cif-clkin {
2299				rockchip,pins =
2300					<2 RK_PB2 3 &pcfg_pull_none>;
2301			};
2302
2303			cif_clkouta: cif-clkouta {
2304				rockchip,pins =
2305					<2 RK_PB3 3 &pcfg_pull_none>;
2306			};
2307		};
2308
2309		edp {
2310			edp_hpd: edp-hpd {
2311				rockchip,pins =
2312					<4 RK_PC7 2 &pcfg_pull_none>;
2313			};
2314		};
2315
2316		gmac {
2317			rgmii_pins: rgmii-pins {
2318				rockchip,pins =
2319					/* mac_txclk */
2320					<3 RK_PC1 1 &pcfg_pull_none_13ma>,
2321					/* mac_rxclk */
2322					<3 RK_PB6 1 &pcfg_pull_none>,
2323					/* mac_mdio */
2324					<3 RK_PB5 1 &pcfg_pull_none>,
2325					/* mac_txen */
2326					<3 RK_PB4 1 &pcfg_pull_none_13ma>,
2327					/* mac_clk */
2328					<3 RK_PB3 1 &pcfg_pull_none>,
2329					/* mac_rxdv */
2330					<3 RK_PB1 1 &pcfg_pull_none>,
2331					/* mac_mdc */
2332					<3 RK_PB0 1 &pcfg_pull_none>,
2333					/* mac_rxd1 */
2334					<3 RK_PA7 1 &pcfg_pull_none>,
2335					/* mac_rxd0 */
2336					<3 RK_PA6 1 &pcfg_pull_none>,
2337					/* mac_txd1 */
2338					<3 RK_PA5 1 &pcfg_pull_none_13ma>,
2339					/* mac_txd0 */
2340					<3 RK_PA4 1 &pcfg_pull_none_13ma>,
2341					/* mac_rxd3 */
2342					<3 RK_PA3 1 &pcfg_pull_none>,
2343					/* mac_rxd2 */
2344					<3 RK_PA2 1 &pcfg_pull_none>,
2345					/* mac_txd3 */
2346					<3 RK_PA1 1 &pcfg_pull_none_13ma>,
2347					/* mac_txd2 */
2348					<3 RK_PA0 1 &pcfg_pull_none_13ma>;
2349			};
2350
2351			rmii_pins: rmii-pins {
2352				rockchip,pins =
2353					/* mac_mdio */
2354					<3 RK_PB5 1 &pcfg_pull_none>,
2355					/* mac_txen */
2356					<3 RK_PB4 1 &pcfg_pull_none_13ma>,
2357					/* mac_clk */
2358					<3 RK_PB3 1 &pcfg_pull_none>,
2359					/* mac_rxer */
2360					<3 RK_PB2 1 &pcfg_pull_none>,
2361					/* mac_rxdv */
2362					<3 RK_PB1 1 &pcfg_pull_none>,
2363					/* mac_mdc */
2364					<3 RK_PB0 1 &pcfg_pull_none>,
2365					/* mac_rxd1 */
2366					<3 RK_PA7 1 &pcfg_pull_none>,
2367					/* mac_rxd0 */
2368					<3 RK_PA6 1 &pcfg_pull_none>,
2369					/* mac_txd1 */
2370					<3 RK_PA5 1 &pcfg_pull_none_13ma>,
2371					/* mac_txd0 */
2372					<3 RK_PA4 1 &pcfg_pull_none_13ma>;
2373			};
2374		};
2375
2376		i2c0 {
2377			i2c0_xfer: i2c0-xfer {
2378				rockchip,pins =
2379					<1 RK_PB7 2 &pcfg_pull_none>,
2380					<1 RK_PC0 2 &pcfg_pull_none>;
2381			};
2382		};
2383
2384		i2c1 {
2385			i2c1_xfer: i2c1-xfer {
2386				rockchip,pins =
2387					<4 RK_PA2 1 &pcfg_pull_none>,
2388					<4 RK_PA1 1 &pcfg_pull_none>;
2389			};
2390		};
2391
2392		i2c2 {
2393			i2c2_xfer: i2c2-xfer {
2394				rockchip,pins =
2395					<2 RK_PA1 2 &pcfg_pull_none_12ma>,
2396					<2 RK_PA0 2 &pcfg_pull_none_12ma>;
2397			};
2398		};
2399
2400		i2c3 {
2401			i2c3_xfer: i2c3-xfer {
2402				rockchip,pins =
2403					<4 RK_PC1 1 &pcfg_pull_none>,
2404					<4 RK_PC0 1 &pcfg_pull_none>;
2405			};
2406		};
2407
2408		i2c4 {
2409			i2c4_xfer: i2c4-xfer {
2410				rockchip,pins =
2411					<1 RK_PB4 1 &pcfg_pull_none>,
2412					<1 RK_PB3 1 &pcfg_pull_none>;
2413			};
2414		};
2415
2416		i2c5 {
2417			i2c5_xfer: i2c5-xfer {
2418				rockchip,pins =
2419					<3 RK_PB3 2 &pcfg_pull_none>,
2420					<3 RK_PB2 2 &pcfg_pull_none>;
2421			};
2422		};
2423
2424		i2c6 {
2425			i2c6_xfer: i2c6-xfer {
2426				rockchip,pins =
2427					<2 RK_PB2 2 &pcfg_pull_none>,
2428					<2 RK_PB1 2 &pcfg_pull_none>;
2429			};
2430		};
2431
2432		i2c7 {
2433			i2c7_xfer: i2c7-xfer {
2434				rockchip,pins =
2435					<2 RK_PB0 2 &pcfg_pull_none>,
2436					<2 RK_PA7 2 &pcfg_pull_none>;
2437			};
2438		};
2439
2440		i2c8 {
2441			i2c8_xfer: i2c8-xfer {
2442				rockchip,pins =
2443					<1 RK_PC5 1 &pcfg_pull_none>,
2444					<1 RK_PC4 1 &pcfg_pull_none>;
2445			};
2446		};
2447
2448		i2s0 {
2449			i2s0_2ch_bus: i2s0-2ch-bus {
2450				rockchip,pins =
2451					<3 RK_PD0 1 &pcfg_pull_none>,
2452					<3 RK_PD1 1 &pcfg_pull_none>,
2453					<3 RK_PD2 1 &pcfg_pull_none>,
2454					<3 RK_PD3 1 &pcfg_pull_none>,
2455					<3 RK_PD7 1 &pcfg_pull_none>,
2456					<4 RK_PA0 1 &pcfg_pull_none>;
2457			};
2458
2459			i2s0_2ch_bus_bclk_off: i2s0-2ch-bus-bclk-off {
2460				rockchip,pins =
2461					<3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
2462					<3 RK_PD1 1 &pcfg_pull_none>,
2463					<3 RK_PD2 1 &pcfg_pull_none>,
2464					<3 RK_PD3 1 &pcfg_pull_none>,
2465					<3 RK_PD7 1 &pcfg_pull_none>,
2466					<4 RK_PA0 1 &pcfg_pull_none>;
2467			};
2468
2469			i2s0_8ch_bus: i2s0-8ch-bus {
2470				rockchip,pins =
2471					<3 RK_PD0 1 &pcfg_pull_none>,
2472					<3 RK_PD1 1 &pcfg_pull_none>,
2473					<3 RK_PD2 1 &pcfg_pull_none>,
2474					<3 RK_PD3 1 &pcfg_pull_none>,
2475					<3 RK_PD4 1 &pcfg_pull_none>,
2476					<3 RK_PD5 1 &pcfg_pull_none>,
2477					<3 RK_PD6 1 &pcfg_pull_none>,
2478					<3 RK_PD7 1 &pcfg_pull_none>,
2479					<4 RK_PA0 1 &pcfg_pull_none>;
2480			};
2481
2482			i2s0_8ch_bus_bclk_off: i2s0-8ch-bus-bclk-off {
2483				rockchip,pins =
2484					<3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
2485					<3 RK_PD1 1 &pcfg_pull_none>,
2486					<3 RK_PD2 1 &pcfg_pull_none>,
2487					<3 RK_PD3 1 &pcfg_pull_none>,
2488					<3 RK_PD4 1 &pcfg_pull_none>,
2489					<3 RK_PD5 1 &pcfg_pull_none>,
2490					<3 RK_PD6 1 &pcfg_pull_none>,
2491					<3 RK_PD7 1 &pcfg_pull_none>,
2492					<4 RK_PA0 1 &pcfg_pull_none>;
2493			};
2494		};
2495
2496		i2s1 {
2497			i2s1_2ch_bus: i2s1-2ch-bus {
2498				rockchip,pins =
2499					<4 RK_PA3 1 &pcfg_pull_none>,
2500					<4 RK_PA4 1 &pcfg_pull_none>,
2501					<4 RK_PA5 1 &pcfg_pull_none>,
2502					<4 RK_PA6 1 &pcfg_pull_none>,
2503					<4 RK_PA7 1 &pcfg_pull_none>;
2504			};
2505
2506			i2s1_2ch_bus_bclk_off: i2s1-2ch-bus-bclk-off {
2507				rockchip,pins =
2508					<4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>,
2509					<4 RK_PA4 1 &pcfg_pull_none>,
2510					<4 RK_PA5 1 &pcfg_pull_none>,
2511					<4 RK_PA6 1 &pcfg_pull_none>,
2512					<4 RK_PA7 1 &pcfg_pull_none>;
2513			};
2514		};
2515
2516		sdio0 {
2517			sdio0_bus1: sdio0-bus1 {
2518				rockchip,pins =
2519					<2 RK_PC4 1 &pcfg_pull_up>;
2520			};
2521
2522			sdio0_bus4: sdio0-bus4 {
2523				rockchip,pins =
2524					<2 RK_PC4 1 &pcfg_pull_up>,
2525					<2 RK_PC5 1 &pcfg_pull_up>,
2526					<2 RK_PC6 1 &pcfg_pull_up>,
2527					<2 RK_PC7 1 &pcfg_pull_up>;
2528			};
2529
2530			sdio0_cmd: sdio0-cmd {
2531				rockchip,pins =
2532					<2 RK_PD0 1 &pcfg_pull_up>;
2533			};
2534
2535			sdio0_clk: sdio0-clk {
2536				rockchip,pins =
2537					<2 RK_PD1 1 &pcfg_pull_none>;
2538			};
2539
2540			sdio0_cd: sdio0-cd {
2541				rockchip,pins =
2542					<2 RK_PD2 1 &pcfg_pull_up>;
2543			};
2544
2545			sdio0_pwr: sdio0-pwr {
2546				rockchip,pins =
2547					<2 RK_PD3 1 &pcfg_pull_up>;
2548			};
2549
2550			sdio0_bkpwr: sdio0-bkpwr {
2551				rockchip,pins =
2552					<2 RK_PD4 1 &pcfg_pull_up>;
2553			};
2554
2555			sdio0_wp: sdio0-wp {
2556				rockchip,pins =
2557					<0 RK_PA3 1 &pcfg_pull_up>;
2558			};
2559
2560			sdio0_int: sdio0-int {
2561				rockchip,pins =
2562					<0 RK_PA4 1 &pcfg_pull_up>;
2563			};
2564		};
2565
2566		sdmmc {
2567			sdmmc_bus1: sdmmc-bus1 {
2568				rockchip,pins =
2569					<4 RK_PB0 1 &pcfg_pull_up>;
2570			};
2571
2572			sdmmc_bus4: sdmmc-bus4 {
2573				rockchip,pins =
2574					<4 RK_PB0 1 &pcfg_pull_up>,
2575					<4 RK_PB1 1 &pcfg_pull_up>,
2576					<4 RK_PB2 1 &pcfg_pull_up>,
2577					<4 RK_PB3 1 &pcfg_pull_up>;
2578			};
2579
2580			sdmmc_clk: sdmmc-clk {
2581				rockchip,pins =
2582					<4 RK_PB4 1 &pcfg_pull_none>;
2583			};
2584
2585			sdmmc_cmd: sdmmc-cmd {
2586				rockchip,pins =
2587					<4 RK_PB5 1 &pcfg_pull_up>;
2588			};
2589
2590			sdmmc_cd: sdmmc-cd {
2591				rockchip,pins =
2592					<0 RK_PA7 1 &pcfg_pull_up>;
2593			};
2594
2595			sdmmc_wp: sdmmc-wp {
2596				rockchip,pins =
2597					<0 RK_PB0 1 &pcfg_pull_up>;
2598			};
2599		};
2600
2601		suspend {
2602			ap_pwroff: ap-pwroff {
2603				rockchip,pins = <1 RK_PA5 1 &pcfg_pull_none>;
2604			};
2605
2606			ddrio_pwroff: ddrio-pwroff {
2607				rockchip,pins = <0 RK_PA1 1 &pcfg_pull_none>;
2608			};
2609		};
2610
2611		spdif {
2612			spdif_bus: spdif-bus {
2613				rockchip,pins =
2614					<4 RK_PC5 1 &pcfg_pull_none>;
2615			};
2616
2617			spdif_bus_1: spdif-bus-1 {
2618				rockchip,pins =
2619					<3 RK_PC0 3 &pcfg_pull_none>;
2620			};
2621		};
2622
2623		spi0 {
2624			spi0_clk: spi0-clk {
2625				rockchip,pins =
2626					<3 RK_PA6 2 &pcfg_pull_up>;
2627			};
2628			spi0_cs0: spi0-cs0 {
2629				rockchip,pins =
2630					<3 RK_PA7 2 &pcfg_pull_up>;
2631			};
2632			spi0_cs1: spi0-cs1 {
2633				rockchip,pins =
2634					<3 RK_PB0 2 &pcfg_pull_up>;
2635			};
2636			spi0_tx: spi0-tx {
2637				rockchip,pins =
2638					<3 RK_PA5 2 &pcfg_pull_up>;
2639			};
2640			spi0_rx: spi0-rx {
2641				rockchip,pins =
2642					<3 RK_PA4 2 &pcfg_pull_up>;
2643			};
2644		};
2645
2646		spi1 {
2647			spi1_clk: spi1-clk {
2648				rockchip,pins =
2649					<1 RK_PB1 2 &pcfg_pull_up>;
2650			};
2651			spi1_cs0: spi1-cs0 {
2652				rockchip,pins =
2653					<1 RK_PB2 2 &pcfg_pull_up>;
2654			};
2655			spi1_rx: spi1-rx {
2656				rockchip,pins =
2657					<1 RK_PA7 2 &pcfg_pull_up>;
2658			};
2659			spi1_tx: spi1-tx {
2660				rockchip,pins =
2661					<1 RK_PB0 2 &pcfg_pull_up>;
2662			};
2663		};
2664
2665		spi2 {
2666			spi2_clk: spi2-clk {
2667				rockchip,pins =
2668					<2 RK_PB3 1 &pcfg_pull_up>;
2669			};
2670			spi2_cs0: spi2-cs0 {
2671				rockchip,pins =
2672					<2 RK_PB4 1 &pcfg_pull_up>;
2673			};
2674			spi2_rx: spi2-rx {
2675				rockchip,pins =
2676					<2 RK_PB1 1 &pcfg_pull_up>;
2677			};
2678			spi2_tx: spi2-tx {
2679				rockchip,pins =
2680					<2 RK_PB2 1 &pcfg_pull_up>;
2681			};
2682		};
2683
2684		spi3 {
2685			spi3_clk: spi3-clk {
2686				rockchip,pins =
2687					<1 RK_PC1 1 &pcfg_pull_up>;
2688			};
2689			spi3_cs0: spi3-cs0 {
2690				rockchip,pins =
2691					<1 RK_PC2 1 &pcfg_pull_up>;
2692			};
2693			spi3_rx: spi3-rx {
2694				rockchip,pins =
2695					<1 RK_PB7 1 &pcfg_pull_up>;
2696			};
2697			spi3_tx: spi3-tx {
2698				rockchip,pins =
2699					<1 RK_PC0 1 &pcfg_pull_up>;
2700			};
2701		};
2702
2703		spi4 {
2704			spi4_clk: spi4-clk {
2705				rockchip,pins =
2706					<3 RK_PA2 2 &pcfg_pull_up>;
2707			};
2708			spi4_cs0: spi4-cs0 {
2709				rockchip,pins =
2710					<3 RK_PA3 2 &pcfg_pull_up>;
2711			};
2712			spi4_rx: spi4-rx {
2713				rockchip,pins =
2714					<3 RK_PA0 2 &pcfg_pull_up>;
2715			};
2716			spi4_tx: spi4-tx {
2717				rockchip,pins =
2718					<3 RK_PA1 2 &pcfg_pull_up>;
2719			};
2720		};
2721
2722		spi5 {
2723			spi5_clk: spi5-clk {
2724				rockchip,pins =
2725					<2 RK_PC6 2 &pcfg_pull_up>;
2726			};
2727			spi5_cs0: spi5-cs0 {
2728				rockchip,pins =
2729					<2 RK_PC7 2 &pcfg_pull_up>;
2730			};
2731			spi5_rx: spi5-rx {
2732				rockchip,pins =
2733					<2 RK_PC4 2 &pcfg_pull_up>;
2734			};
2735			spi5_tx: spi5-tx {
2736				rockchip,pins =
2737					<2 RK_PC5 2 &pcfg_pull_up>;
2738			};
2739		};
2740
2741		testclk {
2742			test_clkout0: test-clkout0 {
2743				rockchip,pins =
2744					<0 RK_PA0 1 &pcfg_pull_none>;
2745			};
2746
2747			test_clkout1: test-clkout1 {
2748				rockchip,pins =
2749					<2 RK_PD1 2 &pcfg_pull_none>;
2750			};
2751
2752			test_clkout2: test-clkout2 {
2753				rockchip,pins =
2754					<0 RK_PB0 3 &pcfg_pull_none>;
2755			};
2756		};
2757
2758		tsadc {
2759			otp_pin: otp-pin {
2760				rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
2761			};
2762
2763			otp_out: otp-out {
2764				rockchip,pins = <1 RK_PA6 1 &pcfg_pull_none>;
2765			};
2766		};
2767
2768		uart0 {
2769			uart0_xfer: uart0-xfer {
2770				rockchip,pins =
2771					<2 RK_PC0 1 &pcfg_pull_up>,
2772					<2 RK_PC1 1 &pcfg_pull_none>;
2773			};
2774
2775			uart0_cts: uart0-cts {
2776				rockchip,pins =
2777					<2 RK_PC2 1 &pcfg_pull_none>;
2778			};
2779
2780			uart0_rts: uart0-rts {
2781				rockchip,pins =
2782					<2 RK_PC3 1 &pcfg_pull_none>;
2783			};
2784		};
2785
2786		uart1 {
2787			uart1_xfer: uart1-xfer {
2788				rockchip,pins =
2789					<3 RK_PB4 2 &pcfg_pull_up>,
2790					<3 RK_PB5 2 &pcfg_pull_none>;
2791			};
2792		};
2793
2794		uart2a {
2795			uart2a_xfer: uart2a-xfer {
2796				rockchip,pins =
2797					<4 RK_PB0 2 &pcfg_pull_up>,
2798					<4 RK_PB1 2 &pcfg_pull_none>;
2799			};
2800		};
2801
2802		uart2b {
2803			uart2b_xfer: uart2b-xfer {
2804				rockchip,pins =
2805					<4 RK_PC0 2 &pcfg_pull_up>,
2806					<4 RK_PC1 2 &pcfg_pull_none>;
2807			};
2808		};
2809
2810		uart2c {
2811			uart2c_xfer: uart2c-xfer {
2812				rockchip,pins =
2813					<4 RK_PC3 1 &pcfg_pull_up>,
2814					<4 RK_PC4 1 &pcfg_pull_none>;
2815			};
2816		};
2817
2818		uart3 {
2819			uart3_xfer: uart3-xfer {
2820				rockchip,pins =
2821					<3 RK_PB6 2 &pcfg_pull_up>,
2822					<3 RK_PB7 2 &pcfg_pull_none>;
2823			};
2824
2825			uart3_cts: uart3-cts {
2826				rockchip,pins =
2827					<3 RK_PC0 2 &pcfg_pull_none>;
2828			};
2829
2830			uart3_rts: uart3-rts {
2831				rockchip,pins =
2832					<3 RK_PC1 2 &pcfg_pull_none>;
2833			};
2834		};
2835
2836		uart4 {
2837			uart4_xfer: uart4-xfer {
2838				rockchip,pins =
2839					<1 RK_PA7 1 &pcfg_pull_up>,
2840					<1 RK_PB0 1 &pcfg_pull_none>;
2841			};
2842		};
2843
2844		uarthdcp {
2845			uarthdcp_xfer: uarthdcp-xfer {
2846				rockchip,pins =
2847					<4 RK_PC5 2 &pcfg_pull_up>,
2848					<4 RK_PC6 2 &pcfg_pull_none>;
2849			};
2850		};
2851
2852		pwm0 {
2853			pwm0_pin: pwm0-pin {
2854				rockchip,pins =
2855					<4 RK_PC2 1 &pcfg_pull_none>;
2856			};
2857
2858			pwm0_pin_pull_down: pwm0-pin-pull-down {
2859				rockchip,pins =
2860					<4 RK_PC2 1 &pcfg_pull_down>;
2861			};
2862
2863			vop0_pwm_pin: vop0-pwm-pin {
2864				rockchip,pins =
2865					<4 RK_PC2 2 &pcfg_pull_none>;
2866			};
2867
2868			vop1_pwm_pin: vop1-pwm-pin {
2869				rockchip,pins =
2870					<4 RK_PC2 3 &pcfg_pull_none>;
2871			};
2872		};
2873
2874		pwm1 {
2875			pwm1_pin: pwm1-pin {
2876				rockchip,pins =
2877					<4 RK_PC6 1 &pcfg_pull_none>;
2878			};
2879
2880			pwm1_pin_pull_down: pwm1-pin-pull-down {
2881				rockchip,pins =
2882					<4 RK_PC6 1 &pcfg_pull_down>;
2883			};
2884		};
2885
2886		pwm2 {
2887			pwm2_pin: pwm2-pin {
2888				rockchip,pins =
2889					<1 RK_PC3 1 &pcfg_pull_none>;
2890			};
2891
2892			pwm2_pin_pull_down: pwm2-pin-pull-down {
2893				rockchip,pins =
2894					<1 RK_PC3 1 &pcfg_pull_down>;
2895			};
2896		};
2897
2898		pwm3a {
2899			pwm3a_pin: pwm3a-pin {
2900				rockchip,pins =
2901					<0 RK_PA6 1 &pcfg_pull_none>;
2902			};
2903		};
2904
2905		pwm3b {
2906			pwm3b_pin: pwm3b-pin {
2907				rockchip,pins =
2908					<1 RK_PB6 1 &pcfg_pull_none>;
2909			};
2910		};
2911
2912		hdmi {
2913			hdmi_i2c_xfer: hdmi-i2c-xfer {
2914				rockchip,pins =
2915					<4 RK_PC1 3 &pcfg_pull_none>,
2916					<4 RK_PC0 3 &pcfg_pull_none>;
2917			};
2918
2919			hdmi_cec: hdmi-cec {
2920				rockchip,pins =
2921					<4 RK_PC7 1 &pcfg_pull_none>;
2922			};
2923		};
2924
2925		pcie {
2926			pcie_clkreqn_cpm: pci-clkreqn-cpm {
2927				rockchip,pins =
2928					<2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
2929			};
2930
2931			pcie_clkreqnb_cpm: pci-clkreqnb-cpm {
2932				rockchip,pins =
2933					<4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
2934			};
2935		};
2936
2937	};
2938};
2939