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