xref: /linux/arch/arm64/boot/dts/rockchip/rk3528.dtsi (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
4 * Copyright (c) 2024 Yao Zi <ziyao@disroot.org>
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/phy/phy.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/clock/rockchip,rk3528-cru.h>
13#include <dt-bindings/power/rockchip,rk3528-power.h>
14#include <dt-bindings/reset/rockchip,rk3528-cru.h>
15
16/ {
17	compatible = "rockchip,rk3528";
18
19	interrupt-parent = <&gic>;
20	#address-cells = <2>;
21	#size-cells = <2>;
22
23	aliases {
24		gpio0 = &gpio0;
25		gpio1 = &gpio1;
26		gpio2 = &gpio2;
27		gpio3 = &gpio3;
28		gpio4 = &gpio4;
29	};
30
31	cpus {
32		#address-cells = <1>;
33		#size-cells = <0>;
34
35		cpu-map {
36			cluster0 {
37				core0 {
38					cpu = <&cpu0>;
39				};
40				core1 {
41					cpu = <&cpu1>;
42				};
43				core2 {
44					cpu = <&cpu2>;
45				};
46				core3 {
47					cpu = <&cpu3>;
48				};
49			};
50		};
51
52		cpu0: cpu@0 {
53			compatible = "arm,cortex-a53";
54			reg = <0x0>;
55			device_type = "cpu";
56			enable-method = "psci";
57			clocks = <&scmi_clk SCMI_CLK_CPU>;
58			operating-points-v2 = <&cpu_opp_table>;
59		};
60
61		cpu1: cpu@1 {
62			compatible = "arm,cortex-a53";
63			reg = <0x1>;
64			device_type = "cpu";
65			enable-method = "psci";
66			clocks = <&scmi_clk SCMI_CLK_CPU>;
67			operating-points-v2 = <&cpu_opp_table>;
68		};
69
70		cpu2: cpu@2 {
71			compatible = "arm,cortex-a53";
72			reg = <0x2>;
73			device_type = "cpu";
74			enable-method = "psci";
75			clocks = <&scmi_clk SCMI_CLK_CPU>;
76			operating-points-v2 = <&cpu_opp_table>;
77		};
78
79		cpu3: cpu@3 {
80			compatible = "arm,cortex-a53";
81			reg = <0x3>;
82			device_type = "cpu";
83			enable-method = "psci";
84			clocks = <&scmi_clk SCMI_CLK_CPU>;
85			operating-points-v2 = <&cpu_opp_table>;
86		};
87	};
88
89	firmware {
90		scmi: scmi {
91			compatible = "arm,scmi-smc";
92			arm,smc-id = <0x82000010>;
93			shmem = <&scmi_shmem>;
94			#address-cells = <1>;
95			#size-cells = <0>;
96
97			scmi_clk: protocol@14 {
98				reg = <0x14>;
99				#clock-cells = <1>;
100			};
101		};
102	};
103
104	cpu_opp_table: opp-table-cpu {
105		compatible = "operating-points-v2";
106		opp-shared;
107
108		opp-1200000000 {
109			opp-hz = /bits/ 64 <1200000000>;
110			opp-microvolt = <875000 875000 1100000>;
111			clock-latency-ns = <40000>;
112		};
113
114		opp-1416000000 {
115			opp-hz = /bits/ 64 <1416000000>;
116			opp-microvolt = <925000 925000 1100000>;
117			clock-latency-ns = <40000>;
118		};
119
120		opp-1608000000 {
121			opp-hz = /bits/ 64 <1608000000>;
122			opp-microvolt = <975000 975000 1100000>;
123			clock-latency-ns = <40000>;
124		};
125
126		opp-1800000000 {
127			opp-hz = /bits/ 64 <1800000000>;
128			opp-microvolt = <1037500 1037500 1100000>;
129			clock-latency-ns = <40000>;
130		};
131
132		opp-2016000000 {
133			opp-hz = /bits/ 64 <2016000000>;
134			opp-microvolt = <1100000 1100000 1100000>;
135			clock-latency-ns = <40000>;
136		};
137	};
138
139	gpu_opp_table: opp-table-gpu {
140		compatible = "operating-points-v2";
141
142		opp-300000000 {
143			opp-hz = /bits/ 64 <300000000>;
144			opp-microvolt = <875000 875000 1000000>;
145			opp-suspend;
146		};
147
148		opp-500000000 {
149			opp-hz = /bits/ 64 <500000000>;
150			opp-microvolt = <875000 875000 1000000>;
151		};
152
153		opp-600000000 {
154			opp-hz = /bits/ 64 <600000000>;
155			opp-microvolt = <875000 875000 1000000>;
156		};
157
158		opp-700000000 {
159			opp-hz = /bits/ 64 <700000000>;
160			opp-microvolt = <900000 900000 1000000>;
161		};
162
163		opp-800000000 {
164			opp-hz = /bits/ 64 <800000000>;
165			opp-microvolt = <950000 950000 1000000>;
166		};
167	};
168
169	pinctrl: pinctrl {
170		compatible = "rockchip,rk3528-pinctrl";
171		rockchip,grf = <&ioc_grf>;
172		#address-cells = <2>;
173		#size-cells = <2>;
174		ranges;
175
176		gpio0: gpio@ff610000 {
177			compatible = "rockchip,gpio-bank";
178			reg = <0x0 0xff610000 0x0 0x200>;
179			clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>;
180			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
181			gpio-controller;
182			#gpio-cells = <2>;
183			gpio-ranges = <&pinctrl 0 0 32>;
184			interrupt-controller;
185			#interrupt-cells = <2>;
186		};
187
188		gpio1: gpio@ffaf0000 {
189			compatible = "rockchip,gpio-bank";
190			reg = <0x0 0xffaf0000 0x0 0x200>;
191			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
192			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
193			gpio-controller;
194			#gpio-cells = <2>;
195			gpio-ranges = <&pinctrl 0 32 32>;
196			interrupt-controller;
197			#interrupt-cells = <2>;
198			power-domains = <&power RK3528_PD_VPU>;
199		};
200
201		gpio2: gpio@ffb00000 {
202			compatible = "rockchip,gpio-bank";
203			reg = <0x0 0xffb00000 0x0 0x200>;
204			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
205			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
206			gpio-controller;
207			#gpio-cells = <2>;
208			gpio-ranges = <&pinctrl 0 64 32>;
209			interrupt-controller;
210			#interrupt-cells = <2>;
211			power-domains = <&power RK3528_PD_VO>;
212		};
213
214		gpio3: gpio@ffb10000 {
215			compatible = "rockchip,gpio-bank";
216			reg = <0x0 0xffb10000 0x0 0x200>;
217			clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
218			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
219			gpio-controller;
220			#gpio-cells = <2>;
221			gpio-ranges = <&pinctrl 0 96 32>;
222			interrupt-controller;
223			#interrupt-cells = <2>;
224			power-domains = <&power RK3528_PD_VPU>;
225		};
226
227		gpio4: gpio@ffb20000 {
228			compatible = "rockchip,gpio-bank";
229			reg = <0x0 0xffb20000 0x0 0x200>;
230			clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
231			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
232			gpio-controller;
233			#gpio-cells = <2>;
234			gpio-ranges = <&pinctrl 0 128 32>;
235			interrupt-controller;
236			#interrupt-cells = <2>;
237			power-domains = <&power RK3528_PD_RKVENC>;
238		};
239	};
240
241	psci {
242		compatible = "arm,psci-1.0", "arm,psci-0.2";
243		method = "smc";
244	};
245
246	reserved-memory {
247		#address-cells = <2>;
248		#size-cells = <2>;
249		ranges;
250
251		scmi_shmem: shmem@10f000 {
252			compatible = "arm,scmi-shmem";
253			reg = <0x0 0x0010f000 0x0 0x100>;
254			no-map;
255		};
256	};
257
258	timer {
259		compatible = "arm,armv8-timer";
260		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
261			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
262			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
263			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
264	};
265
266	xin24m: clock-xin24m {
267		compatible = "fixed-clock";
268		clock-frequency = <24000000>;
269		clock-output-names = "xin24m";
270		#clock-cells = <0>;
271	};
272
273	gmac0_clk: clock-gmac50m {
274		compatible = "fixed-clock";
275		clock-frequency = <50000000>;
276		clock-output-names = "gmac0";
277		#clock-cells = <0>;
278	};
279
280	soc {
281		compatible = "simple-bus";
282		ranges = <0x0 0xfc000000 0x0 0xfc000000 0x0 0x44000000>;
283		#address-cells = <2>;
284		#size-cells = <2>;
285
286		pcie: pcie@fe000000 {
287			compatible = "rockchip,rk3528-pcie",
288				     "rockchip,rk3568-pcie";
289			reg = <0x0 0xfe000000 0x0 0x400000>,
290			      <0x0 0xfe4f0000 0x0 0x010000>,
291			      <0x0 0xfc000000 0x0 0x100000>;
292			reg-names = "dbi", "apb", "config";
293			bus-range = <0x0 0xff>;
294			clocks = <&cru ACLK_PCIE>, <&cru HCLK_PCIE_SLV>,
295				 <&cru HCLK_PCIE_DBI>, <&cru PCLK_PCIE>,
296				 <&cru CLK_PCIE_AUX>;
297			clock-names = "aclk_mst", "aclk_slv",
298				      "aclk_dbi", "pclk",
299				      "aux";
300			device_type = "pci";
301			interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
302				     <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
303				     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
304				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
305				     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
306				     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
307			interrupt-names = "sys", "pmc", "msg", "legacy", "err",
308					  "msi";
309			#interrupt-cells = <1>;
310			interrupt-map-mask = <0 0 0 7>;
311			interrupt-map = <0 0 0 1 &pcie_intc 0>,
312					<0 0 0 2 &pcie_intc 1>,
313					<0 0 0 3 &pcie_intc 2>,
314					<0 0 0 4 &pcie_intc 3>;
315			linux,pci-domain = <0>;
316			max-link-speed = <2>;
317			num-lanes = <1>;
318			phys = <&combphy PHY_TYPE_PCIE>;
319			phy-names = "pcie-phy";
320			power-domains = <&power RK3528_PD_VPU>;
321			ranges = <0x01000000 0x0 0xfc100000 0x0 0xfc100000 0x0 0x00100000>,
322				 <0x02000000 0x0 0xfc200000 0x0 0xfc200000 0x0 0x01e00000>,
323				 <0x03000000 0x1 0x00000000 0x1 0x00000000 0x0 0x40000000>;
324			resets = <&cru SRST_PCIE_POWER_UP>, <&cru SRST_P_PCIE>;
325			reset-names = "pwr", "pipe";
326			#address-cells = <3>;
327			#size-cells = <2>;
328			status = "disabled";
329
330			pcie_intc: legacy-interrupt-controller {
331				interrupt-controller;
332				interrupt-parent = <&gic>;
333				interrupts = <GIC_SPI 155 IRQ_TYPE_EDGE_RISING>;
334				#address-cells = <0>;
335				#interrupt-cells = <1>;
336			};
337		};
338
339		gic: interrupt-controller@fed01000 {
340			compatible = "arm,gic-400";
341			reg = <0x0 0xfed01000 0 0x1000>,
342			      <0x0 0xfed02000 0 0x2000>,
343			      <0x0 0xfed04000 0 0x2000>,
344			      <0x0 0xfed06000 0 0x2000>;
345			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
346						 IRQ_TYPE_LEVEL_LOW)>;
347			interrupt-controller;
348			#address-cells = <0>;
349			#interrupt-cells = <3>;
350		};
351
352		qos_crypto_a: qos@ff200000 {
353			compatible = "rockchip,rk3528-qos", "syscon";
354			reg = <0x0 0xff200000 0x0 0x20>;
355		};
356
357		qos_crypto_p: qos@ff200080 {
358			compatible = "rockchip,rk3528-qos", "syscon";
359			reg = <0x0 0xff200080 0x0 0x20>;
360		};
361
362		qos_dcf: qos@ff200100 {
363			compatible = "rockchip,rk3528-qos", "syscon";
364			reg = <0x0 0xff200100 0x0 0x20>;
365		};
366
367		qos_dft2apb: qos@ff200200 {
368			compatible = "rockchip,rk3528-qos", "syscon";
369			reg = <0x0 0xff200200 0x0 0x20>;
370		};
371
372		qos_dma2ddr: qos@ff200280 {
373			compatible = "rockchip,rk3528-qos", "syscon";
374			reg = <0x0 0xff200280 0x0 0x20>;
375		};
376
377		qos_dmac: qos@ff200300 {
378			compatible = "rockchip,rk3528-qos", "syscon";
379			reg = <0x0 0xff200300 0x0 0x20>;
380		};
381
382		qos_keyreader: qos@ff200380 {
383			compatible = "rockchip,rk3528-qos", "syscon";
384			reg = <0x0 0xff200380 0x0 0x20>;
385		};
386
387		qos_cpu: qos@ff210000 {
388			compatible = "rockchip,rk3528-qos", "syscon";
389			reg = <0x0 0xff210000 0x0 0x20>;
390		};
391
392		qos_debug: qos@ff210080 {
393			compatible = "rockchip,rk3528-qos", "syscon";
394			reg = <0x0 0xff210080 0x0 0x20>;
395		};
396
397		qos_gpu_m0: qos@ff220000 {
398			compatible = "rockchip,rk3528-qos", "syscon";
399			reg = <0x0 0xff220000 0x0 0x20>;
400		};
401
402		qos_gpu_m1: qos@ff220080 {
403			compatible = "rockchip,rk3528-qos", "syscon";
404			reg = <0x0 0xff220080 0x0 0x20>;
405		};
406
407		qos_pmu_mcu: qos@ff240000 {
408			compatible = "rockchip,rk3528-qos", "syscon";
409			reg = <0x0 0xff240000 0x0 0x20>;
410		};
411
412		qos_rkvdec: qos@ff250000 {
413			compatible = "rockchip,rk3528-qos", "syscon";
414			reg = <0x0 0xff250000 0x0 0x20>;
415		};
416
417		qos_rkvenc: qos@ff260000 {
418			compatible = "rockchip,rk3528-qos", "syscon";
419			reg = <0x0 0xff260000 0x0 0x20>;
420		};
421
422		qos_gmac0: qos@ff270000 {
423			compatible = "rockchip,rk3528-qos", "syscon";
424			reg = <0x0 0xff270000 0x0 0x20>;
425		};
426
427		qos_hdcp: qos@ff270080 {
428			compatible = "rockchip,rk3528-qos", "syscon";
429			reg = <0x0 0xff270080 0x0 0x20>;
430		};
431
432		qos_jpegdec: qos@ff270100 {
433			compatible = "rockchip,rk3528-qos", "syscon";
434			reg = <0x0 0xff270100 0x0 0x20>;
435		};
436
437		qos_rga2_m0ro: qos@ff270200 {
438			compatible = "rockchip,rk3528-qos", "syscon";
439			reg = <0x0 0xff270200 0x0 0x20>;
440		};
441
442		qos_rga2_m0wo: qos@ff270280 {
443			compatible = "rockchip,rk3528-qos", "syscon";
444			reg = <0x0 0xff270280 0x0 0x20>;
445		};
446
447		qos_sdmmc0: qos@ff270300 {
448			compatible = "rockchip,rk3528-qos", "syscon";
449			reg = <0x0 0xff270300 0x0 0x20>;
450		};
451
452		qos_usb2host: qos@ff270380 {
453			compatible = "rockchip,rk3528-qos", "syscon";
454			reg = <0x0 0xff270380 0x0 0x20>;
455		};
456
457		qos_vdpp: qos@ff270480 {
458			compatible = "rockchip,rk3528-qos", "syscon";
459			reg = <0x0 0xff270480 0x0 0x20>;
460		};
461
462		qos_vop: qos@ff270500 {
463			compatible = "rockchip,rk3528-qos", "syscon";
464			reg = <0x0 0xff270500 0x0 0x20>;
465		};
466
467		qos_emmc: qos@ff280000 {
468			compatible = "rockchip,rk3528-qos", "syscon";
469			reg = <0x0 0xff280000 0x0 0x20>;
470		};
471
472		qos_fspi: qos@ff280080 {
473			compatible = "rockchip,rk3528-qos", "syscon";
474			reg = <0x0 0xff280080 0x0 0x20>;
475		};
476
477		qos_gmac1: qos@ff280100 {
478			compatible = "rockchip,rk3528-qos", "syscon";
479			reg = <0x0 0xff280100 0x0 0x20>;
480		};
481
482		qos_pcie: qos@ff280180 {
483			compatible = "rockchip,rk3528-qos", "syscon";
484			reg = <0x0 0xff280180 0x0 0x20>;
485		};
486
487		qos_sdio0: qos@ff280200 {
488			compatible = "rockchip,rk3528-qos", "syscon";
489			reg = <0x0 0xff280200 0x0 0x20>;
490		};
491
492		qos_sdio1: qos@ff280280 {
493			compatible = "rockchip,rk3528-qos", "syscon";
494			reg = <0x0 0xff280280 0x0 0x20>;
495		};
496
497		qos_tsp: qos@ff280300 {
498			compatible = "rockchip,rk3528-qos", "syscon";
499			reg = <0x0 0xff280300 0x0 0x20>;
500		};
501
502		qos_usb3otg: qos@ff280380 {
503			compatible = "rockchip,rk3528-qos", "syscon";
504			reg = <0x0 0xff280380 0x0 0x20>;
505		};
506
507		qos_vpu: qos@ff280400 {
508			compatible = "rockchip,rk3528-qos", "syscon";
509			reg = <0x0 0xff280400 0x0 0x20>;
510		};
511
512		vpu_grf: syscon@ff340000 {
513			compatible = "rockchip,rk3528-vpu-grf", "syscon";
514			reg = <0x0 0xff340000 0x0 0x8000>;
515		};
516
517		pipe_phy_grf: syscon@ff348000 {
518			compatible = "rockchip,rk3528-pipe-phy-grf", "syscon";
519			reg = <0x0 0xff348000 0x0 0x8000>;
520		};
521
522		vo_grf: syscon@ff360000 {
523			compatible = "rockchip,rk3528-vo-grf", "syscon";
524			reg = <0x0 0xff360000 0x0 0x10000>;
525		};
526
527		cru: clock-controller@ff4a0000 {
528			compatible = "rockchip,rk3528-cru";
529			reg = <0x0 0xff4a0000 0x0 0x30000>;
530			assigned-clocks =
531				<&cru XIN_OSC0_DIV>, <&cru PLL_GPLL>,
532				<&cru PLL_PPLL>, <&cru PLL_CPLL>,
533				<&cru ARMCLK>, <&cru CLK_MATRIX_250M_SRC>,
534				<&cru CLK_MATRIX_500M_SRC>,
535				<&cru CLK_MATRIX_50M_SRC>,
536				<&cru CLK_MATRIX_100M_SRC>,
537				<&cru CLK_MATRIX_150M_SRC>,
538				<&cru CLK_MATRIX_200M_SRC>,
539				<&cru CLK_MATRIX_300M_SRC>,
540				<&cru CLK_MATRIX_339M_SRC>,
541				<&cru CLK_MATRIX_400M_SRC>,
542				<&cru CLK_MATRIX_600M_SRC>,
543				<&cru CLK_PPLL_50M_MATRIX>,
544				<&cru CLK_PPLL_100M_MATRIX>,
545				<&cru CLK_PPLL_125M_MATRIX>,
546				<&cru ACLK_BUS_VOPGL_ROOT>;
547			assigned-clock-rates =
548				<32768>, <1188000000>,
549				<1000000000>, <996000000>,
550				<408000000>, <250000000>,
551				<500000000>,
552				<50000000>,
553				<100000000>,
554				<150000000>,
555				<200000000>,
556				<300000000>,
557				<340000000>,
558				<400000000>,
559				<600000000>,
560				<50000000>,
561				<100000000>,
562				<125000000>,
563				<500000000>;
564			clocks = <&xin24m>, <&gmac0_clk>;
565			clock-names = "xin24m", "gmac0";
566			#clock-cells = <1>;
567			#reset-cells = <1>;
568		};
569
570		ioc_grf: syscon@ff540000 {
571			compatible = "rockchip,rk3528-ioc-grf", "syscon";
572			reg = <0x0 0xff540000 0x0 0x40000>;
573		};
574
575		pmu: power-management@ff600000 {
576			compatible = "rockchip,rk3528-pmu", "syscon", "simple-mfd";
577			reg = <0x0 0xff600000 0x0 0x2000>;
578
579			power: power-controller {
580				compatible = "rockchip,rk3528-power-controller";
581				#power-domain-cells = <1>;
582				#address-cells = <1>;
583				#size-cells = <0>;
584
585				/* These power domains are grouped by VD_GPU */
586				power-domain@RK3528_PD_GPU {
587					reg = <RK3528_PD_GPU>;
588					clocks = <&cru ACLK_GPU_MALI>,
589						 <&cru PCLK_GPU_ROOT>;
590					pm_qos = <&qos_gpu_m0>,
591						 <&qos_gpu_m1>;
592					#power-domain-cells = <0>;
593				};
594
595				/* These power domains are grouped by VD_LOGIC */
596				power-domain@RK3528_PD_RKVDEC {
597					reg = <RK3528_PD_RKVDEC>;
598					pm_qos = <&qos_rkvdec>;
599					#power-domain-cells = <0>;
600					status = "disabled";
601				};
602				power-domain@RK3528_PD_RKVENC {
603					reg = <RK3528_PD_RKVENC>;
604					pm_qos = <&qos_rkvenc>;
605					#power-domain-cells = <0>;
606				};
607				power-domain@RK3528_PD_VO {
608					reg = <RK3528_PD_VO>;
609					pm_qos = <&qos_gmac0>,
610						 <&qos_hdcp>,
611						 <&qos_jpegdec>,
612						 <&qos_rga2_m0ro>,
613						 <&qos_rga2_m0wo>,
614						 <&qos_sdmmc0>,
615						 <&qos_usb2host>,
616						 <&qos_vdpp>,
617						 <&qos_vop>;
618					#power-domain-cells = <0>;
619				};
620				power-domain@RK3528_PD_VPU {
621					reg = <RK3528_PD_VPU>;
622					pm_qos = <&qos_emmc>,
623						 <&qos_fspi>,
624						 <&qos_gmac1>,
625						 <&qos_pcie>,
626						 <&qos_sdio0>,
627						 <&qos_sdio1>,
628						 <&qos_tsp>,
629						 <&qos_usb3otg>,
630						 <&qos_vpu>;
631					#power-domain-cells = <0>;
632				};
633			};
634		};
635
636		gpu: gpu@ff700000 {
637			compatible = "rockchip,rk3528-mali", "arm,mali-450";
638			reg = <0x0 0xff700000 0x0 0x40000>;
639			assigned-clocks = <&cru ACLK_GPU_MALI>,
640					  <&scmi_clk SCMI_CLK_GPU>;
641			assigned-clock-rates = <297000000>, <300000000>;
642			clocks = <&cru ACLK_GPU_MALI>, <&scmi_clk SCMI_CLK_GPU>;
643			clock-names = "bus", "core";
644			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
645				     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
646				     <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
647				     <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
648				     <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
649				     <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
650				     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
651			interrupt-names = "gp",
652					  "gpmmu",
653					  "pp",
654					  "pp0",
655					  "ppmmu0",
656					  "pp1",
657					  "ppmmu1";
658			operating-points-v2 = <&gpu_opp_table>;
659			power-domains = <&power RK3528_PD_GPU>;
660			resets = <&cru SRST_A_GPU>;
661			status = "disabled";
662		};
663
664		spi0: spi@ff9c0000 {
665			compatible = "rockchip,rk3528-spi",
666				     "rockchip,rk3066-spi";
667			reg = <0x0 0xff9c0000 0x0 0x1000>;
668			clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
669			clock-names = "spiclk", "apb_pclk";
670			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
671			dmas = <&dmac 25>, <&dmac 24>;
672			dma-names = "tx", "rx";
673			power-domains = <&power RK3528_PD_RKVENC>;
674			#address-cells = <1>;
675			#size-cells = <0>;
676			status = "disabled";
677		};
678
679		spi1: spi@ff9d0000 {
680			compatible = "rockchip,rk3528-spi",
681				     "rockchip,rk3066-spi";
682			reg = <0x0 0xff9d0000 0x0 0x1000>;
683			clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
684			clock-names = "spiclk", "apb_pclk";
685			interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
686			dmas = <&dmac 31>, <&dmac 30>;
687			dma-names = "tx", "rx";
688			power-domains = <&power RK3528_PD_VPU>;
689			#address-cells = <1>;
690			#size-cells = <0>;
691			status = "disabled";
692		};
693
694		uart0: serial@ff9f0000 {
695			compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
696			reg = <0x0 0xff9f0000 0x0 0x100>;
697			clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
698			clock-names = "baudclk", "apb_pclk";
699			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
700			dmas = <&dmac 9>, <&dmac 8>;
701			reg-io-width = <4>;
702			reg-shift = <2>;
703			status = "disabled";
704		};
705
706		uart1: serial@ff9f8000 {
707			compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
708			reg = <0x0 0xff9f8000 0x0 0x100>;
709			clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
710			clock-names = "baudclk", "apb_pclk";
711			interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
712			dmas = <&dmac 11>, <&dmac 10>;
713			power-domains = <&power RK3528_PD_RKVENC>;
714			reg-io-width = <4>;
715			reg-shift = <2>;
716			status = "disabled";
717		};
718
719		uart2: serial@ffa00000 {
720			compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
721			reg = <0x0 0xffa00000 0x0 0x100>;
722			clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
723			clock-names = "baudclk", "apb_pclk";
724			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
725			dmas = <&dmac 13>, <&dmac 12>;
726			power-domains = <&power RK3528_PD_VPU>;
727			reg-io-width = <4>;
728			reg-shift = <2>;
729			status = "disabled";
730		};
731
732		uart3: serial@ffa08000 {
733			compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
734			reg = <0x0 0xffa08000 0x0 0x100>;
735			clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
736			clock-names = "baudclk", "apb_pclk";
737			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
738			dmas = <&dmac 15>, <&dmac 14>;
739			power-domains = <&power RK3528_PD_RKVENC>;
740			reg-io-width = <4>;
741			reg-shift = <2>;
742			status = "disabled";
743		};
744
745		uart4: serial@ffa10000 {
746			compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
747			reg = <0x0 0xffa10000 0x0 0x100>;
748			clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
749			clock-names = "baudclk", "apb_pclk";
750			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
751			dmas = <&dmac 17>, <&dmac 16>;
752			power-domains = <&power RK3528_PD_VO>;
753			reg-io-width = <4>;
754			reg-shift = <2>;
755			status = "disabled";
756		};
757
758		uart5: serial@ffa18000 {
759			compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
760			reg = <0x0 0xffa18000 0x0 0x100>;
761			clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
762			clock-names = "baudclk", "apb_pclk";
763			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
764			dmas = <&dmac 19>, <&dmac 18>;
765			power-domains = <&power RK3528_PD_VPU>;
766			reg-io-width = <4>;
767			reg-shift = <2>;
768			status = "disabled";
769		};
770
771		uart6: serial@ffa20000 {
772			compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
773			reg = <0x0 0xffa20000 0x0 0x100>;
774			clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
775			clock-names = "baudclk", "apb_pclk";
776			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
777			dmas = <&dmac 21>, <&dmac 20>;
778			power-domains = <&power RK3528_PD_VPU>;
779			reg-io-width = <4>;
780			reg-shift = <2>;
781			status = "disabled";
782		};
783
784		uart7: serial@ffa28000 {
785			compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
786			reg = <0x0 0xffa28000 0x0 0x100>;
787			clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
788			clock-names = "baudclk", "apb_pclk";
789			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
790			dmas = <&dmac 23>, <&dmac 22>;
791			power-domains = <&power RK3528_PD_VPU>;
792			reg-io-width = <4>;
793			reg-shift = <2>;
794			status = "disabled";
795		};
796
797		i2c0: i2c@ffa50000 {
798			compatible = "rockchip,rk3528-i2c",
799				     "rockchip,rk3399-i2c";
800			reg = <0x0 0xffa50000 0x0 0x1000>;
801			clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
802			clock-names = "i2c", "pclk";
803			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
804			power-domains = <&power RK3528_PD_RKVENC>;
805			#address-cells = <1>;
806			#size-cells = <0>;
807			status = "disabled";
808		};
809
810		i2c1: i2c@ffa58000 {
811			compatible = "rockchip,rk3528-i2c",
812				     "rockchip,rk3399-i2c";
813			reg = <0x0 0xffa58000 0x0 0x1000>;
814			clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
815			clock-names = "i2c", "pclk";
816			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
817			power-domains = <&power RK3528_PD_RKVENC>;
818			#address-cells = <1>;
819			#size-cells = <0>;
820			status = "disabled";
821		};
822
823		i2c2: i2c@ffa60000 {
824			compatible = "rockchip,rk3528-i2c",
825				     "rockchip,rk3399-i2c";
826			reg = <0x0 0xffa60000 0x0 0x1000>;
827			clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
828			clock-names = "i2c", "pclk";
829			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
830			pinctrl-names = "default";
831			pinctrl-0 = <&i2c2m1_xfer>;
832			#address-cells = <1>;
833			#size-cells = <0>;
834			status = "disabled";
835		};
836
837		i2c3: i2c@ffa68000 {
838			compatible = "rockchip,rk3528-i2c",
839				     "rockchip,rk3399-i2c";
840			reg = <0x0 0xffa68000 0x0 0x1000>;
841			clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
842			clock-names = "i2c", "pclk";
843			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
844			power-domains = <&power RK3528_PD_VPU>;
845			#address-cells = <1>;
846			#size-cells = <0>;
847			status = "disabled";
848		};
849
850		i2c4: i2c@ffa70000 {
851			compatible = "rockchip,rk3528-i2c",
852				     "rockchip,rk3399-i2c";
853			reg = <0x0 0xffa70000 0x0 0x1000>;
854			clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
855			clock-names = "i2c", "pclk";
856			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
857			pinctrl-names = "default";
858			pinctrl-0 = <&i2c4_xfer>;
859			power-domains = <&power RK3528_PD_VO>;
860			#address-cells = <1>;
861			#size-cells = <0>;
862			status = "disabled";
863		};
864
865		i2c5: i2c@ffa78000 {
866			compatible = "rockchip,rk3528-i2c",
867				     "rockchip,rk3399-i2c";
868			reg = <0x0 0xffa78000 0x0 0x1000>;
869			clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
870			clock-names = "i2c", "pclk";
871			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
872			power-domains = <&power RK3528_PD_VPU>;
873			#address-cells = <1>;
874			#size-cells = <0>;
875			status = "disabled";
876		};
877
878		i2c6: i2c@ffa80000 {
879			compatible = "rockchip,rk3528-i2c",
880				     "rockchip,rk3399-i2c";
881			reg = <0x0 0xffa80000 0x0 0x1000>;
882			clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>;
883			clock-names = "i2c", "pclk";
884			interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
885			power-domains = <&power RK3528_PD_VPU>;
886			#address-cells = <1>;
887			#size-cells = <0>;
888			status = "disabled";
889		};
890
891		i2c7: i2c@ffa88000 {
892			compatible = "rockchip,rk3528-i2c",
893				     "rockchip,rk3399-i2c";
894			reg = <0x0 0xffa88000 0x0 0x1000>;
895			clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>;
896			clock-names = "i2c", "pclk";
897			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
898			pinctrl-names = "default";
899			pinctrl-0 = <&i2c7_xfer>;
900			power-domains = <&power RK3528_PD_VO>;
901			#address-cells = <1>;
902			#size-cells = <0>;
903			status = "disabled";
904		};
905
906		pwm0: pwm@ffa90000 {
907			compatible = "rockchip,rk3528-pwm",
908				     "rockchip,rk3328-pwm";
909			reg = <0x0 0xffa90000 0x0 0x10>;
910			clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
911			clock-names = "pwm", "pclk";
912			#pwm-cells = <3>;
913			status = "disabled";
914		};
915
916		pwm1: pwm@ffa90010 {
917			compatible = "rockchip,rk3528-pwm",
918				     "rockchip,rk3328-pwm";
919			reg = <0x0 0xffa90010 0x0 0x10>;
920			clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
921			clock-names = "pwm", "pclk";
922			#pwm-cells = <3>;
923			status = "disabled";
924		};
925
926		pwm2: pwm@ffa90020 {
927			compatible = "rockchip,rk3528-pwm",
928				     "rockchip,rk3328-pwm";
929			reg = <0x0 0xffa90020 0x0 0x10>;
930			clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
931			clock-names = "pwm", "pclk";
932			#pwm-cells = <3>;
933			status = "disabled";
934		};
935
936		pwm3: pwm@ffa90030 {
937			compatible = "rockchip,rk3528-pwm",
938				     "rockchip,rk3328-pwm";
939			reg = <0x0 0xffa90030 0x0 0x10>;
940			clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
941			clock-names = "pwm", "pclk";
942			#pwm-cells = <3>;
943			status = "disabled";
944		};
945
946		pwm4: pwm@ffa98000 {
947			compatible = "rockchip,rk3528-pwm",
948				     "rockchip,rk3328-pwm";
949			reg = <0x0 0xffa98000 0x0 0x10>;
950			clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
951			clock-names = "pwm", "pclk";
952			#pwm-cells = <3>;
953			status = "disabled";
954		};
955
956		pwm5: pwm@ffa98010 {
957			compatible = "rockchip,rk3528-pwm",
958				     "rockchip,rk3328-pwm";
959			reg = <0x0 0xffa98010 0x0 0x10>;
960			clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
961			clock-names = "pwm", "pclk";
962			#pwm-cells = <3>;
963			status = "disabled";
964		};
965
966		pwm6: pwm@ffa98020 {
967			compatible = "rockchip,rk3528-pwm",
968				     "rockchip,rk3328-pwm";
969			reg = <0x0 0xffa98020 0x0 0x10>;
970			clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
971			clock-names = "pwm", "pclk";
972			#pwm-cells = <3>;
973			status = "disabled";
974		};
975
976		pwm7: pwm@ffa98030 {
977			compatible = "rockchip,rk3528-pwm",
978				     "rockchip,rk3328-pwm";
979			reg = <0x0 0xffa98030 0x0 0x10>;
980			clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
981			clock-names = "pwm", "pclk";
982			#pwm-cells = <3>;
983			status = "disabled";
984		};
985
986		saradc: adc@ffae0000 {
987			compatible = "rockchip,rk3528-saradc";
988			reg = <0x0 0xffae0000 0x0 0x10000>;
989			clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
990			clock-names = "saradc", "apb_pclk";
991			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
992			power-domains = <&power RK3528_PD_VPU>;
993			resets = <&cru SRST_P_SARADC>;
994			reset-names = "saradc-apb";
995			#io-channel-cells = <1>;
996			status = "disabled";
997		};
998
999		gmac0: ethernet@ffbd0000 {
1000			compatible = "rockchip,rk3528-gmac", "snps,dwmac-4.20a";
1001			reg = <0x0 0xffbd0000 0x0 0x10000>;
1002			clocks = <&cru CLK_GMAC0_SRC>, <&cru CLK_GMAC0_RMII_50M>,
1003				 <&cru CLK_GMAC0_RX>, <&cru CLK_GMAC0_TX>,
1004				 <&cru PCLK_MAC_VO>, <&cru ACLK_MAC_VO>;
1005			clock-names = "stmmaceth", "clk_mac_ref",
1006				      "mac_clk_rx", "mac_clk_tx",
1007				      "pclk_mac", "aclk_mac";
1008			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1009				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
1010			interrupt-names = "macirq", "eth_wake_irq";
1011			phy-handle = <&rmii0_phy>;
1012			phy-mode = "rmii";
1013			power-domains = <&power RK3528_PD_VO>;
1014			resets = <&cru SRST_A_MAC_VO>;
1015			reset-names = "stmmaceth";
1016			rockchip,grf = <&vo_grf>;
1017			snps,axi-config = <&gmac0_stmmac_axi_setup>;
1018			snps,mixed-burst;
1019			snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
1020			snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
1021			snps,tso;
1022			status = "disabled";
1023
1024			mdio0: mdio {
1025				compatible = "snps,dwmac-mdio";
1026				#address-cells = <0x1>;
1027				#size-cells = <0x0>;
1028
1029				rmii0_phy: ethernet-phy@2 {
1030					compatible = "ethernet-phy-ieee802.3-c22";
1031					reg = <0x2>;
1032					clocks = <&cru CLK_MACPHY>;
1033					phy-is-integrated;
1034					pinctrl-names = "default";
1035					pinctrl-0 = <&fephym0_led_link>,
1036						    <&fephym0_led_spd>;
1037					resets = <&cru SRST_MACPHY>;
1038				};
1039			};
1040
1041			gmac0_stmmac_axi_setup: stmmac-axi-config {
1042				snps,blen = <0 0 0 0 16 8 4>;
1043				snps,rd_osr_lmt = <8>;
1044				snps,wr_osr_lmt = <4>;
1045			};
1046
1047			gmac0_mtl_rx_setup: rx-queues-config {
1048				snps,rx-queues-to-use = <1>;
1049				queue0 {};
1050			};
1051
1052			gmac0_mtl_tx_setup: tx-queues-config {
1053				snps,tx-queues-to-use = <1>;
1054				queue0 {};
1055			};
1056		};
1057
1058		gmac1: ethernet@ffbe0000 {
1059			compatible = "rockchip,rk3528-gmac", "snps,dwmac-4.20a";
1060			reg = <0x0 0xffbe0000 0x0 0x10000>;
1061			clocks = <&cru CLK_GMAC1_SRC_VPU>,
1062				 <&cru CLK_GMAC1_RMII_VPU>,
1063				 <&cru PCLK_MAC_VPU>,
1064				 <&cru ACLK_MAC_VPU>;
1065			clock-names = "stmmaceth",
1066				      "clk_mac_ref",
1067				      "pclk_mac",
1068				      "aclk_mac";
1069			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
1070				     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
1071			interrupt-names = "macirq", "eth_wake_irq";
1072			power-domains = <&power RK3528_PD_VPU>;
1073			resets = <&cru SRST_A_MAC>;
1074			reset-names = "stmmaceth";
1075			rockchip,grf = <&vpu_grf>;
1076			snps,axi-config = <&gmac1_stmmac_axi_setup>;
1077			snps,mixed-burst;
1078			snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
1079			snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
1080			snps,tso;
1081			status = "disabled";
1082
1083			mdio1: mdio {
1084				compatible = "snps,dwmac-mdio";
1085				#address-cells = <0x1>;
1086				#size-cells = <0x0>;
1087			};
1088
1089			gmac1_stmmac_axi_setup: stmmac-axi-config {
1090				snps,blen = <0 0 0 0 16 8 4>;
1091				snps,rd_osr_lmt = <8>;
1092				snps,wr_osr_lmt = <4>;
1093			};
1094
1095			gmac1_mtl_rx_setup: rx-queues-config {
1096				snps,rx-queues-to-use = <1>;
1097				queue0 {};
1098			};
1099
1100			gmac1_mtl_tx_setup: tx-queues-config {
1101				snps,tx-queues-to-use = <1>;
1102				queue0 {};
1103			};
1104		};
1105
1106		sdhci: mmc@ffbf0000 {
1107			compatible = "rockchip,rk3528-dwcmshc",
1108				     "rockchip,rk3588-dwcmshc";
1109			reg = <0x0 0xffbf0000 0x0 0x10000>;
1110			assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>,
1111					  <&cru CCLK_SRC_EMMC>;
1112			assigned-clock-rates = <200000000>, <24000000>,
1113					       <200000000>;
1114			clocks = <&cru CCLK_SRC_EMMC>, <&cru HCLK_EMMC>,
1115				 <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
1116				 <&cru TCLK_EMMC>;
1117			clock-names = "core", "bus", "axi", "block", "timer";
1118			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
1119			max-frequency = <200000000>;
1120			pinctrl-names = "default";
1121			pinctrl-0 = <&emmc_bus8>, <&emmc_clk>, <&emmc_cmd>,
1122				    <&emmc_strb>;
1123			power-domains = <&power RK3528_PD_VPU>;
1124			resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>,
1125				 <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>,
1126				 <&cru SRST_T_EMMC>;
1127			reset-names = "core", "bus", "axi", "block", "timer";
1128			status = "disabled";
1129		};
1130
1131		sdio0: mmc@ffc10000 {
1132			compatible = "rockchip,rk3528-dw-mshc",
1133				     "rockchip,rk3288-dw-mshc";
1134			reg = <0x0 0xffc10000 0x0 0x4000>;
1135			clocks = <&cru HCLK_SDIO0>,
1136				 <&cru CCLK_SRC_SDIO0>,
1137				 <&cru SCLK_SDIO0_DRV>,
1138				 <&cru SCLK_SDIO0_SAMPLE>;
1139			clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1140			fifo-depth = <0x100>;
1141			interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
1142			max-frequency = <200000000>;
1143			pinctrl-names = "default";
1144			pinctrl-0 = <&sdio0_bus4>, <&sdio0_clk>, <&sdio0_cmd>;
1145			power-domains = <&power RK3528_PD_VPU>;
1146			resets = <&cru SRST_H_SDIO0>;
1147			reset-names = "reset";
1148			status = "disabled";
1149		};
1150
1151		sdio1: mmc@ffc20000 {
1152			compatible = "rockchip,rk3528-dw-mshc",
1153				     "rockchip,rk3288-dw-mshc";
1154			reg = <0x0 0xffc20000 0x0 0x4000>;
1155			clocks = <&cru HCLK_SDIO1>,
1156				 <&cru CCLK_SRC_SDIO1>,
1157				 <&cru SCLK_SDIO1_DRV>,
1158				 <&cru SCLK_SDIO1_SAMPLE>;
1159			clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1160			fifo-depth = <0x100>;
1161			interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1162			max-frequency = <200000000>;
1163			pinctrl-names = "default";
1164			pinctrl-0 = <&sdio1_bus4>, <&sdio1_clk>, <&sdio1_cmd>;
1165			power-domains = <&power RK3528_PD_VPU>;
1166			resets = <&cru SRST_H_SDIO1>;
1167			reset-names = "reset";
1168			status = "disabled";
1169		};
1170
1171		sdmmc: mmc@ffc30000 {
1172			compatible = "rockchip,rk3528-dw-mshc",
1173				     "rockchip,rk3288-dw-mshc";
1174			reg = <0x0 0xffc30000 0x0 0x4000>;
1175			clocks = <&cru HCLK_SDMMC0>,
1176				 <&cru CCLK_SRC_SDMMC0>,
1177				 <&cru SCLK_SDMMC_DRV>,
1178				 <&cru SCLK_SDMMC_SAMPLE>;
1179			clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1180			fifo-depth = <0x100>;
1181			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
1182			max-frequency = <150000000>;
1183			pinctrl-names = "default";
1184			pinctrl-0 = <&sdmmc_bus4>, <&sdmmc_clk>, <&sdmmc_cmd>,
1185				    <&sdmmc_det>;
1186			power-domains = <&power RK3528_PD_VO>;
1187			resets = <&cru SRST_H_SDMMC0>;
1188			reset-names = "reset";
1189			rockchip,default-sample-phase = <90>;
1190			status = "disabled";
1191		};
1192
1193		dmac: dma-controller@ffd60000 {
1194			compatible = "arm,pl330", "arm,primecell";
1195			reg = <0x0 0xffd60000 0x0 0x4000>;
1196			clocks = <&cru ACLK_DMAC>;
1197			clock-names = "apb_pclk";
1198			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
1199				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
1200				     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
1201				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
1202				     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
1203				     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
1204				     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
1205				     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
1206				     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1207			#dma-cells = <1>;
1208			arm,pl330-periph-burst;
1209		};
1210
1211		combphy: phy@ffdc0000 {
1212			compatible = "rockchip,rk3528-naneng-combphy";
1213			reg = <0x0 0xffdc0000 0x0 0x10000>;
1214			assigned-clocks = <&cru CLK_REF_PCIE_INNER_PHY>;
1215			assigned-clock-rates = <100000000>;
1216			clocks = <&cru CLK_REF_PCIE_INNER_PHY>,
1217				 <&cru PCLK_PCIE_PHY>,
1218				 <&cru PCLK_PIPE_GRF>;
1219			clock-names = "ref", "apb", "pipe";
1220			power-domains = <&power RK3528_PD_VPU>;
1221			resets = <&cru SRST_PCIE_PIPE_PHY>,
1222				 <&cru SRST_P_PCIE_PHY>;
1223			reset-names = "phy", "apb";
1224			#phy-cells = <1>;
1225			rockchip,pipe-grf = <&vpu_grf>;
1226			rockchip,pipe-phy-grf = <&pipe_phy_grf>;
1227			status = "disabled";
1228		};
1229	};
1230};
1231
1232#include "rk3528-pinctrl.dtsi"
1233