* [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles
@ 2026-02-07 13:18 Fabio Estevam
2026-02-07 13:18 ` [PATCH v2 2/4] ARM: dts: rockchip: Add support for RV1103B Fabio Estevam
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Fabio Estevam @ 2026-02-07 13:18 UTC (permalink / raw)
To: heiko
Cc: jonas, robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
From: Fabio Estevam <festevam@nabladev.com>
Add the GRF and IOC compatible strings for the RV1103B SoC.
Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- Update to the list of children.
Documentation/devicetree/bindings/soc/rockchip/grf.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
index 0b8e3294c83e..4fc01a450139 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -63,6 +63,7 @@ properties:
- rockchip,rk3588-vo0-grf
- rockchip,rk3588-vo1-grf
- rockchip,rk3588-vop-grf
+ - rockchip,rv1103b-ioc
- rockchip,rv1108-usbgrf
- const: syscon
- items:
@@ -98,6 +99,7 @@ properties:
- rockchip,rk3576-pmu0-grf
- rockchip,rk3576-usb2phy-grf
- rockchip,rk3588-usb2phy-grf
+ - rockchip,rv1103b-grf
- rockchip,rv1108-grf
- rockchip,rv1108-pmugrf
- rockchip,rv1126-grf
@@ -231,6 +233,7 @@ allOf:
- rockchip,rk3036-grf
- rockchip,rk3308-grf
- rockchip,rk3368-pmugrf
+ - rockchip,rv1103b-grf
then:
properties:
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/4] ARM: dts: rockchip: Add support for RV1103B
2026-02-07 13:18 [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles Fabio Estevam
@ 2026-02-07 13:18 ` Fabio Estevam
2026-02-08 22:49 ` Jonas Karlman
2026-02-07 13:18 ` [PATCH v2 3/4] dt-bindings: arm: rockchip: Add Onion RV1103B Omega4 Fabio Estevam
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Fabio Estevam @ 2026-02-07 13:18 UTC (permalink / raw)
To: heiko
Cc: jonas, robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
From: Fabio Estevam <festevam@nabladev.com>
Add the initial RV1103B devicetree.
Based on the 5.10 Rockchip vendor kernel driver.
Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- None.
.../boot/dts/rockchip/rv1103b-pinctrl.dtsi | 831 ++++++++++++++++++
arch/arm/boot/dts/rockchip/rv1103b.dtsi | 266 ++++++
2 files changed, 1097 insertions(+)
create mode 100644 arch/arm/boot/dts/rockchip/rv1103b-pinctrl.dtsi
create mode 100644 arch/arm/boot/dts/rockchip/rv1103b.dtsi
diff --git a/arch/arm/boot/dts/rockchip/rv1103b-pinctrl.dtsi b/arch/arm/boot/dts/rockchip/rv1103b-pinctrl.dtsi
new file mode 100644
index 000000000000..bc4d8fcdfaf7
--- /dev/null
+++ b/arch/arm/boot/dts/rockchip/rv1103b-pinctrl.dtsi
@@ -0,0 +1,831 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
+ */
+
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <arm64/rockchip/rockchip-pinconf.dtsi>
+
+/*
+ * This file is auto generated by pin2dts tool, please keep these code
+ * by adding changes at end of this file.
+ */
+&pinctrl {
+ cam_clk0 {
+ cam_clk0_pins: cam-clk0-pins {
+ rockchip,pins =
+ /* cam_clk0_out */
+ <1 RK_PB5 1 &pcfg_pull_none>;
+ };
+ };
+
+ cam_clk1 {
+ cam_clk1_pins: cam-clk1-pins {
+ rockchip,pins =
+ /* cam_clk1_out */
+ <1 RK_PB6 1 &pcfg_pull_none>;
+ };
+ };
+
+ cam_spi {
+ cam_spi_bus4_pins: cam-spi-bus4-pins {
+ rockchip,pins =
+ /* cam_spi_d0 */
+ <0 RK_PB5 4 &pcfg_pull_up_drv_level_2>,
+ /* cam_spi_d1 */
+ <0 RK_PB2 4 &pcfg_pull_up_drv_level_2>,
+ /* cam_spi_d2 */
+ <0 RK_PB1 4 &pcfg_pull_up_drv_level_2>,
+ /* cam_spi_d3 */
+ <0 RK_PB0 4 &pcfg_pull_up_drv_level_2>;
+ };
+ cam_spi_clk_pins: cam-spi-clk-pins {
+ rockchip,pins =
+ /* cam_spi_clk */
+ <0 RK_PB4 4 &pcfg_pull_none>;
+ };
+ cam_spi_cs0n_pins: cam-spi-cs0n-pins {
+ rockchip,pins =
+ /* cam_spi_cs0n */
+ <0 RK_PB3 4 &pcfg_pull_none>;
+ };
+ };
+
+ clk {
+ clk_32k_pins: clk-32k-pins {
+ rockchip,pins =
+ /* clk_32k */
+ <0 RK_PA0 2 &pcfg_pull_none>;
+ };
+ };
+
+ clk_24m {
+ clk_24m_out_pins: clk-24m-out-pins {
+ rockchip,pins =
+ /* clk_24m_out */
+ <0 RK_PA0 3 &pcfg_pull_none>;
+ };
+ };
+
+ cpu {
+ cpu_pins: cpu-pins {
+ rockchip,pins =
+ /* cpu_avs */
+ <0 RK_PA1 2 &pcfg_pull_none>;
+ };
+ };
+
+ emmc {
+ emmc_bus4_pins: emmc-bus4-pins {
+ rockchip,pins =
+ /* emmc_d0 */
+ <1 RK_PA1 1 &pcfg_pull_up_drv_level_2>,
+ /* emmc_d1 */
+ <1 RK_PA2 1 &pcfg_pull_up_drv_level_2>,
+ /* emmc_d2 */
+ <1 RK_PA3 1 &pcfg_pull_up_drv_level_2>,
+ /* emmc_d3 */
+ <1 RK_PA0 1 &pcfg_pull_up_drv_level_2>;
+ };
+ emmc_clk_pins: emmc-clk-pins {
+ rockchip,pins =
+ /* emmc_clk */
+ <1 RK_PA4 1 &pcfg_pull_up_drv_level_2>;
+ };
+ emmc_cmd_pins: emmc-cmd-pins {
+ rockchip,pins =
+ /* emmc_cmd */
+ <1 RK_PA5 1 &pcfg_pull_up_drv_level_2>;
+ };
+ };
+
+ emmc_testclk {
+ emmc_testclk_clk_pins: emmc-testclk-clk-pins {
+ rockchip,pins =
+ /* emmc_testclk_out */
+ <1 RK_PA7 3 &pcfg_pull_up_drv_level_2>;
+ };
+ };
+
+ emmc_testdata {
+ emmc_testdata_out_pins: emmc-testdata-out-pins {
+ rockchip,pins =
+ /* emmc_testdata_out */
+ <1 RK_PB0 3 &pcfg_pull_none>;
+ };
+ };
+
+ eth_led {
+ eth_led_dpx_pins: eth-led-dpx-pins {
+ rockchip,pins =
+ /* eth_led_dpx */
+ <2 RK_PA4 6 &pcfg_pull_none>;
+ };
+ eth_led_link_pins: eth-led-link-pins {
+ rockchip,pins =
+ /* eth_led_link */
+ <2 RK_PA6 6 &pcfg_pull_none>;
+ };
+ eth_led_spd_pins: eth-led-spd-pins {
+ rockchip,pins =
+ /* eth_led_spd */
+ <2 RK_PA7 6 &pcfg_pull_none>;
+ };
+ };
+
+ flash_trig {
+ flash_trig_pins: flash-trig-pins {
+ rockchip,pins =
+ /* flash_trig_out */
+ <2 RK_PB0 6 &pcfg_pull_none>;
+ };
+ };
+
+ fspi {
+ fspi_bus4_pins: fspi-bus4-pins {
+ rockchip,pins =
+ /* fspi_d0 */
+ <1 RK_PA1 2 &pcfg_pull_none>,
+ /* fspi_d1 */
+ <1 RK_PA2 2 &pcfg_pull_none>,
+ /* fspi_d2 */
+ <1 RK_PA3 2 &pcfg_pull_none>,
+ /* fspi_d3 */
+ <1 RK_PA0 2 &pcfg_pull_none>;
+ };
+ fspi_cs0_pins: fspi-cs0-pins {
+ rockchip,pins =
+ /* fspi_cs0n */
+ <1 RK_PA5 2 &pcfg_pull_up>;
+ };
+ fspi_clk_pins: fspi-clk-pins {
+ rockchip,pins =
+ /* fspi_clk */
+ <1 RK_PA4 2 &pcfg_pull_none>;
+ };
+ };
+
+ fspi_testclk {
+ fspi_testclk_out_pins: fspi-testclk-out-pins {
+ rockchip,pins =
+ /* fspi_testclk_out */
+ <1 RK_PA7 5 &pcfg_pull_none>;
+ };
+ };
+
+ fspi_testdata {
+ fspi_testdata_out_pins: fspi-testdata-out-pins {
+ rockchip,pins =
+ /* fspi_testdata_out */
+ <1 RK_PB0 5 &pcfg_pull_none>;
+ };
+ };
+
+ i2c0 {
+ i2c0m0_xfer_pins: i2c0m0-xfer-pins {
+ rockchip,pins =
+ /* i2c0_scl_m0 */
+ <0 RK_PA5 3 &pcfg_pull_none_smt>,
+ /* i2c0_sda_m0 */
+ <0 RK_PA6 3 &pcfg_pull_none_smt>;
+ };
+ i2c0m1_xfer_pins: i2c0m1-xfer-pins {
+ rockchip,pins =
+ /* i2c0_scl_m1 */
+ <1 RK_PB4 5 &pcfg_pull_none_smt>,
+ /* i2c0_sda_m1 */
+ <1 RK_PB3 5 &pcfg_pull_none_smt>;
+ };
+ i2c0m2_xfer_pins: i2c0m2-xfer-pins {
+ rockchip,pins =
+ /* i2c0_scl_m2 */
+ <1 RK_PB5 2 &pcfg_pull_none_smt>,
+ /* i2c0_sda_m2 */
+ <1 RK_PB6 2 &pcfg_pull_none_smt>;
+ };
+ };
+
+ i2c1 {
+ i2c1m0_xfer_pins: i2c1m0-xfer-pins {
+ rockchip,pins =
+ /* i2c1_scl_m0 */
+ <0 RK_PB0 1 &pcfg_pull_none_smt>,
+ /* i2c1_sda_m0 */
+ <0 RK_PB1 1 &pcfg_pull_none_smt>;
+ };
+ i2c1m1_xfer_pins: i2c1m1-xfer-pins {
+ rockchip,pins =
+ /* i2c1_scl_m1 */
+ <2 RK_PA4 4 &pcfg_pull_none_smt>,
+ /* i2c1_sda_m1 */
+ <2 RK_PA5 4 &pcfg_pull_none_smt>;
+ };
+ };
+
+ i2c2 {
+ i2c2m0_xfer_pins: i2c2m0-xfer-pins {
+ rockchip,pins =
+ /* i2c2_scl_m0 */
+ <0 RK_PB2 1 &pcfg_pull_none_smt>,
+ /* i2c2_sda_m0 */
+ <0 RK_PB3 1 &pcfg_pull_none_smt>;
+ };
+ i2c2m1_xfer_pins: i2c2m1-xfer-pins {
+ rockchip,pins =
+ /* i2c2_scl_m1 */
+ <2 RK_PA6 4 &pcfg_pull_none_smt>,
+ /* i2c2_sda_m1 */
+ <2 RK_PA7 4 &pcfg_pull_none_smt>;
+ };
+ };
+
+ i2c3 {
+ i2c3m0_xfer_pins: i2c3m0-xfer-pins {
+ rockchip,pins =
+ /* i2c3_scl_m0 */
+ <0 RK_PB4 1 &pcfg_pull_none_smt>,
+ /* i2c3_sda_m0 */
+ <0 RK_PB5 1 &pcfg_pull_none_smt>;
+ };
+ i2c3m1_xfer_pins: i2c3m1-xfer-pins {
+ rockchip,pins =
+ /* i2c3_scl_m1 */
+ <2 RK_PB3 4 &pcfg_pull_none_smt>,
+ /* i2c3_sda_m1 */
+ <2 RK_PB2 4 &pcfg_pull_none_smt>;
+ };
+ };
+
+ i2c4 {
+ i2c4m0_xfer_pins: i2c4m0-xfer-pins {
+ rockchip,pins =
+ /* i2c4_scl_m0 */
+ <2 RK_PB0 4 &pcfg_pull_none_smt>,
+ /* i2c4_sda_m0 */
+ <2 RK_PB1 4 &pcfg_pull_none_smt>;
+ };
+ i2c4m1_xfer_pins: i2c4m1-xfer-pins {
+ rockchip,pins =
+ /* i2c4_scl_m1 */
+ <1 RK_PB7 2 &pcfg_pull_none_smt>,
+ /* i2c4_sda_m1 */
+ <1 RK_PC0 2 &pcfg_pull_none_smt>;
+ };
+ };
+
+ jtag {
+ jtagm0_pins: jtagm0-pins {
+ rockchip,pins =
+ /* jtag_tck_m0 */
+ <0 RK_PA5 5 &pcfg_pull_none>,
+ /* jtag_tms_m0 */
+ <0 RK_PA6 5 &pcfg_pull_none>;
+ };
+ jtagm1_pins: jtagm1-pins {
+ rockchip,pins =
+ /* jtag_tck_m1 */
+ <0 RK_PB4 3 &pcfg_pull_none>,
+ /* jtag_tms_m1 */
+ <0 RK_PB5 3 &pcfg_pull_none>;
+ };
+ jtagm2_pins: jtagm2-pins {
+ rockchip,pins =
+ /* jtag_tck_m2 */
+ <1 RK_PB4 3 &pcfg_pull_none>,
+ /* jtag_tms_m2 */
+ <1 RK_PB3 3 &pcfg_pull_none>;
+ };
+ };
+
+ pmu_debug_test {
+ pmu_debug_test_pins: pmu-debug-test-pins {
+ rockchip,pins =
+ /* pmu_debug_test_out */
+ <0 RK_PB1 5 &pcfg_pull_none>;
+ };
+ };
+
+ prelight_trig {
+ prelight_trig_pins: prelight-trig-pins {
+ rockchip,pins =
+ /* prelight_trig_out */
+ <2 RK_PB1 6 &pcfg_pull_none>;
+ };
+ };
+
+ psram_spi {
+ psram_spi_bus4_pins: psram-spi-bus4-pins {
+ rockchip,pins =
+ /* psram_spi_d0 */
+ <0 RK_PA2 4 &pcfg_pull_none>,
+ /* psram_spi_d1 */
+ <0 RK_PA1 4 &pcfg_pull_none>,
+ /* psram_spi_d2 */
+ <0 RK_PA5 4 &pcfg_pull_none>,
+ /* psram_spi_d3 */
+ <0 RK_PA6 4 &pcfg_pull_none>;
+ };
+ psram_spi_clk_pins: psram-spi-clk-pins {
+ rockchip,pins =
+ /* psram_spi_clk */
+ <0 RK_PA0 4 &pcfg_pull_none>;
+ };
+ psram_spi_cs0n_pins: psram-spi-cs0n-pins {
+ rockchip,pins =
+ /* psram_spi_cs0n */
+ <0 RK_PA4 4 &pcfg_pull_none>;
+ };
+ };
+
+ pwm0 {
+ pwm0m0_ch0_pins: pwm0m0-ch0-pins {
+ rockchip,pins =
+ /* pwm0m0_ch0 */
+ <0 RK_PA1 1 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m0_ch1_pins: pwm0m0-ch1-pins {
+ rockchip,pins =
+ /* pwm0m0_ch1 */
+ <0 RK_PA5 2 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m0_ch2_pins: pwm0m0-ch2-pins {
+ rockchip,pins =
+ /* pwm0m0_ch2 */
+ <0 RK_PA6 2 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m0_ch3_pins: pwm0m0-ch3-pins {
+ rockchip,pins =
+ /* pwm0m0_ch3 */
+ <0 RK_PA2 1 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m1_ch0_pins: pwm0m1-ch0-pins {
+ rockchip,pins =
+ /* pwm0m1_ch0 */
+ <2 RK_PA0 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m1_ch1_pins: pwm0m1-ch1-pins {
+ rockchip,pins =
+ /* pwm0m1_ch1 */
+ <2 RK_PA1 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m1_ch2_pins: pwm0m1-ch2-pins {
+ rockchip,pins =
+ /* pwm0m1_ch2 */
+ <2 RK_PA2 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m1_ch3_pins: pwm0m1-ch3-pins {
+ rockchip,pins =
+ /* pwm0m1_ch3 */
+ <2 RK_PB0 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m2_ch1_pins: pwm0m2-ch1-pins {
+ rockchip,pins =
+ /* pwm0m2_ch1 */
+ <1 RK_PB7 1 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm0m2_ch2_pins: pwm0m2-ch2-pins {
+ rockchip,pins =
+ /* pwm0m2_ch2 */
+ <1 RK_PC0 1 &pcfg_pull_none_drv_level_0>;
+ };
+ };
+
+ pwm1 {
+ pwm1m0_ch0_pins: pwm1m0-ch0-pins {
+ rockchip,pins =
+ /* pwm1m0_ch0 */
+ <0 RK_PB0 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm1m0_ch1_pins: pwm1m0-ch1-pins {
+ rockchip,pins =
+ /* pwm1m0_ch1 */
+ <0 RK_PB1 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm1m0_ch2_pins: pwm1m0-ch2-pins {
+ rockchip,pins =
+ /* pwm1m0_ch2 */
+ <0 RK_PB2 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm1m0_ch3_pins: pwm1m0-ch3-pins {
+ rockchip,pins =
+ /* pwm1m0_ch3 */
+ <0 RK_PB3 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm1m1_ch0_pins: pwm1m1-ch0-pins {
+ rockchip,pins =
+ /* pwm1m1_ch0 */
+ <2 RK_PA3 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm1m1_ch1_pins: pwm1m1-ch1-pins {
+ rockchip,pins =
+ /* pwm1m1_ch1 */
+ <2 RK_PA4 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm1m1_ch2_pins: pwm1m1-ch2-pins {
+ rockchip,pins =
+ /* pwm1m1_ch2 */
+ <2 RK_PA5 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm1m1_ch3_pins: pwm1m1-ch3-pins {
+ rockchip,pins =
+ /* pwm1m1_ch3 */
+ <2 RK_PB1 3 &pcfg_pull_none_drv_level_0>;
+ };
+ };
+
+ pwm2 {
+ pwm2m0_ch0_pins: pwm2m0-ch0-pins {
+ rockchip,pins =
+ /* pwm2m0_ch0 */
+ <1 RK_PB0 4 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm2m0_ch1_pins: pwm2m0-ch1-pins {
+ rockchip,pins =
+ /* pwm2m0_ch1 */
+ <1 RK_PA7 4 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm2m0_ch2_pins: pwm2m0-ch2-pins {
+ rockchip,pins =
+ /* pwm2m0_ch2 */
+ <1 RK_PB4 4 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm2m0_ch3_pins: pwm2m0-ch3-pins {
+ rockchip,pins =
+ /* pwm2m0_ch3 */
+ <1 RK_PB3 4 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm2m1_ch0_pins: pwm2m1-ch0-pins {
+ rockchip,pins =
+ /* pwm2m1_ch0 */
+ <2 RK_PA6 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm2m1_ch1_pins: pwm2m1-ch1-pins {
+ rockchip,pins =
+ /* pwm2m1_ch1 */
+ <2 RK_PA7 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm2m1_ch2_pins: pwm2m1-ch2-pins {
+ rockchip,pins =
+ /* pwm2m1_ch2 */
+ <2 RK_PB2 3 &pcfg_pull_none_drv_level_0>;
+ };
+ pwm2m1_ch3_pins: pwm2m1-ch3-pins {
+ rockchip,pins =
+ /* pwm2m1_ch3 */
+ <2 RK_PB3 3 &pcfg_pull_none_drv_level_0>;
+ };
+ };
+
+ pwr {
+ pwr_pins: pwr-pins {
+ rockchip,pins =
+ /* pwr_ctrl0 */
+ <0 RK_PA3 1 &pcfg_pull_none>,
+ /* pwr_ctrl1 */
+ <0 RK_PA4 1 &pcfg_pull_none>;
+ };
+ };
+
+ rtc_32k {
+ rtc_32k_pins: rtc-32k-pins {
+ rockchip,pins =
+ /* rtc_32k_out */
+ <0 RK_PA0 1 &pcfg_pull_none>;
+ };
+ };
+
+ sai {
+ sai_pins: sai-pins {
+ rockchip,pins =
+ /* sai_lrck */
+ <2 RK_PB1 5 &pcfg_pull_none>,
+ /* sai_mclk */
+ <2 RK_PB0 5 &pcfg_pull_none>,
+ /* sai_sclk */
+ <2 RK_PA7 5 &pcfg_pull_none>,
+ /* sai_sdi */
+ <2 RK_PA6 5 &pcfg_pull_none>,
+ /* sai_sdo */
+ <2 RK_PB2 5 &pcfg_pull_none>;
+ };
+ };
+
+ sdmmc0 {
+ sdmmc0_bus4_pins: sdmmc0-bus4-pins {
+ rockchip,pins =
+ /* sdmmc0_d0 */
+ <1 RK_PB0 1 &pcfg_pull_up_drv_level_2>,
+ /* sdmmc0_d1 */
+ <1 RK_PA7 1 &pcfg_pull_up_drv_level_2>,
+ /* sdmmc0_d2 */
+ <1 RK_PB4 1 &pcfg_pull_up_drv_level_2>,
+ /* sdmmc0_d3 */
+ <1 RK_PB3 1 &pcfg_pull_up_drv_level_2>;
+ };
+ sdmmc0_clk_pins: sdmmc0-clk-pins {
+ rockchip,pins =
+ /* sdmmc0_clk */
+ <1 RK_PB1 1 &pcfg_pull_up_drv_level_2>;
+ };
+ sdmmc0_cmd_pins: sdmmc0-cmd-pins {
+ rockchip,pins =
+ /* sdmmc0_cmd */
+ <1 RK_PB2 1 &pcfg_pull_up_drv_level_2>;
+ };
+ sdmmc0_det_pins: sdmmc0-det-pins {
+ rockchip,pins =
+ /* sdmmc0_det */
+ <1 RK_PA6 1 &pcfg_pull_up>;
+ };
+ };
+
+ sdmmc1 {
+ sdmmc1_bus4_pins: sdmmc1-bus4-pins {
+ rockchip,pins =
+ /* sdmmc1_d0 */
+ <2 RK_PA1 1 &pcfg_pull_up_drv_level_2>,
+ /* sdmmc1_d1 */
+ <2 RK_PA0 1 &pcfg_pull_up_drv_level_2>,
+ /* sdmmc1_d2 */
+ <2 RK_PA5 1 &pcfg_pull_up_drv_level_2>,
+ /* sdmmc1_d3 */
+ <2 RK_PA4 1 &pcfg_pull_up_drv_level_2>;
+ };
+ sdmmc1_clk_pins: sdmmc1-clk-pins {
+ rockchip,pins =
+ /* sdmmc1_clk */
+ <2 RK_PA2 1 &pcfg_pull_up_drv_level_2>;
+ };
+ sdmmc1_cmd_pins: sdmmc1-cmd-pins {
+ rockchip,pins =
+ /* sdmmc1_cmd */
+ <2 RK_PA3 1 &pcfg_pull_up_drv_level_2>;
+ };
+ };
+
+ sdmmc0_testclk {
+ sdmmc0_testclk_clk_pins: sdmmc0-testclk-clk-pins {
+ rockchip,pins =
+ /* sdmmc0_testclk_out */
+ <1 RK_PA0 3 &pcfg_pull_up_drv_level_2>;
+ };
+ };
+
+ sdmmc0_testdata {
+ sdmmc0_testdata_out_pins: sdmmc0-testdata-out-pins {
+ rockchip,pins =
+ /* sdmmc0_testdata_out */
+ <1 RK_PA3 3 &pcfg_pull_none>;
+ };
+ };
+
+ sdmmc1_testclk {
+ sdmmc1_testclk_clk_pins: sdmmc1-testclk-clk-pins {
+ rockchip,pins =
+ /* sdmmc1_testclk_out */
+ <2 RK_PA6 7 &pcfg_pull_up_drv_level_2>;
+ };
+ };
+
+ sdmmc1_testdata {
+ sdmmc1_testdata_out_pins: sdmmc1-testdata-out-pins {
+ rockchip,pins =
+ /* sdmmc1_testdata_out */
+ <2 RK_PA7 7 &pcfg_pull_none>;
+ };
+ };
+
+ spi0 {
+ spi0m0_clk_pins: spi0m0-clk-pins {
+ rockchip,pins =
+ /* spi0_clk_m0 */
+ <2 RK_PB0 2 &pcfg_pull_none>,
+ /* spi0_miso_m0 */
+ <2 RK_PB3 2 &pcfg_pull_none>,
+ /* spi0_mosi_m0 */
+ <2 RK_PB1 2 &pcfg_pull_none>;
+ };
+ spi0m0_cs0_pins: spi0m0-cs0-pins {
+ rockchip,pins =
+ /* spi0_cs0n_m0 */
+ <2 RK_PB2 2 &pcfg_pull_none>;
+ };
+ spi0m0_cs1_pins: spi0m0-cs1-pins {
+ rockchip,pins =
+ /* spi0_cs1n_m0 */
+ <2 RK_PA7 2 &pcfg_pull_none>;
+ };
+ spi0m1_clk_pins: spi0m1-clk-pins {
+ rockchip,pins =
+ /* spi0_clk_m1 */
+ <2 RK_PA2 5 &pcfg_pull_none>,
+ /* spi0_miso_m1 */
+ <2 RK_PA4 5 &pcfg_pull_none>,
+ /* spi0_mosi_m1 */
+ <2 RK_PA1 5 &pcfg_pull_none>;
+ };
+ spi0m1_cs0_pins: spi0m1-cs0-pins {
+ rockchip,pins =
+ /* spi0_cs0n_m1 */
+ <2 RK_PA3 5 &pcfg_pull_none>;
+ };
+ spi0m1_cs1_pins: spi0m1-cs1-pins {
+ rockchip,pins =
+ /* spi0_cs1n_m1 */
+ <2 RK_PA0 5 &pcfg_pull_none>;
+ };
+ };
+
+ uart0 {
+ uart0m0_xfer_pins: uart0m0-xfer-pins {
+ rockchip,pins =
+ /* uart0_rx_m0 */
+ <0 RK_PA6 1 &pcfg_pull_up>,
+ /* uart0_tx_m0 */
+ <0 RK_PA5 1 &pcfg_pull_up>;
+ };
+ uart0m1_xfer_pins: uart0m1-xfer-pins {
+ rockchip,pins =
+ /* uart0_rx_m1 */
+ <0 RK_PB5 2 &pcfg_pull_up>,
+ /* uart0_tx_m1 */
+ <0 RK_PB4 2 &pcfg_pull_up>;
+ };
+ uart0m2_xfer_pins: uart0m2-xfer-pins {
+ rockchip,pins =
+ /* uart0_rx_m2 */
+ <1 RK_PB3 2 &pcfg_pull_up>,
+ /* uart0_tx_m2 */
+ <1 RK_PB4 2 &pcfg_pull_up>;
+ };
+ };
+
+ uart1 {
+ uart1m0_xfer_pins: uart1m0-xfer-pins {
+ rockchip,pins =
+ /* uart1_rx_m0 */
+ <0 RK_PB2 2 &pcfg_pull_up>,
+ /* uart1_tx_m0 */
+ <0 RK_PB3 2 &pcfg_pull_up>;
+ };
+ uart1m0_ctsn_pins: uart1m0-ctsn-pins {
+ rockchip,pins =
+ /* uart1m0_ctsn */
+ <0 RK_PB5 5 &pcfg_pull_none>;
+ };
+ uart1m0_rtsn_pins: uart1m0-rtsn-pins {
+ rockchip,pins =
+ /* uart1m0_rtsn */
+ <0 RK_PB4 5 &pcfg_pull_none>;
+ };
+ uart1m1_xfer_pins: uart1m1-xfer-pins {
+ rockchip,pins =
+ /* uart1_rx_m1 */
+ <1 RK_PA7 2 &pcfg_pull_up>,
+ /* uart1_tx_m1 */
+ <1 RK_PB0 2 &pcfg_pull_up>;
+ };
+ uart1m1_ctsn_pins: uart1m1-ctsn-pins {
+ rockchip,pins =
+ /* uart1m1_ctsn */
+ <1 RK_PB2 2 &pcfg_pull_none>;
+ };
+ uart1m1_rtsn_pins: uart1m1-rtsn-pins {
+ rockchip,pins =
+ /* uart1m1_rtsn */
+ <1 RK_PB1 2 &pcfg_pull_none>;
+ };
+ uart1m2_xfer_pins: uart1m2-xfer-pins {
+ rockchip,pins =
+ /* uart1_rx_m2 */
+ <2 RK_PA7 1 &pcfg_pull_up>,
+ /* uart1_tx_m2 */
+ <2 RK_PA6 1 &pcfg_pull_up>;
+ };
+ uart1m2_ctsn_pins: uart1m2-ctsn-pins {
+ rockchip,pins =
+ /* uart1m2_ctsn */
+ <2 RK_PA5 2 &pcfg_pull_none>;
+ };
+ uart1m2_rtsn_pins: uart1m2-rtsn-pins {
+ rockchip,pins =
+ /* uart1m2_rtsn */
+ <2 RK_PA4 2 &pcfg_pull_none>;
+ };
+ uart1m3_xfer_pins: uart1m3-xfer-pins {
+ rockchip,pins =
+ /* uart1_rx_m3 */
+ <2 RK_PA3 2 &pcfg_pull_up>,
+ /* uart1_tx_m3 */
+ <2 RK_PA2 2 &pcfg_pull_up>;
+ };
+ uart1m3_ctsn_pins: uart1m3-ctsn-pins {
+ rockchip,pins =
+ /* uart1m3_ctsn */
+ <2 RK_PA1 2 &pcfg_pull_none>;
+ };
+ uart1m3_rtsn_pins: uart1m3-rtsn-pins {
+ rockchip,pins =
+ /* uart1m3_rtsn */
+ <2 RK_PA0 2 &pcfg_pull_none>;
+ };
+ };
+
+ uart2 {
+ uart2m0_xfer_pins: uart2m0-xfer-pins {
+ rockchip,pins =
+ /* uart2_rx_m0 */
+ <0 RK_PB1 2 &pcfg_pull_up>,
+ /* uart2_tx_m0 */
+ <0 RK_PB0 2 &pcfg_pull_up>;
+ };
+ uart2m0_ctsn_pins: uart2m0-ctsn-pins {
+ rockchip,pins =
+ /* uart2m0_ctsn */
+ <0 RK_PB3 5 &pcfg_pull_none>;
+ };
+ uart2m0_rtsn_pins: uart2m0-rtsn-pins {
+ rockchip,pins =
+ /* uart2m0_rtsn */
+ <0 RK_PB2 5 &pcfg_pull_none>;
+ };
+ uart2m1_xfer_pins: uart2m1-xfer-pins {
+ rockchip,pins =
+ /* uart2_rx_m1 */
+ <2 RK_PB1 1 &pcfg_pull_up>,
+ /* uart2_tx_m1 */
+ <2 RK_PB0 1 &pcfg_pull_up>;
+ };
+ uart2m1_ctsn_pins: uart2m1-ctsn-pins {
+ rockchip,pins =
+ /* uart2m1_ctsn */
+ <2 RK_PB3 1 &pcfg_pull_none>;
+ };
+ uart2m1_rtsn_pins: uart2m1-rtsn-pins {
+ rockchip,pins =
+ /* uart2m1_rtsn */
+ <2 RK_PB2 1 &pcfg_pull_none>;
+ };
+ uart2m2_xfer_pins: uart2m2-xfer-pins {
+ rockchip,pins =
+ /* uart2_rx_m2 */
+ <1 RK_PB6 3 &pcfg_pull_up>,
+ /* uart2_tx_m2 */
+ <1 RK_PB5 3 &pcfg_pull_up>;
+ };
+ uart2m2_ctsn_pins: uart2m2-ctsn-pins {
+ rockchip,pins =
+ /* uart2m2_ctsn */
+ <1 RK_PC0 3 &pcfg_pull_none>;
+ };
+ uart2m2_rtsn_pins: uart2m2-rtsn-pins {
+ rockchip,pins =
+ /* uart2m2_rtsn */
+ <1 RK_PB7 3 &pcfg_pull_none>;
+ };
+ };
+};
+
+&pinctrl {
+ sdmmc0 {
+ sdmmc0_clk_idle_pins: sdmmc0-clk-idle-pins {
+ rockchip,pins =
+ /* sdmmc0_clk */
+ <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ sdmmc0_cmd_idle_pins: sdmmc0-cmd-idle-pins {
+ rockchip,pins =
+ /* sdmmc0_cmd */
+ <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ sdmmc0_bus1_pins: sdmmc0-bus1-pins {
+ rockchip,pins =
+ /* sdmmc0_d0 */
+ <1 RK_PB0 1 &pcfg_pull_up_drv_level_2>;
+ };
+ sdmmc0_bus1_idle_pins: sdmmc0-bus1-idle-pins {
+ rockchip,pins =
+ /* sdmmc0_d0 */
+ <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ sdmmc0_bus4_idle_pins: sdmmc0-bus4-idle-pins {
+ rockchip,pins =
+ /* sdmmc0_d0 */
+ <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>,
+ /* sdmmc0_d1 */
+ <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>,
+ /* sdmmc0_d2 */
+ <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>,
+ /* sdmmc0_d3 */
+ <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ };
+
+ sdmmc1 {
+ sdmmc1_bus1_pins: sdmmc1-bus1-pins {
+ rockchip,pins =
+ /* sdmmc1_d0 */
+ <2 RK_PA1 1 &pcfg_pull_up_drv_level_2>;
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/rockchip/rv1103b.dtsi b/arch/arm/boot/dts/rockchip/rv1103b.dtsi
new file mode 100644
index 000000000000..380637b63ef5
--- /dev/null
+++ b/arch/arm/boot/dts/rockchip/rv1103b.dtsi
@@ -0,0 +1,266 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
+ */
+
+#include <dt-bindings/clock/rockchip,rv1103b-cru.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ compatible = "rockchip,rv1103b";
+
+ interrupt-parent = <&gic>;
+
+ arm-pmu {
+ compatible = "arm,cortex-a7-pmu";
+ interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-affinity = <&cpu0>;
+ };
+
+ xin32k: oscillator-32k {
+ compatible = "fixed-clock";
+ clock-frequency = <32768>;
+ clock-output-names = "xin32k";
+ #clock-cells = <0>;
+ };
+
+ xin24m: oscillator-24m {
+ compatible = "fixed-clock";
+ clock-frequency = <24000000>;
+ clock-output-names = "xin24m";
+ #clock-cells = <0>;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu0: cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0x0>;
+ clocks = <&cru ARMCLK>;
+ };
+ };
+
+ timer {
+ compatible = "arm,armv7-timer";
+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+ clock-frequency = <24000000>;
+ };
+
+ cru: clock-controller@20000000 {
+ compatible = "rockchip,rv1103b-cru";
+ reg = <0x20000000 0x81000>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+
+ assigned-clocks = <&cru PLL_GPLL>, <&cru CLK_GPLL_DIV12>;
+ assigned-clock-rates = <1188000000>, <100000000>;
+ };
+
+ /*
+ * Merge all GRF, each independent GRF offset is shown as bellow:
+ * VEPU_GRF: 0x20100000
+ * NPU_GRF: 0x20110000
+ * VI_GRF: 0x20120000
+ * CPU_GRF: 0x20130000
+ * DDR_GRF: 0x20140000
+ * SYS_GRF: 0x20150000
+ * PMU_GRF: 0x20160000
+ */
+ grf: syscon@20100000 {
+ compatible = "rockchip,rv1103b-grf", "syscon", "simple-mfd";
+ reg = <0x20100000 0x61000>;
+
+ reboot_mode: reboot-mode {
+ compatible = "syscon-reboot-mode";
+ offset = <0x60200>;
+ };
+ };
+
+ ioc: syscon@20170000 {
+ compatible = "rockchip,rv1103b-ioc", "syscon";
+ reg = <0x20170000 0x60000>;
+ };
+
+ gic: interrupt-controller@20411000 {
+ compatible = "arm,gic-400";
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ #address-cells = <0>;
+
+ reg = <0x20411000 0x1000>,
+ <0x20412000 0x2000>,
+ <0x20414000 0x2000>,
+ <0x20416000 0x2000>;
+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+ };
+
+ uart0: serial@20540000 {
+ compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
+ reg = <0x20540000 0x100>;
+ interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clock-frequency = <24000000>;
+ clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
+ clock-names = "baudclk", "apb_pclk";
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0m0_xfer_pins>;
+ status = "disabled";
+ };
+
+ sdmmc1: mmc@20650000 {
+ compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
+ reg = <0x20650000 0x4000>;
+ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru HCLK_SDMMC1>, <&cru CCLK_SDMMC1>;
+ clock-names = "biu", "ciu";
+ fifo-depth = <0x100>;
+ max-frequency = <150000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc1_clk_pins &sdmmc1_cmd_pins &sdmmc1_bus4_pins>;
+ status = "disabled";
+ };
+
+ uart1: serial@20870000 {
+ compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
+ reg = <0x20870000 0x100>;
+ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clock-frequency = <24000000>;
+ clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
+ clock-names = "baudclk", "apb_pclk";
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart1m0_xfer_pins>;
+ status = "disabled";
+ };
+
+ uart2: serial@20880000 {
+ compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
+ reg = <0x20880000 0x100>;
+ interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ clock-frequency = <24000000>;
+ clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
+ clock-names = "baudclk", "apb_pclk";
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2m0_xfer_pins>;
+ status = "disabled";
+ };
+
+ wdt: watchdog@208d0000 {
+ compatible = "snps,dw-wdt";
+ reg = <0x208d0000 0x100>;
+ clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
+ clock-names = "tclk", "pclk";
+ interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
+ };
+
+ sdmmc0: mmc@20d20000 {
+ compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
+ reg = <0x20d20000 0x4000>;
+ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru HCLK_SDMMC0>, <&cru CCLK_SDMMC0>;
+ clock-names = "biu", "ciu";
+ fifo-depth = <0x100>;
+ max-frequency = <150000000>;
+ pinctrl-names = "normal", "idle";
+ pinctrl-0 = <&sdmmc0_det_pins
+ &sdmmc0_clk_pins
+ &sdmmc0_cmd_pins
+ &sdmmc0_bus4_pins>;
+ pinctrl-1 = <&sdmmc0_det_pins
+ &sdmmc0_clk_idle_pins
+ &sdmmc0_cmd_idle_pins
+ &sdmmc0_bus4_idle_pins>;
+ status = "disabled";
+ };
+
+ emmc: mmc@20d30000 {
+ compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
+ reg = <0x20d30000 0x4000>;
+ interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru HCLK_EMMC>, <&cru CCLK_EMMC>;
+ clock-names = "biu", "ciu";
+ fifo-depth = <0x100>;
+ max-frequency = <150000000>;
+ status = "disabled";
+ };
+
+ fspi0: spi@20d40000 {
+ compatible = "rockchip,sfc";
+ reg = <0x20d40000 0x4000>;
+ interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru SCLK_SFC_2X>, <&cru HCLK_SFC>;
+ clock-names = "clk_sfc", "hclk_sfc";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ system_sram: sram@210f6000 {
+ compatible = "mmio-sram";
+ reg = <0x210f6000 0x8000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0 0x210f6000 0x8000>;
+ };
+
+ pinctrl: pinctrl {
+ compatible = "rockchip,rv1103b-pinctrl";
+ rockchip,grf = <&ioc>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ gpio0: gpio@20520000 {
+ compatible = "rockchip,gpio-bank";
+ reg = <0x20520000 0x200>;
+ interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru PCLK_PMU_GPIO0>, <&cru DBCLK_PMU_GPIO0>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl 0 0 32>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ gpio1: gpio@20d80000 {
+ compatible = "rockchip,gpio-bank";
+ reg = <0x20d80000 0x200>;
+ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl 0 32 32>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ gpio2: gpio@20840000 {
+ compatible = "rockchip,gpio-bank";
+ reg = <0x20840000 0x200>;
+ interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pinctrl 0 64 32>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+ };
+};
+
+#include "rv1103b-pinctrl.dtsi"
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 3/4] dt-bindings: arm: rockchip: Add Onion RV1103B Omega4
2026-02-07 13:18 [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles Fabio Estevam
2026-02-07 13:18 ` [PATCH v2 2/4] ARM: dts: rockchip: Add support for RV1103B Fabio Estevam
@ 2026-02-07 13:18 ` Fabio Estevam
2026-02-08 13:52 ` Krzysztof Kozlowski
2026-02-07 13:18 ` [PATCH v2 4/4] ARM: dts: " Fabio Estevam
2026-02-08 13:52 ` [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles Krzysztof Kozlowski
3 siblings, 1 reply; 10+ messages in thread
From: Fabio Estevam @ 2026-02-07 13:18 UTC (permalink / raw)
To: heiko
Cc: jonas, robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
From: Fabio Estevam <festevam@nabladev.com>
Onion Omega4 board is a board based on the RV1103B SoC.
Document its compatible.
Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- Fixed sorting.
Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
index d496421dbd87..2d90df71475b 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.yaml
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
@@ -802,6 +802,11 @@ properties:
- const: netxeon,r89
- const: rockchip,rk3288
+ - description: Onion RV1103B Omega4 board
+ items:
+ - const: onion,rv1103b-omega4
+ - const: rockchip,rv1103b
+
- description: OPEN AI LAB EAIDK-610
items:
- const: openailab,eaidk-610
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 4/4] ARM: dts: rockchip: Add Onion RV1103B Omega4
2026-02-07 13:18 [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles Fabio Estevam
2026-02-07 13:18 ` [PATCH v2 2/4] ARM: dts: rockchip: Add support for RV1103B Fabio Estevam
2026-02-07 13:18 ` [PATCH v2 3/4] dt-bindings: arm: rockchip: Add Onion RV1103B Omega4 Fabio Estevam
@ 2026-02-07 13:18 ` Fabio Estevam
2026-02-08 22:14 ` Jonas Karlman
2026-02-08 13:52 ` [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles Krzysztof Kozlowski
3 siblings, 1 reply; 10+ messages in thread
From: Fabio Estevam @ 2026-02-07 13:18 UTC (permalink / raw)
To: heiko
Cc: jonas, robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
From: Fabio Estevam <festevam@nabladev.com>
Onion Omega4 board is a board based on the RV1103B SoC that has:
- 256 MB of RAM
- 256 MB of SPI-NAND
- Ethernet
- USB OTG
- Wifi
- SD card
- Camera connector
Add the initial support for this board so that it can fully boot into
Linux with the root file system stored in the SPI NAND.
Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- Removed memory node.
- Added serial0 alias and used stdout-path = "serial0:115200n8";
- Added color, function and pinctrl entries to the LED node.
- Used bootph-pre-ram and bootph-some-ram.
arch/arm/boot/dts/rockchip/Makefile | 1 +
arch/arm/boot/dts/rockchip/rv1103b-omega4.dts | 106 ++++++++++++++++++
2 files changed, 107 insertions(+)
create mode 100644 arch/arm/boot/dts/rockchip/rv1103b-omega4.dts
diff --git a/arch/arm/boot/dts/rockchip/Makefile b/arch/arm/boot/dts/rockchip/Makefile
index 716f5540e438..d8cd5df138cc 100644
--- a/arch/arm/boot/dts/rockchip/Makefile
+++ b/arch/arm/boot/dts/rockchip/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_ROCKCHIP) += \
+ rv1103b-omega4.dtb \
rv1108-elgin-r1.dtb \
rv1108-evb.dtb \
rv1109-relfor-saib.dtb \
diff --git a/arch/arm/boot/dts/rockchip/rv1103b-omega4.dts b/arch/arm/boot/dts/rockchip/rv1103b-omega4.dts
new file mode 100644
index 000000000000..bcfc9b321dd6
--- /dev/null
+++ b/arch/arm/boot/dts/rockchip/rv1103b-omega4.dts
@@ -0,0 +1,106 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2025 plan44.ch/luz
+ * Copyright (c) 2025 Onion Corporation
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include "rv1103b.dtsi"
+
+/ {
+ model = "Onion RV1103 Omega4 Board";
+ compatible = "onion,rv1103b-omega4", "rockchip,rv1103b";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pin>;
+ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_BLUE>;
+ label = "sys";
+ default-state = "on";
+ };
+ };
+};
+
+&fspi0 {
+ status = "okay";
+
+ flash@0 {
+ compatible = "spi-nand";
+ reg = <0>;
+ bootph-pre-ram;
+ bootph-some-ram;
+ spi-max-frequency = <75000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "env";
+ reg = <0x00000000 0x00040000>;
+ };
+
+ partition@40000 {
+ label = "idblock";
+ reg = <0x00040000 0x00100000>;
+ read-only;
+ };
+
+ partition@140000 {
+ label = "uboot";
+ reg = <0x00140000 0x00100000>;
+ read-only;
+ };
+
+ partition@240000 {
+ label = "boot";
+ reg = <0x00240000 0x00800000>;
+ };
+
+ partition@a40000 {
+ label = "ubi";
+ reg = <0x00a40000 0x0f5c0000>;
+ };
+ };
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0m0_xfer_pins>;
+ bootph-all;
+ status = "okay";
+};
+
+&wdt {
+ bootph-all;
+ status = "okay";
+};
+
+&pinctrl {
+ leds {
+ led_pin: led-pin {
+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles
2026-02-07 13:18 [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles Fabio Estevam
` (2 preceding siblings ...)
2026-02-07 13:18 ` [PATCH v2 4/4] ARM: dts: " Fabio Estevam
@ 2026-02-08 13:52 ` Krzysztof Kozlowski
3 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-08 13:52 UTC (permalink / raw)
To: Fabio Estevam
Cc: heiko, jonas, robh, krzk+dt, conor+dt, devicetree,
linux-arm-kernel, linux-rockchip, Fabio Estevam
On Sat, Feb 07, 2026 at 10:18:00AM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@nabladev.com>
>
> Add the GRF and IOC compatible strings for the RV1103B SoC.
>
> Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> ---
> Changes since v1:
> - Update to the list of children.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/4] dt-bindings: arm: rockchip: Add Onion RV1103B Omega4
2026-02-07 13:18 ` [PATCH v2 3/4] dt-bindings: arm: rockchip: Add Onion RV1103B Omega4 Fabio Estevam
@ 2026-02-08 13:52 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-08 13:52 UTC (permalink / raw)
To: Fabio Estevam
Cc: heiko, jonas, robh, krzk+dt, conor+dt, devicetree,
linux-arm-kernel, linux-rockchip, Fabio Estevam
On Sat, Feb 07, 2026 at 10:18:02AM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@nabladev.com>
>
> Onion Omega4 board is a board based on the RV1103B SoC.
>
> Document its compatible.
>
> Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> ---
> Changes since v1:
> - Fixed sorting.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 4/4] ARM: dts: rockchip: Add Onion RV1103B Omega4
2026-02-07 13:18 ` [PATCH v2 4/4] ARM: dts: " Fabio Estevam
@ 2026-02-08 22:14 ` Jonas Karlman
2026-02-08 22:20 ` Fabio Estevam
0 siblings, 1 reply; 10+ messages in thread
From: Jonas Karlman @ 2026-02-08 22:14 UTC (permalink / raw)
To: Fabio Estevam
Cc: heiko, robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
Hi Fabio,
On 2/7/2026 2:18 PM, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@nabladev.com>
>
> Onion Omega4 board is a board based on the RV1103B SoC that has:
>
> - 256 MB of RAM
> - 256 MB of SPI-NAND
> - Ethernet
> - USB OTG
> - Wifi
> - SD card
> - Camera connector
>
> Add the initial support for this board so that it can fully boot into
> Linux with the root file system stored in the SPI NAND.
>
> Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> ---
> Changes since v1:
> - Removed memory node.
> - Added serial0 alias and used stdout-path = "serial0:115200n8";
> - Added color, function and pinctrl entries to the LED node.
> - Used bootph-pre-ram and bootph-some-ram.
>
> arch/arm/boot/dts/rockchip/Makefile | 1 +
> arch/arm/boot/dts/rockchip/rv1103b-omega4.dts | 106 ++++++++++++++++++
> 2 files changed, 107 insertions(+)
> create mode 100644 arch/arm/boot/dts/rockchip/rv1103b-omega4.dts
>
> diff --git a/arch/arm/boot/dts/rockchip/Makefile b/arch/arm/boot/dts/rockchip/Makefile
> index 716f5540e438..d8cd5df138cc 100644
> --- a/arch/arm/boot/dts/rockchip/Makefile
> +++ b/arch/arm/boot/dts/rockchip/Makefile
> @@ -1,5 +1,6 @@
> # SPDX-License-Identifier: GPL-2.0
> dtb-$(CONFIG_ARCH_ROCKCHIP) += \
> + rv1103b-omega4.dtb \
> rv1108-elgin-r1.dtb \
> rv1108-evb.dtb \
> rv1109-relfor-saib.dtb \
> diff --git a/arch/arm/boot/dts/rockchip/rv1103b-omega4.dts b/arch/arm/boot/dts/rockchip/rv1103b-omega4.dts
> new file mode 100644
> index 000000000000..bcfc9b321dd6
> --- /dev/null
> +++ b/arch/arm/boot/dts/rockchip/rv1103b-omega4.dts
> @@ -0,0 +1,106 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
> + * Copyright (c) 2025 plan44.ch/luz
> + * Copyright (c) 2025 Onion Corporation
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/leds/common.h>
> +#include "rv1103b.dtsi"
> +
> +/ {
> + model = "Onion RV1103 Omega4 Board";
> + compatible = "onion,rv1103b-omega4", "rockchip,rv1103b";
Am I correct in that this is the Omega-4 Evaluation Board (EVB) [1] and
that the Omega-4 is a System-on-Module?
The model should probably not mention the RV1103, as this is a RV1103B
board. I also think this probably should be split up into a SOM dtsi and
a board dts similar to how other Rockchip SOM boards are handled, e.g.
model = "Onion Omega-4 Evaluation Board";
compatible = "onion,omega4-evb", "onion,omega4", "rockchip,rv1103b";
and split into rv1103b-omega4.dtsi and rv1103b-omega4-evb.dts or similar?
[1] https://documentation.onioniot.com/omega4/getting-started/
Regards,
Jonas
> +
> + aliases {
> + serial0 = &uart0;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + led-0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&led_pin>;
> + gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
> + function = LED_FUNCTION_STATUS;
> + color = <LED_COLOR_ID_BLUE>;
> + label = "sys";
> + default-state = "on";
> + };
> + };
> +};
> +
> +&fspi0 {
> + status = "okay";
> +
> + flash@0 {
> + compatible = "spi-nand";
> + reg = <0>;
> + bootph-pre-ram;
> + bootph-some-ram;
> + spi-max-frequency = <75000000>;
> + spi-rx-bus-width = <4>;
> + spi-tx-bus-width = <1>;
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + partition@0 {
> + label = "env";
> + reg = <0x00000000 0x00040000>;
> + };
> +
> + partition@40000 {
> + label = "idblock";
> + reg = <0x00040000 0x00100000>;
> + read-only;
> + };
> +
> + partition@140000 {
> + label = "uboot";
> + reg = <0x00140000 0x00100000>;
> + read-only;
> + };
> +
> + partition@240000 {
> + label = "boot";
> + reg = <0x00240000 0x00800000>;
> + };
> +
> + partition@a40000 {
> + label = "ubi";
> + reg = <0x00a40000 0x0f5c0000>;
> + };
> + };
> + };
> +};
> +
> +&uart0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart0m0_xfer_pins>;
> + bootph-all;
> + status = "okay";
> +};
> +
> +&wdt {
> + bootph-all;
> + status = "okay";
> +};
> +
> +&pinctrl {
> + leds {
> + led_pin: led-pin {
> + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +};
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 4/4] ARM: dts: rockchip: Add Onion RV1103B Omega4
2026-02-08 22:14 ` Jonas Karlman
@ 2026-02-08 22:20 ` Fabio Estevam
2026-02-08 22:34 ` Fabio Estevam
0 siblings, 1 reply; 10+ messages in thread
From: Fabio Estevam @ 2026-02-08 22:20 UTC (permalink / raw)
To: Jonas Karlman
Cc: heiko, robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
Hi Jonas,
On Sun, Feb 8, 2026 at 7:15 PM Jonas Karlman <jonas@kwiboo.se> wrote:
> Am I correct in that this is the Omega-4 Evaluation Board (EVB) [1] and
> that the Omega-4 is a System-on-Module?
No SoM is used on the Omega4 board.
Thanks for the review!
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 4/4] ARM: dts: rockchip: Add Onion RV1103B Omega4
2026-02-08 22:20 ` Fabio Estevam
@ 2026-02-08 22:34 ` Fabio Estevam
0 siblings, 0 replies; 10+ messages in thread
From: Fabio Estevam @ 2026-02-08 22:34 UTC (permalink / raw)
To: Jonas Karlman
Cc: heiko, robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
Hi Jonas,
On Sun, Feb 8, 2026 at 7:20 PM Fabio Estevam <festevam@gmail.com> wrote:
>
> Hi Jonas,
>
> On Sun, Feb 8, 2026 at 7:15 PM Jonas Karlman <jonas@kwiboo.se> wrote:
>
> > Am I correct in that this is the Omega-4 Evaluation Board (EVB) [1] and
> > that the Omega-4 is a System-on-Module?
>
> No SoM is used on the Omega4 board.
Ah, I thought it was a SiP, but documentation says SoM, so I wil do
the splt as you suggested.
Thanks,
Fabio Estevam
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/4] ARM: dts: rockchip: Add support for RV1103B
2026-02-07 13:18 ` [PATCH v2 2/4] ARM: dts: rockchip: Add support for RV1103B Fabio Estevam
@ 2026-02-08 22:49 ` Jonas Karlman
0 siblings, 0 replies; 10+ messages in thread
From: Jonas Karlman @ 2026-02-08 22:49 UTC (permalink / raw)
To: Fabio Estevam
Cc: heiko, robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
Hi Fabio,
On 2/7/2026 2:18 PM, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@nabladev.com>
>
> Add the initial RV1103B devicetree.
>
> Based on the 5.10 Rockchip vendor kernel driver.
>
> Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> ---
> Changes since v1:
> - None.
>
> .../boot/dts/rockchip/rv1103b-pinctrl.dtsi | 831 ++++++++++++++++++
> arch/arm/boot/dts/rockchip/rv1103b.dtsi | 266 ++++++
> 2 files changed, 1097 insertions(+)
> create mode 100644 arch/arm/boot/dts/rockchip/rv1103b-pinctrl.dtsi
> create mode 100644 arch/arm/boot/dts/rockchip/rv1103b.dtsi
>
> diff --git a/arch/arm/boot/dts/rockchip/rv1103b-pinctrl.dtsi b/arch/arm/boot/dts/rockchip/rv1103b-pinctrl.dtsi
> new file mode 100644
> index 000000000000..bc4d8fcdfaf7
> --- /dev/null
> +++ b/arch/arm/boot/dts/rockchip/rv1103b-pinctrl.dtsi
> @@ -0,0 +1,831 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
> + */
> +
> +#include <dt-bindings/pinctrl/rockchip.h>
> +#include <arm64/rockchip/rockchip-pinconf.dtsi>
> +
> +/*
> + * This file is auto generated by pin2dts tool, please keep these code
> + * by adding changes at end of this file.
> + */
> +&pinctrl {
> + cam_clk0 {
This is missing omit-if-no-ref, please add for all:
/omit-if-no-ref/
> + cam_clk0_pins: cam-clk0-pins {
> + rockchip,pins =
> + /* cam_clk0_out */
> + <1 RK_PB5 1 &pcfg_pull_none>;
> + };
> + };
> +
> + cam_clk1 {
> + cam_clk1_pins: cam-clk1-pins {
> + rockchip,pins =
> + /* cam_clk1_out */
> + <1 RK_PB6 1 &pcfg_pull_none>;
> + };
> + };
> +
> + cam_spi {
> + cam_spi_bus4_pins: cam-spi-bus4-pins {
> + rockchip,pins =
> + /* cam_spi_d0 */
> + <0 RK_PB5 4 &pcfg_pull_up_drv_level_2>,
> + /* cam_spi_d1 */
> + <0 RK_PB2 4 &pcfg_pull_up_drv_level_2>,
> + /* cam_spi_d2 */
> + <0 RK_PB1 4 &pcfg_pull_up_drv_level_2>,
> + /* cam_spi_d3 */
> + <0 RK_PB0 4 &pcfg_pull_up_drv_level_2>;
> + };
> + cam_spi_clk_pins: cam-spi-clk-pins {
> + rockchip,pins =
> + /* cam_spi_clk */
> + <0 RK_PB4 4 &pcfg_pull_none>;
> + };
> + cam_spi_cs0n_pins: cam-spi-cs0n-pins {
> + rockchip,pins =
> + /* cam_spi_cs0n */
> + <0 RK_PB3 4 &pcfg_pull_none>;
> + };
> + };
> +
> + clk {
> + clk_32k_pins: clk-32k-pins {
> + rockchip,pins =
> + /* clk_32k */
> + <0 RK_PA0 2 &pcfg_pull_none>;
> + };
> + };
> +
> + clk_24m {
> + clk_24m_out_pins: clk-24m-out-pins {
> + rockchip,pins =
> + /* clk_24m_out */
> + <0 RK_PA0 3 &pcfg_pull_none>;
> + };
> + };
> +
> + cpu {
> + cpu_pins: cpu-pins {
> + rockchip,pins =
> + /* cpu_avs */
> + <0 RK_PA1 2 &pcfg_pull_none>;
> + };
> + };
> +
> + emmc {
> + emmc_bus4_pins: emmc-bus4-pins {
> + rockchip,pins =
> + /* emmc_d0 */
> + <1 RK_PA1 1 &pcfg_pull_up_drv_level_2>,
> + /* emmc_d1 */
> + <1 RK_PA2 1 &pcfg_pull_up_drv_level_2>,
> + /* emmc_d2 */
> + <1 RK_PA3 1 &pcfg_pull_up_drv_level_2>,
> + /* emmc_d3 */
> + <1 RK_PA0 1 &pcfg_pull_up_drv_level_2>;
> + };
> + emmc_clk_pins: emmc-clk-pins {
> + rockchip,pins =
> + /* emmc_clk */
> + <1 RK_PA4 1 &pcfg_pull_up_drv_level_2>;
> + };
> + emmc_cmd_pins: emmc-cmd-pins {
> + rockchip,pins =
> + /* emmc_cmd */
> + <1 RK_PA5 1 &pcfg_pull_up_drv_level_2>;
> + };
The _pins suffix seem reduntant, at least where there is only a single
pin in the group?
> + };
> +
> + emmc_testclk {
> + emmc_testclk_clk_pins: emmc-testclk-clk-pins {
> + rockchip,pins =
> + /* emmc_testclk_out */
> + <1 RK_PA7 3 &pcfg_pull_up_drv_level_2>;
> + };
> + };
> +
> + emmc_testdata {
> + emmc_testdata_out_pins: emmc-testdata-out-pins {
> + rockchip,pins =
> + /* emmc_testdata_out */
> + <1 RK_PB0 3 &pcfg_pull_none>;
> + };
> + };
[snip]
> diff --git a/arch/arm/boot/dts/rockchip/rv1103b.dtsi b/arch/arm/boot/dts/rockchip/rv1103b.dtsi
> new file mode 100644
> index 000000000000..380637b63ef5
> --- /dev/null
> +++ b/arch/arm/boot/dts/rockchip/rv1103b.dtsi
> @@ -0,0 +1,266 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
> + */
> +
> +#include <dt-bindings/clock/rockchip,rv1103b-cru.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/pinctrl/rockchip.h>
> +
> +/ {
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + compatible = "rockchip,rv1103b";
> +
> + interrupt-parent = <&gic>;
> +
> + arm-pmu {
> + compatible = "arm,cortex-a7-pmu";
> + interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-affinity = <&cpu0>;
> + };
> +
> + xin32k: oscillator-32k {
> + compatible = "fixed-clock";
> + clock-frequency = <32768>;
> + clock-output-names = "xin32k";
> + #clock-cells = <0>;
> + };
> +
> + xin24m: oscillator-24m {
> + compatible = "fixed-clock";
> + clock-frequency = <24000000>;
> + clock-output-names = "xin24m";
> + #clock-cells = <0>;
> + };
> +
> + cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a7";
> + reg = <0x0>;
> + clocks = <&cru ARMCLK>;
> + };
> + };
> +
> + timer {
> + compatible = "arm,armv7-timer";
> + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
> + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
> + clock-frequency = <24000000>;
> + };
> +
> + cru: clock-controller@20000000 {
> + compatible = "rockchip,rv1103b-cru";
> + reg = <0x20000000 0x81000>;
> + #clock-cells = <1>;
> + #reset-cells = <1>;
> +
> + assigned-clocks = <&cru PLL_GPLL>, <&cru CLK_GPLL_DIV12>;
> + assigned-clock-rates = <1188000000>, <100000000>;
> + };
This and all other MIMO nodes should be places inside a /soc node,
please see other recent Rockchip SoCs, like RK3576, RK3528 and RK3562.
> + /*
> + * Merge all GRF, each independent GRF offset is shown as bellow:
> + * VEPU_GRF: 0x20100000
> + * NPU_GRF: 0x20110000
> + * VI_GRF: 0x20120000
> + * CPU_GRF: 0x20130000
> + * DDR_GRF: 0x20140000
> + * SYS_GRF: 0x20150000
> + * PMU_GRF: 0x20160000
This merge is something we have avoided for other Rockchip SoCs and is
something downstream mostly have done to simplify software not to
accurately represent the hw.
Please split the GRFs like has been done on other recent Rockchip SoCs.
> + */
> + grf: syscon@20100000 {
> + compatible = "rockchip,rv1103b-grf", "syscon", "simple-mfd";
> + reg = <0x20100000 0x61000>;
> +
> + reboot_mode: reboot-mode {
> + compatible = "syscon-reboot-mode";
> + offset = <0x60200>;
> + };
> + };
> +
> + ioc: syscon@20170000 {
> + compatible = "rockchip,rv1103b-ioc", "syscon";
> + reg = <0x20170000 0x60000>;
> + };
> +
> + gic: interrupt-controller@20411000 {
> + compatible = "arm,gic-400";
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + #address-cells = <0>;
> +
> + reg = <0x20411000 0x1000>,
> + <0x20412000 0x2000>,
> + <0x20414000 0x2000>,
> + <0x20416000 0x2000>;
> + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
> + };
> +
> + uart0: serial@20540000 {
> + compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
> + reg = <0x20540000 0x100>;
> + interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <24000000>;
Any reason to define the clock rate here, the clock already report this
rate?
> + clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
> + clock-names = "baudclk", "apb_pclk";
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart0m0_xfer_pins>;
> + status = "disabled";
> + };
> +
> + sdmmc1: mmc@20650000 {
> + compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
> + reg = <0x20650000 0x4000>;
> + interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru HCLK_SDMMC1>, <&cru CCLK_SDMMC1>;
> + clock-names = "biu", "ciu";
> + fifo-depth = <0x100>;
> + max-frequency = <150000000>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc1_clk_pins &sdmmc1_cmd_pins &sdmmc1_bus4_pins>;
> + status = "disabled";
> + };
> +
> + uart1: serial@20870000 {
> + compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
> + reg = <0x20870000 0x100>;
> + interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <24000000>;
> + clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
> + clock-names = "baudclk", "apb_pclk";
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart1m0_xfer_pins>;
> + status = "disabled";
> + };
> +
> + uart2: serial@20880000 {
> + compatible = "rockchip,rv1103b-uart", "snps,dw-apb-uart";
> + reg = <0x20880000 0x100>;
> + interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <24000000>;
> + clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
> + clock-names = "baudclk", "apb_pclk";
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart2m0_xfer_pins>;
> + status = "disabled";
> + };
> +
> + wdt: watchdog@208d0000 {
> + compatible = "snps,dw-wdt";
> + reg = <0x208d0000 0x100>;
> + clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
> + clock-names = "tclk", "pclk";
> + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + sdmmc0: mmc@20d20000 {
> + compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
> + reg = <0x20d20000 0x4000>;
> + interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru HCLK_SDMMC0>, <&cru CCLK_SDMMC0>;
> + clock-names = "biu", "ciu";
> + fifo-depth = <0x100>;
> + max-frequency = <150000000>;
> + pinctrl-names = "normal", "idle";
What is "normal" and "idle" and how are they used, something downstream
specific? Should probably just be "default".
> + pinctrl-0 = <&sdmmc0_det_pins
> + &sdmmc0_clk_pins
> + &sdmmc0_cmd_pins
> + &sdmmc0_bus4_pins>;
> + pinctrl-1 = <&sdmmc0_det_pins
> + &sdmmc0_clk_idle_pins
> + &sdmmc0_cmd_idle_pins
> + &sdmmc0_bus4_idle_pins>;
> + status = "disabled";
> + };
> +
> + emmc: mmc@20d30000 {
> + compatible = "rockchip,rv1103b-dw-mshc", "rockchip,rk3288-dw-mshc";
> + reg = <0x20d30000 0x4000>;
> + interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru HCLK_EMMC>, <&cru CCLK_EMMC>;
> + clock-names = "biu", "ciu";
> + fifo-depth = <0x100>;
> + max-frequency = <150000000>;
This seem to be missing the default pinctrl, any reason they are?
> + status = "disabled";
> + };
> +
> + fspi0: spi@20d40000 {
> + compatible = "rockchip,sfc";
> + reg = <0x20d40000 0x4000>;
> + interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru SCLK_SFC_2X>, <&cru HCLK_SFC>;
> + clock-names = "clk_sfc", "hclk_sfc";
> + #address-cells = <1>;
> + #size-cells = <0>;
Same here.
> + status = "disabled";
> + };
> +
> + system_sram: sram@210f6000 {
> + compatible = "mmio-sram";
> + reg = <0x210f6000 0x8000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0 0x210f6000 0x8000>;
> + };
> +
> + pinctrl: pinctrl {
> + compatible = "rockchip,rv1103b-pinctrl";
> + rockchip,grf = <&ioc>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + gpio0: gpio@20520000 {
> + compatible = "rockchip,gpio-bank";
> + reg = <0x20520000 0x200>;
> + interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru PCLK_PMU_GPIO0>, <&cru DBCLK_PMU_GPIO0>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-ranges = <&pinctrl 0 0 32>;
Looking at the datasheet and code for rv1103b/rv1106b there does not
seem to be full use of the 32 pins, and only up to 14 pins are routed?
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpio1: gpio@20d80000 {
> + compatible = "rockchip,gpio-bank";
> + reg = <0x20d80000 0x200>;
> + interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-ranges = <&pinctrl 0 32 32>;
Similar here, only up to pin 29 is routed?
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + gpio2: gpio@20840000 {
> + compatible = "rockchip,gpio-bank";
> + reg = <0x20840000 0x200>;
> + interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-ranges = <&pinctrl 0 64 32>;
And here only up to 16 pins.
I would recommend you drop the gpio-ranges for now until this has been
cleared up.
Regards,
Jonas
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> + };
> +};
> +
> +#include "rv1103b-pinctrl.dtsi"
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-02-08 22:50 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-07 13:18 [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles Fabio Estevam
2026-02-07 13:18 ` [PATCH v2 2/4] ARM: dts: rockchip: Add support for RV1103B Fabio Estevam
2026-02-08 22:49 ` Jonas Karlman
2026-02-07 13:18 ` [PATCH v2 3/4] dt-bindings: arm: rockchip: Add Onion RV1103B Omega4 Fabio Estevam
2026-02-08 13:52 ` Krzysztof Kozlowski
2026-02-07 13:18 ` [PATCH v2 4/4] ARM: dts: " Fabio Estevam
2026-02-08 22:14 ` Jonas Karlman
2026-02-08 22:20 ` Fabio Estevam
2026-02-08 22:34 ` Fabio Estevam
2026-02-08 13:52 ` [PATCH v2 1/4] dt-bindings: soc: rockchip: grf: Add RV1103B compatibles Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox