xref: /linux/arch/arm/boot/dts/rockchip/rv1103b.dtsi (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*b4dc241cSFabio Estevam// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*b4dc241cSFabio Estevam/*
3*b4dc241cSFabio Estevam * Copyright (c) 2026 Rockchip Electronics Co., Ltd.
4*b4dc241cSFabio Estevam */
5*b4dc241cSFabio Estevam
6*b4dc241cSFabio Estevam#include <dt-bindings/clock/rockchip,rv1103b-cru.h>
7*b4dc241cSFabio Estevam#include <dt-bindings/gpio/gpio.h>
8*b4dc241cSFabio Estevam#include <dt-bindings/interrupt-controller/irq.h>
9*b4dc241cSFabio Estevam#include <dt-bindings/interrupt-controller/arm-gic.h>
10*b4dc241cSFabio Estevam#include <dt-bindings/pinctrl/rockchip.h>
11*b4dc241cSFabio Estevam#include <dt-bindings/soc/rockchip,boot-mode.h>
12*b4dc241cSFabio Estevam
13*b4dc241cSFabio Estevam/ {
14*b4dc241cSFabio Estevam	#address-cells = <1>;
15*b4dc241cSFabio Estevam	#size-cells = <1>;
16*b4dc241cSFabio Estevam
17*b4dc241cSFabio Estevam	compatible = "rockchip,rv1103b";
18*b4dc241cSFabio Estevam
19*b4dc241cSFabio Estevam	interrupt-parent = <&gic>;
20*b4dc241cSFabio Estevam
21*b4dc241cSFabio Estevam	arm-pmu {
22*b4dc241cSFabio Estevam		compatible = "arm,cortex-a7-pmu";
23*b4dc241cSFabio Estevam		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
24*b4dc241cSFabio Estevam		interrupt-affinity = <&cpu0>;
25*b4dc241cSFabio Estevam	};
26*b4dc241cSFabio Estevam
27*b4dc241cSFabio Estevam	cpus {
28*b4dc241cSFabio Estevam		#address-cells = <1>;
29*b4dc241cSFabio Estevam		#size-cells = <0>;
30*b4dc241cSFabio Estevam
31*b4dc241cSFabio Estevam		cpu0: cpu@0 {
32*b4dc241cSFabio Estevam			compatible = "arm,cortex-a7";
33*b4dc241cSFabio Estevam			reg = <0x0>;
34*b4dc241cSFabio Estevam			clocks = <&cru ARMCLK>;
35*b4dc241cSFabio Estevam			device_type = "cpu";
36*b4dc241cSFabio Estevam		};
37*b4dc241cSFabio Estevam	};
38*b4dc241cSFabio Estevam
39*b4dc241cSFabio Estevam	timer {
40*b4dc241cSFabio Estevam		compatible = "arm,armv7-timer";
41*b4dc241cSFabio Estevam		clock-frequency = <24000000>;
42*b4dc241cSFabio Estevam		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
43*b4dc241cSFabio Estevam			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
44*b4dc241cSFabio Estevam	};
45*b4dc241cSFabio Estevam
46*b4dc241cSFabio Estevam	xin24m: oscillator-24m {
47*b4dc241cSFabio Estevam		compatible = "fixed-clock";
48*b4dc241cSFabio Estevam		clock-frequency = <24000000>;
49*b4dc241cSFabio Estevam		clock-output-names = "xin24m";
50*b4dc241cSFabio Estevam		#clock-cells = <0>;
51*b4dc241cSFabio Estevam	};
52*b4dc241cSFabio Estevam
53*b4dc241cSFabio Estevam	pinctrl: pinctrl {
54*b4dc241cSFabio Estevam		compatible = "rockchip,rv1103b-pinctrl";
55*b4dc241cSFabio Estevam		rockchip,grf = <&ioc>;
56*b4dc241cSFabio Estevam		ranges;
57*b4dc241cSFabio Estevam		#address-cells = <1>;
58*b4dc241cSFabio Estevam		#size-cells = <1>;
59*b4dc241cSFabio Estevam
60*b4dc241cSFabio Estevam		gpio0: gpio@20520000 {
61*b4dc241cSFabio Estevam			compatible = "rockchip,gpio-bank";
62*b4dc241cSFabio Estevam			reg = <0x20520000 0x200>;
63*b4dc241cSFabio Estevam			clocks = <&cru PCLK_PMU_GPIO0>, <&cru DBCLK_PMU_GPIO0>;
64*b4dc241cSFabio Estevam			gpio-controller;
65*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
66*b4dc241cSFabio Estevam			interrupt-controller;
67*b4dc241cSFabio Estevam			#gpio-cells = <2>;
68*b4dc241cSFabio Estevam			#interrupt-cells = <2>;
69*b4dc241cSFabio Estevam		};
70*b4dc241cSFabio Estevam
71*b4dc241cSFabio Estevam		gpio1: gpio@20d80000 {
72*b4dc241cSFabio Estevam			compatible = "rockchip,gpio-bank";
73*b4dc241cSFabio Estevam			reg = <0x20d80000 0x200>;
74*b4dc241cSFabio Estevam			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
75*b4dc241cSFabio Estevam			gpio-controller;
76*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
77*b4dc241cSFabio Estevam			interrupt-controller;
78*b4dc241cSFabio Estevam			#gpio-cells = <2>;
79*b4dc241cSFabio Estevam			#interrupt-cells = <2>;
80*b4dc241cSFabio Estevam		};
81*b4dc241cSFabio Estevam
82*b4dc241cSFabio Estevam		gpio2: gpio@20840000 {
83*b4dc241cSFabio Estevam			compatible = "rockchip,gpio-bank";
84*b4dc241cSFabio Estevam			reg = <0x20840000 0x200>;
85*b4dc241cSFabio Estevam			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
86*b4dc241cSFabio Estevam			gpio-controller;
87*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
88*b4dc241cSFabio Estevam			interrupt-controller;
89*b4dc241cSFabio Estevam			#gpio-cells = <2>;
90*b4dc241cSFabio Estevam			#interrupt-cells = <2>;
91*b4dc241cSFabio Estevam		};
92*b4dc241cSFabio Estevam	};
93*b4dc241cSFabio Estevam
94*b4dc241cSFabio Estevam	soc {
95*b4dc241cSFabio Estevam		compatible = "simple-bus";
96*b4dc241cSFabio Estevam		#address-cells = <1>;
97*b4dc241cSFabio Estevam		#size-cells = <1>;
98*b4dc241cSFabio Estevam		ranges;
99*b4dc241cSFabio Estevam
100*b4dc241cSFabio Estevam		cru: clock-controller@20000000 {
101*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-cru";
102*b4dc241cSFabio Estevam			reg = <0x20000000 0x81000>;
103*b4dc241cSFabio Estevam			#clock-cells = <1>;
104*b4dc241cSFabio Estevam			#reset-cells = <1>;
105*b4dc241cSFabio Estevam		};
106*b4dc241cSFabio Estevam
107*b4dc241cSFabio Estevam		pmu_grf: syscon@20160000 {
108*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-pmu-grf", "syscon", "simple-mfd";
109*b4dc241cSFabio Estevam			reg = <0x20160000 0x1000>;
110*b4dc241cSFabio Estevam
111*b4dc241cSFabio Estevam			reboot_mode: reboot-mode {
112*b4dc241cSFabio Estevam				compatible = "syscon-reboot-mode";
113*b4dc241cSFabio Estevam				offset = <0x200>;
114*b4dc241cSFabio Estevam				mode-normal = <BOOT_NORMAL>;
115*b4dc241cSFabio Estevam				mode-recovery = <BOOT_RECOVERY>;
116*b4dc241cSFabio Estevam				mode-bootloader = <BOOT_FASTBOOT>;
117*b4dc241cSFabio Estevam				mode-loader = <BOOT_BL_DOWNLOAD>;
118*b4dc241cSFabio Estevam			};
119*b4dc241cSFabio Estevam		};
120*b4dc241cSFabio Estevam
121*b4dc241cSFabio Estevam		ioc: syscon@20170000 {
122*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-ioc", "syscon";
123*b4dc241cSFabio Estevam			reg = <0x20170000 0x60000>;
124*b4dc241cSFabio Estevam		};
125*b4dc241cSFabio Estevam
126*b4dc241cSFabio Estevam		gic: interrupt-controller@20411000 {
127*b4dc241cSFabio Estevam			compatible = "arm,gic-400";
128*b4dc241cSFabio Estevam			reg = <0x20411000 0x1000>,
129*b4dc241cSFabio Estevam			      <0x20412000 0x2000>,
130*b4dc241cSFabio Estevam			      <0x20414000 0x2000>,
131*b4dc241cSFabio Estevam			      <0x20416000 0x2000>;
132*b4dc241cSFabio Estevam			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
133*b4dc241cSFabio Estevam			interrupt-controller;
134*b4dc241cSFabio Estevam			#interrupt-cells = <3>;
135*b4dc241cSFabio Estevam			#address-cells = <0>;
136*b4dc241cSFabio Estevam		};
137*b4dc241cSFabio Estevam
138*b4dc241cSFabio Estevam		uart0: serial@20540000 {
139*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
140*b4dc241cSFabio Estevam			reg = <0x20540000 0x100>;
141*b4dc241cSFabio Estevam			clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
142*b4dc241cSFabio Estevam			clock-names = "baudclk", "apb_pclk";
143*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
144*b4dc241cSFabio Estevam			pinctrl-names = "default";
145*b4dc241cSFabio Estevam			pinctrl-0 = <&uart0m0_xfer>;
146*b4dc241cSFabio Estevam			reg-shift = <2>;
147*b4dc241cSFabio Estevam			reg-io-width = <4>;
148*b4dc241cSFabio Estevam			status = "disabled";
149*b4dc241cSFabio Estevam		};
150*b4dc241cSFabio Estevam
151*b4dc241cSFabio Estevam		sdmmc1: mmc@20650000 {
152*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3576-dw-mshc";
153*b4dc241cSFabio Estevam			reg = <0x20650000 0x4000>;
154*b4dc241cSFabio Estevam			clocks = <&cru HCLK_SDMMC1>, <&cru CCLK_SDMMC1>;
155*b4dc241cSFabio Estevam			clock-names = "biu", "ciu";
156*b4dc241cSFabio Estevam			fifo-depth = <0x100>;
157*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
158*b4dc241cSFabio Estevam			max-frequency = <150000000>;
159*b4dc241cSFabio Estevam			pinctrl-names = "default";
160*b4dc241cSFabio Estevam			pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_bus4>;
161*b4dc241cSFabio Estevam			status = "disabled";
162*b4dc241cSFabio Estevam		};
163*b4dc241cSFabio Estevam
164*b4dc241cSFabio Estevam		uart1: serial@20870000 {
165*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
166*b4dc241cSFabio Estevam			reg = <0x20870000 0x100>;
167*b4dc241cSFabio Estevam			clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
168*b4dc241cSFabio Estevam			clock-names = "baudclk", "apb_pclk";
169*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
170*b4dc241cSFabio Estevam			pinctrl-names = "default";
171*b4dc241cSFabio Estevam			pinctrl-0 = <&uart1m0_xfer>;
172*b4dc241cSFabio Estevam			reg-shift = <2>;
173*b4dc241cSFabio Estevam			reg-io-width = <4>;
174*b4dc241cSFabio Estevam			status = "disabled";
175*b4dc241cSFabio Estevam		};
176*b4dc241cSFabio Estevam
177*b4dc241cSFabio Estevam		uart2: serial@20880000 {
178*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
179*b4dc241cSFabio Estevam			reg = <0x20880000 0x100>;
180*b4dc241cSFabio Estevam			clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
181*b4dc241cSFabio Estevam			clock-names = "baudclk", "apb_pclk";
182*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
183*b4dc241cSFabio Estevam			pinctrl-names = "default";
184*b4dc241cSFabio Estevam			pinctrl-0 = <&uart2m0_xfer>;
185*b4dc241cSFabio Estevam			reg-shift = <2>;
186*b4dc241cSFabio Estevam			reg-io-width = <4>;
187*b4dc241cSFabio Estevam			status = "disabled";
188*b4dc241cSFabio Estevam		};
189*b4dc241cSFabio Estevam
190*b4dc241cSFabio Estevam		sdmmc0: mmc@20d20000 {
191*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3576-dw-mshc";
192*b4dc241cSFabio Estevam			reg = <0x20d20000 0x4000>;
193*b4dc241cSFabio Estevam			clocks = <&cru HCLK_SDMMC0>, <&cru CCLK_SDMMC0>;
194*b4dc241cSFabio Estevam			clock-names = "biu", "ciu";
195*b4dc241cSFabio Estevam			fifo-depth = <0x100>;
196*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
197*b4dc241cSFabio Estevam			max-frequency = <150000000>;
198*b4dc241cSFabio Estevam			pinctrl-names = "default";
199*b4dc241cSFabio Estevam			pinctrl-0 = <&sdmmc0_det &sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4>;
200*b4dc241cSFabio Estevam			status = "disabled";
201*b4dc241cSFabio Estevam		};
202*b4dc241cSFabio Estevam
203*b4dc241cSFabio Estevam		emmc: mmc@20d30000 {
204*b4dc241cSFabio Estevam			compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3576-dw-mshc";
205*b4dc241cSFabio Estevam			reg = <0x20d30000 0x4000>;
206*b4dc241cSFabio Estevam			clocks = <&cru HCLK_EMMC>, <&cru CCLK_EMMC>;
207*b4dc241cSFabio Estevam			clock-names = "biu", "ciu";
208*b4dc241cSFabio Estevam			fifo-depth = <0x100>;
209*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
210*b4dc241cSFabio Estevam			max-frequency = <150000000>;
211*b4dc241cSFabio Estevam			pinctrl-names = "default";
212*b4dc241cSFabio Estevam			pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus4>;
213*b4dc241cSFabio Estevam			status = "disabled";
214*b4dc241cSFabio Estevam		};
215*b4dc241cSFabio Estevam
216*b4dc241cSFabio Estevam		fspi0: spi@20d40000 {
217*b4dc241cSFabio Estevam			compatible = "rockchip,sfc";
218*b4dc241cSFabio Estevam			reg = <0x20d40000 0x4000>;
219*b4dc241cSFabio Estevam			clocks = <&cru SCLK_SFC_2X>, <&cru HCLK_SFC>;
220*b4dc241cSFabio Estevam			clock-names = "clk_sfc", "hclk_sfc";
221*b4dc241cSFabio Estevam			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
222*b4dc241cSFabio Estevam			pinctrl-names = "default";
223*b4dc241cSFabio Estevam			pinctrl-0 = <&fspi_bus4 &fspi_cs0 &fspi_clk>;
224*b4dc241cSFabio Estevam			#address-cells = <1>;
225*b4dc241cSFabio Estevam			#size-cells = <0>;
226*b4dc241cSFabio Estevam			status = "disabled";
227*b4dc241cSFabio Estevam		};
228*b4dc241cSFabio Estevam
229*b4dc241cSFabio Estevam		system_sram: sram@210f6000 {
230*b4dc241cSFabio Estevam			compatible = "mmio-sram";
231*b4dc241cSFabio Estevam			reg = <0x210f6000 0x8000>;
232*b4dc241cSFabio Estevam			ranges = <0 0x210f6000 0x8000>;
233*b4dc241cSFabio Estevam			#address-cells = <1>;
234*b4dc241cSFabio Estevam			#size-cells = <1>;
235*b4dc241cSFabio Estevam		};
236*b4dc241cSFabio Estevam	};
237*b4dc241cSFabio Estevam};
238*b4dc241cSFabio Estevam
239*b4dc241cSFabio Estevam#include "rv1103b-pinctrl.dtsi"
240