xref: /rk3399_rockchip-uboot/arch/arm/dts/rk3568.dtsi (revision c4e6abcd5e33b08affcf6b9eb33af1294e1443a5)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
4 */
5
6#include <dt-bindings/clock/rk3568-cru.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/pinctrl/rockchip.h>
10#include <dt-bindings/power/rk3568-power.h>
11
12/ {
13	compatible = "rockchip,rk3568";
14
15	interrupt-parent = <&gic>;
16	#address-cells = <2>;
17	#size-cells = <2>;
18
19	aliases {
20		i2c0 = &i2c0;
21		i2c1 = &i2c1;
22		i2c2 = &i2c2;
23		i2c3 = &i2c3;
24		i2c4 = &i2c4;
25		i2c5 = &i2c5;
26		serial0 = &uart0;
27		serial1 = &uart1;
28		serial2 = &uart2;
29		serial3 = &uart3;
30		serial4 = &uart4;
31		serial5 = &uart5;
32		serial6 = &uart6;
33		serial7 = &uart7;
34		serial8 = &uart8;
35		serial9 = &uart9;
36		spi0 = &spi0;
37		spi1 = &spi1;
38		spi2 = &spi2;
39		spi3 = &spi3;
40	};
41
42	cpus {
43		#address-cells = <2>;
44		#size-cells = <0>;
45
46		cpu0: cpu@0 {
47			device_type = "cpu";
48			compatible = "arm,cortex-a55";
49			reg = <0x0 0x0>;
50			enable-method = "psci";
51		};
52#if 0
53		cpu1: cpu@100 {
54			device_type = "cpu";
55			compatible = "arm,cortex-a55";
56			reg = <0x0 0x100>;
57			enable-method = "psci";
58		};
59
60		cpu2: cpu@200 {
61			device_type = "cpu";
62			compatible = "arm,cortex-a55";
63			reg = <0x0 0x200>;
64			enable-method = "psci";
65		};
66
67		cpu3: cpu@300 {
68			device_type = "cpu";
69			compatible = "arm,cortex-a55";
70			reg = <0x0 0x300>;
71			enable-method = "psci";
72		};
73#endif
74	};
75
76#if 0
77	arm-pmu {
78		compatible = "arm,cortex-a55-pmu", "arm,armv8-pmuv3";
79		interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
80			     <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
81			     <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
82			     <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
83		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
84	};
85#endif
86
87	psci {
88		compatible = "arm,psci-1.0";
89		method = "smc";
90	};
91
92	timer {
93		compatible = "arm,armv8-timer";
94		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
95			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
96			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
97			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
98	};
99
100	xin24m: xin24m {
101		compatible = "fixed-clock";
102		#clock-cells = <0>;
103		clock-frequency = <24000000>;
104		clock-output-names = "xin24m";
105	};
106
107	usbdrd30: usbdrd {
108		compatible = "rockchip,rk3568-dwc3", "rockchip,rk3399-dwc3";
109		clocks = <&cru CLK_USB3OTG0_REF>, <&cru CLK_USB3OTG0_SUSPEND>,
110			 <&cru ACLK_USB3OTG0>;
111		clock-names = "ref_clk", "suspend_clk",
112			      "bus_clk";
113		#address-cells = <2>;
114		#size-cells = <2>;
115		ranges;
116		status = "disabled";
117
118		usbdrd_dwc3: dwc3@fcc00000 {
119			compatible = "snps,dwc3";
120			reg = <0x0 0xfcc00000 0x0 0x400000>;
121			interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
122			dr_mode = "otg";
123			phy_type = "utmi_wide";
124			power-domains = <&power RK3568_PD_PIPE>;
125			resets = <&cru SRST_USB3OTG0>;
126			reset-names = "usb3-otg";
127			snps,dis_enblslpm_quirk;
128			snps,dis-u2-freeclk-exists-quirk;
129			snps,dis_u2_susphy_quirk;
130			snps,dis-del-phy-power-chg-quirk;
131			snps,dis-tx-ipgap-linecheck-quirk;
132			snps,xhci-trb-ent-quirk;
133			status = "disabled";
134		};
135	};
136
137	usbhost30: usbhost {
138		compatible = "rockchip,rk3568-dwc3", "rockchip,rk3399-dwc3";
139		clocks = <&cru CLK_USB3OTG1_REF>, <&cru CLK_USB3OTG1_SUSPEND>,
140			 <&cru ACLK_USB3OTG1>;
141		clock-names = "ref_clk", "suspend_clk",
142			      "bus_clk";
143		#address-cells = <2>;
144		#size-cells = <2>;
145		ranges;
146		status = "disabled";
147
148		usbhost_dwc3: dwc3@fd000000 {
149			compatible = "snps,dwc3";
150			reg = <0x0 0xfd000000 0x0 0x400000>;
151			interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
152			dr_mode = "host";
153			phy_type = "utmi_wide";
154			power-domains = <&power RK3568_PD_PIPE>;
155			resets = <&cru SRST_USB3OTG1>;
156			reset-names = "usb3-host";
157			snps,dis_enblslpm_quirk;
158			snps,dis-u2-freeclk-exists-quirk;
159			snps,dis_u2_susphy_quirk;
160			snps,dis-del-phy-power-chg-quirk;
161			snps,dis-tx-ipgap-linecheck-quirk;
162			snps,xhci-trb-ent-quirk;
163			status = "disabled";
164		};
165	};
166
167	gic: interrupt-controller@fd400000 {
168		compatible = "arm,gic-v3";
169		#interrupt-cells = <3>;
170		#address-cells = <2>;
171		#size-cells = <2>;
172		ranges;
173		interrupt-controller;
174
175		reg = <0x0 0xfd400000 0 0x10000>, /* GICD */
176		      <0x0 0xfd460000 0 0xc0000>; /* GICR */
177		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
178		its: interrupt-controller@fd440000 {
179			compatible = "arm,gic-v3-its";
180			msi-controller;
181			reg = <0x0 0xfd440000 0x0 0x20000>;
182		};
183	};
184
185	usb_host0_ehci: usb@fd800000 {
186		compatible = "generic-ehci";
187		reg = <0x0 0xfd800000 0x0 0x40000>;
188		interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
189		clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>;
190		clock-names = "usbhost", "arbiter";
191		status = "disabled";
192	};
193
194	usb_host0_ohci: usb@fd840000 {
195		compatible = "generic-ohci";
196		reg = <0x0 0xfd840000 0x0 0x40000>;
197		interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
198		clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>;
199		clock-names = "usbhost", "arbiter";
200		status = "disabled";
201	};
202
203	usb_host1_ehci: usb@fd880000 {
204		compatible = "generic-ehci";
205		reg = <0x0 0xfd880000 0x0 0x40000>;
206		interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
207		clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>;
208		clock-names = "usbhost", "arbiter";
209		status = "disabled";
210	};
211
212	usb_host1_ohci: usb@fd8c0000 {
213		compatible = "generic-ohci";
214		reg = <0x0 0xfd8c0000 0x0 0x40000>;
215		interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
216		clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>;
217		clock-names = "usbhost", "arbiter";
218		status = "disabled";
219	};
220
221	pmugrf: syscon@fdc20000 {
222		compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd";
223		reg = <0x0 0xfdc20000 0x0 0x10000>;
224
225		pmu_io_domains: io-domains {
226			compatible = "rockchip,rk3568-pmu-io-voltage-domain";
227			status = "disabled";
228		};
229	};
230
231	pipegrf: syscon@fdc50000 {
232		compatible = "rockchip,rk3568-pipegrf", "syscon";
233		reg = <0x0 0xfdc50000 0x0 0x1000>;
234	};
235
236	grf: syscon@fdc60000 {
237		compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd";
238		reg = <0x0 0xfdc60000 0x0 0x10000>;
239
240		io_domains: io-domains {
241			compatible = "rockchip,rk3568-io-voltage-domain";
242			status = "disabled";
243		};
244	};
245
246	pipe_phy_grf0: syscon@fdc70000 {
247		compatible = "rockchip,pipe-phy-grf", "syscon";
248		reg = <0x0 0xfdc70000 0x0 0x1000>;
249	};
250
251	pipe_phy_grf1: syscon@fdc80000 {
252		compatible = "rockchip,pipe-phy-grf", "syscon";
253		reg = <0x0 0xfdc80000 0x0 0x1000>;
254	};
255
256	pipe_phy_grf2: syscon@fdc90000 {
257		compatible = "rockchip,pipe-phy-grf", "syscon";
258		reg = <0x0 0xfdc90000 0x0 0x1000>;
259	};
260
261	pmucru: clock-controller@fdd00000 {
262		compatible = "rockchip,rk3568-pmucru";
263		reg = <0x0 0xfdd00000 0x0 0x1000>;
264		rockchip,grf = <&grf>;
265		#clock-cells = <1>;
266		#reset-cells = <1>;
267	};
268
269	cru: clock-controller@fdd20000 {
270		compatible = "rockchip,rk3568-cru";
271		reg = <0x0 0xfdd20000 0x0 0x1000>;
272		rockchip,grf = <&grf>;
273		#clock-cells = <1>;
274		#reset-cells = <1>;
275
276		assigned-clocks =
277			<&pmucru CLK_RTC_32K>, <&pmucru PLL_PPLL>,
278			<&pmucru PCLK_PMU>, <&cru PLL_CPLL>,
279			<&cru PLL_GPLL>, <&cru ARMCLK>,
280			<&cru ACLK_BUS>, <&cru PCLK_BUS>,
281			<&cru ACLK_TOP_HIGH>, <&cru ACLK_TOP_LOW>,
282			<&cru HCLK_TOP>, <&cru PCLK_TOP>,
283			<&cru ACLK_PERIMID>, <&cru HCLK_PERIMID>;
284		assigned-clock-rates =
285			<32768>, <100000000>,
286			<100000000>, <1000000000>,
287			<1188000000>, <600000000>,
288			<150000000>, <100000000>,
289			<300000000>, <200000000>,
290			<150000000>, <100000000>,
291			<300000000>, <150000000>;
292		assigned-clock-parents =
293			<&pmucru CLK_RTC32K_FRAC>;
294	};
295
296	i2c0: i2c@fdd40000 {
297		compatible = "rockchip,rk3399-i2c";
298		reg = <0x0 0xfdd40000 0x0 0x1000>;
299		clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>;
300		clock-names = "i2c", "pclk";
301		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
302		pinctrl-names = "default";
303		pinctrl-0 = <&i2c0_xfer>;
304		#address-cells = <1>;
305		#size-cells = <0>;
306		status = "disabled";
307	};
308
309	uart0: serial@fdd50000 {
310		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
311		reg = <0x0 0xfdd50000 0x0 0x100>;
312		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
313		clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>;
314		clock-names = "baudclk", "apb_pclk";
315		reg-shift = <2>;
316		reg-io-width = <4>;
317		dmas = <&dmac0 0>, <&dmac0 1>;
318		pinctrl-names = "default";
319		pinctrl-0 = <&uart0_xfer>;
320		status = "disabled";
321	};
322
323	pwm0: pwm@fdd70000 {
324		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
325		reg = <0x0 0xfdd70000 0x0 0x10>;
326		#pwm-cells = <3>;
327		pinctrl-names = "active";
328		pinctrl-0 = <&pwm0m0_pins>;
329		clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
330		clock-names = "pwm", "pclk";
331		status = "disabled";
332	};
333
334	pwm1: pwm@fdd70010 {
335		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
336		reg = <0x0 0xfdd70010 0x0 0x10>;
337		#pwm-cells = <3>;
338		pinctrl-names = "active";
339		pinctrl-0 = <&pwm1m0_pins>;
340		clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
341		clock-names = "pwm", "pclk";
342		status = "disabled";
343	};
344
345	pwm2: pwm@fdd70020 {
346		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
347		reg = <0x0 0xfdd70020 0x0 0x10>;
348		#pwm-cells = <3>;
349		pinctrl-names = "active";
350		pinctrl-0 = <&pwm2m0_pins>;
351		clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
352		clock-names = "pwm", "pclk";
353		status = "disabled";
354	};
355
356	pwm3: pwm@fdd70030 {
357		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
358		reg = <0x0 0xfdd70030 0x0 0x10>;
359		#pwm-cells = <3>;
360		pinctrl-names = "active";
361		pinctrl-0 = <&pwm3_pins>;
362		clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
363		clock-names = "pwm", "pclk";
364		status = "disabled";
365	};
366
367	pmu: power-management@fdd90000 {
368		compatible = "rockchip,rk3568-pmu", "syscon", "simple-mfd";
369		reg = <0x0 0xfdd90000 0x0 0x1000>;
370
371		power: power-controller {
372			compatible = "rockchip,rk3568-power-controller";
373			#power-domain-cells = <1>;
374			#address-cells = <1>;
375			#size-cells = <0>;
376			status = "okay";
377
378			/* These power domains are grouped by VD_NPU */
379			pd_npu@RK3568_PD_NPU {
380				reg = <RK3568_PD_NPU>;
381				pm_qos = <&qos_npu>;
382			};
383			/* These power domains are grouped by VD_GPU */
384			pd_gpu@RK3568_PD_GPU {
385				reg = <RK3568_PD_GPU>;
386				pm_qos = <&qos_gpu>;
387			};
388			/* These power domains are grouped by VD_LOGIC */
389			pd_vi@RK3568_PD_VI {
390				reg = <RK3568_PD_VI>;
391				pm_qos = <&qos_isp>,
392					 <&qos_vicap0>,
393					 <&qos_vicap1>;
394			};
395			pd_vo@RK3568_PD_VO {
396				reg = <RK3568_PD_VO>;
397				pm_qos = <&qos_hdcp>,
398					 <&qos_vop_m0>,
399					 <&qos_vop_m1>;
400			};
401			pd_rga@RK3568_PD_RGA {
402				reg = <RK3568_PD_RGA>;
403				pm_qos = <&qos_ebc>,
404					 <&qos_iep>,
405					 <&qos_jpeg_dec>,
406					 <&qos_jpeg_enc>,
407					 <&qos_rga_rd>,
408					 <&qos_rga_wr>;
409			};
410			pd_vpu@RK3568_PD_VPU {
411				reg = <RK3568_PD_VPU>;
412				pm_qos = <&qos_vpu>;
413			};
414			pd_rkvdec@RK3568_PD_RKVDEC {
415				reg = <RK3568_PD_RKVDEC>;
416				pm_qos = <&qos_rkvdec>;
417			};
418			pd_rkvenc@RK3568_PD_RKVENC {
419				reg = <RK3568_PD_RKVENC>;
420				pm_qos = <&qos_rkvenc_rd_m0>,
421					 <&qos_rkvenc_rd_m1>,
422					 <&qos_rkvenc_wr_m0>;
423			};
424			pd_pipe@RK3568_PD_PIPE {
425				reg = <RK3568_PD_PIPE>;
426				pm_qos = <&qos_pcie2x1>,
427					 <&qos_pcie3x1>,
428					 <&qos_pcie3x2>,
429					 <&qos_sata0>,
430					 <&qos_sata1>,
431					 <&qos_sata2>,
432					 <&qos_usb3_0>,
433					 <&qos_usb3_1>;
434			};
435		};
436	};
437
438	gpu: gpu@fde60000 {
439		compatible = "arm,malit602", "arm,malit60x", "arm,malit6xx", "arm,mali-midgard";
440		reg = <0x0 0xfde60000 0x0 0x4000>;
441
442		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
443			     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
444			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
445		interrupt-names = "GPU", "MMU", "JOB";
446
447		upthreshold = <40>;
448		downdifferential = <10>;
449
450		clocks = <&cru CLK_GPU>;
451		clock-names = "clk_mali";
452		power-domains = <&power RK3568_PD_GPU>;
453		#cooling-cells = <2>;
454		operating-points-v2 = <&gpu_opp_table>;
455
456		status = "disabled";
457		power_model {
458			compatible = "arm,mali-simple-power-model";
459			static-coefficient = <411000>;
460			dynamic-coefficient = <733>;
461			ts = <32000 4700 (-80) 2>;
462			thermal-zone = "gpu-thermal";
463		};
464	};
465
466	gpu_opp_table: opp-table2 {
467		compatible = "operating-points-v2";
468
469		opp-200000000 {
470			opp-hz = /bits/ 64 <200000000>;
471			opp-microvolt = <1000000>;
472		};
473		opp-300000000 {
474			opp-hz = /bits/ 64 <300000000>;
475			opp-microvolt = <1000000>;
476		};
477		opp-400000000 {
478			opp-hz = /bits/ 64 <400000000>;
479			opp-microvolt = <1000000>;
480		};
481		opp-600000000 {
482			opp-hz = /bits/ 64 <600000000>;
483			opp-microvolt = <1000000>;
484		};
485	};
486
487	qos_gpu: qos@fe128000 {
488		compatible = "syscon";
489		reg = <0x0 0xfe128000 0x0 0x20>;
490	};
491
492	qos_rkvenc_rd_m0: qos@fe138080 {
493		compatible = "syscon";
494		reg = <0x0 0xfe138080 0x0 0x20>;
495	};
496
497	qos_rkvenc_rd_m1: qos@fe138100 {
498		compatible = "syscon";
499		reg = <0x0 0xfe138100 0x0 0x20>;
500	};
501
502	qos_rkvenc_wr_m0: qos@fe138180 {
503		compatible = "syscon";
504		reg = <0x0 0xfe138180 0x0 0x20>;
505	};
506
507	qos_isp: qos@fe148000 {
508		compatible = "syscon";
509		reg = <0x0 0xfe148000 0x0 0x20>;
510	};
511
512	qos_vicap0: qos@fe148080 {
513		compatible = "syscon";
514		reg = <0x0 0xfe148080 0x0 0x20>;
515	};
516
517	qos_vicap1: qos@fe148100 {
518		compatible = "syscon";
519		reg = <0x0 0xfe148100 0x0 0x20>;
520	};
521
522	qos_vpu: qos@fe150000 {
523		compatible = "syscon";
524		reg = <0x0 0xfe150000 0x0 0x20>;
525	};
526
527	qos_ebc: qos@fe158000 {
528		compatible = "syscon";
529		reg = <0x0 0xfe158000 0x0 0x20>;
530	};
531
532	qos_iep: qos@fe158100 {
533		compatible = "syscon";
534		reg = <0x0 0xfe158100 0x0 0x20>;
535	};
536
537	qos_jpeg_dec: qos@fe158180 {
538		compatible = "syscon";
539		reg = <0x0 0xfe158180 0x0 0x20>;
540	};
541
542	qos_jpeg_enc: qos@fe158200 {
543		compatible = "syscon";
544		reg = <0x0 0xfe158200 0x0 0x20>;
545	};
546
547	qos_rga_rd: qos@fe158280 {
548		compatible = "syscon";
549		reg = <0x0 0xfe158280 0x0 0x20>;
550	};
551
552	qos_rga_wr: qos@fe158300 {
553		compatible = "syscon";
554		reg = <0x0 0xfe158300 0x0 0x20>;
555	};
556
557	qos_npu: qos@fe180000 {
558		compatible = "syscon";
559		reg = <0x0 0xfe180000 0x0 0x20>;
560	};
561
562	qos_pcie2x1: qos@fe190000 {
563		compatible = "syscon";
564		reg = <0x0 0xfe190000 0x0 0x20>;
565	};
566
567	qos_pcie3x1: qos@fe190080 {
568		compatible = "syscon";
569		reg = <0x0 0xfe190080 0x0 0x20>;
570	};
571
572	qos_pcie3x2: qos@fe190100 {
573		compatible = "syscon";
574		reg = <0x0 0xfe190100 0x0 0x20>;
575	};
576
577	qos_sata0: qos@fe190200 {
578		compatible = "syscon";
579		reg = <0x0 0xfe190200 0x0 0x20>;
580	};
581
582	qos_sata1: qos@fe190280 {
583		compatible = "syscon";
584		reg = <0x0 0xfe190280 0x0 0x20>;
585	};
586
587	qos_sata2: qos@fe190300 {
588		compatible = "syscon";
589		reg = <0x0 0xfe190300 0x0 0x20>;
590	};
591
592	qos_usb3_0: qos@fe190380 {
593		compatible = "syscon";
594		reg = <0x0 0xfe190380 0x0 0x20>;
595	};
596
597	qos_usb3_1: qos@fe190400 {
598		compatible = "syscon";
599		reg = <0x0 0xfe190400 0x0 0x20>;
600	};
601
602	qos_rkvdec: qos@fe198000 {
603		compatible = "syscon";
604		reg = <0x0 0xfe198000 0x0 0x20>;
605	};
606
607	qos_hdcp: qos@fe1a8000 {
608		compatible = "syscon";
609		reg = <0x0 0xfe1a8000 0x0 0x20>;
610	};
611
612	qos_vop_m0: qos@fe1a8080 {
613		compatible = "syscon";
614		reg = <0x0 0xfe1a8080 0x0 0x20>;
615	};
616
617	qos_vop_m1: qos@fe1a8100 {
618		compatible = "syscon";
619		reg = <0x0 0xfe1a8100 0x0 0x20>;
620	};
621
622	sdmmc2: dwmmc@fe000000 {
623		compatible = "rockchip,rk3568-dw-mshc",
624			     "rockchip,rk3288-dw-mshc";
625		reg = <0x0 0xfe000000 0x0 0x4000>;
626		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
627		max-frequency = <150000000>;
628		clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>,
629			 <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>;
630		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
631		fifo-depth = <0x100>;
632		resets = <&cru SRST_SDMMC2>;
633		reset-names = "reset";
634		status = "disabled";
635	};
636
637	sdmmc0: dwmmc@fe2b0000 {
638		compatible = "rockchip,rk3568-dw-mshc",
639			     "rockchip,rk3288-dw-mshc";
640		reg = <0x0 0xfe2b0000 0x0 0x4000>;
641		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
642		max-frequency = <150000000>;
643		clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>,
644			 <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>;
645		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
646		fifo-depth = <0x100>;
647		resets = <&cru SRST_SDMMC0>;
648		reset-names = "reset";
649		status = "disabled";
650	};
651
652	sdmmc1: dwmmc@fe2c0000 {
653		compatible = "rockchip,rk3568-dw-mshc",
654			     "rockchip,rk3288-dw-mshc";
655		reg = <0x0 0xfe2c0000 0x0 0x4000>;
656		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
657		max-frequency = <150000000>;
658		clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>,
659			 <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>;
660		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
661		fifo-depth = <0x100>;
662		resets = <&cru SRST_SDMMC1>;
663		reset-names = "reset";
664		status = "disabled";
665	};
666
667	sfc: sfc@fe300000 {
668		compatible = "rockchip,sfc";
669		reg = <0x0 0xfe300000 0x0 0x4000>;
670		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
671		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
672		clock-names = "clk_sfc", "hclk_sfc";
673		assigned-clocks = <&cru SCLK_SFC>;
674		assigned-clock-rates = <100000000>;
675		status = "disabled";
676	};
677
678	sdhci: sdhci@fe310000 {
679		compatible = "rockchip,dwcmshc-sdhci", "snps,dwcmshc-sdhci";
680		reg = <0x0 0xfe310000 0x0 0x10000>;
681		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
682		assigned-clocks = <&cru CCLK_EMMC>, <&cru BCLK_EMMC>, <&cru TCLK_EMMC>;
683		assigned-clock-rates = <200000000>, <200000000>, <24000000>;
684		clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
685			 <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
686			 <&cru TCLK_EMMC>;
687		clock-names = "core", "bus", "axi", "block", "timer";
688		status = "disabled";
689	};
690
691	nandc0: nandc@fe330000 {
692		compatible = "rockchip,rk-nandc";
693		reg = <0x0 0xfe330000 0x0 0x4000>;
694		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
695		nandc_id = <0>;
696		clocks = <&cru NCLK_NANDC>, <&cru HCLK_NANDC>;
697		clock-names = "clk_nandc", "hclk_nandc";
698		status = "disabled";
699	};
700
701	i2s0_8ch: i2s@fe400000 {
702		compatible = "rockchip,rk3568-i2s-tdm";
703		reg = <0x0 0xfe400000 0x0 0x1000>;
704		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
705		clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
706		clock-names = "mclk_tx", "mclk_rx", "hclk";
707		dmas = <&dmac1 0>;
708		dma-names = "tx";
709		resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
710		reset-names = "tx-m", "rx-m";
711		rockchip,cru = <&cru>;
712		rockchip,grf = <&grf>;
713		rockchip,playback-only;
714		status = "disabled";
715	};
716
717	i2s1_8ch: i2s@fe410000 {
718		compatible = "rockchip,rk3568-i2s-tdm";
719		reg = <0x0 0xfe410000 0x0 0x1000>;
720		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
721		clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>;
722		clock-names = "mclk_tx", "mclk_rx", "hclk";
723		dmas = <&dmac1 2>, <&dmac1 3>;
724		dma-names = "tx", "rx";
725		resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
726		reset-names = "tx-m", "rx-m";
727		rockchip,cru = <&cru>;
728		rockchip,grf = <&grf>;
729		pinctrl-names = "default";
730		pinctrl-0 = <&i2s1sclktxm0
731			     &i2s1sclkrxm0
732			     &i2s1lrcktxm0
733			     &i2s1lrckrxm0
734			     &i2s1sdi0m0
735			     &i2s1sdi1m0
736			     &i2s1sdi2m0
737			     &i2s1sdi3m0
738			     &i2s1sdo0m0
739			     &i2s1sdo1m0
740			     &i2s1sdo2m0
741			     &i2s1sdo3m0>;
742		status = "disabled";
743	};
744
745	i2s2_2ch: i2s@fe420000 {
746		compatible = "rockchip,rk3568-i2s-tdm";
747		reg = <0x0 0xfe420000 0x0 0x1000>;
748		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
749		clocks = <&cru MCLK_I2S2_2CH>, <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
750		clock-names = "mclk_tx", "mclk_rx", "hclk";
751		dmas = <&dmac1 4>, <&dmac1 5>;
752		dma-names = "tx", "rx";
753		rockchip,cru = <&cru>;
754		rockchip,grf = <&grf>;
755		rockchip,clk-trcm = <1>;
756		pinctrl-names = "default";
757		pinctrl-0 = <&i2s2sclktxm0
758			     &i2s2lrcktxm0
759			     &i2s2sdim0
760			     &i2s2sdom0>;
761		status = "disabled";
762	};
763
764	i2s3_2ch: i2s@fe430000 {
765		compatible = "rockchip,rk3568-i2s-tdm";
766		reg = <0x0 0xfe430000 0x0 0x1000>;
767		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
768		clocks = <&cru MCLK_I2S3_2CH_TX>, <&cru MCLK_I2S3_2CH_RX>, <&cru HCLK_I2S3_2CH>;
769		clock-names = "mclk_tx", "mclk_rx", "hclk";
770		dmas = <&dmac1 6>, <&dmac1 7>;
771		dma-names = "tx", "rx";
772		resets = <&cru SRST_M_I2S3_2CH_TX>, <&cru SRST_M_I2S3_2CH_RX>;
773		reset-names = "tx-m", "rx-m";
774		rockchip,cru = <&cru>;
775		rockchip,grf = <&grf>;
776		pinctrl-names = "default";
777		pinctrl-0 = <&i2s3sclkm0
778			     &i2s3lrckm0
779			     &i2s3sdim0
780			     &i2s3sdom0>;
781		status = "disabled";
782	};
783
784	pdm: pdm@fe440000 {
785		compatible = "rockchip,rk3568-pdm", "rockchip,pdm";
786		reg = <0x0 0xfe440000 0x0 0x1000>;
787		clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>;
788		clock-names = "pdm_clk", "pdm_hclk";
789		dmas = <&dmac1 9>;
790		dma-names = "rx";
791		status = "disabled";
792	};
793
794	spdif_8ch: spdif@fe460000 {
795		compatible = "rockchip,rk3588-spdif";
796		reg = <0x0 0xfe460000 0x0 0x1000>;
797		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
798		dmas = <&dmac1 1>;
799		dma-names = "tx";
800		clock-names = "mclk", "hclk";
801		clocks = <&cru MCLK_SPDIF_8CH>, <&cru HCLK_SPDIF_8CH>;
802		pinctrl-names = "default";
803		pinctrl-0 = <&spdifm0_pins>;
804		status = "disabled";
805	};
806
807	audpwm: audpwm@fe470000 {
808		compatible = "rockchip,rk3568-audio-pwm", "rockchip,audio-pwm-v1";
809		reg = <0x0 0xfe470000 0x0 0x1000>;
810		clocks = <&cru SCLK_AUDPWM>, <&cru HCLK_AUDPWM>;
811		clock-names = "clk", "hclk";
812		dmas = <&dmac1 8>;
813		dma-names = "tx";
814		rockchip,sample-width-bits = <11>;
815		rockchip,interpolat-points = <1>;
816		status = "disabled";
817	};
818
819	dig_acodec: codec-digital@fe478000 {
820		compatible = "rockchip,rk3568-codec-digital", "rockchip,codec-digital-v1";
821		reg = <0x0 0xfe478000 0x0 0x1000>;
822		clocks = <&cru CLK_ACDCDIG_ADC>, <&cru CLK_ACDCDIG_DAC>, <&cru HCLK_ACDCDIG>;
823		clock-names = "adc", "dac", "pclk";
824		pinctrl-names = "default";
825		pinctrl-0 = <&acodec_pins>;
826		resets = <&cru SRST_ACDCDIG>;
827		reset-names = "reset" ;
828		rockchip,grf = <&grf>;
829		status = "disabled";
830	};
831
832	dmac0: dmac@fe530000 {
833		compatible = "arm,pl330", "arm,primecell";
834		reg = <0x0 0xfe530000 0x0 0x4000>;
835		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
836			     <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
837		clocks = <&cru ACLK_DMAC0>;
838		clock-names = "apb_pclk";
839		#dma-cells = <1>;
840		arm,pl330-periph-burst;
841	};
842
843	dmac1: dmac@fe550000 {
844		compatible = "arm,pl330", "arm,primecell";
845		reg = <0x0 0xfe550000 0x0 0x4000>;
846		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
847			     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
848		clocks = <&cru ACLK_DMAC1>;
849		clock-names = "apb_pclk";
850		#dma-cells = <1>;
851		arm,pl330-periph-burst;
852	};
853
854	can0: can@fe570000 {
855		compatible = "rockchip,canfd-1.0";
856		reg = <0x0 0xfe570000 0x0 0x1000>;
857		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
858		clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;
859		clock-names = "baudclk", "apb_pclk";
860		resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
861		reset-names = "can", "can-apb";
862		tx-fifo-depth = <1>;
863		rx-fifo-depth = <6>;
864		status = "disabled";
865	};
866
867	can1: can@fe580000 {
868		compatible = "rockchip,canfd-1.0";
869		reg = <0x0 0xfe580000 0x0 0x1000>;
870		interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
871		clocks = <&cru CLK_CAN1>, <&cru PCLK_CAN1>;
872		clock-names = "baudclk", "apb_pclk";
873		resets = <&cru SRST_CAN1>, <&cru SRST_P_CAN1>;
874		reset-names = "can", "can-apb";
875		tx-fifo-depth = <1>;
876		rx-fifo-depth = <6>;
877		status = "disabled";
878	};
879
880	can2: can@fe590000 {
881		compatible = "rockchip,canfd-1.0";
882		reg = <0x0 0xfe590000 0x0 0x1000>;
883		interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
884		clocks = <&cru CLK_CAN2>, <&cru PCLK_CAN2>;
885		clock-names = "baudclk", "apb_pclk";
886		resets = <&cru SRST_CAN2>, <&cru SRST_P_CAN2>;
887		reset-names = "can", "can-apb";
888		tx-fifo-depth = <1>;
889		rx-fifo-depth = <6>;
890		status = "disabled";
891	};
892
893	i2c1: i2c@fe5a0000 {
894		compatible = "rockchip,rk3399-i2c";
895		reg = <0x0 0xfe5a0000 0x0 0x1000>;
896		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
897		clock-names = "i2c", "pclk";
898		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
899		pinctrl-names = "default";
900		pinctrl-0 = <&i2c1_xfer>;
901		#address-cells = <1>;
902		#size-cells = <0>;
903		status = "disabled";
904	};
905
906	i2c2: i2c@fe5b0000 {
907		compatible = "rockchip,rk3399-i2c";
908		reg = <0x0 0xfe5b0000 0x0 0x1000>;
909		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
910		clock-names = "i2c", "pclk";
911		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
912		pinctrl-names = "default";
913		pinctrl-0 = <&i2c2m0_xfer>;
914		#address-cells = <1>;
915		#size-cells = <0>;
916		status = "disabled";
917	};
918
919	i2c3: i2c@fe5c0000 {
920		compatible = "rockchip,rk3399-i2c";
921		reg = <0x0 0xfe5c0000 0x0 0x1000>;
922		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
923		clock-names = "i2c", "pclk";
924		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
925		pinctrl-names = "default";
926		pinctrl-0 = <&i2c3m0_xfer>;
927		#address-cells = <1>;
928		#size-cells = <0>;
929		status = "disabled";
930	};
931
932	i2c4: i2c@fe5d0000 {
933		compatible = "rockchip,rk3399-i2c";
934		reg = <0x0 0xfe5d0000 0x0 0x1000>;
935		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
936		clock-names = "i2c", "pclk";
937		interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
938		pinctrl-names = "default";
939		pinctrl-0 = <&i2c4m0_xfer>;
940		#address-cells = <1>;
941		#size-cells = <0>;
942		status = "disabled";
943	};
944
945	i2c5: i2c@fe5e0000 {
946		compatible = "rockchip,rk3399-i2c";
947		reg = <0x0 0xfe5e0000 0x0 0x1000>;
948		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
949		clock-names = "i2c", "pclk";
950		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
951		pinctrl-names = "default";
952		pinctrl-0 = <&i2c5m0_xfer>;
953		#address-cells = <1>;
954		#size-cells = <0>;
955		status = "disabled";
956	};
957
958	wdt: watchdog@fe600000 {
959		compatible = "snps,dw-wdt";
960		reg = <0x0 0xfe600000 0x0 0x100>;
961		clocks = <&cru PCLK_WDT_NS>;
962		interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
963		status = "okay";
964	};
965
966	spi0: spi@fe610000 {
967		compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
968		reg = <0x0 0xfe610000 0x0 0x1000>;
969		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
970		#address-cells = <1>;
971		#size-cells = <0>;
972		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
973		clock-names = "spiclk", "apb_pclk";
974		dmas = <&dmac0 20>, <&dmac0 21>;
975		pinctrl-names = "default";
976		pinctrl-0 = <&spi0clkm0 &spi0cs0m0 &spi0cs1m0 &spi0misom0 &spi0mosim0>;
977		status = "disabled";
978	};
979
980	spi1: spi@fe620000 {
981		compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
982		reg = <0x0 0xfe620000 0x0 0x1000>;
983		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
984		#address-cells = <1>;
985		#size-cells = <0>;
986		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
987		clock-names = "spiclk", "apb_pclk";
988		dmas = <&dmac0 22>, <&dmac0 23>;
989		pinctrl-names = "default";
990		pinctrl-0 = <&spi1clkm0 &spi1cs0m0 &spi1cs1m0 &spi1misom0 &spi1mosim0>;
991		status = "disabled";
992	};
993
994	spi2: spi@fe630000 {
995		compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
996		reg = <0x0 0xfe630000 0x0 0x1000>;
997		interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
998		#address-cells = <1>;
999		#size-cells = <0>;
1000		clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
1001		clock-names = "spiclk", "apb_pclk";
1002		dmas = <&dmac0 24>, <&dmac0 25>;
1003		pinctrl-names = "default";
1004		pinctrl-0 = <&spi2clkm0 &spi2cs0m0 &spi2cs1m0 &spi2misom0 &spi2mosim0>;
1005		status = "disabled";
1006	};
1007
1008	spi3: spi@fe640000 {
1009		compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
1010		reg = <0x0 0xfe640000 0x0 0x1000>;
1011		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
1012		#address-cells = <1>;
1013		#size-cells = <0>;
1014		clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
1015		clock-names = "spiclk", "apb_pclk";
1016		dmas = <&dmac0 26>, <&dmac0 27>;
1017		pinctrl-names = "default";
1018		pinctrl-0 = <&spi3clkm0 &spi3cs0m0 &spi3cs1m0 &spi3misom0 &spi3mosim0>;
1019		status = "disabled";
1020	};
1021
1022	uart1: serial@fe650000 {
1023		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1024		reg = <0x0 0xfe650000 0x0 0x100>;
1025		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
1026		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
1027		clock-names = "baudclk", "apb_pclk";
1028		reg-shift = <2>;
1029		reg-io-width = <4>;
1030		dmas = <&dmac0 2>, <&dmac0 3>;
1031		pinctrl-names = "default";
1032		pinctrl-0 = <&uart1m0_xfer>;
1033		status = "disabled";
1034	};
1035
1036	uart2: serial@fe660000 {
1037		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1038		reg = <0x0 0xfe660000 0x0 0x100>;
1039		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
1040		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
1041		clock-names = "baudclk", "apb_pclk";
1042		reg-shift = <2>;
1043		reg-io-width = <4>;
1044		dmas = <&dmac0 4>, <&dmac0 5>;
1045		pinctrl-names = "default";
1046		pinctrl-0 = <&uart2m0_xfer>;
1047		status = "disabled";
1048	};
1049
1050	uart3: serial@fe670000 {
1051		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1052		reg = <0x0 0xfe670000 0x0 0x100>;
1053		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
1054		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
1055		clock-names = "baudclk", "apb_pclk";
1056		reg-shift = <2>;
1057		reg-io-width = <4>;
1058		dmas = <&dmac0 6>, <&dmac0 7>;
1059		pinctrl-names = "default";
1060		pinctrl-0 = <&uart3m0_xfer>;
1061		status = "disabled";
1062	};
1063
1064	uart4: serial@fe680000 {
1065		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1066		reg = <0x0 0xfe680000 0x0 0x100>;
1067		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
1068		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
1069		clock-names = "baudclk", "apb_pclk";
1070		reg-shift = <2>;
1071		reg-io-width = <4>;
1072		dmas = <&dmac0 8>, <&dmac0 9>;
1073		pinctrl-names = "default";
1074		pinctrl-0 = <&uart4m0_xfer>;
1075		status = "disabled";
1076	};
1077
1078	uart5: serial@fe690000 {
1079		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1080		reg = <0x0 0xfe690000 0x0 0x100>;
1081		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
1082		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
1083		clock-names = "baudclk", "apb_pclk";
1084		reg-shift = <2>;
1085		reg-io-width = <4>;
1086		dmas = <&dmac0 10>, <&dmac0 11>;
1087		pinctrl-names = "default";
1088		pinctrl-0 = <&uart5m0_xfer>;
1089		status = "disabled";
1090	};
1091
1092	uart6: serial@fe6a0000 {
1093		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1094		reg = <0x0 0xfe6a0000 0x0 0x100>;
1095		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1096		clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
1097		clock-names = "baudclk", "apb_pclk";
1098		reg-shift = <2>;
1099		reg-io-width = <4>;
1100		dmas = <&dmac0 12>, <&dmac0 13>;
1101		pinctrl-names = "default";
1102		pinctrl-0 = <&uart6m0_xfer>;
1103		status = "disabled";
1104	};
1105
1106	uart7: serial@fe6b0000 {
1107		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1108		reg = <0x0 0xfe6b0000 0x0 0x100>;
1109		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
1110		clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
1111		clock-names = "baudclk", "apb_pclk";
1112		reg-shift = <2>;
1113		reg-io-width = <4>;
1114		dmas = <&dmac0 14>, <&dmac0 15>;
1115		pinctrl-names = "default";
1116		pinctrl-0 = <&uart7m0_xfer>;
1117		status = "disabled";
1118	};
1119
1120	uart8: serial@fe6c0000 {
1121		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1122		reg = <0x0 0xfe6c0000 0x0 0x100>;
1123		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
1124		clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
1125		clock-names = "baudclk", "apb_pclk";
1126		reg-shift = <2>;
1127		reg-io-width = <4>;
1128		dmas = <&dmac0 16>, <&dmac0 17>;
1129		pinctrl-names = "default";
1130		pinctrl-0 = <&uart8m0_xfer>;
1131		status = "disabled";
1132	};
1133
1134	uart9: serial@fe6d0000 {
1135		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
1136		reg = <0x0 0xfe6d0000 0x0 0x100>;
1137		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
1138		clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
1139		clock-names = "baudclk", "apb_pclk";
1140		reg-shift = <2>;
1141		reg-io-width = <4>;
1142		dmas = <&dmac0 18>, <&dmac0 19>;
1143		pinctrl-names = "default";
1144		pinctrl-0 = <&uart9m0_xfer>;
1145		status = "disabled";
1146	};
1147
1148	pwm4: pwm@fe6e0000 {
1149		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1150		reg = <0x0 0xfe6e0000 0x0 0x10>;
1151		#pwm-cells = <3>;
1152		pinctrl-names = "active";
1153		pinctrl-0 = <&pwm4_pins>;
1154		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
1155		clock-names = "pwm", "pclk";
1156		status = "disabled";
1157	};
1158
1159	pwm5: pwm@fe6e0010 {
1160		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1161		reg = <0x0 0xfe6e0010 0x0 0x10>;
1162		#pwm-cells = <3>;
1163		pinctrl-names = "active";
1164		pinctrl-0 = <&pwm5_pins>;
1165		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
1166		clock-names = "pwm", "pclk";
1167		status = "disabled";
1168	};
1169
1170	pwm6: pwm@fe6e0020 {
1171		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1172		reg = <0x0 0xfe6e0020 0x0 0x10>;
1173		#pwm-cells = <3>;
1174		pinctrl-names = "active";
1175		pinctrl-0 = <&pwm6_pins>;
1176		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
1177		clock-names = "pwm", "pclk";
1178		status = "disabled";
1179	};
1180
1181	pwm7: pwm@fe6e0030 {
1182		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1183		reg = <0x0 0xfe6e0030 0x0 0x10>;
1184		#pwm-cells = <3>;
1185		pinctrl-names = "active";
1186		pinctrl-0 = <&pwm7_pins>;
1187		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
1188		clock-names = "pwm", "pclk";
1189		status = "disabled";
1190	};
1191
1192	pwm8: pwm@fe6f0000 {
1193		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1194		reg = <0x0 0xfe6f0000 0x0 0x10>;
1195		#pwm-cells = <3>;
1196		pinctrl-names = "active";
1197		pinctrl-0 = <&pwm8m0_pins>;
1198		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
1199		clock-names = "pwm", "pclk";
1200		status = "disabled";
1201	};
1202
1203	pwm9: pwm@fe6f0010 {
1204		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1205		reg = <0x0 0xfe6f0010 0x0 0x10>;
1206		#pwm-cells = <3>;
1207		pinctrl-names = "active";
1208		pinctrl-0 = <&pwm9m0_pins>;
1209		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
1210		clock-names = "pwm", "pclk";
1211		status = "disabled";
1212	};
1213
1214	pwm10: pwm@fe6f0020 {
1215		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1216		reg = <0x0 0xfe6f0020 0x0 0x10>;
1217		#pwm-cells = <3>;
1218		pinctrl-names = "active";
1219		pinctrl-0 = <&pwm10m0_pins>;
1220		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
1221		clock-names = "pwm", "pclk";
1222		status = "disabled";
1223	};
1224
1225	pwm11: pwm@fe6f0030 {
1226		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1227		reg = <0x0 0xfe6f0030 0x0 0x10>;
1228		#pwm-cells = <3>;
1229		pinctrl-names = "active";
1230		pinctrl-0 = <&pwm11m0_pins>;
1231		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
1232		clock-names = "pwm", "pclk";
1233		status = "disabled";
1234	};
1235
1236	pwm12: pwm@fe700000 {
1237		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1238		reg = <0x0 0xfe700000 0x0 0x10>;
1239		#pwm-cells = <3>;
1240		pinctrl-names = "active";
1241		pinctrl-0 = <&pwm12m0_pins>;
1242		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
1243		clock-names = "pwm", "pclk";
1244		status = "disabled";
1245	};
1246
1247	pwm13: pwm@fe700010 {
1248		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1249		reg = <0x0 0xfe700010 0x0 0x10>;
1250		#pwm-cells = <3>;
1251		pinctrl-names = "active";
1252		pinctrl-0 = <&pwm13m0_pins>;
1253		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
1254		clock-names = "pwm", "pclk";
1255		status = "disabled";
1256	};
1257
1258	pwm14: pwm@fe700020 {
1259		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1260		reg = <0x0 0xfe700020 0x0 0x10>;
1261		#pwm-cells = <3>;
1262		pinctrl-names = "active";
1263		pinctrl-0 = <&pwm14m0_pins>;
1264		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
1265		clock-names = "pwm", "pclk";
1266		status = "disabled";
1267	};
1268
1269	pwm15: pwm@fe700030 {
1270		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
1271		reg = <0x0 0xfe700030 0x0 0x10>;
1272		#pwm-cells = <3>;
1273		pinctrl-names = "active";
1274		pinctrl-0 = <&pwm15m0_pins>;
1275		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
1276		clock-names = "pwm", "pclk";
1277		status = "disabled";
1278	};
1279
1280	saradc: saradc@fe720000 {
1281		compatible = "rockchip,rk3568-saradc", "rockchip,rk3399-saradc";
1282		reg = <0x0 0xfe720000 0x0 0x100>;
1283		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
1284		#io-channel-cells = <1>;
1285		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
1286		clock-names = "saradc", "apb_pclk";
1287		resets = <&cru SRST_P_SARADC>;
1288		reset-names = "saradc-apb";
1289		status = "disabled";
1290	};
1291
1292	combphy0_us: phy@fe820000 {
1293		compatible = "rockchip,rk3568-naneng-combphy";
1294		reg = <0x0 0xfe820000 0x0 0x100>;
1295		#phy-cells = <1>;
1296		clocks = <&pmucru CLK_PCIEPHY0_REF>, <&cru PCLK_PIPEPHY0>;
1297		clock-names = "refclk", "apbclk";
1298		resets = <&cru SRST_P_PIPEPHY0>, <&cru SRST_PIPEPHY0>;
1299		reset-names = "combphy-apb", "combphy";
1300		rockchip,pipe-grf = <&pipegrf>;
1301		rockchip,pipe-phy-grf = <&pipe_phy_grf0>;
1302		status = "disabled";
1303	};
1304
1305	combphy1_usq: phy@fe830000 {
1306		compatible = "rockchip,rk3568-naneng-combphy";
1307		reg = <0x0 0xfe830000 0x0 0x100>;
1308		#phy-cells = <1>;
1309		clocks = <&pmucru CLK_PCIEPHY1_REF>, <&cru PCLK_PIPEPHY1>;
1310		clock-names = "refclk", "apbclk";
1311		resets = <&cru SRST_P_PIPEPHY0>, <&cru SRST_PIPEPHY0>;
1312		reset-names = "combphy-apb", "combphy";
1313		rockchip,pipe-grf = <&pipegrf>;
1314		rockchip,pipe-phy-grf = <&pipe_phy_grf1>;
1315		status = "disabled";
1316	};
1317
1318	combphy2_psq: phy@fe840000 {
1319		compatible = "rockchip,rk3568-naneng-combphy";
1320		reg = <0x0 0xfe840000 0x0 0x100>;
1321		#phy-cells = <1>;
1322		clocks = <&pmucru CLK_PCIEPHY2_REF>, <&cru PCLK_PIPEPHY2>;
1323		clock-names = "refclk", "apbclk";
1324		resets = <&cru SRST_P_PIPEPHY2>, <&cru SRST_PIPEPHY2>;
1325		reset-names = "combphy-apb", "combphy";
1326		rockchip,pipe-grf = <&pipegrf>;
1327		rockchip,pipe-phy-grf = <&pipe_phy_grf2>;
1328		status = "disabled";
1329	};
1330
1331	pinctrl: pinctrl {
1332		compatible = "rockchip,rk3568-pinctrl";
1333		rockchip,grf = <&grf>;
1334		rockchip,pmu = <&pmugrf>;
1335		#address-cells = <2>;
1336		#size-cells = <2>;
1337		ranges;
1338
1339		gpio0: gpio@fdd60000 {
1340			compatible = "rockchip,gpio-bank";
1341			reg = <0x0 0xfdd60000 0x0 0x100>;
1342			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1343			clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;
1344
1345			gpio-controller;
1346			#gpio-cells = <2>;
1347			gpio-ranges = <&pinctrl 0 0 32>;
1348			interrupt-controller;
1349			#interrupt-cells = <2>;
1350		};
1351
1352		gpio1: gpio@fe740000 {
1353			compatible = "rockchip,gpio-bank";
1354			reg = <0x0 0xfe740000 0x0 0x100>;
1355			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
1356			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
1357
1358			gpio-controller;
1359			#gpio-cells = <2>;
1360			gpio-ranges = <&pinctrl 0 32 32>;
1361			interrupt-controller;
1362			#interrupt-cells = <2>;
1363		};
1364
1365		gpio2: gpio@fe750000 {
1366			compatible = "rockchip,gpio-bank";
1367			reg = <0x0 0xfe750000 0x0 0x100>;
1368			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
1369			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
1370
1371			gpio-controller;
1372			#gpio-cells = <2>;
1373			gpio-ranges = <&pinctrl 0 64 32>;
1374			interrupt-controller;
1375			#interrupt-cells = <2>;
1376		};
1377
1378		gpio3: gpio@fe760000 {
1379			compatible = "rockchip,gpio-bank";
1380			reg = <0x0 0xfe750000 0x0 0x100>;
1381			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
1382			clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
1383
1384			gpio-controller;
1385			#gpio-cells = <2>;
1386			gpio-ranges = <&pinctrl 0 96 32>;
1387			interrupt-controller;
1388			#interrupt-cells = <2>;
1389		};
1390
1391		gpio4: gpio@fe770000 {
1392			compatible = "rockchip,gpio-bank";
1393			reg = <0x0 0xfe770000 0x0 0x100>;
1394			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1395			clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
1396
1397			gpio-controller;
1398			#gpio-cells = <2>;
1399			gpio-ranges = <&pinctrl 0 128 32>;
1400			interrupt-controller;
1401			#interrupt-cells = <2>;
1402		};
1403	};
1404};
1405
1406#include "rk3568-pinctrl.dtsi"
1407