[PATCH 2/2] arm64: dts: rockchip: enable OV9281 CAM1 P15 on RK3588 Jaguar
Quentin Schulz
foss+kernel at 0leil.net
Mon Nov 2 12:30:51 PST 2026
From: Quentin Schulz <quentin.schulz at cherry.de>
RK3588 Jaguar has two proprietary camera connectors, P14 and P15. This
adds support for the only camera module we currently have for this
connector, on P15.
The camera module has a 2-lane OV9281 camera sensor, an IMU, a
magnetometer and an EEPROM.
Signed-off-by: Quentin Schulz <quentin.schulz at cherry.de>
---
arch/arm64/boot/dts/rockchip/Makefile | 4 +-
.../dts/rockchip/rk3588-jaguar-p15-ov9281.dtso | 112 +++++++++++++++++++++
2 files changed, 115 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index cf977e883c374..e89e3123cb719 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -205,6 +205,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-can1-can2-uart4.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-ethernet-switch.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-p14-ov9281.dtbo
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-p15-ov9281.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-pre-ict-tester.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-lubancat-5io.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform2.dtb
@@ -339,7 +340,8 @@ rk3588-jaguar-can1-can2-uart4-dtbs := rk3588-jaguar.dtb \
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-p14-ov9281-p15-ov9281.dtb
rk3588-jaguar-p14-ov9281-p15-ov9281-dtbs := rk3588-jaguar.dtb \
- rk3588-jaguar-p14-ov9281.dtbo
+ rk3588-jaguar-p14-ov9281.dtbo \
+ rk3588-jaguar-p15-ov9281.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar-ethernet-switch.dtb
rk3588-jaguar-ethernet-switch-dtbs := rk3588-jaguar.dtb \
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-jaguar-p15-ov9281.dtso b/arch/arm64/boot/dts/rockchip/rk3588-jaguar-p15-ov9281.dtso
new file mode 100644
index 0000000000000..051a5f9a7d4e2
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar-p15-ov9281.dtso
@@ -0,0 +1,112 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2026 Cherry Embedded Solutions GmbH
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/rockchip,rk3588-cru.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/media/video-interfaces.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+
+&csi_dphy1 {
+ status = "okay";
+};
+
+&csi4 {
+ status = "okay";
+};
+
+&csi4_in {
+ csi4_input: endpoint {
+ bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+ data-lanes = <1 2>;
+ link-frequencies = /bits/ 64 <400000000>;
+ remote-endpoint = <&cam1_output>;
+ };
+};
+
+&i2c7 {
+ #address-cells = <1>;
+ clock-frequency = <400000>;
+ #size-cells = <0>;
+
+ magnetometer at 1e {
+ compatible = "st,lis2mdl";
+ reg = <0x1e>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <RK_PB0 IRQ_TYPE_EDGE_RISING>;
+ pinctrl-0 = <&cam1_imu_int3>;
+ pinctrl-names = "default";
+ vdd-supply = <&vcc_2v8_imu>;
+ vddio-supply = <&vcc_1v8_s3>;
+ };
+
+ eeprom at 50 {
+ compatible = "st,24c64", "atmel,24c64";
+ reg = <0x50>;
+ pagesize = <32>;
+ vcc-supply = <&vcc_1v8_s3>;
+ };
+
+ camera at 60 {
+ compatible = "ovti,ov9281";
+ reg = <0x60>;
+ assigned-clocks = <&cru CLK_MIPI_CAMARAOUT_M2>;
+ assigned-clock-rates = <24000000>;
+ avdd-supply = <&vcc_2v8_cam>;
+ clocks = <&cru CLK_MIPI_CAMARAOUT_M2>;
+ dovdd-supply = <&vcc_1v8_s3>;
+ dvdd-supply = <&cam_vcc_1v2>;
+ pinctrl-0 = <&cam1_rst &mipim0_camera2_clk>;
+ pinctrl-names = "default";
+ reset-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
+
+ port {
+ cam1_output: endpoint {
+ bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+ data-lanes = <1 2>;
+ link-frequencies = /bits/ 64 <400000000>;
+ remote-endpoint = <&csi4_input>;
+ };
+ };
+ };
+
+ imu at 6a {
+ compatible = "st,lsm6dsr";
+ reg = <0x6a>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <RK_PC4 IRQ_TYPE_EDGE_RISING>;
+ pinctrl-0 = <&csi1_imu_int1>;
+ pinctrl-names = "default";
+ vdd-supply = <&vcc_2v8_imu>;
+ vddio-supply = <&vcc_1v8_s3>;
+ };
+};
+
+&pinctrl {
+ cam1_p15 {
+ cam1_imu_int3: cam1-imu-int3 {
+ rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ cam1_rst: cam1-reset {
+ rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ csi1_imu_int1: csi1-imu-int1 {
+ rockchip,pins = <2 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
+
+&vicap {
+ status = "okay";
+};
+
+&vicap_mmu {
+ status = "okay";
+};
--
2.56.0
More information about the linux-arm-kernel
mailing list