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