xref: /rk3399_rockchip-uboot/arch/arm/dts/rv1103b.dtsi (revision e76c4c6c0e727a8e755100006a5304cf35183d26)
1b9dcc643SXuhui Lin// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2b9dcc643SXuhui Lin/*
3b9dcc643SXuhui Lin * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
4b9dcc643SXuhui Lin */
5b9dcc643SXuhui Lin
6b9dcc643SXuhui Lin#include <dt-bindings/clock/rockchip,rv1103b-cru.h>
7b9dcc643SXuhui Lin#include <dt-bindings/gpio/gpio.h>
8b9dcc643SXuhui Lin#include <dt-bindings/interrupt-controller/irq.h>
9b9dcc643SXuhui Lin#include <dt-bindings/interrupt-controller/arm-gic.h>
10b9dcc643SXuhui Lin#include <dt-bindings/pinctrl/rockchip.h>
11b9dcc643SXuhui Lin#include <dt-bindings/soc/rockchip,boot-mode.h>
12b9dcc643SXuhui Lin#include <dt-bindings/soc/rockchip-system-status.h>
13b9dcc643SXuhui Lin#include <dt-bindings/thermal/thermal.h>
14b9dcc643SXuhui Lin
15b9dcc643SXuhui Lin/ {
16b9dcc643SXuhui Lin	#address-cells = <1>;
17b9dcc643SXuhui Lin	#size-cells = <1>;
18b9dcc643SXuhui Lin
19b9dcc643SXuhui Lin	compatible = "rockchip,rv1103b";
20b9dcc643SXuhui Lin
21b9dcc643SXuhui Lin	interrupt-parent = <&gic>;
22b9dcc643SXuhui Lin
23b9dcc643SXuhui Lin	aliases {
24b9dcc643SXuhui Lin		csi2dphy0 = &csi2_dphy0;
25b9dcc643SXuhui Lin		csi2dphy1 = &csi2_dphy1;
26b9dcc643SXuhui Lin		csi2dphy2 = &csi2_dphy2;
27b9dcc643SXuhui Lin		ethernet0 = &gmac;
28b9dcc643SXuhui Lin		gpio0 = &gpio0;
29b9dcc643SXuhui Lin		gpio1 = &gpio1;
30b9dcc643SXuhui Lin		gpio2 = &gpio2;
31b9dcc643SXuhui Lin		i2c0 = &i2c0;
32b9dcc643SXuhui Lin		i2c1 = &i2c1;
33b9dcc643SXuhui Lin		i2c2 = &i2c2;
34b9dcc643SXuhui Lin		i2c3 = &i2c3;
35b9dcc643SXuhui Lin		i2c4 = &i2c4;
36b9dcc643SXuhui Lin		mmc0 = &emmc;
37b9dcc643SXuhui Lin		mmc1 = &sdmmc0;
38b9dcc643SXuhui Lin		mmc2 = &sdmmc1;
39b9dcc643SXuhui Lin		rkcif_mipi_lvds0 = &rkcif_mipi_lvds;
40b9dcc643SXuhui Lin		rkcif_mipi_lvds1 = &rkcif_mipi_lvds1;
41b9dcc643SXuhui Lin		serial0 = &uart0;
42b9dcc643SXuhui Lin		serial1 = &uart1;
43b9dcc643SXuhui Lin		serial2 = &uart2;
44b9dcc643SXuhui Lin		spi0 = &spi0;
45b9dcc643SXuhui Lin		spi1 = &sfc;
46b9dcc643SXuhui Lin	};
47b9dcc643SXuhui Lin
48b9dcc643SXuhui Lin	arm-pmu {
49b9dcc643SXuhui Lin		compatible = "arm,cortex-a7-pmu";
50b9dcc643SXuhui Lin		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
51b9dcc643SXuhui Lin		interrupt-affinity = <&cpu0>;
52b9dcc643SXuhui Lin	};
53b9dcc643SXuhui Lin
54b9dcc643SXuhui Lin	clocks {
55b9dcc643SXuhui Lin		compatible = "simple-bus";
56b9dcc643SXuhui Lin
57b9dcc643SXuhui Lin		xin24m: xin24m {
58b9dcc643SXuhui Lin			compatible = "fixed-clock";
59b9dcc643SXuhui Lin			#clock-cells = <0>;
60b9dcc643SXuhui Lin			clock-frequency = <24000000>;
61b9dcc643SXuhui Lin			clock-output-names = "xin24m";
62b9dcc643SXuhui Lin		};
63b9dcc643SXuhui Lin
64b9dcc643SXuhui Lin		xin32k: xin32k {
65b9dcc643SXuhui Lin			compatible = "fixed-clock";
66b9dcc643SXuhui Lin			#clock-cells = <0>;
67b9dcc643SXuhui Lin			clock-frequency = <32768>;
68b9dcc643SXuhui Lin			clock-output-names = "xin32k";
69b9dcc643SXuhui Lin		};
70b9dcc643SXuhui Lin	};
71b9dcc643SXuhui Lin
72b9dcc643SXuhui Lin	cpuinfo {
73b9dcc643SXuhui Lin		compatible = "rockchip,cpuinfo";
74b9dcc643SXuhui Lin		nvmem-cells = <&otp_id>, <&otp_cpu_version>, <&cpu_code>;
75b9dcc643SXuhui Lin		nvmem-cell-names = "id", "cpu-version", "cpu-code";
76b9dcc643SXuhui Lin	};
77b9dcc643SXuhui Lin
78b9dcc643SXuhui Lin	cpus {
79b9dcc643SXuhui Lin		#address-cells = <1>;
80b9dcc643SXuhui Lin		#size-cells = <0>;
81b9dcc643SXuhui Lin
82b9dcc643SXuhui Lin		cpu0: cpu@0 {
83b9dcc643SXuhui Lin			device_type = "cpu";
84b9dcc643SXuhui Lin			compatible = "arm,cortex-a7";
85b9dcc643SXuhui Lin			reg = <0x0>;
86b9dcc643SXuhui Lin			clocks = <&cru ARMCLK>;
87b9dcc643SXuhui Lin			operating-points-v2 = <&cpu0_opp_table>;
88b9dcc643SXuhui Lin		};
89b9dcc643SXuhui Lin	};
90b9dcc643SXuhui Lin
91b9dcc643SXuhui Lin	cpu0_opp_table: cpu0-opp-table {
92b9dcc643SXuhui Lin		compatible = "operating-points-v2";
93b9dcc643SXuhui Lin		opp-shared;
94b9dcc643SXuhui Lin
95b9dcc643SXuhui Lin		nvmem-cells = <&cpu_leakage>;
96b9dcc643SXuhui Lin		nvmem-cell-names = "leakage";
97b9dcc643SXuhui Lin
98b9dcc643SXuhui Lin		opp-408000000 {
99b9dcc643SXuhui Lin			opp-hz = /bits/ 64 <408000000>;
100b9dcc643SXuhui Lin			opp-microvolt = <900000 900000 1000000>;
101b9dcc643SXuhui Lin			clock-latency-ns = <40000>;
102b9dcc643SXuhui Lin		};
103b9dcc643SXuhui Lin		opp-600000000 {
104b9dcc643SXuhui Lin			opp-hz = /bits/ 64 <600000000>;
105b9dcc643SXuhui Lin			opp-microvolt = <900000 900000 1000000>;
106b9dcc643SXuhui Lin			clock-latency-ns = <40000>;
107b9dcc643SXuhui Lin		};
108b9dcc643SXuhui Lin		opp-1200000000 {
109b9dcc643SXuhui Lin			opp-hz = /bits/ 64 <1200000000>;
110b9dcc643SXuhui Lin			opp-microvolt = <950000 950000 1000000>;
111b9dcc643SXuhui Lin			clock-latency-ns = <40000>;
112b9dcc643SXuhui Lin		};
113b9dcc643SXuhui Lin	};
114b9dcc643SXuhui Lin
115b9dcc643SXuhui Lin	/* dphy0 full mode */
116b9dcc643SXuhui Lin	csi2_dphy0: csi2-dphy0 {
117b9dcc643SXuhui Lin		compatible = "rockchip,rv1106-csi2-dphy";
118b9dcc643SXuhui Lin		rockchip,hw = <&csi2_dphy_hw>;
119b9dcc643SXuhui Lin		status = "disabled";
120b9dcc643SXuhui Lin	};
121b9dcc643SXuhui Lin
122b9dcc643SXuhui Lin	/* dphy1 split mode 01 */
123b9dcc643SXuhui Lin	csi2_dphy1: csi2-dphy1 {
124b9dcc643SXuhui Lin		compatible = "rockchip,rv1106-csi2-dphy";
125b9dcc643SXuhui Lin		rockchip,hw = <&csi2_dphy_hw>;
126b9dcc643SXuhui Lin		status = "disabled";
127b9dcc643SXuhui Lin	};
128b9dcc643SXuhui Lin
129b9dcc643SXuhui Lin	/* dphy2 split mode 23 */
130b9dcc643SXuhui Lin	csi2_dphy2: csi2-dphy2 {
131b9dcc643SXuhui Lin		compatible = "rockchip,rv1106-csi2-dphy";
132b9dcc643SXuhui Lin		rockchip,hw = <&csi2_dphy_hw>;
133b9dcc643SXuhui Lin		status = "disabled";
134b9dcc643SXuhui Lin	};
135b9dcc643SXuhui Lin
136b9dcc643SXuhui Lin	fiq_debugger: fiq-debugger {
137b9dcc643SXuhui Lin		compatible = "rockchip,fiq-debugger";
138b9dcc643SXuhui Lin		rockchip,serial-id = <0>;
139b9dcc643SXuhui Lin		rockchip,wake-irq = <0>;
140b9dcc643SXuhui Lin		rockchip,irq-mode-enable = <0>;
141b9dcc643SXuhui Lin		rockchip,baudrate = <115200>;  /* Only 115200 and 1500000 */
142b9dcc643SXuhui Lin		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
143b9dcc643SXuhui Lin		status = "disabled";
144b9dcc643SXuhui Lin	};
145b9dcc643SXuhui Lin
146b9dcc643SXuhui Lin	mipi0_csi2: mipi0-csi2 {
147b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mipi-csi2";
148b9dcc643SXuhui Lin		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>;
149b9dcc643SXuhui Lin		status = "disabled";
150b9dcc643SXuhui Lin	};
151b9dcc643SXuhui Lin
152b9dcc643SXuhui Lin	mipi1_csi2: mipi1-csi2 {
153b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mipi-csi2";
154b9dcc643SXuhui Lin		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>;
155b9dcc643SXuhui Lin		status = "disabled";
156b9dcc643SXuhui Lin	};
157b9dcc643SXuhui Lin
158b9dcc643SXuhui Lin	mpp_srv: mpp-srv {
159b9dcc643SXuhui Lin		compatible = "rockchip,mpp-service";
160b9dcc643SXuhui Lin		rockchip,taskqueue-count = <2>;
161b9dcc643SXuhui Lin		status = "disabled";
162b9dcc643SXuhui Lin	};
163b9dcc643SXuhui Lin
164b9dcc643SXuhui Lin	mpp_vcodec: mpp-vcodec {
165b9dcc643SXuhui Lin		compatible = "rockchip,vcodec";
166b9dcc643SXuhui Lin		status = "disabled";
167b9dcc643SXuhui Lin	};
168b9dcc643SXuhui Lin
169b9dcc643SXuhui Lin	rkcif_mipi_lvds: rkcif-mipi-lvds {
170b9dcc643SXuhui Lin		compatible = "rockchip,rkcif-mipi-lvds";
171b9dcc643SXuhui Lin		rockchip,hw = <&rkcif>;
172b9dcc643SXuhui Lin		status = "disabled";
173b9dcc643SXuhui Lin	};
174b9dcc643SXuhui Lin
175b9dcc643SXuhui Lin	rkcif_mipi_lvds_sditf: rkcif-mipi-lvds-sditf {
176b9dcc643SXuhui Lin		compatible = "rockchip,rkcif-sditf";
177b9dcc643SXuhui Lin		rockchip,cif = <&rkcif_mipi_lvds>;
178b9dcc643SXuhui Lin		status = "disabled";
179b9dcc643SXuhui Lin	};
180b9dcc643SXuhui Lin
181b9dcc643SXuhui Lin	rkcif_mipi_lvds1: rkcif-mipi-lvds1 {
182b9dcc643SXuhui Lin		compatible = "rockchip,rkcif-mipi-lvds";
183b9dcc643SXuhui Lin		rockchip,hw = <&rkcif>;
184b9dcc643SXuhui Lin		status = "disabled";
185b9dcc643SXuhui Lin	};
186b9dcc643SXuhui Lin
187b9dcc643SXuhui Lin	rkcif_mipi_lvds1_sditf: rkcif-mipi-lvds1-sditf {
188b9dcc643SXuhui Lin		compatible = "rockchip,rkcif-sditf";
189b9dcc643SXuhui Lin		rockchip,cif = <&rkcif_mipi_lvds1>;
190b9dcc643SXuhui Lin		status = "disabled";
191b9dcc643SXuhui Lin	};
192b9dcc643SXuhui Lin
193b9dcc643SXuhui Lin	rkdvbm: rkdvbm {
194b9dcc643SXuhui Lin		compatible = "rockchip,rk-dvbm";
195b9dcc643SXuhui Lin		status = "disabled";
196b9dcc643SXuhui Lin	};
197b9dcc643SXuhui Lin
198b9dcc643SXuhui Lin	rkisp_vir0: rkisp-vir0 {
199b9dcc643SXuhui Lin		compatible = "rockchip,rkisp-vir";
200b9dcc643SXuhui Lin		rockchip,hw = <&rkisp>;
201b9dcc643SXuhui Lin		dvbm = <&rkdvbm>;
202b9dcc643SXuhui Lin		status = "disabled";
203b9dcc643SXuhui Lin	};
204b9dcc643SXuhui Lin
205b9dcc643SXuhui Lin	rkisp_vir1: rkisp-vir1 {
206b9dcc643SXuhui Lin		compatible = "rockchip,rkisp-vir";
207b9dcc643SXuhui Lin		rockchip,hw = <&rkisp>;
208b9dcc643SXuhui Lin		dvbm = <&rkdvbm>;
209b9dcc643SXuhui Lin		status = "disabled";
210b9dcc643SXuhui Lin	};
211b9dcc643SXuhui Lin
212b9dcc643SXuhui Lin	thermal_zones: thermal-zones {
213b9dcc643SXuhui Lin		soc_thermal: soc-thermal {
214b9dcc643SXuhui Lin			polling-delay-passive = <20>; /* milliseconds */
215b9dcc643SXuhui Lin			polling-delay = <1000>; /* milliseconds */
216b9dcc643SXuhui Lin			thermal-sensors = <&tsadc 0>;
217b9dcc643SXuhui Lin			trips {
218b9dcc643SXuhui Lin				soc_crit: soc-crit {
219b9dcc643SXuhui Lin					/* millicelsius */
220b9dcc643SXuhui Lin					temperature = <115000>;
221b9dcc643SXuhui Lin					/* millicelsius */
222b9dcc643SXuhui Lin					hysteresis = <2000>;
223b9dcc643SXuhui Lin					type = "critical";
224b9dcc643SXuhui Lin				};
225b9dcc643SXuhui Lin			};
226b9dcc643SXuhui Lin		};
227b9dcc643SXuhui Lin	};
228b9dcc643SXuhui Lin
229b9dcc643SXuhui Lin	timer {
230b9dcc643SXuhui Lin		compatible = "arm,armv7-timer";
231b9dcc643SXuhui Lin		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
232b9dcc643SXuhui Lin			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
233b9dcc643SXuhui Lin		clock-frequency = <24000000>;
234b9dcc643SXuhui Lin	};
235b9dcc643SXuhui Lin
236b9dcc643SXuhui Lin	cru: clock-controller@20000000 {
237b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-cru";
238b9dcc643SXuhui Lin		reg = <0x20000000 0x81000>;
239b9dcc643SXuhui Lin		#clock-cells = <1>;
240b9dcc643SXuhui Lin		#reset-cells = <1>;
241b9dcc643SXuhui Lin
242b9dcc643SXuhui Lin		assigned-clocks =
243b9dcc643SXuhui Lin			<&cru PLL_GPLL>, <&cru CLK_GPLL_DIV12>;
244b9dcc643SXuhui Lin		assigned-clock-rates =
245b9dcc643SXuhui Lin			<1188000000>, <100000000>;
246b9dcc643SXuhui Lin	};
247b9dcc643SXuhui Lin
248b9dcc643SXuhui Lin	/*
249b9dcc643SXuhui Lin	 * Merge all GRF, each independent GRF offset is shown as bellow:
250b9dcc643SXuhui Lin	 * VEPU_GRF:		0x20100000
251b9dcc643SXuhui Lin	 * NPU_GRF:		0x20110000
252b9dcc643SXuhui Lin	 * VI_GRF:		0x20120000
253b9dcc643SXuhui Lin	 * CPU_GRF:		0x20130000
254b9dcc643SXuhui Lin	 * DDR_GRF:		0x20140000
255b9dcc643SXuhui Lin	 * SYS_GRF:		0x20150000
256b9dcc643SXuhui Lin	 * PMU_GRF:		0x20160000
257b9dcc643SXuhui Lin	 */
258b9dcc643SXuhui Lin	grf: syscon@20100000 {
259b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-grf", "syscon", "simple-mfd";
260b9dcc643SXuhui Lin		reg = <0x20100000 0x61000>;
261b9dcc643SXuhui Lin
262b9dcc643SXuhui Lin		reboot_mode: reboot-mode {
263b9dcc643SXuhui Lin			compatible = "syscon-reboot-mode";
264b9dcc643SXuhui Lin			offset = <0x60200>;
265b9dcc643SXuhui Lin			mode-bootloader = <BOOT_BL_DOWNLOAD>;
266b9dcc643SXuhui Lin			mode-charge = <BOOT_CHARGING>;
267b9dcc643SXuhui Lin			mode-fastboot = <BOOT_FASTBOOT>;
268b9dcc643SXuhui Lin			mode-loader = <BOOT_BL_DOWNLOAD>;
269b9dcc643SXuhui Lin			mode-normal = <BOOT_NORMAL>;
270b9dcc643SXuhui Lin			mode-recovery = <BOOT_RECOVERY>;
271b9dcc643SXuhui Lin			mode-ums = <BOOT_UMS>;
272b9dcc643SXuhui Lin			mode-panic = <BOOT_PANIC>;
273b9dcc643SXuhui Lin			mode-watchdog = <BOOT_WATCHDOG>;
274b9dcc643SXuhui Lin		};
275b9dcc643SXuhui Lin	};
276b9dcc643SXuhui Lin
277b9dcc643SXuhui Lin	ioc: syscon@20170000 {
278b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-ioc", "syscon";
279b9dcc643SXuhui Lin		reg = <0x20170000 0x60000>;
280b9dcc643SXuhui Lin	};
281b9dcc643SXuhui Lin
282b9dcc643SXuhui Lin	gic: interrupt-controller@20411000 {
283b9dcc643SXuhui Lin		compatible = "arm,gic-400";
284b9dcc643SXuhui Lin		interrupt-controller;
285b9dcc643SXuhui Lin		#interrupt-cells = <3>;
286b9dcc643SXuhui Lin		#address-cells = <0>;
287b9dcc643SXuhui Lin
288b9dcc643SXuhui Lin		reg = <0x20411000 0x1000>,
289b9dcc643SXuhui Lin		      <0x20412000 0x2000>,
290b9dcc643SXuhui Lin		      <0x20414000 0x2000>,
291b9dcc643SXuhui Lin		      <0x20416000 0x2000>;
292b9dcc643SXuhui Lin		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
293b9dcc643SXuhui Lin	};
294b9dcc643SXuhui Lin
295b9dcc643SXuhui Lin	i2c0: i2c@20530000 {
296b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-i2c", "rockchip,rk3399-i2c";
297b9dcc643SXuhui Lin		reg = <0x20530000 0x1000>;
298b9dcc643SXuhui Lin		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
299b9dcc643SXuhui Lin		#address-cells = <1>;
300b9dcc643SXuhui Lin		#size-cells = <0>;
301b9dcc643SXuhui Lin		clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
302b9dcc643SXuhui Lin		clock-names = "i2c", "pclk";
303b9dcc643SXuhui Lin		pinctrl-names = "default";
304b9dcc643SXuhui Lin		pinctrl-0 = <&i2c0m0_xfer_pins>;
305b9dcc643SXuhui Lin		status = "disabled";
306b9dcc643SXuhui Lin	};
307b9dcc643SXuhui Lin
308b9dcc643SXuhui Lin	uart0: serial@20540000 {
309b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
310b9dcc643SXuhui Lin		reg = <0x20540000 0x100>;
311b9dcc643SXuhui Lin		interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
312b9dcc643SXuhui Lin		reg-shift = <2>;
313b9dcc643SXuhui Lin		reg-io-width = <4>;
314b9dcc643SXuhui Lin		dmas = <&dmac 1>, <&dmac 0>;
315b9dcc643SXuhui Lin		clock-frequency = <24000000>;
316b9dcc643SXuhui Lin		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
317b9dcc643SXuhui Lin		clock-names = "baudclk", "apb_pclk";
318b9dcc643SXuhui Lin		pinctrl-names = "default";
319b9dcc643SXuhui Lin		pinctrl-0 = <&uart0m0_xfer_pins>;
320b9dcc643SXuhui Lin		status = "disabled";
321b9dcc643SXuhui Lin	};
322b9dcc643SXuhui Lin
323b9dcc643SXuhui Lin	pwm0_4ch_0: pwm@20550000 {
324b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
325b9dcc643SXuhui Lin		reg = <0x20550000 0x1000>;
326b9dcc643SXuhui Lin		interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
327b9dcc643SXuhui Lin		#pwm-cells = <3>;
328b9dcc643SXuhui Lin		pinctrl-names = "active";
329b9dcc643SXuhui Lin		pinctrl-0 = <&pwm0m0_ch0_pins>;
330b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
331b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
332b9dcc643SXuhui Lin		status = "disabled";
333b9dcc643SXuhui Lin	};
334b9dcc643SXuhui Lin
335b9dcc643SXuhui Lin	pwm0_4ch_1: pwm@20551000 {
336b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
337b9dcc643SXuhui Lin		reg = <0x20551000 0x1000>;
338b9dcc643SXuhui Lin		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
339b9dcc643SXuhui Lin		#pwm-cells = <3>;
340b9dcc643SXuhui Lin		pinctrl-names = "active";
341b9dcc643SXuhui Lin		pinctrl-0 = <&pwm0m0_ch1_pins>;
342b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
343b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
344b9dcc643SXuhui Lin		status = "disabled";
345b9dcc643SXuhui Lin	};
346b9dcc643SXuhui Lin
347b9dcc643SXuhui Lin	pwm0_4ch_2: pwm@20552000 {
348b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
349b9dcc643SXuhui Lin		reg = <0x20552000 0x1000>;
350b9dcc643SXuhui Lin		interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
351b9dcc643SXuhui Lin		#pwm-cells = <3>;
352b9dcc643SXuhui Lin		pinctrl-names = "active";
353b9dcc643SXuhui Lin		pinctrl-0 = <&pwm0m0_ch2_pins>;
354b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
355b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
356b9dcc643SXuhui Lin		status = "disabled";
357b9dcc643SXuhui Lin	};
358b9dcc643SXuhui Lin
359b9dcc643SXuhui Lin	pwm0_4ch_3: pwm@20553000 {
360b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
361b9dcc643SXuhui Lin		reg = <0x20553000 0x1000>;
362b9dcc643SXuhui Lin		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
363b9dcc643SXuhui Lin		#pwm-cells = <3>;
364b9dcc643SXuhui Lin		pinctrl-names = "active";
365b9dcc643SXuhui Lin		pinctrl-0 = <&pwm0m0_ch3_pins>;
366b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
367b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
368b9dcc643SXuhui Lin		status = "disabled";
369b9dcc643SXuhui Lin	};
370b9dcc643SXuhui Lin
371b9dcc643SXuhui Lin	lpmcu_mbox0: mailbox@20580000 {
372b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mailbox", "rockchip,rk3576-mailbox";
373b9dcc643SXuhui Lin		reg = <0x20580000 0x20>;
374b9dcc643SXuhui Lin		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
375b9dcc643SXuhui Lin		clocks = <&cru PCLK_LPMCU_MAILBOX>;
376b9dcc643SXuhui Lin		clock-names = "pclk_mailbox";
377b9dcc643SXuhui Lin		#mbox-cells = <1>;
378b9dcc643SXuhui Lin		status = "disabled";
379b9dcc643SXuhui Lin	};
380b9dcc643SXuhui Lin
381b9dcc643SXuhui Lin	lpmcu_mbox1: mailbox@20581000 {
382b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mailbox", "rockchip,rk3576-mailbox";
383b9dcc643SXuhui Lin		reg = <0x20581000 0x20>;
384b9dcc643SXuhui Lin		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
385b9dcc643SXuhui Lin		clocks = <&cru PCLK_LPMCU_MAILBOX>;
386b9dcc643SXuhui Lin		clock-names = "pclk_mailbox";
387b9dcc643SXuhui Lin		#mbox-cells = <1>;
388b9dcc643SXuhui Lin		status = "disabled";
389b9dcc643SXuhui Lin	};
390b9dcc643SXuhui Lin
391b9dcc643SXuhui Lin	lpmcu_mbox2: mailbox@20582000 {
392b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mailbox", "rockchip,rk3576-mailbox";
393b9dcc643SXuhui Lin		reg = <0x20582000 0x20>;
394b9dcc643SXuhui Lin		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
395b9dcc643SXuhui Lin		clocks = <&cru PCLK_LPMCU_MAILBOX>;
396b9dcc643SXuhui Lin		clock-names = "pclk_mailbox";
397b9dcc643SXuhui Lin		#mbox-cells = <1>;
398b9dcc643SXuhui Lin		status = "disabled";
399b9dcc643SXuhui Lin	};
400b9dcc643SXuhui Lin
401b9dcc643SXuhui Lin	lpmcu_mbox3: mailbox@20583000 {
402b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mailbox", "rockchip,rk3576-mailbox";
403b9dcc643SXuhui Lin		reg = <0x20583000 0x20>;
404b9dcc643SXuhui Lin		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
405b9dcc643SXuhui Lin		clocks = <&cru PCLK_LPMCU_MAILBOX>;
406b9dcc643SXuhui Lin		clock-names = "pclk_mailbox";
407b9dcc643SXuhui Lin		#mbox-cells = <1>;
408b9dcc643SXuhui Lin		status = "disabled";
409b9dcc643SXuhui Lin	};
410b9dcc643SXuhui Lin
411b9dcc643SXuhui Lin	rga2: rga@20640000 {
412b9dcc643SXuhui Lin		compatible = "rockchip,rga2";
413b9dcc643SXuhui Lin		reg = <0x20640000 0x1000>;
414b9dcc643SXuhui Lin		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
415b9dcc643SXuhui Lin		interrupt-names = "rga2_irq";
416b9dcc643SXuhui Lin		clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru CLK_CORE_RGA>;
417b9dcc643SXuhui Lin		clock-names = "aclk_rga", "hclk_rga", "clk_rga";
418b9dcc643SXuhui Lin		status = "disabled";
419b9dcc643SXuhui Lin	};
420b9dcc643SXuhui Lin
421b9dcc643SXuhui Lin	sdmmc1: mmc@20650000 {
422b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
423b9dcc643SXuhui Lin		reg = <0x20650000 0x4000>;
424b9dcc643SXuhui Lin		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
425b9dcc643SXuhui Lin		clocks = <&cru HCLK_SDMMC1>, <&cru CCLK_SDMMC1>;
426b9dcc643SXuhui Lin		clock-names = "biu", "ciu";
427b9dcc643SXuhui Lin		fifo-depth = <0x100>;
428b9dcc643SXuhui Lin		max-frequency = <150000000>;
429b9dcc643SXuhui Lin		pinctrl-names = "default";
430b9dcc643SXuhui Lin		pinctrl-0 = <&sdmmc1_clk_pins &sdmmc1_cmd_pins &sdmmc1_bus4_pins>;
431b9dcc643SXuhui Lin		status = "disabled";
432b9dcc643SXuhui Lin	};
433b9dcc643SXuhui Lin
434b9dcc643SXuhui Lin	sai: sai@20660000 {
435b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-sai", "rockchip,sai-v1";
436b9dcc643SXuhui Lin		reg = <0x20660000 0x1000>;
437b9dcc643SXuhui Lin		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
438b9dcc643SXuhui Lin		clocks = <&cru MCLK_SAI>, <&cru HCLK_SAI>;
439b9dcc643SXuhui Lin		clock-names = "mclk", "hclk";
440b9dcc643SXuhui Lin		dmas = <&dmac 11>, <&dmac 10>;
441b9dcc643SXuhui Lin		dma-names = "tx", "rx";
442b9dcc643SXuhui Lin		resets = <&cru SRST_MRESETN_SAI>, <&cru SRST_HRESETN_SAI>;
443b9dcc643SXuhui Lin		reset-names = "m", "h";
444b9dcc643SXuhui Lin		#sound-dai-cells = <0>;
445b9dcc643SXuhui Lin		sound-name-prefix = "SAI";
446b9dcc643SXuhui Lin		status = "disabled";
447b9dcc643SXuhui Lin	};
448b9dcc643SXuhui Lin
449b9dcc643SXuhui Lin	crypto: crypto@20680000 {
450b9dcc643SXuhui Lin		compatible = "rockchip,crypto-v4";
451b9dcc643SXuhui Lin		reg = <0x20680000 0x2000>;
452b9dcc643SXuhui Lin		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
453b9dcc643SXuhui Lin		clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
454b9dcc643SXuhui Lin			 <&cru CLK_CORE_CRYPTO>, <&cru CLK_PKA_CRYPTO>;
455b9dcc643SXuhui Lin		clock-names = "aclk", "hclk", "sclk", "pka";
456b9dcc643SXuhui Lin		assigned-clocks = <&cru CLK_CORE_CRYPTO>, <&cru CLK_PKA_CRYPTO>;
457b9dcc643SXuhui Lin		assigned-clock-rates = <300000000>, <300000000>;
458b9dcc643SXuhui Lin		resets = <&cru SRST_RESETN_CORE_CRYPTO>;
459b9dcc643SXuhui Lin		reset-names = "crypto-rst";
460b9dcc643SXuhui Lin		status = "disabled";
461b9dcc643SXuhui Lin	};
462b9dcc643SXuhui Lin
463b9dcc643SXuhui Lin	rng: rng@20690000 {
464b9dcc643SXuhui Lin		compatible = "rockchip,rkrng";
465b9dcc643SXuhui Lin		reg = <0x20690000 0x200>;
466b9dcc643SXuhui Lin		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
467b9dcc643SXuhui Lin		clocks = <&cru HCLK_RK_RNG_NS>;
468b9dcc643SXuhui Lin		clock-names = "hclk_trng";
469b9dcc643SXuhui Lin		resets = <&cru SRST_HRESETN_RK_RNG_NS>;
470b9dcc643SXuhui Lin		reset-names = "reset";
471b9dcc643SXuhui Lin		status = "disabled";
472b9dcc643SXuhui Lin	};
473b9dcc643SXuhui Lin
474b9dcc643SXuhui Lin	hwlock: hwspinlock@20700000 {
475b9dcc643SXuhui Lin		compatible = "rockchip,hwspinlock";
476b9dcc643SXuhui Lin		reg = <0x20700000 0x100>;
477b9dcc643SXuhui Lin		#hwlock-cells = <1>;
478b9dcc643SXuhui Lin		rockchip,hwlock-num-locks = <64>;
479b9dcc643SXuhui Lin		status = "disabled";
480b9dcc643SXuhui Lin	};
481b9dcc643SXuhui Lin
482b9dcc643SXuhui Lin	dmac: dma-controller@20740000 {
483b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-dma", "rockchip,dma";
484b9dcc643SXuhui Lin		reg = <0x20740000 0x2000>;
485b9dcc643SXuhui Lin		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
486b9dcc643SXuhui Lin		clocks = <&cru ACLK_RKDMA>;
487b9dcc643SXuhui Lin		clock-names = "aclk";
488b9dcc643SXuhui Lin		#dma-cells = <1>;
489b9dcc643SXuhui Lin	};
490b9dcc643SXuhui Lin
491b9dcc643SXuhui Lin	rtc: rtc@20750000 {
492b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-rtc";
493b9dcc643SXuhui Lin		reg = <0x20750000 0x1000>;
494b9dcc643SXuhui Lin		rockchip,grf = <&grf>;
495b9dcc643SXuhui Lin		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
496b9dcc643SXuhui Lin		clocks = <&cru PCLK_RTC_ROOT>;
497b9dcc643SXuhui Lin		clock-names = "pclk_phy";
498b9dcc643SXuhui Lin		assigned-clocks = <&cru PCLK_RTC_ROOT>;
499b9dcc643SXuhui Lin		assigned-clock-rates = <50000000>;
500b9dcc643SXuhui Lin		status = "disabled";
501b9dcc643SXuhui Lin	};
502b9dcc643SXuhui Lin
503b9dcc643SXuhui Lin	gmac: ethernet@20800000 {
504b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-gmac", "snps,dwmac-4.20a";
505b9dcc643SXuhui Lin		reg = <0x20800000 0x10000>;
506b9dcc643SXuhui Lin		interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
507b9dcc643SXuhui Lin			     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
508b9dcc643SXuhui Lin		interrupt-names = "macirq", "eth_wake_irq";
509b9dcc643SXuhui Lin		rockchip,grf = <&grf>;
510b9dcc643SXuhui Lin		clocks = <&cru ACLK_MAC>, <&cru PCLK_MAC>;
511b9dcc643SXuhui Lin		clock-names = "aclk_mac", "pclk_mac";
512b9dcc643SXuhui Lin		resets = <&cru SRST_ARESETN_MAC>;
513b9dcc643SXuhui Lin		reset-names = "stmmaceth";
514b9dcc643SXuhui Lin
515b9dcc643SXuhui Lin		snps,mixed-burst;
516b9dcc643SXuhui Lin		snps,tso;
517b9dcc643SXuhui Lin
518b9dcc643SXuhui Lin		tx-dma-size = <256>;
519b9dcc643SXuhui Lin		rx-dma-size = <128>;
520b9dcc643SXuhui Lin
521b9dcc643SXuhui Lin		snps,axi-config = <&stmmac_axi_setup>;
522b9dcc643SXuhui Lin		snps,mtl-rx-config = <&mtl_rx_setup>;
523b9dcc643SXuhui Lin		snps,mtl-tx-config = <&mtl_tx_setup>;
524b9dcc643SXuhui Lin
525b9dcc643SXuhui Lin		phy-mode = "rmii";
526b9dcc643SXuhui Lin		clock_in_out = "input";
527b9dcc643SXuhui Lin		phy-handle = <&rmii_phy>;
528b9dcc643SXuhui Lin
529b9dcc643SXuhui Lin		/* FLOW_OFF: 0, FLOW_RX: 1, FLOW_TX: 2, FLOW_AUTO: 3 */
530b9dcc643SXuhui Lin		snps,flow-ctrl = <0>;
531b9dcc643SXuhui Lin
532b9dcc643SXuhui Lin		nvmem-cells = <&macphy_bgs>;
533b9dcc643SXuhui Lin		nvmem-cell-names = "bgs";
534b9dcc643SXuhui Lin		status = "disabled";
535b9dcc643SXuhui Lin
536b9dcc643SXuhui Lin		mdio: mdio {
537b9dcc643SXuhui Lin			compatible = "snps,dwmac-mdio";
538b9dcc643SXuhui Lin			#address-cells = <0x1>;
539b9dcc643SXuhui Lin			#size-cells = <0x0>;
540b9dcc643SXuhui Lin			rmii_phy: ethernet-phy@2 {
541b9dcc643SXuhui Lin				compatible = "ethernet-phy-id0044.1400", "ethernet-phy-ieee802.3-c22";
542b9dcc643SXuhui Lin				reg = <2>;
543b9dcc643SXuhui Lin				clocks = <&cru CLK_MACPHY>;
544b9dcc643SXuhui Lin				resets = <&cru SRST_RESETN_MACPHY>;
545b9dcc643SXuhui Lin				phy-is-integrated;
546b9dcc643SXuhui Lin				nvmem-cells = <&macphy_txlevel>;
547b9dcc643SXuhui Lin				nvmem-cell-names = "txlevel";
548b9dcc643SXuhui Lin				bgs,increment = <2>;
549b9dcc643SXuhui Lin				rockchip,thermal-zone = "soc-thermal";
550b9dcc643SXuhui Lin			};
551b9dcc643SXuhui Lin		};
552b9dcc643SXuhui Lin
553b9dcc643SXuhui Lin		stmmac_axi_setup: stmmac-axi-config {
554b9dcc643SXuhui Lin			snps,wr_osr_lmt = <4>;
555b9dcc643SXuhui Lin			snps,rd_osr_lmt = <8>;
556b9dcc643SXuhui Lin			snps,blen = <0 0 0 0 16 8 4>;
557b9dcc643SXuhui Lin		};
558b9dcc643SXuhui Lin
559b9dcc643SXuhui Lin		mtl_rx_setup: rx-queues-config {
560b9dcc643SXuhui Lin			snps,rx-queues-to-use = <1>;
561b9dcc643SXuhui Lin			queue0 {
562b9dcc643SXuhui Lin				status = "okay";
563b9dcc643SXuhui Lin			};
564b9dcc643SXuhui Lin		};
565b9dcc643SXuhui Lin
566b9dcc643SXuhui Lin		mtl_tx_setup: tx-queues-config {
567b9dcc643SXuhui Lin			snps,tx-queues-to-use = <1>;
568b9dcc643SXuhui Lin			queue0 {
569b9dcc643SXuhui Lin				status = "okay";
570b9dcc643SXuhui Lin			};
571b9dcc643SXuhui Lin		};
572b9dcc643SXuhui Lin	};
573b9dcc643SXuhui Lin
574b9dcc643SXuhui Lin	otp: otp@20820000 {
575b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-otp";
576b9dcc643SXuhui Lin		reg = <0x20820000 0x4000>;
577b9dcc643SXuhui Lin		#address-cells = <1>;
578b9dcc643SXuhui Lin		#size-cells = <1>;
579b9dcc643SXuhui Lin
580b9dcc643SXuhui Lin		clocks = <&cru CLK_USER_OTPC_NS>, <&cru CLK_SBPI_OTPC_NS>,
581b9dcc643SXuhui Lin			 <&cru PCLK_OTPC_NS>, <&cru PCLK_OTP_MASK>,
582b9dcc643SXuhui Lin			 <&cru CLK_OTPC_ARB>;
583b9dcc643SXuhui Lin		clock-names = "usr", "sbpi", "apb", "phy", "arb";
584b9dcc643SXuhui Lin		resets = <&cru SRST_RESETN_USER_OTPC_NS>, <&cru SRST_RESETN_SBPI_OTPC_NS>,
585b9dcc643SXuhui Lin			 <&cru SRST_PRESETN_OTPC_NS>, <&cru SRST_PRESETN_OTP_MASK>,
586b9dcc643SXuhui Lin			 <&cru SRST_RESETN_OTPC_ARB>;
587b9dcc643SXuhui Lin		reset-names = "usr", "sbpi", "apb", "phy", "arb";
588b9dcc643SXuhui Lin
589b9dcc643SXuhui Lin		/* Data cells */
590b9dcc643SXuhui Lin		cpu_code: cpu-code@2 {
591b9dcc643SXuhui Lin			reg = <0x02 0x2>;
592b9dcc643SXuhui Lin		};
593b9dcc643SXuhui Lin		otp_cpu_version: cpu-version@8 {
594b9dcc643SXuhui Lin			reg = <0x08 0x1>;
595b9dcc643SXuhui Lin			bits = <3 3>;
596b9dcc643SXuhui Lin		};
597b9dcc643SXuhui Lin		otp_id: id@a {
598b9dcc643SXuhui Lin			reg = <0x0a 0x10>;
599b9dcc643SXuhui Lin		};
600b9dcc643SXuhui Lin		cpu_leakage: cpu-leakage@1a {
601b9dcc643SXuhui Lin			reg = <0x1a 0x1>;
602b9dcc643SXuhui Lin		};
603b9dcc643SXuhui Lin		log_leakage: log-leakage@1b {
604b9dcc643SXuhui Lin			reg = <0x1b 0x1>;
605b9dcc643SXuhui Lin		};
606b9dcc643SXuhui Lin		macphy_bgs: macphy-bgs@2d {
607b9dcc643SXuhui Lin			reg = <0x2d 0x1>;
608b9dcc643SXuhui Lin		};
609b9dcc643SXuhui Lin		macphy_txlevel: macphy-txlevel@2e {
610b9dcc643SXuhui Lin			reg = <0x2e 0x2>;
611b9dcc643SXuhui Lin		};
612b9dcc643SXuhui Lin	};
613b9dcc643SXuhui Lin
614b9dcc643SXuhui Lin	spi0: spi@20850000 {
615b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-spi", "rockchip,rk3066-spi";
616b9dcc643SXuhui Lin		reg = <0x20850000 0x1000>;
617b9dcc643SXuhui Lin		interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
618b9dcc643SXuhui Lin		#address-cells = <1>;
619b9dcc643SXuhui Lin		#size-cells = <0>;
620b9dcc643SXuhui Lin		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
621b9dcc643SXuhui Lin		clock-names = "spiclk", "apb_pclk";
622b9dcc643SXuhui Lin		dmas = <&dmac 15>, <&dmac 14>;
623b9dcc643SXuhui Lin		dma-names = "tx", "rx";
624b9dcc643SXuhui Lin		pinctrl-names = "default";
625b9dcc643SXuhui Lin		pinctrl-0 = <&spi0m0_cs0_pins &spi0m0_cs1_pins &spi0m0_clk_pins>;
626b9dcc643SXuhui Lin		status = "disabled";
627b9dcc643SXuhui Lin	};
628b9dcc643SXuhui Lin
629b9dcc643SXuhui Lin	uart1: serial@20870000 {
630b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
631b9dcc643SXuhui Lin		reg = <0x20870000 0x100>;
632b9dcc643SXuhui Lin		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
633b9dcc643SXuhui Lin		reg-shift = <2>;
634b9dcc643SXuhui Lin		reg-io-width = <4>;
635b9dcc643SXuhui Lin		dmas = <&dmac 3>, <&dmac 2>;
636b9dcc643SXuhui Lin		clock-frequency = <24000000>;
637b9dcc643SXuhui Lin		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
638b9dcc643SXuhui Lin		clock-names = "baudclk", "apb_pclk";
639b9dcc643SXuhui Lin		pinctrl-names = "default";
640b9dcc643SXuhui Lin		pinctrl-0 = <&uart1m0_xfer_pins>;
641b9dcc643SXuhui Lin		status = "disabled";
642b9dcc643SXuhui Lin	};
643b9dcc643SXuhui Lin
644b9dcc643SXuhui Lin	uart2: serial@20880000 {
645b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
646b9dcc643SXuhui Lin		reg = <0x20880000 0x100>;
647b9dcc643SXuhui Lin		interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
648b9dcc643SXuhui Lin		reg-shift = <2>;
649b9dcc643SXuhui Lin		reg-io-width = <4>;
650b9dcc643SXuhui Lin		dmas = <&dmac 5>, <&dmac 4>;
651b9dcc643SXuhui Lin		clock-frequency = <24000000>;
652b9dcc643SXuhui Lin		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
653b9dcc643SXuhui Lin		clock-names = "baudclk", "apb_pclk";
654b9dcc643SXuhui Lin		pinctrl-names = "default";
655b9dcc643SXuhui Lin		pinctrl-0 = <&uart2m0_xfer_pins>;
656b9dcc643SXuhui Lin		status = "disabled";
657b9dcc643SXuhui Lin	};
658b9dcc643SXuhui Lin
659b9dcc643SXuhui Lin	wdt: watchdog@208d0000 {
660b9dcc643SXuhui Lin		compatible = "snps,dw-wdt";
661b9dcc643SXuhui Lin		reg = <0x208d0000 0x100>;
662b9dcc643SXuhui Lin		clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
663b9dcc643SXuhui Lin		clock-names = "tclk", "pclk";
664b9dcc643SXuhui Lin		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
665b9dcc643SXuhui Lin		status = "disabled";
666b9dcc643SXuhui Lin	};
667b9dcc643SXuhui Lin
668b9dcc643SXuhui Lin	i2c1: i2c@20910000 {
669b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-i2c", "rockchip,rk3399-i2c";
670b9dcc643SXuhui Lin		reg = <0x20910000 0x1000>;
671b9dcc643SXuhui Lin		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
672b9dcc643SXuhui Lin		#address-cells = <1>;
673b9dcc643SXuhui Lin		#size-cells = <0>;
674b9dcc643SXuhui Lin		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
675b9dcc643SXuhui Lin		clock-names = "i2c", "pclk";
676b9dcc643SXuhui Lin		pinctrl-names = "default";
677b9dcc643SXuhui Lin		pinctrl-0 = <&i2c1m0_xfer_pins>;
678b9dcc643SXuhui Lin		status = "disabled";
679b9dcc643SXuhui Lin	};
680b9dcc643SXuhui Lin
681b9dcc643SXuhui Lin	i2c2: i2c@20920000 {
682b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-i2c", "rockchip,rk3399-i2c";
683b9dcc643SXuhui Lin		reg = <0x20920000 0x1000>;
684b9dcc643SXuhui Lin		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
685b9dcc643SXuhui Lin		#address-cells = <1>;
686b9dcc643SXuhui Lin		#size-cells = <0>;
687b9dcc643SXuhui Lin		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
688b9dcc643SXuhui Lin		clock-names = "i2c", "pclk";
689b9dcc643SXuhui Lin		pinctrl-names = "default";
690b9dcc643SXuhui Lin		pinctrl-0 = <&i2c2m0_xfer_pins>;
691b9dcc643SXuhui Lin		status = "disabled";
692b9dcc643SXuhui Lin	};
693b9dcc643SXuhui Lin
694b9dcc643SXuhui Lin	i2c3: i2c@20930000 {
695b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-i2c", "rockchip,rk3399-i2c";
696b9dcc643SXuhui Lin		reg = <0x20930000 0x1000>;
697b9dcc643SXuhui Lin		interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
698b9dcc643SXuhui Lin		#address-cells = <1>;
699b9dcc643SXuhui Lin		#size-cells = <0>;
700b9dcc643SXuhui Lin		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
701b9dcc643SXuhui Lin		clock-names = "i2c", "pclk";
702b9dcc643SXuhui Lin		pinctrl-names = "default";
703b9dcc643SXuhui Lin		pinctrl-0 = <&i2c3m0_xfer_pins>;
704b9dcc643SXuhui Lin		status = "disabled";
705b9dcc643SXuhui Lin	};
706b9dcc643SXuhui Lin
707b9dcc643SXuhui Lin	i2c4: i2c@20940000 {
708b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-i2c", "rockchip,rk3399-i2c";
709b9dcc643SXuhui Lin		reg = <0x20940000 0x1000>;
710b9dcc643SXuhui Lin		interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
711b9dcc643SXuhui Lin		#address-cells = <1>;
712b9dcc643SXuhui Lin		#size-cells = <0>;
713b9dcc643SXuhui Lin		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
714b9dcc643SXuhui Lin		clock-names = "i2c", "pclk";
715b9dcc643SXuhui Lin		pinctrl-names = "default";
716b9dcc643SXuhui Lin		pinctrl-0 = <&i2c4m0_xfer_pins>;
717b9dcc643SXuhui Lin		status = "disabled";
718b9dcc643SXuhui Lin	};
719b9dcc643SXuhui Lin
720b9dcc643SXuhui Lin	pwm1_4ch_0: pwm@20970000 {
721b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
722b9dcc643SXuhui Lin		reg = <0x20970000 0x1000>;
723b9dcc643SXuhui Lin		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
724b9dcc643SXuhui Lin		#pwm-cells = <3>;
725b9dcc643SXuhui Lin		pinctrl-names = "active";
726b9dcc643SXuhui Lin		pinctrl-0 = <&pwm1m0_ch0_pins>;
727b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
728b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
729b9dcc643SXuhui Lin		status = "disabled";
730b9dcc643SXuhui Lin	};
731b9dcc643SXuhui Lin
732b9dcc643SXuhui Lin	pwm1_4ch_1: pwm@20971000 {
733b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
734b9dcc643SXuhui Lin		reg = <0x20971000 0x1000>;
735b9dcc643SXuhui Lin		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
736b9dcc643SXuhui Lin		#pwm-cells = <3>;
737b9dcc643SXuhui Lin		pinctrl-names = "active";
738b9dcc643SXuhui Lin		pinctrl-0 = <&pwm1m0_ch1_pins>;
739b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
740b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
741b9dcc643SXuhui Lin		status = "disabled";
742b9dcc643SXuhui Lin	};
743b9dcc643SXuhui Lin
744b9dcc643SXuhui Lin	pwm1_4ch_2: pwm@20972000 {
745b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
746b9dcc643SXuhui Lin		reg = <0x20972000 0x1000>;
747b9dcc643SXuhui Lin		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
748b9dcc643SXuhui Lin		#pwm-cells = <3>;
749b9dcc643SXuhui Lin		pinctrl-names = "active";
750b9dcc643SXuhui Lin		pinctrl-0 = <&pwm1m0_ch2_pins>;
751b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
752b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
753b9dcc643SXuhui Lin		status = "disabled";
754b9dcc643SXuhui Lin	};
755b9dcc643SXuhui Lin
756b9dcc643SXuhui Lin	pwm1_4ch_3: pwm@20973000 {
757b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
758b9dcc643SXuhui Lin		reg = <0x20973000 0x1000>;
759b9dcc643SXuhui Lin		interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
760b9dcc643SXuhui Lin		#pwm-cells = <3>;
761b9dcc643SXuhui Lin		pinctrl-names = "active";
762b9dcc643SXuhui Lin		pinctrl-0 = <&pwm1m0_ch3_pins>;
763b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
764b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
765b9dcc643SXuhui Lin		status = "disabled";
766b9dcc643SXuhui Lin	};
767b9dcc643SXuhui Lin
768b9dcc643SXuhui Lin	pwm2_4ch_0: pwm@20980000 {
769b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
770b9dcc643SXuhui Lin		reg = <0x20980000 0x1000>;
771b9dcc643SXuhui Lin		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
772b9dcc643SXuhui Lin		#pwm-cells = <3>;
773b9dcc643SXuhui Lin		pinctrl-names = "active";
774b9dcc643SXuhui Lin		pinctrl-0 = <&pwm2m0_ch0_pins>;
775b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
776b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
777b9dcc643SXuhui Lin		status = "disabled";
778b9dcc643SXuhui Lin	};
779b9dcc643SXuhui Lin
780b9dcc643SXuhui Lin	pwm2_4ch_1: pwm@20981000 {
781b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
782b9dcc643SXuhui Lin		reg = <0x20981000 0x1000>;
783b9dcc643SXuhui Lin		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
784b9dcc643SXuhui Lin		#pwm-cells = <3>;
785b9dcc643SXuhui Lin		pinctrl-names = "active";
786b9dcc643SXuhui Lin		pinctrl-0 = <&pwm2m0_ch1_pins>;
787b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
788b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
789b9dcc643SXuhui Lin		status = "disabled";
790b9dcc643SXuhui Lin	};
791b9dcc643SXuhui Lin
792b9dcc643SXuhui Lin	pwm2_4ch_2: pwm@20982000 {
793b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
794b9dcc643SXuhui Lin		reg = <0x20982000 0x1000>;
795b9dcc643SXuhui Lin		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
796b9dcc643SXuhui Lin		#pwm-cells = <3>;
797b9dcc643SXuhui Lin		pinctrl-names = "active";
798b9dcc643SXuhui Lin		pinctrl-0 = <&pwm2m0_ch2_pins>;
799b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
800b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
801b9dcc643SXuhui Lin		status = "disabled";
802b9dcc643SXuhui Lin	};
803b9dcc643SXuhui Lin
804b9dcc643SXuhui Lin	pwm2_4ch_3: pwm@20983000 {
805b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pwm", "rockchip,rk3576-pwm";
806b9dcc643SXuhui Lin		reg = <0x20983000 0x1000>;
807b9dcc643SXuhui Lin		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
808b9dcc643SXuhui Lin		#pwm-cells = <3>;
809b9dcc643SXuhui Lin		pinctrl-names = "active";
810b9dcc643SXuhui Lin		pinctrl-0 = <&pwm2m0_ch3_pins>;
811b9dcc643SXuhui Lin		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
812b9dcc643SXuhui Lin		clock-names = "pwm", "pclk";
813b9dcc643SXuhui Lin		status = "disabled";
814b9dcc643SXuhui Lin	};
815b9dcc643SXuhui Lin
816b9dcc643SXuhui Lin	saradc: adc@209a0000 {
817b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-saradc", "rockchip,rk3588-saradc";
818b9dcc643SXuhui Lin		reg = <0x209a0000 0x10000>;
819b9dcc643SXuhui Lin		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
820b9dcc643SXuhui Lin		#io-channel-cells = <1>;
821b9dcc643SXuhui Lin		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
822b9dcc643SXuhui Lin		clock-names = "saradc", "apb_pclk";
823b9dcc643SXuhui Lin		resets = <&cru SRST_PRESETN_SARADC>;
824b9dcc643SXuhui Lin		reset-names = "saradc-apb";
825b9dcc643SXuhui Lin		status = "disabled";
826b9dcc643SXuhui Lin	};
827b9dcc643SXuhui Lin
828b9dcc643SXuhui Lin	tsadc: tsadc@209b0000 {
829b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-tsadc";
830b9dcc643SXuhui Lin		reg = <0x209b0000 0x400>;
831b9dcc643SXuhui Lin		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
832b9dcc643SXuhui Lin		clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>, <&cru CLK_TSADC_TSEN>;
833b9dcc643SXuhui Lin		clock-names = "tsadc", "apb_pclk", "tsen";
834b9dcc643SXuhui Lin		assigned-clocks = <&cru CLK_TSADC>, <&cru CLK_TSADC_TSEN>;
835b9dcc643SXuhui Lin		assigned-clock-rates = <1000000>, <12000000>;
836b9dcc643SXuhui Lin		resets = <&cru SRST_RESETN_TSADC>, <&cru SRST_PRESETN_TSADC>;
837b9dcc643SXuhui Lin		reset-names = "tsadc", "tsadc-apb";
838b9dcc643SXuhui Lin		#thermal-sensor-cells = <1>;
839b9dcc643SXuhui Lin		rockchip,grf = <&grf>;
840b9dcc643SXuhui Lin		rockchip,hw-tshut-temp = <120000>;
841b9dcc643SXuhui Lin		rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
842b9dcc643SXuhui Lin		rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
843b9dcc643SXuhui Lin		status = "disabled";
844b9dcc643SXuhui Lin	};
845b9dcc643SXuhui Lin
846b9dcc643SXuhui Lin	hw_decompress: decompress@209f0000 {
847b9dcc643SXuhui Lin		compatible = "rockchip,hw-decompress";
848b9dcc643SXuhui Lin		reg = <0x209f0000 0x1000>;
849b9dcc643SXuhui Lin		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
850b9dcc643SXuhui Lin		clocks = <&cru ACLK_DECOM>, <&cru DCLK_DECOM>, <&cru PCLK_DECOM>;
851b9dcc643SXuhui Lin		clock-names = "aclk", "dclk", "pclk";
852b9dcc643SXuhui Lin		resets = <&cru SRST_DRESETN_DECOM>;
853b9dcc643SXuhui Lin		reset-names = "dresetn";
854b9dcc643SXuhui Lin		status = "disabled";
855b9dcc643SXuhui Lin	};
856b9dcc643SXuhui Lin
857b9dcc643SXuhui Lin	hpmcu_mbox0: mailbox@20a10000 {
858b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mailbox", "rockchip,rk3576-mailbox";
859b9dcc643SXuhui Lin		reg = <0x20a10000 0x20>;
860b9dcc643SXuhui Lin		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
861b9dcc643SXuhui Lin		clocks = <&cru PCLK_HPMCU_MAILBOX>;
862b9dcc643SXuhui Lin		clock-names = "pclk_mailbox";
863b9dcc643SXuhui Lin		#mbox-cells = <1>;
864b9dcc643SXuhui Lin		status = "disabled";
865b9dcc643SXuhui Lin	};
866b9dcc643SXuhui Lin
867b9dcc643SXuhui Lin	hpmcu_mbox1: mailbox@20a11000 {
868b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mailbox", "rockchip,rk3576-mailbox";
869b9dcc643SXuhui Lin		reg = <0x20a11000 0x20>;
870b9dcc643SXuhui Lin		interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
871b9dcc643SXuhui Lin		clocks = <&cru PCLK_HPMCU_MAILBOX>;
872b9dcc643SXuhui Lin		clock-names = "pclk_mailbox";
873b9dcc643SXuhui Lin		#mbox-cells = <1>;
874b9dcc643SXuhui Lin		status = "disabled";
875b9dcc643SXuhui Lin	};
876b9dcc643SXuhui Lin
877b9dcc643SXuhui Lin	hpmcu_mbox2: mailbox@20a12000 {
878b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mailbox", "rockchip,rk3576-mailbox";
879b9dcc643SXuhui Lin		reg = <0x20a12000 0x20>;
880b9dcc643SXuhui Lin		interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
881b9dcc643SXuhui Lin		clocks = <&cru PCLK_HPMCU_MAILBOX>;
882b9dcc643SXuhui Lin		clock-names = "pclk_mailbox";
883b9dcc643SXuhui Lin		#mbox-cells = <1>;
884b9dcc643SXuhui Lin		status = "disabled";
885b9dcc643SXuhui Lin	};
886b9dcc643SXuhui Lin
887b9dcc643SXuhui Lin	hpmcu_mbox3: mailbox@20a13000 {
888b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mailbox", "rockchip,rk3576-mailbox";
889b9dcc643SXuhui Lin		reg = <0x20a13000 0x20>;
890b9dcc643SXuhui Lin		interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
891b9dcc643SXuhui Lin		clocks = <&cru PCLK_HPMCU_MAILBOX>;
892b9dcc643SXuhui Lin		clock-names = "pclk_mailbox";
893b9dcc643SXuhui Lin		#mbox-cells = <1>;
894b9dcc643SXuhui Lin		status = "disabled";
895b9dcc643SXuhui Lin	};
896b9dcc643SXuhui Lin
897b9dcc643SXuhui Lin	usbdrd: usbdrd {
898b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-dwc3", "rockchip,rk3399-dwc3";
899b9dcc643SXuhui Lin		clocks = <&cru CLK_REF_USBOTG>, <&cru CLK_UTMI_USBOTG>,
900b9dcc643SXuhui Lin			 <&cru ACLK_USBOTG>;
901b9dcc643SXuhui Lin		clock-names = "ref", "utmi", "bus";
902b9dcc643SXuhui Lin		#address-cells = <1>;
903b9dcc643SXuhui Lin		#size-cells = <1>;
904b9dcc643SXuhui Lin		ranges;
905b9dcc643SXuhui Lin		status = "disabled";
906b9dcc643SXuhui Lin
907b9dcc643SXuhui Lin		usbdrd_dwc3: usb@20b00000 {
908b9dcc643SXuhui Lin			compatible = "snps,dwc3";
909b9dcc643SXuhui Lin			reg = <0x20b00000 0x100000>;
910b9dcc643SXuhui Lin			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
911b9dcc643SXuhui Lin			resets = <&cru SRST_ARESETN_USBOTG>;
912b9dcc643SXuhui Lin			reset-names = "usb3-otg";
913b9dcc643SXuhui Lin			dr_mode = "otg";
914b9dcc643SXuhui Lin			maximum-speed = "high-speed";
915b9dcc643SXuhui Lin			phys = <&u2phy_otg>;
916b9dcc643SXuhui Lin			phy-names = "usb2-phy";
917b9dcc643SXuhui Lin			phy_type = "utmi_wide";
918b9dcc643SXuhui Lin			snps,dis_enblslpm_quirk;
919b9dcc643SXuhui Lin			snps,dis-u2-freeclk-exists-quirk;
920b9dcc643SXuhui Lin			snps,dis_u2_susphy_quirk;
921b9dcc643SXuhui Lin			snps,dis-del-phy-power-chg-quirk;
922b9dcc643SXuhui Lin			snps,dis-tx-ipgap-linecheck-quirk;
923b9dcc643SXuhui Lin			snps,usb2-gadget-lpm-disable;
924b9dcc643SXuhui Lin			snps,usb2-lpm-disable;
925b9dcc643SXuhui Lin			snps,parkmode-disable-hs-quirk;
926b9dcc643SXuhui Lin			status = "disabled";
927b9dcc643SXuhui Lin		};
928b9dcc643SXuhui Lin	};
929b9dcc643SXuhui Lin
930b9dcc643SXuhui Lin	rkisp: rkisp@20d00000 {
931b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-rkisp";
932b9dcc643SXuhui Lin		reg = <0x20d00000 0x7f00>;
933b9dcc643SXuhui Lin		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
934b9dcc643SXuhui Lin			     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
935b9dcc643SXuhui Lin			     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
936b9dcc643SXuhui Lin		interrupt-names = "mipi_irq", "mi_irq", "isp_irq";
937b9dcc643SXuhui Lin		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>,
938b9dcc643SXuhui Lin			 <&cru CLK_CORE_ISP>, <&cru ISP0CLK_VICAP>;
939b9dcc643SXuhui Lin		clock-names = "aclk_isp", "hclk_isp",
940b9dcc643SXuhui Lin			      "clk_isp_core", "clk_isp_core_vicap";
941b9dcc643SXuhui Lin		status = "disabled";
942b9dcc643SXuhui Lin	};
943b9dcc643SXuhui Lin
944b9dcc643SXuhui Lin	rkcif: rkcif@20d10000 {
945b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-cif";
946b9dcc643SXuhui Lin		reg = <0x20d10000 0x10000>;
947b9dcc643SXuhui Lin		reg-names = "cif_regs";
948b9dcc643SXuhui Lin		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
949b9dcc643SXuhui Lin		interrupt-names = "cif-intr";
950b9dcc643SXuhui Lin		clocks = <&cru ACLK_VICAP>, <&cru HCLK_VICAP>,
951b9dcc643SXuhui Lin			 <&cru DCLK_VICAP>, <&cru ISP0CLK_VICAP>;
952b9dcc643SXuhui Lin		clock-names = "aclk_cif", "hclk_cif",
953b9dcc643SXuhui Lin			      "dclk_cif", "isp0clk_cif";
954b9dcc643SXuhui Lin		resets = <&cru SRST_ARESETN_VICAP>, <&cru SRST_HRESETN_VICAP>,
955b9dcc643SXuhui Lin			 <&cru SRST_DRESETN_VICAP>, <&cru SRST_ISP0RESETN_VICAP>;
956b9dcc643SXuhui Lin		reset-names = "rst_cif_a", "rst_cif_h",
957b9dcc643SXuhui Lin			      "rst_cif_d", "rst_cif_isp0";
958b9dcc643SXuhui Lin		rockchip,grf = <&grf>;
959b9dcc643SXuhui Lin		status = "disabled";
960b9dcc643SXuhui Lin	};
961b9dcc643SXuhui Lin
962b9dcc643SXuhui Lin	sdmmc0: mmc@20d20000 {
963b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
964b9dcc643SXuhui Lin		reg = <0x20d20000 0x4000>;
965b9dcc643SXuhui Lin		interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
966b9dcc643SXuhui Lin		clocks = <&cru HCLK_SDMMC0>, <&cru CCLK_SDMMC0>;
967b9dcc643SXuhui Lin		clock-names = "biu", "ciu";
968b9dcc643SXuhui Lin		fifo-depth = <0x100>;
969b9dcc643SXuhui Lin		max-frequency = <150000000>;
970b9dcc643SXuhui Lin		pinctrl-names = "normal", "idle";
971b9dcc643SXuhui Lin		pinctrl-0 = <&sdmmc0_clk_pins &sdmmc0_cmd_pins &sdmmc0_det_pins &sdmmc0_bus4_pins>;
972b9dcc643SXuhui Lin		pinctrl-1 = <&sdmmc0_idle_pins &sdmmc0_det_pins>;
973b9dcc643SXuhui Lin		status = "disabled";
974b9dcc643SXuhui Lin	};
975b9dcc643SXuhui Lin
976b9dcc643SXuhui Lin	emmc: mmc@20d30000 {
977b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
978b9dcc643SXuhui Lin		reg = <0x20d30000 0x4000>;
979b9dcc643SXuhui Lin		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
980b9dcc643SXuhui Lin		clocks = <&cru HCLK_EMMC>, <&cru CCLK_EMMC>;
981b9dcc643SXuhui Lin		clock-names = "biu", "ciu";
982b9dcc643SXuhui Lin		fifo-depth = <0x100>;
983b9dcc643SXuhui Lin		max-frequency = <150000000>;
984b9dcc643SXuhui Lin		status = "disabled";
985b9dcc643SXuhui Lin	};
986b9dcc643SXuhui Lin
987b9dcc643SXuhui Lin	sfc: spi@20d40000 {
988b9dcc643SXuhui Lin		compatible = "rockchip,fspi";
989b9dcc643SXuhui Lin		reg = <0x20d40000 0x4000>;
990b9dcc643SXuhui Lin		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
991b9dcc643SXuhui Lin		clocks = <&cru SCLK_SFC_2X>, <&cru HCLK_SFC>;
992b9dcc643SXuhui Lin		clock-names = "clk_sfc", "hclk_sfc";
993*e76c4c6cSJon Lin		rockchip,max-dll = <0xFF>;
994b9dcc643SXuhui Lin		rockchip,sclk-x2-bypass;
995b9dcc643SXuhui Lin		#address-cells = <1>;
996b9dcc643SXuhui Lin		#size-cells = <0>;
997b9dcc643SXuhui Lin		status = "disabled";
998b9dcc643SXuhui Lin	};
999b9dcc643SXuhui Lin
1000b9dcc643SXuhui Lin	mipi0_csi2_hw: mipi-csi2-hw@20d90000 {
1001b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mipi-csi2-hw";
1002b9dcc643SXuhui Lin		reg = <0x20d90000 0x10000>;
1003b9dcc643SXuhui Lin		reg-names = "csihost_regs";
1004b9dcc643SXuhui Lin		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
1005b9dcc643SXuhui Lin			     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
1006b9dcc643SXuhui Lin		interrupt-names = "csi-intr1", "csi-intr2";
1007b9dcc643SXuhui Lin		clocks = <&cru PCLK_CSI2HOST0>;
1008b9dcc643SXuhui Lin		clock-names = "pclk_csi2host";
1009b9dcc643SXuhui Lin		resets = <&cru SRST_PRESETN_CSI2HOST0>;
1010b9dcc643SXuhui Lin		reset-names = "srst_csihost_p";
1011b9dcc643SXuhui Lin		status = "okay";
1012b9dcc643SXuhui Lin	};
1013b9dcc643SXuhui Lin
1014b9dcc643SXuhui Lin	mipi1_csi2_hw: mipi-csi2-hw@20da0000 {
1015b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-mipi-csi2-hw";
1016b9dcc643SXuhui Lin		reg = <0x20da0000 0x10000>;
1017b9dcc643SXuhui Lin		reg-names = "csihost_regs";
1018b9dcc643SXuhui Lin		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
1019b9dcc643SXuhui Lin			     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
1020b9dcc643SXuhui Lin		interrupt-names = "csi-intr1", "csi-intr2";
1021b9dcc643SXuhui Lin		clocks = <&cru PCLK_CSI2HOST1>;
1022b9dcc643SXuhui Lin		clock-names = "pclk_csi2host";
1023b9dcc643SXuhui Lin		resets = <&cru SRST_PRESETN_CSI2HOST1>;
1024b9dcc643SXuhui Lin		reset-names = "srst_csihost_p";
1025b9dcc643SXuhui Lin		status = "okay";
1026b9dcc643SXuhui Lin	};
1027b9dcc643SXuhui Lin
1028b9dcc643SXuhui Lin	csi2_dphy_hw: csi2-dphy-hw@20db0000 {
1029b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-csi2-dphy-hw";
1030b9dcc643SXuhui Lin		reg = <0x20db0000 0x8000>;
1031b9dcc643SXuhui Lin		clocks = <&cru PCLK_CSIPHY>;
1032b9dcc643SXuhui Lin		clock-names = "pclk";
1033b9dcc643SXuhui Lin		resets = <&cru SRST_PRESETN_CSIPHY>;
1034b9dcc643SXuhui Lin		reset-names = "srst_p_csiphy";
1035b9dcc643SXuhui Lin		rockchip,grf = <&grf>;
1036b9dcc643SXuhui Lin		status = "disabled";
1037b9dcc643SXuhui Lin	};
1038b9dcc643SXuhui Lin
1039b9dcc643SXuhui Lin	u2phy: usb2-phy@20e10000 {
1040b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-usb2phy";
1041b9dcc643SXuhui Lin		reg = <0x20e10000 0x8000>;
1042b9dcc643SXuhui Lin		clocks = <&cru CLK_REF_USBPHY>, <&cru PCLK_USBPHY>;
1043b9dcc643SXuhui Lin		clock-names = "phyclk", "pclk";
1044b9dcc643SXuhui Lin		resets = <&cru SRST_RESETN_USBPHY_POR>, <&cru SRST_RESETN_USBPHY_OTG>;
1045b9dcc643SXuhui Lin		reset-names = "u2phy", "u2phy-apb";
1046b9dcc643SXuhui Lin		rockchip,usbgrf = <&grf>;
1047b9dcc643SXuhui Lin		#clock-cells = <0>;
1048b9dcc643SXuhui Lin		status = "disabled";
1049b9dcc643SXuhui Lin
1050b9dcc643SXuhui Lin		u2phy_otg: otg-port {
1051b9dcc643SXuhui Lin			#phy-cells = <0>;
1052b9dcc643SXuhui Lin			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1053b9dcc643SXuhui Lin				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1054b9dcc643SXuhui Lin				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1055b9dcc643SXuhui Lin				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
1056b9dcc643SXuhui Lin			interrupt-names = "otg-bvalid", "otg-id",
1057b9dcc643SXuhui Lin					  "linestate", "disconnect";
1058b9dcc643SXuhui Lin			status = "disabled";
1059b9dcc643SXuhui Lin		};
1060b9dcc643SXuhui Lin	};
1061b9dcc643SXuhui Lin
1062b9dcc643SXuhui Lin	acodec: acodec@20e20000 {
1063b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-codec";
1064b9dcc643SXuhui Lin		reg = <0x20e20000 0x1000>;
1065b9dcc643SXuhui Lin		rockchip,grf = <&grf>;
1066b9dcc643SXuhui Lin		clocks = <&cru PCLK_ACODEC>,
1067b9dcc643SXuhui Lin			 <&cru MCLK_ACODEC_TX>,
1068b9dcc643SXuhui Lin			 <&cru MCLK_SAI>;
1069b9dcc643SXuhui Lin		clock-names = "pclk_acodec", "mclk_acodec", "mclk_cpu";
1070b9dcc643SXuhui Lin		resets = <&cru SRST_PRESETN_ACODEC>;
1071b9dcc643SXuhui Lin		reset-names = "acodec-reset";
1072b9dcc643SXuhui Lin		acodec,micbias;
1073b9dcc643SXuhui Lin		acodec,inner-i2s;
1074b9dcc643SXuhui Lin		init-mic-gain = <0x22>; /* Left:20dB Right:20dB */
1075b9dcc643SXuhui Lin		#sound-dai-cells = <0>;
1076b9dcc643SXuhui Lin		status = "disabled";
1077b9dcc643SXuhui Lin	};
1078b9dcc643SXuhui Lin
1079b9dcc643SXuhui Lin	rkvenc: rkvenc@20e80000 {
1080b9dcc643SXuhui Lin		compatible = "rockchip,rkv-encoder-rv1103b";
1081b9dcc643SXuhui Lin		reg = <0x20e80000 0x6000>;
1082b9dcc643SXuhui Lin		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1083b9dcc643SXuhui Lin		interrupt-names = "irq_rkvenc";
1084b9dcc643SXuhui Lin		clocks = <&cru ACLK_VEPU>, <&cru HCLK_VEPU>, <&cru CLK_CORE_VEPU>;
1085b9dcc643SXuhui Lin		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
1086b9dcc643SXuhui Lin		rockchip,normal-rates = <400000000>, <0>, <400000000>;
1087b9dcc643SXuhui Lin		assigned-clocks = <&cru ACLK_VEPU>, <&cru CLK_CORE_VEPU>;
1088b9dcc643SXuhui Lin		assigned-clock-rates = <400000000>, <400000000>;
1089b9dcc643SXuhui Lin		resets = <&cru SRST_ARESETN_VEPU>, <&cru SRST_HRESETN_VEPU>,
1090b9dcc643SXuhui Lin			 <&cru SRST_RESETN_CORE_VEPU>;
1091b9dcc643SXuhui Lin		reset-names = "video_a", "video_h", "video_core";
1092b9dcc643SXuhui Lin		rockchip,srv = <&mpp_srv>;
1093b9dcc643SXuhui Lin		rockchip,taskqueue-node = <0>;
1094b9dcc643SXuhui Lin		dvbm = <&rkdvbm>;
1095b9dcc643SXuhui Lin		status = "disabled";
1096b9dcc643SXuhui Lin	};
1097b9dcc643SXuhui Lin
1098b9dcc643SXuhui Lin	system_sram: sram@210f6000 {
1099b9dcc643SXuhui Lin		compatible = "mmio-sram";
1100b9dcc643SXuhui Lin		reg = <0x210f6000 0x8000>;
1101b9dcc643SXuhui Lin		#address-cells = <1>;
1102b9dcc643SXuhui Lin		#size-cells = <1>;
1103b9dcc643SXuhui Lin		ranges = <0 0x210f6000 0x8000>;
1104b9dcc643SXuhui Lin	};
1105b9dcc643SXuhui Lin
1106b9dcc643SXuhui Lin	pinctrl: pinctrl {
1107b9dcc643SXuhui Lin		compatible = "rockchip,rv1103b-pinctrl";
1108b9dcc643SXuhui Lin		rockchip,grf = <&ioc>;
1109b9dcc643SXuhui Lin		#address-cells = <1>;
1110b9dcc643SXuhui Lin		#size-cells = <1>;
1111b9dcc643SXuhui Lin		ranges;
1112b9dcc643SXuhui Lin
1113b9dcc643SXuhui Lin		gpio0: gpio@20520000 {
1114b9dcc643SXuhui Lin			compatible = "rockchip,gpio-bank";
1115b9dcc643SXuhui Lin			reg = <0x20520000 0x200>;
1116b9dcc643SXuhui Lin			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1117b9dcc643SXuhui Lin			clocks = <&cru PCLK_PMU_GPIO0>, <&cru DBCLK_PMU_GPIO0>;
1118b9dcc643SXuhui Lin			gpio-controller;
1119b9dcc643SXuhui Lin			#gpio-cells = <2>;
1120b9dcc643SXuhui Lin			gpio-ranges = <&pinctrl 0 0 32>;
1121b9dcc643SXuhui Lin			interrupt-controller;
1122b9dcc643SXuhui Lin			#interrupt-cells = <2>;
1123b9dcc643SXuhui Lin		};
1124b9dcc643SXuhui Lin
1125b9dcc643SXuhui Lin		gpio1: gpio@20d80000 {
1126b9dcc643SXuhui Lin			compatible = "rockchip,gpio-bank";
1127b9dcc643SXuhui Lin			reg = <0x20d80000 0x200>;
1128b9dcc643SXuhui Lin			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
1129b9dcc643SXuhui Lin			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
1130b9dcc643SXuhui Lin			gpio-controller;
1131b9dcc643SXuhui Lin			#gpio-cells = <2>;
1132b9dcc643SXuhui Lin			gpio-ranges = <&pinctrl 0 32 32>;
1133b9dcc643SXuhui Lin			interrupt-controller;
1134b9dcc643SXuhui Lin			#interrupt-cells = <2>;
1135b9dcc643SXuhui Lin		};
1136b9dcc643SXuhui Lin
1137b9dcc643SXuhui Lin		gpio2: gpio@20840000 {
1138b9dcc643SXuhui Lin			compatible = "rockchip,gpio-bank";
1139b9dcc643SXuhui Lin			reg = <0x20840000 0x200>;
1140b9dcc643SXuhui Lin			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1141b9dcc643SXuhui Lin			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
1142b9dcc643SXuhui Lin			gpio-controller;
1143b9dcc643SXuhui Lin			#gpio-cells = <2>;
1144b9dcc643SXuhui Lin			gpio-ranges = <&pinctrl 0 64 32>;
1145b9dcc643SXuhui Lin			interrupt-controller;
1146b9dcc643SXuhui Lin			#interrupt-cells = <2>;
1147b9dcc643SXuhui Lin		};
1148b9dcc643SXuhui Lin	};
1149b9dcc643SXuhui Lin};
1150b9dcc643SXuhui Lin
1151b9dcc643SXuhui Lin#include "rv1103b-pinctrl.dtsi"
1152