xref: /rk3399_rockchip-uboot/arch/arm/dts/rv1126.dtsi (revision b71e4ab2f3a3dad2d2f54b1b29a1804a45b92de8)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd.
4 */
5
6#include <dt-bindings/clock/rv1126-cru.h>
7#include <dt-bindings/power/rv1126-power.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/soc/rockchip-system-status.h>
13#include "rv1126-dram-default-timing.dtsi"
14
15/ {
16	#address-cells = <1>;
17	#size-cells = <1>;
18
19	compatible = "rockchip,rv1126";
20
21	interrupt-parent = <&gic>;
22
23	aliases {
24		i2c0 = &i2c0;
25		i2c1 = &i2c1;
26		i2c2 = &i2c2;
27		i2c3 = &i2c3;
28		i2c4 = &i2c4;
29		i2c5 = &i2c5;
30		serial0 = &uart0;
31		serial1 = &uart1;
32		serial2 = &uart2;
33		serial3 = &uart3;
34		serial4 = &uart4;
35		serial5 = &uart5;
36		spi0 = &spi0;
37		spi1 = &spi1;
38		dphy0 = &csi_dphy0;
39		dphy1 = &csi_dphy1;
40	};
41
42	cpus {
43		#address-cells = <1>;
44		#size-cells = <0>;
45
46		cpu0: cpu@f00 {
47			device_type = "cpu";
48			compatible = "arm,cortex-a7";
49			reg = <0xf00>;
50			enable-method = "psci";
51			clocks = <&cru ARMCLK>;
52			operating-points-v2 = <&cpu0_opp_table>;
53		};
54
55		cpu1: cpu@f01 {
56			device_type = "cpu";
57			compatible = "arm,cortex-a7";
58			reg = <0xf01>;
59			enable-method = "psci";
60			clocks = <&cru ARMCLK>;
61			operating-points-v2 = <&cpu0_opp_table>;
62		};
63
64		cpu2: cpu@f02 {
65			device_type = "cpu";
66			compatible = "arm,cortex-a7";
67			reg = <0xf02>;
68			enable-method = "psci";
69			clocks = <&cru ARMCLK>;
70			operating-points-v2 = <&cpu0_opp_table>;
71		};
72
73		cpu3: cpu@f03 {
74			device_type = "cpu";
75			compatible = "arm,cortex-a7";
76			reg = <0xf03>;
77			enable-method = "psci";
78			clocks = <&cru ARMCLK>;
79			operating-points-v2 = <&cpu0_opp_table>;
80		};
81	};
82
83	cpu0_opp_table: cpu0-opp-table {
84		compatible = "operating-points-v2";
85		opp-shared;
86
87		opp-408000000 {
88			opp-hz = /bits/ 64 <408000000>;
89			opp-microvolt = <800000 800000 945000>;
90			clock-latency-ns = <40000>;
91			opp-suspend;
92		};
93		opp-600000000 {
94			opp-hz = /bits/ 64 <600000000>;
95			opp-microvolt = <800000 800000 945000>;
96			clock-latency-ns = <40000>;
97		};
98		opp-816000000 {
99			opp-hz = /bits/ 64 <816000000>;
100			opp-microvolt = <800000 800000 945000>;
101			clock-latency-ns = <40000>;
102		};
103		opp-1008000000 {
104			opp-hz = /bits/ 64 <1008000000>;
105			opp-microvolt = <800000 800000 945000>;
106			clock-latency-ns = <40000>;
107		};
108	};
109
110	arm-pmu {
111		compatible = "arm,cortex-a7-pmu";
112		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
113			     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
114			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
115			     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
116		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
117	};
118
119	display_subsystem: display-subsystem {
120		compatible = "rockchip,display-subsystem";
121		ports = <&vop_out>;
122		status = "disabled";
123
124		route {
125			route_dsi: route-dsi {
126				status = "disabled";
127				logo,uboot = "logo.bmp";
128				logo,kernel = "logo_kernel.bmp";
129				logo,mode = "center";
130				charge_logo,mode = "center";
131				connect = <&vop_out_dsi>;
132			};
133
134			route_rgb: route-rgb {
135				status = "disabled";
136				logo,uboot = "logo.bmp";
137				logo,kernel = "logo_kernel.bmp";
138				logo,mode = "center";
139				charge_logo,mode = "center";
140				connect = <&vop_out_rgb>;
141			};
142		};
143	};
144
145	fiq_debugger: fiq-debugger {
146		compatible = "rockchip,fiq-debugger";
147		rockchip,serial-id = <2>;
148		rockchip,wake-irq = <0>;
149		rockchip,irq-mode-enable = <0>;
150		rockchip,baudrate = <1500000>;  /* Only 115200 and 1500000 */
151		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
152		status = "disabled";
153	};
154
155	mpp_srv: mpp-srv {
156		compatible = "rockchip,mpp-service";
157		rockchip,taskqueue-count = <3>;
158		rockchip,resetgroup-count = <3>;
159		status = "disabled";
160	};
161
162	psci {
163		compatible = "arm,psci-1.0";
164		method = "smc";
165	};
166
167	rgb: rgb {
168		compatible = "rockchip,rv1126-rgb";
169		status = "disabled";
170
171		ports {
172			#address-cells = <1>;
173			#size-cells = <0>;
174
175			port@0 {
176				reg = <0>;
177				#address-cells = <1>;
178				#size-cells = <0>;
179
180				rgb_in_vop: endpoint@0 {
181					reg = <0>;
182					remote-endpoint = <&vop_out_rgb>;
183				};
184			};
185
186		};
187	};
188
189	timer {
190		compatible = "arm,armv7-timer";
191		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
192			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
193			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
194			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
195		clock-frequency = <24000000>;
196	};
197
198	xin24m: oscillator {
199		compatible = "fixed-clock";
200		clock-frequency = <24000000>;
201		clock-output-names = "xin24m";
202		#clock-cells = <0>;
203	};
204
205	grf: syscon@fe000000 {
206		compatible = "rockchip,rv1126-grf", "syscon";
207		reg = <0xfe000000 0x20000>;
208	};
209
210	pmugrf: syscon@fe020000 {
211		compatible = "rockchip,rv1126-pmugrf", "syscon";
212		reg = <0xfe020000 0x1000>;
213
214		pmu_io_domains: io-domains {
215			compatible = "rockchip,rv1126-pmu-io-voltage-domain";
216		};
217	};
218
219	qos_usb_host: qos@fe810008 {
220		compatible = "syscon";
221		reg = <0xfe810008 0x20>;
222	};
223
224	qos_usb_otg: qos@fe810088 {
225		compatible = "syscon";
226		reg = <0xfe810088 0x20>;
227	};
228
229	qos_npu: qos@fe850008 {
230		compatible = "syscon";
231		reg = <0xfe850008 0x20>;
232	};
233
234	qos_emmc: qos@fe860008 {
235		compatible = "syscon";
236		reg = <0xfe860008 0x20>;
237	};
238
239	qos_nandc: qos@fe860088 {
240		compatible = "syscon";
241		reg = <0xe860088 0x20>;
242	};
243
244	qos_sfc: qos@fe860208 {
245		compatible = "syscon";
246		reg = <0xfe860208 0x20>;
247	};
248
249	qos_sdmmc: qos@fe868008 {
250		compatible = "syscon";
251		reg = <0xfe868008  0x20>;
252	};
253
254	qos_sdio: qos@fe86c008 {
255		compatible = "syscon";
256		reg = <0xfe86c008 0x20>;
257	};
258
259	qos_vepu_rd0: qos@fe870008 {
260		compatible = "syscon";
261		reg = <0xfe870008 0x20>;
262	};
263
264	qos_vepu_rd1: qos@fe870088 {
265		compatible = "syscon";
266		reg = <0xfe870088 0x20>;
267	};
268
269	qos_vepu_wr: qos@fe870108 {
270		compatible = "syscon";
271		reg = <0xfe870108 0x20>;
272	};
273
274	qos_ispp_m0: qos@fe880018 {
275		compatible = "syscon";
276		reg = <0xfe880018 0x20>;
277	};
278
279	qos_ispp_m1: qos@fe880098 {
280		compatible = "syscon";
281		reg = <0xfe880098 0x20>;
282	};
283
284	qos_isp: qos@fe890008 {
285		compatible = "syscon";
286		reg = <0xfe890008 0x20>;
287	};
288
289	qos_cif_lite: qos@fe890088 {
290		compatible = "syscon";
291		reg = <0xfe890088 0x20>;
292	};
293
294	qos_cif: qos@fe890108 {
295		compatible = "syscon";
296		reg = <0xfe890108 0x20>;
297	};
298
299	qos_iep: qos@fe8a0008 {
300		compatible = "syscon";
301		reg = <0xfe8a0008 0x20>;
302	};
303
304	qos_rga_rd: qos@fe8a0088 {
305		compatible = "syscon";
306		reg = <0xfe8a0088 0x20>;
307	};
308
309	qos_rga_wr: qos@fe8a0108 {
310		compatible = "syscon";
311		reg = <0xfe8a0108 0x20>;
312	};
313
314	qos_vop: qos@fe8a0188 {
315		compatible = "syscon";
316		reg = <0xfe8a0188 0x20>;
317	};
318
319	qos_vdpu: qos@fe8b0008 {
320		compatible = "syscon";
321		reg = <0xfe8b0008 0x20>;
322	};
323
324	gic: interrupt-controller@feff0000 {
325		compatible = "arm,gic-400";
326		interrupt-controller;
327		#interrupt-cells = <3>;
328		#address-cells = <0>;
329
330		reg = <0xfeff1000 0x1000>,
331		      <0xfeff2000 0x2000>,
332		      <0xfeff4000 0x2000>,
333		      <0xfeff6000 0x2000>;
334		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
335	};
336
337	pvtm@ff040000 {
338		compatible = "rockchip,rv1126-cpu-pvtm";
339		reg = <0xff040000 0x100>;
340		clocks = <&cru CLK_CPUPVTM>, <&cru PCLK_CPUPVTM>;
341		clock-names = "clk", "pclk";
342		resets = <&cru SRST_CPUPVTM>, <&cru SRST_CPUPVTM_P>;
343		reset-names = "clk", "pclk";
344	};
345
346	pmu: power-management@ff3e0000 {
347		compatible = "rockchip,rv1126-pmu", "syscon";
348		reg = <0xff3e0000 0x1000>;
349
350		power: power-controller {
351			compatible = "rockchip,rv1126-power-controller";
352			#power-domain-cells = <1>;
353			#address-cells = <1>;
354			#size-cells = <0>;
355			status = "disabled";
356
357			/* These power domains are grouped by VD_NPU */
358			pd_npu@RV1126_PD_NPU {
359				reg = <RV1126_PD_NPU>;
360				clocks = <&cru ACLK_NPU>,
361					 <&cru HCLK_NPU>,
362					 <&cru PCLK_PDNPU>,
363					 <&cru CLK_CORE_NPU>;
364				pm_qos = <&qos_npu>;
365			};
366			/* These power domains are grouped by VD_VEPU */
367			pd_vepu@RV1126_PD_VEPU {
368				reg = <RV1126_PD_VEPU>;
369				clocks = <&cru ACLK_VENC>,
370					 <&cru HCLK_VENC>,
371					 <&cru CLK_VENC_CORE>;
372				pm_qos = <&qos_vepu_rd0>,
373					 <&qos_vepu_rd1>,
374					 <&qos_vepu_wr>;
375			};
376			/* These power domains are grouped by VD_LOGIC */
377			pd_vi@RV1126_PD_VI {
378				reg = <RV1126_PD_VI>;
379				clocks = <&cru ACLK_ISP>,
380					 <&cru HCLK_ISP>,
381					 <&cru CLK_ISP>,
382					 <&cru ACLK_CIF>,
383					 <&cru HCLK_CIF>,
384					 <&cru DCLK_CIF>,
385					 <&cru CLK_CIF_OUT>,
386					 <&cru CLK_MIPICSI_OUT>,
387					 <&cru PCLK_CSIHOST>,
388					 <&cru ACLK_CIFLITE>,
389					 <&cru HCLK_CIFLITE>,
390					 <&cru DCLK_CIFLITE>;
391				pm_qos = <&qos_isp>,
392					 <&qos_cif_lite>,
393					 <&qos_cif>;
394			};
395			pd_vo@RV1126_PD_VO {
396				reg = <RV1126_PD_VO>;
397				clocks = <&cru ACLK_RGA>,
398					 <&cru HCLK_RGA>,
399					 <&cru CLK_RGA_CORE>,
400					 <&cru ACLK_VOP>,
401					 <&cru HCLK_VOP>,
402					 <&cru DCLK_VOP>,
403					 <&cru PCLK_DSIHOST>,
404					 <&cru ACLK_IEP>,
405					 <&cru HCLK_IEP>,
406					 <&cru CLK_IEP_CORE>;
407				pm_qos = <&qos_rga_rd>, <&qos_rga_wr>,
408					 <&qos_vop>, <&qos_iep>;
409			};
410			pd_ispp@RV1126_PD_ISPP {
411				reg = <RV1126_PD_ISPP>;
412				clocks = <&cru ACLK_ISPP>,
413					 <&cru HCLK_ISPP>,
414					 <&cru CLK_ISPP>;
415				pm_qos = <&qos_ispp_m0>,
416					 <&qos_ispp_m1>;
417			};
418			pd_vdpu@RV1126_PD_VDPU {
419				reg = <RV1126_PD_VDPU>;
420				clocks = <&cru ACLK_VDEC>,
421					 <&cru HCLK_VDEC>,
422					 <&cru CLK_VDEC_CORE>,
423					 <&cru CLK_VDEC_CA>,
424					 <&cru CLK_VDEC_HEVC_CA>,
425					 <&cru ACLK_JPEG>,
426					 <&cru HCLK_JPEG>;
427				pm_qos = <&qos_vdpu>;
428			};
429			pd_nvm@RV1126_PD_NVM {
430				reg = <RV1126_PD_NVM>;
431				clocks = <&cru HCLK_EMMC>,
432					 <&cru CLK_EMMC>,
433					 <&cru HCLK_NANDC>,
434					 <&cru CLK_NANDC>,
435					 <&cru HCLK_SFC>,
436					 <&cru HCLK_SFCXIP>,
437					 <&cru SCLK_SFC>;
438				pm_qos = <&qos_emmc>,
439					 <&qos_nandc>,
440					 <&qos_sfc>,
441					 <&qos_sdmmc>;
442			};
443			pd_sdio@RV1126_PD_SDIO {
444				reg = <RV1126_PD_SDIO>;
445				clocks = <&cru HCLK_SDIO>,
446					 <&cru CLK_SDIO>;
447				pm_qos = <&qos_sdio>;
448			};
449			pd_usb@RV1126_PD_USB {
450				reg = <RV1126_PD_USB>;
451				clocks = <&cru HCLK_USBHOST>,
452					 <&cru HCLK_USBHOST_ARB>,
453					 <&cru CLK_USBHOST_UTMI_OHCI>,
454					 <&cru ACLK_USBOTG>,
455					 <&cru CLK_USBOTG_REF>;
456				pm_qos = <&qos_usb_host>,
457					 <&qos_usb_otg>;
458			};
459		};
460	};
461
462	i2c0: i2c@ff3f0000 {
463		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
464		reg = <0xff3f0000 0x1000>;
465		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
466		#address-cells = <1>;
467		#size-cells = <0>;
468		clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
469		clock-names = "i2c", "pclk";
470		pinctrl-names = "default";
471		pinctrl-0 = <&i2c0_xfer>;
472		status = "disabled";
473	};
474
475	i2c2: i2c@ff400000 {
476		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
477		reg = <0xff400000 0x1000>;
478		interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
479		#address-cells = <1>;
480		#size-cells = <0>;
481		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
482		clock-names = "i2c", "pclk";
483		pinctrl-names = "default";
484		pinctrl-0 = <&i2c2_xfer>;
485		status = "disabled";
486	};
487
488	amba {
489		compatible = "simple-bus";
490		#address-cells = <1>;
491		#size-cells = <1>;
492		ranges;
493
494		dmac: dma-controller@ff4e0000 {
495			compatible = "arm,pl330", "arm,primecell";
496			reg = <0xff4e0000 0x4000>;
497			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
498				     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
499			#dma-cells = <1>;
500			clocks = <&cru ACLK_DMAC>;
501			clock-names = "apb_pclk";
502		};
503	};
504
505	uart1: serial@ff410000 {
506		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
507		reg = <0xff410000 0x100>;
508		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
509		reg-shift = <2>;
510		reg-io-width = <4>;
511		dmas = <&dmac 7>, <&dmac 6>;
512		clock-frequency = <24000000>;
513		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
514		clock-names = "baudclk", "apb_pclk";
515		pinctrl-names = "default";
516		pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
517		status = "disabled";
518	};
519
520	pwm0: pwm@ff430000 {
521		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
522		reg = <0xff430000 0x10>;
523		#pwm-cells = <3>;
524		pinctrl-names = "active";
525		pinctrl-0 = <&pwm0m0_pins>;
526		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
527		clock-names = "pwm", "pclk";
528		status = "disabled";
529	};
530
531	pwm1: pwm@ff430010 {
532		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
533		reg = <0xff430010 0x10>;
534		#pwm-cells = <3>;
535		pinctrl-names = "active";
536		pinctrl-0 = <&pwm1m0_pins>;
537		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
538		clock-names = "pwm", "pclk";
539		status = "disabled";
540	};
541
542	pwm2: pwm@ff430020 {
543		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
544		reg = <0xff430020 0x10>;
545		#pwm-cells = <3>;
546		pinctrl-names = "active";
547		pinctrl-0 = <&pwm2m0_pins>;
548		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
549		clock-names = "pwm", "pclk";
550		status = "disabled";
551	};
552
553	pwm3: pwm@ff430030 {
554		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
555		reg = <0xff430030 0x10>;
556		#pwm-cells = <3>;
557		pinctrl-names = "active";
558		pinctrl-0 = <&pwm3m0_pins>;
559		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
560		clock-names = "pwm", "pclk";
561		status = "disabled";
562	};
563
564	pwm4: pwm@ff440000 {
565		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
566		reg = <0xff440000 0x10>;
567		#pwm-cells = <3>;
568		pinctrl-names = "active";
569		pinctrl-0 = <&pwm4m0_pins>;
570		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
571		clock-names = "pwm", "pclk";
572		status = "disabled";
573	};
574
575	pwm5: pwm@ff440010 {
576		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
577		reg = <0xff440010 0x10>;
578		#pwm-cells = <3>;
579		pinctrl-names = "active";
580		pinctrl-0 = <&pwm5m0_pins>;
581		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
582		clock-names = "pwm", "pclk";
583		status = "disabled";
584	};
585
586	pwm6: pwm@ff440020 {
587		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
588		reg = <0xff440020 0x10>;
589		#pwm-cells = <3>;
590		pinctrl-names = "active";
591		pinctrl-0 = <&pwm6m0_pins>;
592		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
593		clock-names = "pwm", "pclk";
594		status = "disabled";
595	};
596
597	pwm7: pwm@ff440030 {
598		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
599		reg = <0xff440030 0x10>;
600		#pwm-cells = <3>;
601		pinctrl-names = "active";
602		pinctrl-0 = <&pwm7m0_pins>;
603		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
604		clock-names = "pwm", "pclk";
605		status = "disabled";
606	};
607
608	spi0: spi@ff450000 {
609		compatible = "rockchip,rv1126-spi", "rockchip,rk3066-spi";
610		reg = <0xff450000 0x1000>;
611		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
612		#address-cells = <1>;
613		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
614		clock-names = "spiclk", "apb_pclk";
615		dmas = <&dmac 1>, <&dmac 0>;
616		dma-names = "tx", "rx";
617		pinctrl-names = "default", "high_speed";
618		pinctrl-0 = <&spi0m0_clk &spi0m0_cs0n &spi0m0_cs1n &spi0m0_miso &spi0m0_mosi>;
619		pinctrl-1 = <&spi0m0_clk_hs &spi0m0_cs0n &spi0m0_cs1n &spi0m0_miso_hs &spi0m0_mosi_hs>;
620		status = "disabled";
621	};
622
623	pvtm@ff470000 {
624		compatible = "rockchip,rv1126-pmu-pvtm";
625		reg = <0xff470000 0x100>;
626		clocks = <&pmucru CLK_PMUPVTM>, <&pmucru PCLK_PMUPVTM>;
627		clock-names = "clk", "pclk";
628		resets = <&cru SRST_PMUPVTM>, <&cru SRST_PMUPVTM_P>;
629		reset-names = "clk", "pclk";
630	};
631
632	pmucru: clock-controller@ff480000 {
633		compatible = "rockchip,rv1126-pmucru";
634		reg = <0xff480000 0x1000>;
635		rockchip,grf = <&grf>;
636		#clock-cells = <1>;
637		#reset-cells = <1>;
638	};
639
640	cru: clock-controller@ff490000 {
641		compatible = "rockchip,rv1126-cru";
642		reg = <0xff490000 0x1000>;
643		rockchip,grf = <&grf>;
644		#clock-cells = <1>;
645		#reset-cells = <1>;
646
647		assigned-clocks =
648			<&pmucru CLK_RTC32K>, <&pmucru PLL_GPLL>,
649			<&pmucru PCLK_PDPMU>, <&cru PLL_CPLL>,
650			<&cru PLL_HPLL>, <&cru ARMCLK>,
651			<&cru ACLK_PDBUS>, <&cru HCLK_PDBUS>,
652			<&cru PCLK_PDBUS>, <&cru ACLK_PDPHP>,
653			<&cru HCLK_PDPHP>, <&cru HCLK_PDAUDIO>,
654			<&cru HCLK_PDCORE_NIU>;
655		assigned-clock-rates =
656			<32768>, <1188000000>,
657			<100000000>, <1000000000>,
658			<1600000000>, <600000000>,
659			<500000000>, <200000000>,
660			<100000000>, <300000000>,
661			<200000000>, <150000000>,
662			<200000000>;
663		assigned-clock-parents =
664			<&pmucru CLK_OSC0_DIV32K>;
665	};
666
667	csi_dphy0: csi-dphy@ff4b0000 {
668		compatible = "rockchip,rv1126-csi-dphy";
669		reg = <0xff4b0000 0x8000>;
670		clocks = <&cru PCLK_CSIPHY0>;
671		clock-names = "pclk";
672		rockchip,grf = <&grf>;
673		status = "disabled";
674	};
675
676	csi_dphy1: csi-dphy@ff4b8000 {
677		compatible = "rockchip,rv1126-csi-dphy";
678		reg = <0xff4b8000 0x8000>;
679		clocks = <&cru PCLK_CSIPHY1>;
680		clock-names = "pclk";
681		rockchip,grf = <&grf>;
682		status = "disabled";
683	};
684
685	u2phy0: usb2-phy@ff4c0000 {
686		compatible = "rockchip,rv1126-usb2phy";
687		reg = <0xff4c0000 0x8000>;
688		clocks = <&cru CLK_USBPHY_OTG_REF>, <&cru PCLK_USBPHY_OTG>;
689		clock-names = "phyclk", "pclk";
690		resets = <&cru SRST_USBPHYPOR_OTG>, <&cru SRST_USBPHY_OTG_P>;
691		reset-names = "u2phy", "u2phy-apb";
692		#clock-cells = <0>;
693		clock-output-names = "usb480m_phy0";
694		status = "disabled";
695
696		u2phy_otg: otg-port {
697			#phy-cells = <0>;
698			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
699				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
700				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
701				     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
702			interrupt-names = "otg-bvalid", "otg-id",
703					  "linestate", "disconnect";
704			status = "disabled";
705		};
706	};
707
708	u2phy1: usb2-phy@ff4c8000 {
709		compatible = "rockchip,rv1126-usb2phy";
710		reg = <0xff4c8000 0x8000>;
711		clocks = <&cru CLK_USBPHY_HOST_REF>, <&cru PCLK_USBPHY_HOST>;
712		clock-names = "phyclk", "pclk";
713		resets = <&cru SRST_USBPHYPOR_HOST>, <&cru SRST_USBPHY_HOST_P>;
714		reset-names = "u2phy", "u2phy-apb";
715		#clock-cells = <0>;
716		clock-output-names = "usb480m_phy1";
717		status = "disabled";
718
719		u2phy_host: host-port {
720			#phy-cells = <0>;
721			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
722				     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
723			interrupt-names = "linestate", "disconnect";
724			status = "disabled";
725		};
726	};
727
728	mipi_dphy: mipi-dphy@ff4d0000 {
729		compatible = "rockchip,rv1126-mipi-dphy", "rockchip,rk1808-mipi-dphy";
730		reg = <0xff4d0000 0x500>;
731		clocks = <&cru CLK_MIPIDSIPHY_REF>, <&cru PCLK_DSIPHY>;
732		clock-names = "ref", "pclk";
733		clock-output-names = "mipi_dphy_pll";
734		#clock-cells = <0>;
735		resets = <&cru SRST_DSIPHY_P>;
736		reset-names = "apb";
737		#phy-cells = <0>;
738		rockchip,grf = <&grf>;
739		status = "disabled";
740	};
741
742	crypto: crypto@ff500000 {
743		compatible = "rockchip,rv1126-crypto";
744		reg = <0xff500000 0x10000>;
745		clock-names = "sclk_crypto", "sclk_crypto_apk";
746		clocks = <&cru CLK_CRYPTO_CORE>, <&cru CLK_CRYPTO_PKA>;
747		clock-frequency = <200000000>, <300000000>;
748		status = "disabled";
749	};
750
751	i2c1: i2c@ff510000 {
752		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
753		reg = <0xff510000 0x1000>;
754		interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
755		#address-cells = <1>;
756		#size-cells = <0>;
757		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
758		clock-names = "i2c", "pclk";
759		pinctrl-names = "default";
760		pinctrl-0 = <&i2c1_xfer>;
761		status = "disabled";
762	};
763
764	i2c3: i2c@ff520000 {
765		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
766		reg = <0xff520000 0x1000>;
767		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
768		#address-cells = <1>;
769		#size-cells = <0>;
770		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
771		clock-names = "i2c", "pclk";
772		pinctrl-names = "default";
773		pinctrl-0 = <&i2c3m0_xfer>;
774		status = "disabled";
775	};
776
777	i2c4: i2c@ff530000 {
778		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
779		reg = <0xff530000 0x1000>;
780		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
781		#address-cells = <1>;
782		#size-cells = <0>;
783		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
784		clock-names = "i2c", "pclk";
785		pinctrl-names = "default";
786		pinctrl-0 = <&i2c4m0_xfer>;
787		status = "disabled";
788	};
789
790	i2c5: i2c@ff540000 {
791		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
792		reg = <0xff540000 0x1000>;
793		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
794		#address-cells = <1>;
795		#size-cells = <0>;
796		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
797		clock-names = "i2c", "pclk";
798		pinctrl-names = "default";
799		pinctrl-0 = <&i2c5m0_xfer>;
800		status = "disabled";
801	};
802
803	pwm8: pwm@ff550000 {
804		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
805		reg = <0xff550000 0x10>;
806		#pwm-cells = <3>;
807		pinctrl-names = "active";
808		pinctrl-0 = <&pwm8m0_pins>;
809		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
810		clock-names = "pwm", "pclk";
811		status = "disabled";
812	};
813
814	pwm9: pwm@ff550010 {
815		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
816		reg = <0xff550010 0x10>;
817		#pwm-cells = <3>;
818		pinctrl-names = "active";
819		pinctrl-0 = <&pwm9m0_pins>;
820		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
821		clock-names = "pwm", "pclk";
822		status = "disabled";
823	};
824
825	pwm10: pwm@ff550020 {
826		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
827		reg = <0xff550020 0x10>;
828		#pwm-cells = <3>;
829		pinctrl-names = "active";
830		pinctrl-0 = <&pwm10m0_pins>;
831		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
832		clock-names = "pwm", "pclk";
833		status = "disabled";
834	};
835
836	pwm11: pwm@ff550030 {
837		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
838		reg = <0xff550030 0x10>;
839		#pwm-cells = <3>;
840		pinctrl-names = "active";
841		pinctrl-0 = <&pwm11m0_pins>;
842		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
843		clock-names = "pwm", "pclk";
844		status = "disabled";
845	};
846
847	uart0: serial@ff560000 {
848		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
849		reg = <0xff560000 0x100>;
850		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
851		reg-shift = <2>;
852		reg-io-width = <4>;
853		dmas = <&dmac 5>, <&dmac 4>;
854		clock-frequency = <24000000>;
855		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
856		clock-names = "baudclk", "apb_pclk";
857		pinctrl-names = "default";
858		pinctrl-0 = <&uart0_xfer &uart0_ctsn &uart0_rtsn>;
859		status = "disabled";
860	};
861
862	uart2: serial@ff570000 {
863		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
864		reg = <0xff570000 0x100>;
865		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
866		reg-shift = <2>;
867		reg-io-width = <4>;
868		dmas = <&dmac 9>, <&dmac 8>;
869		clock-frequency = <24000000>;
870		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
871		clock-names = "baudclk", "apb_pclk";
872		pinctrl-names = "default";
873		pinctrl-0 = <&uart2m1_xfer>;
874		status = "disabled";
875	};
876
877	uart3: serial@ff580000 {
878		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
879		reg = <0xff580000 0x100>;
880		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
881		reg-shift = <2>;
882		reg-io-width = <4>;
883		dmas = <&dmac 11>, <&dmac 10>;
884		clock-frequency = <24000000>;
885		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
886		clock-names = "baudclk", "apb_pclk";
887		pinctrl-names = "default";
888		pinctrl-0 = <&uart3m0_xfer &uart3m0_ctsn &uart3m0_rtsn>;
889		status = "disabled";
890	};
891
892	uart4: serial@ff590000 {
893		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
894		reg = <0xff590000 0x100>;
895		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
896		reg-shift = <2>;
897		reg-io-width = <4>;
898		dmas = <&dmac 13>, <&dmac 12>;
899		clock-frequency = <24000000>;
900		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
901		clock-names = "baudclk", "apb_pclk";
902		pinctrl-names = "default";
903		pinctrl-0 = <&uart4m0_xfer &uart4m0_ctsn &uart4m0_rtsn>;
904		status = "disabled";
905	};
906
907	uart5: serial@ff5a0000 {
908		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
909		reg = <0xff5a0000 0x100>;
910		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
911		reg-shift = <2>;
912		reg-io-width = <4>;
913		dmas = <&dmac 15>, <&dmac 14>;
914		clock-frequency = <24000000>;
915		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
916		clock-names = "baudclk", "apb_pclk";
917		pinctrl-names = "default";
918		pinctrl-0 = <&uart5m0_xfer &uart5m0_ctsn &uart5m0_rtsn>;
919		status = "disabled";
920	};
921
922	spi1: spi@ff5b0000 {
923		compatible = "rockchip,rv1126-spi", "rockchip,rk3066-spi";
924		reg = <0xff5b0000 0x1000>;
925		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
926		#address-cells = <1>;
927		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
928		clock-names = "spiclk", "apb_pclk";
929		dmas = <&dmac 3>, <&dmac 2>;
930		dma-names = "tx", "rx";
931		pinctrl-names = "default", "high_speed";
932		pinctrl-0 = <&spi1m0_clk &spi1m0_cs0n &spi1m0_cs1n &spi1m0_miso &spi1m0_mosi>;
933		pinctrl-1 = <&spi1m0_clk_hs &spi1m0_cs0n &spi1m0_cs1n &spi1m0_miso_hs &spi1m0_mosi_hs>;
934		status = "disabled";
935	};
936
937	otp: otp@ff5c0000 {
938		compatible = "rockchip,rv1126-otp";
939		reg = <0xff5c0000 0x1000>;
940		#address-cells = <1>;
941		#size-cells = <1>;
942		clocks = <&cru CLK_OTP>, <&cru PCLK_OTP>;
943		clock-names = "otp", "apb_pclk";
944		status = "disabled";
945
946		/* Data cells */
947		otp_id: id@7 {
948			reg = <0x07 0x10>;
949		};
950		cpu_leakage: cpu-leakage@17 {
951			reg = <0x17 0x1>;
952		};
953		logic_leakage: logic-leakage@18 {
954			reg = <0x18 0x1>;
955		};
956		npu_leakage: npu-leakage@19 {
957			reg = <0x19 0x1>;
958		};
959	};
960
961	saradc: saradc@ff5e0000 {
962		compatible = "rockchip,saradc";
963		reg = <0xff5e0000 0x100>;
964		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
965		#io-channel-cells = <1>;
966		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
967		clock-names = "saradc", "apb_pclk";
968		resets = <&cru SRST_SARADC_P>;
969		reset-names = "saradc-apb";
970		status = "disabled";
971	};
972
973	cpu_tsadc: tsadc@ff5f0000 {
974		compatible = "rockchip,rv1126-tsadc";
975		reg = <0xff5f0000 0x100>;
976		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
977		assigned-clocks = <&cru CLK_CPU_TSADC>;
978		assigned-clock-rates = <600000>;
979		clocks = <&cru CLK_CPU_TSADC>, <&cru PCLK_CPU_TSADC>,
980			 <&cru CLK_CPU_TSADCPHY>;
981		clock-names = "tsadc", "apb_pclk", "phy_clk";
982		resets = <&cru SRST_CPU_TSADC_P>, <&cru SRST_CPU_TSADC>,
983			 <&cru SRST_CPU_TSADCPHY>;
984		reset-names = "tsadc-apb", "tsadc", "tsadc-phy";
985		rockchip,hw-tshut-temp = <120000>;
986		#thermal-sensor-cells = <1>;
987		status = "disabled";
988	};
989
990	npu_tsadc: tsadc@ff5f8000 {
991		compatible = "rockchip,rv1126-tsadc";
992		reg = <0xff5f8000 0x100>;
993		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
994		assigned-clocks = <&cru CLK_NPU_TSADC>;
995		assigned-clock-rates = <600000>;
996		clocks = <&cru CLK_NPU_TSADC>, <&cru PCLK_NPU_TSADC>,
997			 <&cru CLK_NPU_TSADCPHY>;
998		clock-names = "tsadc", "apb_pclk", "phy_clk";
999		resets = <&cru SRST_NPU_TSADC_P>, <&cru SRST_NPU_TSADC>,
1000			 <&cru SRST_NPU_TSADCPHY>;
1001		reset-names = "tsadc-apb", "tsadc", "tsadc-phy";
1002		rockchip,hw-tshut-temp = <120000>;
1003		#thermal-sensor-cells = <1>;
1004		status = "disabled";
1005	};
1006
1007	can: can@ff610000 {
1008		compatible = "rockchip,can-1.0";
1009		reg = <0xff610000 0x100>;
1010		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1011		assigned-clocks = <&cru CLK_CAN>;
1012		assigned-clock-rates = <100000000>;
1013		clocks = <&cru CLK_CAN>, <&cru PCLK_CAN>;
1014		clock-names = "baudclk", "apb_pclk";
1015		resets = <&cru SRST_CAN>, <&cru SRST_CAN_P>;
1016		reset-names = "can", "can-apb";
1017		status = "disabled";
1018	};
1019
1020	wdt: watchdog@ff680000 {
1021		compatible = "rockchip,rv1126-wdt", "snps,dw-wdt";
1022		reg = <0xff680000 0x100>;
1023		clocks = <&cru PCLK_WDT>;
1024		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1025		status = "disabled";
1026	};
1027
1028	mailbox: mailbox@ff6a0000 {
1029		compatible = "rockchip,rv1126-mailbox",
1030			     "rockchip,rk3368-mailbox";
1031		reg = <0xff6a0000 0x1000>;
1032		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1033		clocks = <&cru PCLK_MAILBOX>;
1034		clock-names = "pclk_mailbox";
1035		#mbox-cells = <1>;
1036		status = "disabled";
1037	};
1038
1039	hw_decompress: decompress@ff6c0000 {
1040		compatible = "rockchip,hw-decompress";
1041		reg = <0xff6c0000 0x10000>;
1042		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1043		clocks = <&cru ACLK_DECOM>, <&cru DCLK_DECOM>, <&cru PCLK_DECOM>;
1044		clock-names = "aclk", "dclk", "pclk";
1045		soft-reset-addr = <0xff490314>;
1046		status = "disabled";
1047	};
1048
1049	i2s0_8ch: i2s@ff800000 {
1050		compatible = "rockchip,rv1126-i2s-tdm";
1051		reg = <0xff800000 0x1000>;
1052		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
1053		clocks = <&cru MCLK_I2S0_TX>, <&cru MCLK_I2S0_RX>, <&cru HCLK_I2S0>;
1054		clock-names = "mclk_tx", "mclk_rx", "hclk";
1055		dmas = <&dmac 20>, <&dmac 19>;
1056		dma-names = "tx", "rx";
1057		resets = <&cru SRST_I2S0_TX_M>, <&cru SRST_I2S0_RX_M>;
1058		reset-names = "tx-m", "rx-m";
1059		rockchip,cru = <&cru>;
1060		rockchip,grf = <&grf>;
1061		pinctrl-names = "default";
1062		pinctrl-0 = <&i2s0m0_sclk_tx
1063			     &i2s0m0_sclk_rx
1064			     &i2s0m0_lrck_tx
1065			     &i2s0m0_lrck_rx
1066			     &i2s0m0_sdi0
1067			     &i2s0m0_sdo0
1068			     &i2s0m0_sdo1_sdi3
1069			     &i2s0m0_sdo2_sdi2
1070			     &i2s0m0_sdo3_sdi1>;
1071		status = "disabled";
1072	};
1073
1074	i2s1_2ch: i2s@ff810000 {
1075		compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s";
1076		reg = <0xff810000 0x1000>;
1077		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1078		clocks = <&cru MCLK_I2S1>, <&cru HCLK_I2S1>;
1079		clock-names = "i2s_clk", "i2s_hclk";
1080		dmas = <&dmac 22>, <&dmac 21>;
1081		dma-names = "tx", "rx";
1082		pinctrl-names = "default";
1083		pinctrl-0 = <&i2s1m0_sclk
1084			     &i2s1m0_lrck
1085			     &i2s1m0_sdi
1086			     &i2s1m0_sdo>;
1087		status = "disabled";
1088	};
1089
1090	i2s2_2ch: i2s@ff820000 {
1091		compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s";
1092		reg = <0xff820000 0x1000>;
1093		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1094		clocks = <&cru MCLK_I2S2>, <&cru HCLK_I2S2>;
1095		clock-names = "i2s_clk", "i2s_hclk";
1096		dmas = <&dmac 24>, <&dmac 23>;
1097		dma-names = "tx", "rx";
1098		pinctrl-names = "default";
1099		pinctrl-0 = <&i2s2m0_sclk
1100			     &i2s2m0_lrck
1101			     &i2s2m0_sdi
1102			     &i2s2m0_sdo>;
1103		status = "disabled";
1104	};
1105
1106	pdm: pdm@ff830000 {
1107		compatible = "rockchip,rv1126-pdm", "rockchip,pdm";
1108		reg = <0xff830000 0x1000>;
1109		clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>;
1110		clock-names = "pdm_clk", "pdm_hclk";
1111		dmas = <&dmac 25>;
1112		dma-names = "rx";
1113		pinctrl-names = "default";
1114		pinctrl-0 = <&pdmm0_clk
1115			     &pdmm0_clk1
1116			     &pdmm0_sdi0
1117			     &pdmm0_sdi1
1118			     &pdmm0_sdi2
1119			     &pdmm0_sdi3>;
1120		status = "disabled";
1121	};
1122
1123	audpwm: audpwm@ff840000 {
1124		compatible = "rockchip,rv1126-audio-pwm", "rockchip,audio-pwm-v1";
1125		reg = <0xff840000 0x1000>;
1126		clocks = <&cru SCLK_AUDPWM>, <&cru HCLK_AUDPWM>;
1127		clock-names = "clk", "hclk";
1128		dmas = <&dmac 26>;
1129		dma-names = "tx";
1130		pinctrl-names = "default";
1131		pinctrl-0 = <&audpwmm0_pins>;
1132		rockchip,sample-width-bits = <11>;
1133		rockchip,interpolat-points = <1>;
1134		status = "disabled";
1135	};
1136
1137	dfi: dfi@ff9c0000 {
1138		reg = <0xff9c0000 0x400>;
1139		compatible = "rockchip,rv1126-dfi";
1140		rockchip,pmugrf = <&pmugrf>;
1141		status = "disabled";
1142	};
1143
1144	dmc: dmc {
1145		compatible = "rockchip,rv1126-dmc";
1146		devfreq-events = <&dfi>;
1147		clocks = <&cru SCLK_DDRCLK>;
1148		clock-names = "dmc_clk";
1149		operating-points-v2 = <&dmc_opp_table>;
1150		ddr_timing = <&ddr_timing>;
1151		upthreshold = <40>;
1152		downdifferential = <20>;
1153		system-status-freq = <
1154			/*system status         freq(KHz)*/
1155			SYS_STATUS_NORMAL       924000
1156			SYS_STATUS_REBOOT       450000
1157			SYS_STATUS_SUSPEND      328000
1158			SYS_STATUS_VIDEO_1080P  924000
1159			SYS_STATUS_BOOST        924000
1160			SYS_STATUS_ISP          924000
1161			SYS_STATUS_PERFORMANCE  924000
1162		>;
1163		auto-min-freq = <328000>;
1164		auto-freq-en = <0>;
1165		#cooling-cells = <2>;
1166		status = "disabled";
1167	};
1168
1169	dmc_opp_table: dmc-opp-table {
1170		compatible = "operating-points-v2";
1171
1172		opp-328000000 {
1173			opp-hz = /bits/ 64 <328000000>;
1174			opp-microvolt = <800000>;
1175		};
1176		opp-450000000 {
1177			opp-hz = /bits/ 64 <450000000>;
1178			opp-microvolt = <800000>;
1179		};
1180		opp-664000000 {
1181			opp-hz = /bits/ 64 <664000000>;
1182			opp-microvolt = <800000>;
1183		};
1184		opp-924000000 {
1185			opp-hz = /bits/ 64 <924000000>;
1186			opp-microvolt = <800000>;
1187		};
1188		opp-1056000000 {
1189			opp-hz = /bits/ 64 <1056000000>;
1190			opp-microvolt = <800000>;
1191			status = "disabled";
1192		};
1193	};
1194
1195	vop: vop@ffb00000 {
1196		compatible = "rockchip,rv1126-vop";
1197		reg = <0xffb00000 0x200>, <0xffb00a00 0x400>;
1198		reg-names = "regs", "gamma_lut";
1199		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
1200		clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>;
1201		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1202		iommus = <&vop_mmu>;
1203		status = "disabled";
1204
1205		vop_out: port {
1206			#address-cells = <1>;
1207			#size-cells = <0>;
1208
1209			vop_out_rgb: endpoint@0 {
1210				reg = <0>;
1211				remote-endpoint = <&rgb_in_vop>;
1212			};
1213
1214			vop_out_dsi: endpoint@1 {
1215				reg = <1>;
1216				remote-endpoint = <&dsi_in_vop>;
1217			};
1218		};
1219	};
1220
1221	vop_mmu: iommu@ffb00f00 {
1222		compatible = "rockchip,iommu";
1223		reg = <0xffb00f00 0x100>;
1224		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
1225		interrupt-names = "vop_mmu";
1226		clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
1227		clock-names = "aclk", "iface";
1228		#iommu-cells = <0>;
1229		rockchip,disable-device-link-resume;
1230		status = "disabled";
1231	};
1232
1233	dsi: dsi@ffb30000 {
1234		compatible = "rockchip,rv1126-mipi-dsi";
1235		reg = <0xffb30000 0x500>;
1236		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1237		clocks = <&cru PCLK_DSIHOST>, <&mipi_dphy>;
1238		clock-names = "pclk", "hs_clk";
1239		resets = <&cru SRST_DSIHOST_P>;
1240		reset-names = "apb";
1241		phys = <&mipi_dphy>;
1242		phy-names = "mipi_dphy";
1243		rockchip,grf = <&grf>;
1244		#address-cells = <1>;
1245		#size-cells = <0>;
1246		status = "disabled";
1247
1248		ports {
1249			port {
1250				dsi_in_vop: endpoint {
1251					remote-endpoint = <&vop_out_dsi>;
1252				};
1253			};
1254		};
1255	};
1256
1257	rkisp: rkisp@ffb50000 {
1258		compatible = "rockchip,rv1126-rkisp";
1259		reg = <0xffb50000 0x10000>;
1260		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
1261			     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
1262			     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
1263		interrupt-names = "isp_irq", "mi_irq", "mipi_irq";
1264		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>,
1265			 <&cru CLK_ISP>;
1266		clock-names = "aclk_isp", "hclk_isp", "clk_isp";
1267		power-domains = <&power RV1126_PD_VI>;
1268		iommus = <&rkisp_mmu>;
1269		status = "disabled";
1270	};
1271
1272	rkisp_mmu: iommu@ffb51a00 {
1273		compatible = "rockchip,iommu";
1274		reg = <0xffb51a00 0x100>;
1275		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
1276		interrupt-names = "isp_mmu";
1277		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
1278		clock-names = "aclk", "iface";
1279		power-domains = <&power RV1126_PD_VI>;
1280		#iommu-cells = <0>;
1281		rockchip,disable-mmu-reset;
1282		status = "disabled";
1283	};
1284
1285	rkispp: rkispp@ffb60000 {
1286		compatible = "rockchip,rv1126-rkispp";
1287		reg = <0xffb60000 0x20000>;
1288		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
1289			     <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
1290		interrupt-names = "ispp_irq", "fec_irq";
1291		clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>,
1292			 <&cru CLK_ISPP>;
1293		clock-names = "aclk_ispp", "hclk_ispp", "clk_ispp";
1294		power-domains = <&power RV1126_PD_ISPP>;
1295		iommus = <&rkispp_mmu>;
1296		status = "disabled";
1297	};
1298
1299	rkispp_mmu: iommu@ffb60e00 {
1300		compatible = "rockchip,iommu";
1301		reg = <0xffb60e00 0x40>, <0xffb60e40 0x40>, <0xffb60f00 0x40>;
1302		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1303			     <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
1304			     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
1305		interrupt-names = "ispp_mmu0_r", "ispp_mmu0_w", "ispp_mmu1";
1306		clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>;
1307		clock-names = "aclk", "iface";
1308		power-domains = <&power RV1126_PD_ISPP>;
1309		#iommu-cells = <0>;
1310		rockchip,disable-mmu-reset;
1311		status = "disabled";
1312	};
1313
1314	rkvenc: rkvenc@ffbb0000 {
1315		compatible = "rockchip,rkv-encoder-v1";
1316		reg = <0xffbb0000 0x400>;
1317		interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
1318		interrupt-names = "irq_enc";
1319		clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>,
1320			<&cru CLK_VENC_CORE>;
1321		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
1322		resets = <&cru SRST_VENC_A>, <&cru SRST_VENC_H>,
1323			<&cru SRST_VENC_CORE>;
1324		reset-names = "video_a", "video_h", "video_core";
1325		iommus = <&rkvenc_mmu>;
1326		node-name = "rkvenc";
1327		rockchip,srv = <&mpp_srv>;
1328		rockchip,taskqueue-node = <2>;
1329		rockchip,resetgroup-node = <2>;
1330		power-domains = <&power RV1126_PD_VEPU>;
1331		status = "disabled";
1332	};
1333
1334	rkvenc_mmu: iommu@ffbb0f00 {
1335		compatible = "rockchip,iommu";
1336		reg = <0xffbb0f00 0x40>, <0xffbb0f40 0x40>;
1337		interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1338			<GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1339		interrupt-names = "rkvenc_mmu0", "rkvenc_mmu1";
1340		clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>;
1341		clock-names = "aclk", "iface";
1342		rockchip,disable-mmu-reset;
1343		#iommu-cells = <0>;
1344		power-domains = <&power RV1126_PD_VEPU>;
1345		status = "disabled";
1346	};
1347
1348	pvtm@ffc00000 {
1349		compatible = "rockchip,rv1126-npu-pvtm";
1350		reg = <0xffc00000 0x100>;
1351		clocks = <&cru CLK_NPUPVTM>, <&cru PCLK_NPUPVTM>;
1352		clock-names = "clk", "pclk";
1353		resets = <&cru SRST_NPUPVTM>, <&cru SRST_NPUPVTM_P>;
1354		reset-names = "clk", "pclk";
1355	};
1356
1357	gmac: ethernet@ffc40000 {
1358		compatible = "rockchip,rv1126-gmac", "snps,dwmac-4.20a";
1359		reg = <0xffc40000 0x0ffff>;
1360		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1361			     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1362		interrupt-names = "macirq", "eth_wake_irq";
1363		rockchip,grf = <&grf>;
1364		clocks = <&cru CLK_GMAC_SRC>, <&cru CLK_GMAC_TX_RX>,
1365			 <&cru CLK_GMAC_TX_RX>, <&cru CLK_GMAC_REF>,
1366			 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>,
1367			 <&cru RGMII_MODE_CLK>, <&cru CLK_GMAC_PTPREF>;
1368		clock-names = "stmmaceth", "mac_clk_rx",
1369			      "mac_clk_tx", "clk_mac_refout",
1370			      "aclk_mac", "pclk_mac",
1371			      "clk_mac_speed", "ptp_ref";
1372		resets = <&cru SRST_GMAC_A>;
1373		reset-names = "stmmaceth";
1374
1375		snps,mixed-burst;
1376		snps,tso;
1377
1378		snps,axi-config = <&stmmac_axi_setup>;
1379		snps,mtl-rx-config = <&mtl_rx_setup>;
1380		snps,mtl-tx-config = <&mtl_tx_setup>;
1381		status = "disabled";
1382
1383		mdio: mdio {
1384			compatible = "snps,dwmac-mdio";
1385			#address-cells = <0x1>;
1386			#size-cells = <0x0>;
1387		};
1388
1389		stmmac_axi_setup: stmmac-axi-config {
1390			snps,wr_osr_lmt = <4>;
1391			snps,rd_osr_lmt = <8>;
1392			snps,blen = <0 0 0 0 16 8 4>;
1393		};
1394
1395		mtl_rx_setup: rx-queues-config {
1396			snps,rx-queues-to-use = <1>;
1397			queue0 {};
1398		};
1399
1400		mtl_tx_setup: tx-queues-config {
1401			snps,tx-queues-to-use = <1>;
1402			queue0 {};
1403		};
1404	};
1405
1406	emmc: dwmmc@ffc50000 {
1407		compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc";
1408		reg = <0xffc50000 0x4000>;
1409		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1410		clocks = <&cru HCLK_EMMC>, <&cru CLK_EMMC>,
1411			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
1412		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1413		fifo-depth = <0x100>;
1414		max-frequency = <200000000>;
1415		status = "disabled";
1416	};
1417
1418	sdmmc: dwmmc@ffc60000 {
1419		compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc";
1420		reg = <0xffc60000 0x4000>;
1421		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
1422		clocks = <&cru HCLK_SDMMC>, <&cru CLK_SDMMC>,
1423			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
1424		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1425		fifo-depth = <0x100>;
1426		max-frequency = <100000000>;
1427		pinctrl-names = "default";
1428		pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_det &sdmmc1_bus4>;
1429		status = "disabled";
1430	};
1431
1432	sdio: dwmmc@ffc70000 {
1433		compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc";
1434		reg = <0xffc70000 0x4000>;
1435		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
1436		clocks = <&cru HCLK_SDIO>, <&cru CLK_SDIO>,
1437			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
1438		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1439		fifo-depth = <0x100>;
1440		max-frequency = <150000000>;
1441		pinctrl-names = "default";
1442		pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4>;
1443		status = "disabled";
1444	};
1445
1446	nandc: nandc@ffc80000 {
1447		compatible = "rockchip,rk-nandc";
1448		reg = <0x0 0xffc80000 0x0 0x4000>;
1449		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
1450		nandc_id = <0>;
1451		clocks = <&cru CLK_NANDC>, <&cru HCLK_NANDC>;
1452		clock-names = "clk_nandc", "hclk_nandc";
1453		status = "disabled";
1454	};
1455
1456	sfc: sfc@ffc90000  {
1457		compatible = "rockchip,sfc";
1458		reg = <0xffc90000 0x4000>;
1459		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1460		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
1461		clock-names = "clk_sfc", "hclk_sfc";
1462		assigned-clocks = <&cru SCLK_SFC>;
1463		assigned-clock-rates = <80000000>;
1464		status = "disabled";
1465	};
1466
1467	usbdrd: usb0 {
1468		compatible = "rockchip,rv1126-dwc3", "rockchip,rk3399-dwc3";
1469		#address-cells = <1>;
1470		#size-cells = <1>;
1471		ranges;
1472		clocks = <&cru CLK_USBOTG_REF>, <&cru ACLK_USBOTG>;
1473		clock-names = "ref_clk", "bus_clk";
1474		status = "disabled";
1475
1476		usbdrd_dwc3: dwc3@ffd00000 {
1477			compatible = "snps,dwc3";
1478			reg = <0xffd00000 0x100000>;
1479			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1480			dr_mode = "otg";
1481			maximum-speed = "high-speed";
1482			phys = <&u2phy_otg>;
1483			phy-names = "usb2-phy";
1484			phy_type = "utmi_wide";
1485			power-domains = <&power RV1126_PD_USB>;
1486			resets = <&cru SRST_USBOTG_A>;
1487			reset-names = "usb3-otg";
1488			snps,dis_enblslpm_quirk;
1489			snps,dis-u2-freeclk-exists-quirk;
1490			snps,dis_u2_susphy_quirk;
1491			snps,dis-del-phy-power-chg-quirk;
1492			snps,tx-ipgap-linecheck-dis-quirk;
1493			snps,xhci-trb-ent-quirk;
1494			status = "disabled";
1495		};
1496	};
1497
1498	usb_host0_ehci: usb@ffe00000 {
1499		compatible = "generic-ehci";
1500		reg = <0xffe00000 0x20000>;
1501		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1502		clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>,
1503			 <&u2phy1>;
1504		clock-names = "usbhost", "arbiter", "utmi";
1505		phys = <&u2phy_host>;
1506		phy-names = "usb";
1507		power-domains = <&power RV1126_PD_USB>;
1508		status = "disabled";
1509	};
1510
1511	usb_host0_ohci: usb@ffe10000 {
1512		compatible = "generic-ohci";
1513		reg = <0xffe20000 0x20000>;
1514		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1515		clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>,
1516			 <&u2phy1>;
1517		clock-names = "usbhost", "arbiter", "utmi";
1518		phys = <&u2phy_host>;
1519		phy-names = "usb";
1520		power-domains = <&power RV1126_PD_USB>;
1521		status = "disabled";
1522	};
1523
1524	pinctrl: pinctrl {
1525		compatible = "rockchip,rv1126-pinctrl";
1526		rockchip,grf = <&grf>;
1527		rockchip,pmu = <&pmugrf>;
1528		#address-cells = <1>;
1529		#size-cells = <1>;
1530		ranges;
1531
1532		gpio0: gpio0@ff460000 {
1533			compatible = "rockchip,gpio-bank";
1534			reg = <0xff460000 0x100>;
1535			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
1536			clocks = <&pmucru PCLK_GPIO0>;
1537
1538			gpio-controller;
1539			#gpio-cells = <2>;
1540
1541			interrupt-controller;
1542			#interrupt-cells = <2>;
1543		};
1544
1545		gpio1: gpio1@ff620000 {
1546			compatible = "rockchip,gpio-bank";
1547			reg = <0xff620000 0x100>;
1548			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
1549			clocks = <&cru PCLK_GPIO1>;
1550
1551			gpio-controller;
1552			#gpio-cells = <2>;
1553
1554			interrupt-controller;
1555			#interrupt-cells = <2>;
1556		};
1557
1558		gpio2: gpio2@ff630000 {
1559			compatible = "rockchip,gpio-bank";
1560			reg = <0xff630000 0x100>;
1561			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
1562			clocks = <&cru PCLK_GPIO2>;
1563
1564			gpio-controller;
1565			#gpio-cells = <2>;
1566
1567			interrupt-controller;
1568			#interrupt-cells = <2>;
1569		};
1570
1571		gpio3: gpio3@ff640000 {
1572			compatible = "rockchip,gpio-bank";
1573			reg = <0xff640000 0x100>;
1574			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1575			clocks = <&cru PCLK_GPIO3>;
1576
1577			gpio-controller;
1578			#gpio-cells = <2>;
1579
1580			interrupt-controller;
1581			#interrupt-cells = <2>;
1582		};
1583
1584		gpio4: gpio4@ff650000 {
1585			compatible = "rockchip,gpio-bank";
1586			reg = <0xff650000 0x100>;
1587			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
1588			clocks = <&cru PCLK_GPIO4>;
1589
1590			gpio-controller;
1591			#gpio-cells = <2>;
1592
1593			interrupt-controller;
1594			#interrupt-cells = <2>;
1595		};
1596	};
1597};
1598
1599#include "rv1126-pinctrl.dtsi"
1600
1601