1*4e50d217SPeter Geis// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4e50d217SPeter Geis/*
3*4e50d217SPeter Geis * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4*4e50d217SPeter Geis */
5*4e50d217SPeter Geis
6*4e50d217SPeter Geis#include <dt-bindings/clock/rk3568-cru.h>
7*4e50d217SPeter Geis#include <dt-bindings/interrupt-controller/arm-gic.h>
8*4e50d217SPeter Geis#include <dt-bindings/interrupt-controller/irq.h>
9*4e50d217SPeter Geis#include <dt-bindings/phy/phy.h>
10*4e50d217SPeter Geis#include <dt-bindings/pinctrl/rockchip.h>
11*4e50d217SPeter Geis#include <dt-bindings/power/rk3568-power.h>
12*4e50d217SPeter Geis#include <dt-bindings/soc/rockchip,boot-mode.h>
13*4e50d217SPeter Geis#include <dt-bindings/thermal/thermal.h>
14*4e50d217SPeter Geis
15*4e50d217SPeter Geis/ {
16*4e50d217SPeter Geis	compatible = "rockchip,rk3568";
17*4e50d217SPeter Geis
18*4e50d217SPeter Geis	interrupt-parent = <&gic>;
19*4e50d217SPeter Geis	#address-cells = <2>;
20*4e50d217SPeter Geis	#size-cells = <2>;
21*4e50d217SPeter Geis
22*4e50d217SPeter Geis	aliases {
23*4e50d217SPeter Geis		gpio0 = &gpio0;
24*4e50d217SPeter Geis		gpio1 = &gpio1;
25*4e50d217SPeter Geis		gpio2 = &gpio2;
26*4e50d217SPeter Geis		gpio3 = &gpio3;
27*4e50d217SPeter Geis		gpio4 = &gpio4;
28*4e50d217SPeter Geis		i2c0 = &i2c0;
29*4e50d217SPeter Geis		i2c1 = &i2c1;
30*4e50d217SPeter Geis		i2c2 = &i2c2;
31*4e50d217SPeter Geis		i2c3 = &i2c3;
32*4e50d217SPeter Geis		i2c4 = &i2c4;
33*4e50d217SPeter Geis		i2c5 = &i2c5;
34*4e50d217SPeter Geis		serial0 = &uart0;
35*4e50d217SPeter Geis		serial1 = &uart1;
36*4e50d217SPeter Geis		serial2 = &uart2;
37*4e50d217SPeter Geis		serial3 = &uart3;
38*4e50d217SPeter Geis		serial4 = &uart4;
39*4e50d217SPeter Geis		serial5 = &uart5;
40*4e50d217SPeter Geis		serial6 = &uart6;
41*4e50d217SPeter Geis		serial7 = &uart7;
42*4e50d217SPeter Geis		serial8 = &uart8;
43*4e50d217SPeter Geis		serial9 = &uart9;
44*4e50d217SPeter Geis	};
45*4e50d217SPeter Geis
46*4e50d217SPeter Geis	cpus {
47*4e50d217SPeter Geis		#address-cells = <2>;
48*4e50d217SPeter Geis		#size-cells = <0>;
49*4e50d217SPeter Geis
50*4e50d217SPeter Geis		cpu0: cpu@0 {
51*4e50d217SPeter Geis			device_type = "cpu";
52*4e50d217SPeter Geis			compatible = "arm,cortex-a55";
53*4e50d217SPeter Geis			reg = <0x0 0x0>;
54*4e50d217SPeter Geis			clocks = <&scmi_clk 0>;
55*4e50d217SPeter Geis			enable-method = "psci";
56*4e50d217SPeter Geis			operating-points-v2 = <&cpu0_opp_table>;
57*4e50d217SPeter Geis		};
58*4e50d217SPeter Geis
59*4e50d217SPeter Geis		cpu1: cpu@100 {
60*4e50d217SPeter Geis			device_type = "cpu";
61*4e50d217SPeter Geis			compatible = "arm,cortex-a55";
62*4e50d217SPeter Geis			reg = <0x0 0x100>;
63*4e50d217SPeter Geis			enable-method = "psci";
64*4e50d217SPeter Geis			operating-points-v2 = <&cpu0_opp_table>;
65*4e50d217SPeter Geis		};
66*4e50d217SPeter Geis
67*4e50d217SPeter Geis		cpu2: cpu@200 {
68*4e50d217SPeter Geis			device_type = "cpu";
69*4e50d217SPeter Geis			compatible = "arm,cortex-a55";
70*4e50d217SPeter Geis			reg = <0x0 0x200>;
71*4e50d217SPeter Geis			enable-method = "psci";
72*4e50d217SPeter Geis			operating-points-v2 = <&cpu0_opp_table>;
73*4e50d217SPeter Geis		};
74*4e50d217SPeter Geis
75*4e50d217SPeter Geis		cpu3: cpu@300 {
76*4e50d217SPeter Geis			device_type = "cpu";
77*4e50d217SPeter Geis			compatible = "arm,cortex-a55";
78*4e50d217SPeter Geis			reg = <0x0 0x300>;
79*4e50d217SPeter Geis			enable-method = "psci";
80*4e50d217SPeter Geis			operating-points-v2 = <&cpu0_opp_table>;
81*4e50d217SPeter Geis		};
82*4e50d217SPeter Geis	};
83*4e50d217SPeter Geis
84*4e50d217SPeter Geis	cpu0_opp_table: cpu0-opp-table {
85*4e50d217SPeter Geis		compatible = "operating-points-v2";
86*4e50d217SPeter Geis		opp-shared;
87*4e50d217SPeter Geis
88*4e50d217SPeter Geis		opp-408000000 {
89*4e50d217SPeter Geis			opp-hz = /bits/ 64 <408000000>;
90*4e50d217SPeter Geis			opp-microvolt = <900000 900000 1150000>;
91*4e50d217SPeter Geis			clock-latency-ns = <40000>;
92*4e50d217SPeter Geis		};
93*4e50d217SPeter Geis
94*4e50d217SPeter Geis		opp-600000000 {
95*4e50d217SPeter Geis			opp-hz = /bits/ 64 <600000000>;
96*4e50d217SPeter Geis			opp-microvolt = <900000 900000 1150000>;
97*4e50d217SPeter Geis		};
98*4e50d217SPeter Geis
99*4e50d217SPeter Geis		opp-816000000 {
100*4e50d217SPeter Geis			opp-hz = /bits/ 64 <816000000>;
101*4e50d217SPeter Geis			opp-microvolt = <900000 900000 1150000>;
102*4e50d217SPeter Geis			opp-suspend;
103*4e50d217SPeter Geis		};
104*4e50d217SPeter Geis
105*4e50d217SPeter Geis		opp-1104000000 {
106*4e50d217SPeter Geis			opp-hz = /bits/ 64 <1104000000>;
107*4e50d217SPeter Geis			opp-microvolt = <900000 900000 1150000>;
108*4e50d217SPeter Geis		};
109*4e50d217SPeter Geis
110*4e50d217SPeter Geis		opp-1416000000 {
111*4e50d217SPeter Geis			opp-hz = /bits/ 64 <1416000000>;
112*4e50d217SPeter Geis			opp-microvolt = <900000 900000 1150000>;
113*4e50d217SPeter Geis		};
114*4e50d217SPeter Geis
115*4e50d217SPeter Geis		opp-1608000000 {
116*4e50d217SPeter Geis			opp-hz = /bits/ 64 <1608000000>;
117*4e50d217SPeter Geis			opp-microvolt = <975000 975000 1150000>;
118*4e50d217SPeter Geis		};
119*4e50d217SPeter Geis
120*4e50d217SPeter Geis		opp-1800000000 {
121*4e50d217SPeter Geis			opp-hz = /bits/ 64 <1800000000>;
122*4e50d217SPeter Geis			opp-microvolt = <1050000 1050000 1150000>;
123*4e50d217SPeter Geis		};
124*4e50d217SPeter Geis
125*4e50d217SPeter Geis		opp-1992000000 {
126*4e50d217SPeter Geis			opp-hz = /bits/ 64 <1992000000>;
127*4e50d217SPeter Geis			opp-microvolt = <1150000 1150000 1150000>;
128*4e50d217SPeter Geis		};
129*4e50d217SPeter Geis	};
130*4e50d217SPeter Geis
131*4e50d217SPeter Geis	firmware {
132*4e50d217SPeter Geis		scmi: scmi {
133*4e50d217SPeter Geis			compatible = "arm,scmi-smc";
134*4e50d217SPeter Geis			arm,smc-id = <0x82000010>;
135*4e50d217SPeter Geis			shmem = <&scmi_shmem>;
136*4e50d217SPeter Geis			#address-cells = <1>;
137*4e50d217SPeter Geis			#size-cells = <0>;
138*4e50d217SPeter Geis
139*4e50d217SPeter Geis			scmi_clk: protocol@14 {
140*4e50d217SPeter Geis				reg = <0x14>;
141*4e50d217SPeter Geis				#clock-cells = <1>;
142*4e50d217SPeter Geis			};
143*4e50d217SPeter Geis		};
144*4e50d217SPeter Geis	};
145*4e50d217SPeter Geis
146*4e50d217SPeter Geis	pmu {
147*4e50d217SPeter Geis		compatible = "arm,cortex-a55-pmu";
148*4e50d217SPeter Geis		interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
149*4e50d217SPeter Geis			     <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
150*4e50d217SPeter Geis			     <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
151*4e50d217SPeter Geis			     <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
152*4e50d217SPeter Geis		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
153*4e50d217SPeter Geis	};
154*4e50d217SPeter Geis
155*4e50d217SPeter Geis	psci {
156*4e50d217SPeter Geis		compatible = "arm,psci-1.0";
157*4e50d217SPeter Geis		method = "smc";
158*4e50d217SPeter Geis	};
159*4e50d217SPeter Geis
160*4e50d217SPeter Geis	timer {
161*4e50d217SPeter Geis		compatible = "arm,armv8-timer";
162*4e50d217SPeter Geis		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
163*4e50d217SPeter Geis			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
164*4e50d217SPeter Geis			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
165*4e50d217SPeter Geis			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
166*4e50d217SPeter Geis		arm,no-tick-in-suspend;
167*4e50d217SPeter Geis	};
168*4e50d217SPeter Geis
169*4e50d217SPeter Geis	xin24m: xin24m {
170*4e50d217SPeter Geis		compatible = "fixed-clock";
171*4e50d217SPeter Geis		clock-frequency = <24000000>;
172*4e50d217SPeter Geis		clock-output-names = "xin24m";
173*4e50d217SPeter Geis		#clock-cells = <0>;
174*4e50d217SPeter Geis	};
175*4e50d217SPeter Geis
176*4e50d217SPeter Geis	xin32k: xin32k {
177*4e50d217SPeter Geis		compatible = "fixed-clock";
178*4e50d217SPeter Geis		clock-frequency = <32768>;
179*4e50d217SPeter Geis		clock-output-names = "xin32k";
180*4e50d217SPeter Geis		pinctrl-0 = <&clk32k_out0>;
181*4e50d217SPeter Geis		pinctrl-names = "default";
182*4e50d217SPeter Geis		#clock-cells = <0>;
183*4e50d217SPeter Geis	};
184*4e50d217SPeter Geis
185*4e50d217SPeter Geis	sram@10f000 {
186*4e50d217SPeter Geis		compatible = "mmio-sram";
187*4e50d217SPeter Geis		reg = <0x0 0x0010f000 0x0 0x100>;
188*4e50d217SPeter Geis		#address-cells = <1>;
189*4e50d217SPeter Geis		#size-cells = <1>;
190*4e50d217SPeter Geis		ranges = <0 0x0 0x0010f000 0x100>;
191*4e50d217SPeter Geis
192*4e50d217SPeter Geis		scmi_shmem: sram@0 {
193*4e50d217SPeter Geis			compatible = "arm,scmi-shmem";
194*4e50d217SPeter Geis			reg = <0x0 0x100>;
195*4e50d217SPeter Geis		};
196*4e50d217SPeter Geis	};
197*4e50d217SPeter Geis
198*4e50d217SPeter Geis	gic: interrupt-controller@fd400000 {
199*4e50d217SPeter Geis		compatible = "arm,gic-v3";
200*4e50d217SPeter Geis		reg = <0x0 0xfd400000 0 0x10000>, /* GICD */
201*4e50d217SPeter Geis		      <0x0 0xfd460000 0 0x80000>; /* GICR */
202*4e50d217SPeter Geis		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
203*4e50d217SPeter Geis		interrupt-controller;
204*4e50d217SPeter Geis		#interrupt-cells = <3>;
205*4e50d217SPeter Geis		mbi-alias = <0x0 0xfd100000>;
206*4e50d217SPeter Geis		mbi-ranges = <296 24>;
207*4e50d217SPeter Geis		msi-controller;
208*4e50d217SPeter Geis	};
209*4e50d217SPeter Geis
210*4e50d217SPeter Geis	pmugrf: syscon@fdc20000 {
211*4e50d217SPeter Geis		compatible = "rockchip,rk3568-pmugrf", "syscon", "simple-mfd";
212*4e50d217SPeter Geis		reg = <0x0 0xfdc20000 0x0 0x10000>;
213*4e50d217SPeter Geis	};
214*4e50d217SPeter Geis
215*4e50d217SPeter Geis	grf: syscon@fdc60000 {
216*4e50d217SPeter Geis		compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd";
217*4e50d217SPeter Geis		reg = <0x0 0xfdc60000 0x0 0x10000>;
218*4e50d217SPeter Geis	};
219*4e50d217SPeter Geis
220*4e50d217SPeter Geis	pmucru: clock-controller@fdd00000 {
221*4e50d217SPeter Geis		compatible = "rockchip,rk3568-pmucru";
222*4e50d217SPeter Geis		reg = <0x0 0xfdd00000 0x0 0x1000>;
223*4e50d217SPeter Geis		#clock-cells = <1>;
224*4e50d217SPeter Geis		#reset-cells = <1>;
225*4e50d217SPeter Geis	};
226*4e50d217SPeter Geis
227*4e50d217SPeter Geis	cru: clock-controller@fdd20000 {
228*4e50d217SPeter Geis		compatible = "rockchip,rk3568-cru";
229*4e50d217SPeter Geis		reg = <0x0 0xfdd20000 0x0 0x1000>;
230*4e50d217SPeter Geis		#clock-cells = <1>;
231*4e50d217SPeter Geis		#reset-cells = <1>;
232*4e50d217SPeter Geis	};
233*4e50d217SPeter Geis
234*4e50d217SPeter Geis	i2c0: i2c@fdd40000 {
235*4e50d217SPeter Geis		compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
236*4e50d217SPeter Geis		reg = <0x0 0xfdd40000 0x0 0x1000>;
237*4e50d217SPeter Geis		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
238*4e50d217SPeter Geis		clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>;
239*4e50d217SPeter Geis		clock-names = "i2c", "pclk";
240*4e50d217SPeter Geis		pinctrl-0 = <&i2c0_xfer>;
241*4e50d217SPeter Geis		pinctrl-names = "default";
242*4e50d217SPeter Geis		#address-cells = <1>;
243*4e50d217SPeter Geis		#size-cells = <0>;
244*4e50d217SPeter Geis		status = "disabled";
245*4e50d217SPeter Geis	};
246*4e50d217SPeter Geis
247*4e50d217SPeter Geis	uart0: serial@fdd50000 {
248*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
249*4e50d217SPeter Geis		reg = <0x0 0xfdd50000 0x0 0x100>;
250*4e50d217SPeter Geis		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
251*4e50d217SPeter Geis		clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>;
252*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
253*4e50d217SPeter Geis		dmas = <&dmac0 0>, <&dmac0 1>;
254*4e50d217SPeter Geis		pinctrl-0 = <&uart0_xfer>;
255*4e50d217SPeter Geis		pinctrl-names = "default";
256*4e50d217SPeter Geis		reg-io-width = <4>;
257*4e50d217SPeter Geis		reg-shift = <2>;
258*4e50d217SPeter Geis		status = "disabled";
259*4e50d217SPeter Geis	};
260*4e50d217SPeter Geis
261*4e50d217SPeter Geis	pmu: power-management@fdd90000 {
262*4e50d217SPeter Geis		compatible = "rockchip,rk3568-pmu", "syscon", "simple-mfd";
263*4e50d217SPeter Geis		reg = <0x0 0xfdd90000 0x0 0x1000>;
264*4e50d217SPeter Geis
265*4e50d217SPeter Geis		power: power-controller {
266*4e50d217SPeter Geis			compatible = "rockchip,rk3568-power-controller";
267*4e50d217SPeter Geis			#power-domain-cells = <1>;
268*4e50d217SPeter Geis			#address-cells = <1>;
269*4e50d217SPeter Geis			#size-cells = <0>;
270*4e50d217SPeter Geis
271*4e50d217SPeter Geis			/* These power domains are grouped by VD_GPU */
272*4e50d217SPeter Geis			power-domain@RK3568_PD_GPU {
273*4e50d217SPeter Geis				reg = <RK3568_PD_GPU>;
274*4e50d217SPeter Geis				clocks = <&cru ACLK_GPU_PRE>,
275*4e50d217SPeter Geis					 <&cru PCLK_GPU_PRE>;
276*4e50d217SPeter Geis				pm_qos = <&qos_gpu>;
277*4e50d217SPeter Geis				#power-domain-cells = <0>;
278*4e50d217SPeter Geis			};
279*4e50d217SPeter Geis
280*4e50d217SPeter Geis			/* These power domains are grouped by VD_LOGIC */
281*4e50d217SPeter Geis			power-domain@RK3568_PD_VI {
282*4e50d217SPeter Geis				reg = <RK3568_PD_VI>;
283*4e50d217SPeter Geis				clocks = <&cru HCLK_VI>,
284*4e50d217SPeter Geis					 <&cru PCLK_VI>;
285*4e50d217SPeter Geis				pm_qos = <&qos_isp>,
286*4e50d217SPeter Geis					 <&qos_vicap0>,
287*4e50d217SPeter Geis					 <&qos_vicap1>;
288*4e50d217SPeter Geis				#power-domain-cells = <0>;
289*4e50d217SPeter Geis			};
290*4e50d217SPeter Geis
291*4e50d217SPeter Geis			power-domain@RK3568_PD_VO {
292*4e50d217SPeter Geis				reg = <RK3568_PD_VO>;
293*4e50d217SPeter Geis				clocks = <&cru HCLK_VO>,
294*4e50d217SPeter Geis					 <&cru PCLK_VO>,
295*4e50d217SPeter Geis					 <&cru ACLK_VOP_PRE>;
296*4e50d217SPeter Geis				pm_qos = <&qos_hdcp>,
297*4e50d217SPeter Geis					 <&qos_vop_m0>,
298*4e50d217SPeter Geis					 <&qos_vop_m1>;
299*4e50d217SPeter Geis				#power-domain-cells = <0>;
300*4e50d217SPeter Geis			};
301*4e50d217SPeter Geis
302*4e50d217SPeter Geis			power-domain@RK3568_PD_RGA {
303*4e50d217SPeter Geis				reg = <RK3568_PD_RGA>;
304*4e50d217SPeter Geis				clocks = <&cru HCLK_RGA_PRE>,
305*4e50d217SPeter Geis					 <&cru PCLK_RGA_PRE>;
306*4e50d217SPeter Geis				pm_qos = <&qos_ebc>,
307*4e50d217SPeter Geis					 <&qos_iep>,
308*4e50d217SPeter Geis					 <&qos_jpeg_dec>,
309*4e50d217SPeter Geis					 <&qos_jpeg_enc>,
310*4e50d217SPeter Geis					 <&qos_rga_rd>,
311*4e50d217SPeter Geis					 <&qos_rga_wr>;
312*4e50d217SPeter Geis				#power-domain-cells = <0>;
313*4e50d217SPeter Geis			};
314*4e50d217SPeter Geis
315*4e50d217SPeter Geis			power-domain@RK3568_PD_VPU {
316*4e50d217SPeter Geis				reg = <RK3568_PD_VPU>;
317*4e50d217SPeter Geis				clocks = <&cru HCLK_VPU_PRE>;
318*4e50d217SPeter Geis				pm_qos = <&qos_vpu>;
319*4e50d217SPeter Geis				#power-domain-cells = <0>;
320*4e50d217SPeter Geis			};
321*4e50d217SPeter Geis
322*4e50d217SPeter Geis			power-domain@RK3568_PD_RKVDEC {
323*4e50d217SPeter Geis				clocks = <&cru HCLK_RKVDEC_PRE>;
324*4e50d217SPeter Geis				reg = <RK3568_PD_RKVDEC>;
325*4e50d217SPeter Geis				pm_qos = <&qos_rkvdec>;
326*4e50d217SPeter Geis				#power-domain-cells = <0>;
327*4e50d217SPeter Geis			};
328*4e50d217SPeter Geis
329*4e50d217SPeter Geis			power-domain@RK3568_PD_RKVENC {
330*4e50d217SPeter Geis				reg = <RK3568_PD_RKVENC>;
331*4e50d217SPeter Geis				clocks = <&cru HCLK_RKVENC_PRE>;
332*4e50d217SPeter Geis				pm_qos = <&qos_rkvenc_rd_m0>,
333*4e50d217SPeter Geis					 <&qos_rkvenc_rd_m1>,
334*4e50d217SPeter Geis					 <&qos_rkvenc_wr_m0>;
335*4e50d217SPeter Geis				#power-domain-cells = <0>;
336*4e50d217SPeter Geis			};
337*4e50d217SPeter Geis
338*4e50d217SPeter Geis			power-domain@RK3568_PD_PIPE {
339*4e50d217SPeter Geis				reg = <RK3568_PD_PIPE>;
340*4e50d217SPeter Geis				clocks = <&cru PCLK_PIPE>;
341*4e50d217SPeter Geis				pm_qos = <&qos_pcie2x1>,
342*4e50d217SPeter Geis					 <&qos_pcie3x1>,
343*4e50d217SPeter Geis					 <&qos_pcie3x2>,
344*4e50d217SPeter Geis					 <&qos_sata0>,
345*4e50d217SPeter Geis					 <&qos_sata1>,
346*4e50d217SPeter Geis					 <&qos_sata2>,
347*4e50d217SPeter Geis					 <&qos_usb3_0>,
348*4e50d217SPeter Geis					 <&qos_usb3_1>;
349*4e50d217SPeter Geis				#power-domain-cells = <0>;
350*4e50d217SPeter Geis			};
351*4e50d217SPeter Geis		};
352*4e50d217SPeter Geis	};
353*4e50d217SPeter Geis
354*4e50d217SPeter Geis	sdmmc2: mmc@fe000000 {
355*4e50d217SPeter Geis		compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
356*4e50d217SPeter Geis		reg = <0x0 0xfe000000 0x0 0x4000>;
357*4e50d217SPeter Geis		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
358*4e50d217SPeter Geis		clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>,
359*4e50d217SPeter Geis			 <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>;
360*4e50d217SPeter Geis		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
361*4e50d217SPeter Geis		fifo-depth = <0x100>;
362*4e50d217SPeter Geis		max-frequency = <150000000>;
363*4e50d217SPeter Geis		resets = <&cru SRST_SDMMC2>;
364*4e50d217SPeter Geis		reset-names = "reset";
365*4e50d217SPeter Geis		status = "disabled";
366*4e50d217SPeter Geis	};
367*4e50d217SPeter Geis
368*4e50d217SPeter Geis	qos_gpu: qos@fe128000 {
369*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
370*4e50d217SPeter Geis		reg = <0x0 0xfe128000 0x0 0x20>;
371*4e50d217SPeter Geis	};
372*4e50d217SPeter Geis
373*4e50d217SPeter Geis	qos_rkvenc_rd_m0: qos@fe138080 {
374*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
375*4e50d217SPeter Geis		reg = <0x0 0xfe138080 0x0 0x20>;
376*4e50d217SPeter Geis	};
377*4e50d217SPeter Geis
378*4e50d217SPeter Geis	qos_rkvenc_rd_m1: qos@fe138100 {
379*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
380*4e50d217SPeter Geis		reg = <0x0 0xfe138100 0x0 0x20>;
381*4e50d217SPeter Geis	};
382*4e50d217SPeter Geis
383*4e50d217SPeter Geis	qos_rkvenc_wr_m0: qos@fe138180 {
384*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
385*4e50d217SPeter Geis		reg = <0x0 0xfe138180 0x0 0x20>;
386*4e50d217SPeter Geis	};
387*4e50d217SPeter Geis
388*4e50d217SPeter Geis	qos_isp: qos@fe148000 {
389*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
390*4e50d217SPeter Geis		reg = <0x0 0xfe148000 0x0 0x20>;
391*4e50d217SPeter Geis	};
392*4e50d217SPeter Geis
393*4e50d217SPeter Geis	qos_vicap0: qos@fe148080 {
394*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
395*4e50d217SPeter Geis		reg = <0x0 0xfe148080 0x0 0x20>;
396*4e50d217SPeter Geis	};
397*4e50d217SPeter Geis
398*4e50d217SPeter Geis	qos_vicap1: qos@fe148100 {
399*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
400*4e50d217SPeter Geis		reg = <0x0 0xfe148100 0x0 0x20>;
401*4e50d217SPeter Geis	};
402*4e50d217SPeter Geis
403*4e50d217SPeter Geis	qos_vpu: qos@fe150000 {
404*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
405*4e50d217SPeter Geis		reg = <0x0 0xfe150000 0x0 0x20>;
406*4e50d217SPeter Geis	};
407*4e50d217SPeter Geis
408*4e50d217SPeter Geis	qos_ebc: qos@fe158000 {
409*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
410*4e50d217SPeter Geis		reg = <0x0 0xfe158000 0x0 0x20>;
411*4e50d217SPeter Geis	};
412*4e50d217SPeter Geis
413*4e50d217SPeter Geis	qos_iep: qos@fe158100 {
414*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
415*4e50d217SPeter Geis		reg = <0x0 0xfe158100 0x0 0x20>;
416*4e50d217SPeter Geis	};
417*4e50d217SPeter Geis
418*4e50d217SPeter Geis	qos_jpeg_dec: qos@fe158180 {
419*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
420*4e50d217SPeter Geis		reg = <0x0 0xfe158180 0x0 0x20>;
421*4e50d217SPeter Geis	};
422*4e50d217SPeter Geis
423*4e50d217SPeter Geis	qos_jpeg_enc: qos@fe158200 {
424*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
425*4e50d217SPeter Geis		reg = <0x0 0xfe158200 0x0 0x20>;
426*4e50d217SPeter Geis	};
427*4e50d217SPeter Geis
428*4e50d217SPeter Geis	qos_rga_rd: qos@fe158280 {
429*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
430*4e50d217SPeter Geis		reg = <0x0 0xfe158280 0x0 0x20>;
431*4e50d217SPeter Geis	};
432*4e50d217SPeter Geis
433*4e50d217SPeter Geis	qos_rga_wr: qos@fe158300 {
434*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
435*4e50d217SPeter Geis		reg = <0x0 0xfe158300 0x0 0x20>;
436*4e50d217SPeter Geis	};
437*4e50d217SPeter Geis
438*4e50d217SPeter Geis	qos_npu: qos@fe180000 {
439*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
440*4e50d217SPeter Geis		reg = <0x0 0xfe180000 0x0 0x20>;
441*4e50d217SPeter Geis	};
442*4e50d217SPeter Geis
443*4e50d217SPeter Geis	qos_pcie2x1: qos@fe190000 {
444*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
445*4e50d217SPeter Geis		reg = <0x0 0xfe190000 0x0 0x20>;
446*4e50d217SPeter Geis	};
447*4e50d217SPeter Geis
448*4e50d217SPeter Geis	qos_pcie3x1: qos@fe190080 {
449*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
450*4e50d217SPeter Geis		reg = <0x0 0xfe190080 0x0 0x20>;
451*4e50d217SPeter Geis	};
452*4e50d217SPeter Geis
453*4e50d217SPeter Geis	qos_pcie3x2: qos@fe190100 {
454*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
455*4e50d217SPeter Geis		reg = <0x0 0xfe190100 0x0 0x20>;
456*4e50d217SPeter Geis	};
457*4e50d217SPeter Geis
458*4e50d217SPeter Geis	qos_sata0: qos@fe190200 {
459*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
460*4e50d217SPeter Geis		reg = <0x0 0xfe190200 0x0 0x20>;
461*4e50d217SPeter Geis	};
462*4e50d217SPeter Geis
463*4e50d217SPeter Geis	qos_sata1: qos@fe190280 {
464*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
465*4e50d217SPeter Geis		reg = <0x0 0xfe190280 0x0 0x20>;
466*4e50d217SPeter Geis	};
467*4e50d217SPeter Geis
468*4e50d217SPeter Geis	qos_sata2: qos@fe190300 {
469*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
470*4e50d217SPeter Geis		reg = <0x0 0xfe190300 0x0 0x20>;
471*4e50d217SPeter Geis	};
472*4e50d217SPeter Geis
473*4e50d217SPeter Geis	qos_usb3_0: qos@fe190380 {
474*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
475*4e50d217SPeter Geis		reg = <0x0 0xfe190380 0x0 0x20>;
476*4e50d217SPeter Geis	};
477*4e50d217SPeter Geis
478*4e50d217SPeter Geis	qos_usb3_1: qos@fe190400 {
479*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
480*4e50d217SPeter Geis		reg = <0x0 0xfe190400 0x0 0x20>;
481*4e50d217SPeter Geis	};
482*4e50d217SPeter Geis
483*4e50d217SPeter Geis	qos_rkvdec: qos@fe198000 {
484*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
485*4e50d217SPeter Geis		reg = <0x0 0xfe198000 0x0 0x20>;
486*4e50d217SPeter Geis	};
487*4e50d217SPeter Geis
488*4e50d217SPeter Geis	qos_hdcp: qos@fe1a8000 {
489*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
490*4e50d217SPeter Geis		reg = <0x0 0xfe1a8000 0x0 0x20>;
491*4e50d217SPeter Geis	};
492*4e50d217SPeter Geis
493*4e50d217SPeter Geis	qos_vop_m0: qos@fe1a8080 {
494*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
495*4e50d217SPeter Geis		reg = <0x0 0xfe1a8080 0x0 0x20>;
496*4e50d217SPeter Geis	};
497*4e50d217SPeter Geis
498*4e50d217SPeter Geis	qos_vop_m1: qos@fe1a8100 {
499*4e50d217SPeter Geis		compatible = "rockchip,rk3568-qos", "syscon";
500*4e50d217SPeter Geis		reg = <0x0 0xfe1a8100 0x0 0x20>;
501*4e50d217SPeter Geis	};
502*4e50d217SPeter Geis
503*4e50d217SPeter Geis	sdmmc0: mmc@fe2b0000 {
504*4e50d217SPeter Geis		compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
505*4e50d217SPeter Geis		reg = <0x0 0xfe2b0000 0x0 0x4000>;
506*4e50d217SPeter Geis		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
507*4e50d217SPeter Geis		clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>,
508*4e50d217SPeter Geis			 <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>;
509*4e50d217SPeter Geis		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
510*4e50d217SPeter Geis		fifo-depth = <0x100>;
511*4e50d217SPeter Geis		max-frequency = <150000000>;
512*4e50d217SPeter Geis		resets = <&cru SRST_SDMMC0>;
513*4e50d217SPeter Geis		reset-names = "reset";
514*4e50d217SPeter Geis		status = "disabled";
515*4e50d217SPeter Geis	};
516*4e50d217SPeter Geis
517*4e50d217SPeter Geis	sdmmc1: mmc@fe2c0000 {
518*4e50d217SPeter Geis		compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
519*4e50d217SPeter Geis		reg = <0x0 0xfe2c0000 0x0 0x4000>;
520*4e50d217SPeter Geis		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
521*4e50d217SPeter Geis		clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>,
522*4e50d217SPeter Geis			 <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>;
523*4e50d217SPeter Geis		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
524*4e50d217SPeter Geis		fifo-depth = <0x100>;
525*4e50d217SPeter Geis		max-frequency = <150000000>;
526*4e50d217SPeter Geis		resets = <&cru SRST_SDMMC1>;
527*4e50d217SPeter Geis		reset-names = "reset";
528*4e50d217SPeter Geis		status = "disabled";
529*4e50d217SPeter Geis	};
530*4e50d217SPeter Geis
531*4e50d217SPeter Geis	sdhci: mmc@fe310000 {
532*4e50d217SPeter Geis		compatible = "rockchip,rk3568-dwcmshc";
533*4e50d217SPeter Geis		reg = <0x0 0xfe310000 0x0 0x10000>;
534*4e50d217SPeter Geis		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
535*4e50d217SPeter Geis		assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>;
536*4e50d217SPeter Geis		assigned-clock-rates = <200000000>, <24000000>;
537*4e50d217SPeter Geis		clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
538*4e50d217SPeter Geis			 <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
539*4e50d217SPeter Geis			 <&cru TCLK_EMMC>;
540*4e50d217SPeter Geis		clock-names = "core", "bus", "axi", "block", "timer";
541*4e50d217SPeter Geis		status = "disabled";
542*4e50d217SPeter Geis	};
543*4e50d217SPeter Geis
544*4e50d217SPeter Geis	dmac0: dmac@fe530000 {
545*4e50d217SPeter Geis		compatible = "arm,pl330", "arm,primecell";
546*4e50d217SPeter Geis		reg = <0x0 0xfe530000 0x0 0x4000>;
547*4e50d217SPeter Geis		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
548*4e50d217SPeter Geis			     <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
549*4e50d217SPeter Geis		arm,pl330-periph-burst;
550*4e50d217SPeter Geis		clocks = <&cru ACLK_BUS>;
551*4e50d217SPeter Geis		clock-names = "apb_pclk";
552*4e50d217SPeter Geis		#dma-cells = <1>;
553*4e50d217SPeter Geis	};
554*4e50d217SPeter Geis
555*4e50d217SPeter Geis	dmac1: dmac@fe550000 {
556*4e50d217SPeter Geis		compatible = "arm,pl330", "arm,primecell";
557*4e50d217SPeter Geis		reg = <0x0 0xfe550000 0x0 0x4000>;
558*4e50d217SPeter Geis		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
559*4e50d217SPeter Geis			     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
560*4e50d217SPeter Geis		arm,pl330-periph-burst;
561*4e50d217SPeter Geis		clocks = <&cru ACLK_BUS>;
562*4e50d217SPeter Geis		clock-names = "apb_pclk";
563*4e50d217SPeter Geis		#dma-cells = <1>;
564*4e50d217SPeter Geis	};
565*4e50d217SPeter Geis
566*4e50d217SPeter Geis	i2c1: i2c@fe5a0000 {
567*4e50d217SPeter Geis		compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
568*4e50d217SPeter Geis		reg = <0x0 0xfe5a0000 0x0 0x1000>;
569*4e50d217SPeter Geis		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
570*4e50d217SPeter Geis		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
571*4e50d217SPeter Geis		clock-names = "i2c", "pclk";
572*4e50d217SPeter Geis		pinctrl-0 = <&i2c1_xfer>;
573*4e50d217SPeter Geis		pinctrl-names = "default";
574*4e50d217SPeter Geis		#address-cells = <1>;
575*4e50d217SPeter Geis		#size-cells = <0>;
576*4e50d217SPeter Geis		status = "disabled";
577*4e50d217SPeter Geis	};
578*4e50d217SPeter Geis
579*4e50d217SPeter Geis	i2c2: i2c@fe5b0000 {
580*4e50d217SPeter Geis		compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
581*4e50d217SPeter Geis		reg = <0x0 0xfe5b0000 0x0 0x1000>;
582*4e50d217SPeter Geis		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
583*4e50d217SPeter Geis		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
584*4e50d217SPeter Geis		clock-names = "i2c", "pclk";
585*4e50d217SPeter Geis		pinctrl-0 = <&i2c2m0_xfer>;
586*4e50d217SPeter Geis		pinctrl-names = "default";
587*4e50d217SPeter Geis		#address-cells = <1>;
588*4e50d217SPeter Geis		#size-cells = <0>;
589*4e50d217SPeter Geis		status = "disabled";
590*4e50d217SPeter Geis	};
591*4e50d217SPeter Geis
592*4e50d217SPeter Geis	i2c3: i2c@fe5c0000 {
593*4e50d217SPeter Geis		compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
594*4e50d217SPeter Geis		reg = <0x0 0xfe5c0000 0x0 0x1000>;
595*4e50d217SPeter Geis		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
596*4e50d217SPeter Geis		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
597*4e50d217SPeter Geis		clock-names = "i2c", "pclk";
598*4e50d217SPeter Geis		pinctrl-0 = <&i2c3m0_xfer>;
599*4e50d217SPeter Geis		pinctrl-names = "default";
600*4e50d217SPeter Geis		#address-cells = <1>;
601*4e50d217SPeter Geis		#size-cells = <0>;
602*4e50d217SPeter Geis		status = "disabled";
603*4e50d217SPeter Geis	};
604*4e50d217SPeter Geis
605*4e50d217SPeter Geis	i2c4: i2c@fe5d0000 {
606*4e50d217SPeter Geis		compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
607*4e50d217SPeter Geis		reg = <0x0 0xfe5d0000 0x0 0x1000>;
608*4e50d217SPeter Geis		interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
609*4e50d217SPeter Geis		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
610*4e50d217SPeter Geis		clock-names = "i2c", "pclk";
611*4e50d217SPeter Geis		pinctrl-0 = <&i2c4m0_xfer>;
612*4e50d217SPeter Geis		pinctrl-names = "default";
613*4e50d217SPeter Geis		#address-cells = <1>;
614*4e50d217SPeter Geis		#size-cells = <0>;
615*4e50d217SPeter Geis		status = "disabled";
616*4e50d217SPeter Geis	};
617*4e50d217SPeter Geis
618*4e50d217SPeter Geis	i2c5: i2c@fe5e0000 {
619*4e50d217SPeter Geis		compatible = "rockchip,rk3568-i2c", "rockchip,rk3399-i2c";
620*4e50d217SPeter Geis		reg = <0x0 0xfe5e0000 0x0 0x1000>;
621*4e50d217SPeter Geis		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
622*4e50d217SPeter Geis		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
623*4e50d217SPeter Geis		clock-names = "i2c", "pclk";
624*4e50d217SPeter Geis		pinctrl-0 = <&i2c5m0_xfer>;
625*4e50d217SPeter Geis		pinctrl-names = "default";
626*4e50d217SPeter Geis		#address-cells = <1>;
627*4e50d217SPeter Geis		#size-cells = <0>;
628*4e50d217SPeter Geis		status = "disabled";
629*4e50d217SPeter Geis	};
630*4e50d217SPeter Geis
631*4e50d217SPeter Geis	uart1: serial@fe650000 {
632*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
633*4e50d217SPeter Geis		reg = <0x0 0xfe650000 0x0 0x100>;
634*4e50d217SPeter Geis		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
635*4e50d217SPeter Geis		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
636*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
637*4e50d217SPeter Geis		dmas = <&dmac0 2>, <&dmac0 3>;
638*4e50d217SPeter Geis		pinctrl-0 = <&uart1m0_xfer>;
639*4e50d217SPeter Geis		pinctrl-names = "default";
640*4e50d217SPeter Geis		reg-io-width = <4>;
641*4e50d217SPeter Geis		reg-shift = <2>;
642*4e50d217SPeter Geis		status = "disabled";
643*4e50d217SPeter Geis	};
644*4e50d217SPeter Geis
645*4e50d217SPeter Geis	uart2: serial@fe660000 {
646*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
647*4e50d217SPeter Geis		reg = <0x0 0xfe660000 0x0 0x100>;
648*4e50d217SPeter Geis		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
649*4e50d217SPeter Geis		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
650*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
651*4e50d217SPeter Geis		dmas = <&dmac0 4>, <&dmac0 5>;
652*4e50d217SPeter Geis		pinctrl-0 = <&uart2m0_xfer>;
653*4e50d217SPeter Geis		pinctrl-names = "default";
654*4e50d217SPeter Geis		reg-io-width = <4>;
655*4e50d217SPeter Geis		reg-shift = <2>;
656*4e50d217SPeter Geis		status = "disabled";
657*4e50d217SPeter Geis	};
658*4e50d217SPeter Geis
659*4e50d217SPeter Geis	uart3: serial@fe670000 {
660*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
661*4e50d217SPeter Geis		reg = <0x0 0xfe670000 0x0 0x100>;
662*4e50d217SPeter Geis		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
663*4e50d217SPeter Geis		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
664*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
665*4e50d217SPeter Geis		dmas = <&dmac0 6>, <&dmac0 7>;
666*4e50d217SPeter Geis		pinctrl-0 = <&uart3m0_xfer>;
667*4e50d217SPeter Geis		pinctrl-names = "default";
668*4e50d217SPeter Geis		reg-io-width = <4>;
669*4e50d217SPeter Geis		reg-shift = <2>;
670*4e50d217SPeter Geis		status = "disabled";
671*4e50d217SPeter Geis	};
672*4e50d217SPeter Geis
673*4e50d217SPeter Geis	uart4: serial@fe680000 {
674*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
675*4e50d217SPeter Geis		reg = <0x0 0xfe680000 0x0 0x100>;
676*4e50d217SPeter Geis		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
677*4e50d217SPeter Geis		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
678*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
679*4e50d217SPeter Geis		dmas = <&dmac0 8>, <&dmac0 9>;
680*4e50d217SPeter Geis		pinctrl-0 = <&uart4m0_xfer>;
681*4e50d217SPeter Geis		pinctrl-names = "default";
682*4e50d217SPeter Geis		reg-io-width = <4>;
683*4e50d217SPeter Geis		reg-shift = <2>;
684*4e50d217SPeter Geis		status = "disabled";
685*4e50d217SPeter Geis	};
686*4e50d217SPeter Geis
687*4e50d217SPeter Geis	uart5: serial@fe690000 {
688*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
689*4e50d217SPeter Geis		reg = <0x0 0xfe690000 0x0 0x100>;
690*4e50d217SPeter Geis		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
691*4e50d217SPeter Geis		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
692*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
693*4e50d217SPeter Geis		dmas = <&dmac0 10>, <&dmac0 11>;
694*4e50d217SPeter Geis		pinctrl-0 = <&uart5m0_xfer>;
695*4e50d217SPeter Geis		pinctrl-names = "default";
696*4e50d217SPeter Geis		reg-io-width = <4>;
697*4e50d217SPeter Geis		reg-shift = <2>;
698*4e50d217SPeter Geis		status = "disabled";
699*4e50d217SPeter Geis	};
700*4e50d217SPeter Geis
701*4e50d217SPeter Geis	uart6: serial@fe6a0000 {
702*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
703*4e50d217SPeter Geis		reg = <0x0 0xfe6a0000 0x0 0x100>;
704*4e50d217SPeter Geis		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
705*4e50d217SPeter Geis		clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
706*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
707*4e50d217SPeter Geis		dmas = <&dmac0 12>, <&dmac0 13>;
708*4e50d217SPeter Geis		pinctrl-0 = <&uart6m0_xfer>;
709*4e50d217SPeter Geis		pinctrl-names = "default";
710*4e50d217SPeter Geis		reg-io-width = <4>;
711*4e50d217SPeter Geis		reg-shift = <2>;
712*4e50d217SPeter Geis		status = "disabled";
713*4e50d217SPeter Geis	};
714*4e50d217SPeter Geis
715*4e50d217SPeter Geis	uart7: serial@fe6b0000 {
716*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
717*4e50d217SPeter Geis		reg = <0x0 0xfe6b0000 0x0 0x100>;
718*4e50d217SPeter Geis		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
719*4e50d217SPeter Geis		clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
720*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
721*4e50d217SPeter Geis		dmas = <&dmac0 14>, <&dmac0 15>;
722*4e50d217SPeter Geis		pinctrl-0 = <&uart7m0_xfer>;
723*4e50d217SPeter Geis		pinctrl-names = "default";
724*4e50d217SPeter Geis		reg-io-width = <4>;
725*4e50d217SPeter Geis		reg-shift = <2>;
726*4e50d217SPeter Geis		status = "disabled";
727*4e50d217SPeter Geis	};
728*4e50d217SPeter Geis
729*4e50d217SPeter Geis	uart8: serial@fe6c0000 {
730*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
731*4e50d217SPeter Geis		reg = <0x0 0xfe6c0000 0x0 0x100>;
732*4e50d217SPeter Geis		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
733*4e50d217SPeter Geis		clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
734*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
735*4e50d217SPeter Geis		dmas = <&dmac0 16>, <&dmac0 17>;
736*4e50d217SPeter Geis		pinctrl-0 = <&uart8m0_xfer>;
737*4e50d217SPeter Geis		pinctrl-names = "default";
738*4e50d217SPeter Geis		reg-io-width = <4>;
739*4e50d217SPeter Geis		reg-shift = <2>;
740*4e50d217SPeter Geis		status = "disabled";
741*4e50d217SPeter Geis	};
742*4e50d217SPeter Geis
743*4e50d217SPeter Geis	uart9: serial@fe6d0000 {
744*4e50d217SPeter Geis		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
745*4e50d217SPeter Geis		reg = <0x0 0xfe6d0000 0x0 0x100>;
746*4e50d217SPeter Geis		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
747*4e50d217SPeter Geis		clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
748*4e50d217SPeter Geis		clock-names = "baudclk", "apb_pclk";
749*4e50d217SPeter Geis		dmas = <&dmac0 18>, <&dmac0 19>;
750*4e50d217SPeter Geis		pinctrl-0 = <&uart9m0_xfer>;
751*4e50d217SPeter Geis		pinctrl-names = "default";
752*4e50d217SPeter Geis		reg-io-width = <4>;
753*4e50d217SPeter Geis		reg-shift = <2>;
754*4e50d217SPeter Geis		status = "disabled";
755*4e50d217SPeter Geis	};
756*4e50d217SPeter Geis
757*4e50d217SPeter Geis	saradc: saradc@fe720000 {
758*4e50d217SPeter Geis		compatible = "rockchip,rk3568-saradc", "rockchip,rk3399-saradc";
759*4e50d217SPeter Geis		reg = <0x0 0xfe720000 0x0 0x100>;
760*4e50d217SPeter Geis		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
761*4e50d217SPeter Geis		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
762*4e50d217SPeter Geis		clock-names = "saradc", "apb_pclk";
763*4e50d217SPeter Geis		resets = <&cru SRST_P_SARADC>;
764*4e50d217SPeter Geis		reset-names = "saradc-apb";
765*4e50d217SPeter Geis		#io-channel-cells = <1>;
766*4e50d217SPeter Geis		status = "disabled";
767*4e50d217SPeter Geis	};
768*4e50d217SPeter Geis
769*4e50d217SPeter Geis	pinctrl: pinctrl {
770*4e50d217SPeter Geis		compatible = "rockchip,rk3568-pinctrl";
771*4e50d217SPeter Geis		rockchip,grf = <&grf>;
772*4e50d217SPeter Geis		rockchip,pmu = <&pmugrf>;
773*4e50d217SPeter Geis		#address-cells = <2>;
774*4e50d217SPeter Geis		#size-cells = <2>;
775*4e50d217SPeter Geis		ranges;
776*4e50d217SPeter Geis
777*4e50d217SPeter Geis		gpio0: gpio@fdd60000 {
778*4e50d217SPeter Geis			compatible = "rockchip,gpio-bank";
779*4e50d217SPeter Geis			reg = <0x0 0xfdd60000 0x0 0x100>;
780*4e50d217SPeter Geis			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
781*4e50d217SPeter Geis			clocks = <&pmucru PCLK_GPIO0>;
782*4e50d217SPeter Geis			gpio-controller;
783*4e50d217SPeter Geis			#gpio-cells = <2>;
784*4e50d217SPeter Geis			interrupt-controller;
785*4e50d217SPeter Geis			#interrupt-cells = <2>;
786*4e50d217SPeter Geis		};
787*4e50d217SPeter Geis
788*4e50d217SPeter Geis		gpio1: gpio@fe740000 {
789*4e50d217SPeter Geis			compatible = "rockchip,gpio-bank";
790*4e50d217SPeter Geis			reg = <0x0 0xfe740000 0x0 0x100>;
791*4e50d217SPeter Geis			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
792*4e50d217SPeter Geis			clocks = <&cru PCLK_GPIO1>;
793*4e50d217SPeter Geis			gpio-controller;
794*4e50d217SPeter Geis			#gpio-cells = <2>;
795*4e50d217SPeter Geis			interrupt-controller;
796*4e50d217SPeter Geis			#interrupt-cells = <2>;
797*4e50d217SPeter Geis		};
798*4e50d217SPeter Geis
799*4e50d217SPeter Geis		gpio2: gpio@fe750000 {
800*4e50d217SPeter Geis			compatible = "rockchip,gpio-bank";
801*4e50d217SPeter Geis			reg = <0x0 0xfe750000 0x0 0x100>;
802*4e50d217SPeter Geis			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
803*4e50d217SPeter Geis			clocks = <&cru PCLK_GPIO2>;
804*4e50d217SPeter Geis			gpio-controller;
805*4e50d217SPeter Geis			#gpio-cells = <2>;
806*4e50d217SPeter Geis			interrupt-controller;
807*4e50d217SPeter Geis			#interrupt-cells = <2>;
808*4e50d217SPeter Geis		};
809*4e50d217SPeter Geis
810*4e50d217SPeter Geis		gpio3: gpio@fe760000 {
811*4e50d217SPeter Geis			compatible = "rockchip,gpio-bank";
812*4e50d217SPeter Geis			reg = <0x0 0xfe760000 0x0 0x100>;
813*4e50d217SPeter Geis			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
814*4e50d217SPeter Geis			clocks = <&cru PCLK_GPIO3>;
815*4e50d217SPeter Geis			gpio-controller;
816*4e50d217SPeter Geis			#gpio-cells = <2>;
817*4e50d217SPeter Geis			interrupt-controller;
818*4e50d217SPeter Geis			#interrupt-cells = <2>;
819*4e50d217SPeter Geis		};
820*4e50d217SPeter Geis
821*4e50d217SPeter Geis		gpio4: gpio@fe770000 {
822*4e50d217SPeter Geis			compatible = "rockchip,gpio-bank";
823*4e50d217SPeter Geis			reg = <0x0 0xfe770000 0x0 0x100>;
824*4e50d217SPeter Geis			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
825*4e50d217SPeter Geis			clocks = <&cru PCLK_GPIO4>;
826*4e50d217SPeter Geis			gpio-controller;
827*4e50d217SPeter Geis			#gpio-cells = <2>;
828*4e50d217SPeter Geis			interrupt-controller;
829*4e50d217SPeter Geis			#interrupt-cells = <2>;
830*4e50d217SPeter Geis		};
831*4e50d217SPeter Geis	};
832*4e50d217SPeter Geis};
833*4e50d217SPeter Geis
834*4e50d217SPeter Geis#include "rk3568-pinctrl.dtsi"
835