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