[PATCH] arm64: dts: rockchip: support camera module on Haikou Video Demo on RK3399 Puma
From: Quentin Schulz
Date: Tue Nov 03 2026 - 14:08:02 EST
From: Quentin Schulz <quentin.schulz@xxxxxxxxx>
The Haikou Video Demo adapter has a proprietary connector for a camera
module which has an OV5675 camera sensor and a companion DW9714 focus
lens driver.
This adds support for the camera module on RK3399 Puma module fitted on
a Haikou devkit with the Haikou Video Demo adapter.
Signed-off-by: Quentin Schulz <quentin.schulz@xxxxxxxxx>
---
Camera only works once the ov5675 driver is adapted[1] to work with
24MHz MCLK. With the similar work done for RK3588 Tiger[2], we now have
all our modules supporting the same set of features when used in
conjunction with Haikou Video Demo.
Same request as made in [2], please only merge this once the OV5675
series[1] is merged.
[1] https://lore.kernel.org/linux-media/20261026101646.2450051-1-heiko@xxxxxxxxx/
[2] https://lore.kernel.org/linux-rockchip/20261026102027.2451025-1-heiko@xxxxxxxxx/
---
.../rockchip/rk3399-puma-haikou-video-demo.dtso | 55 ++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dtso b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dtso
index 141a921a06e47..6c28e7e60ef28 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dtso
+++ b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dtso
@@ -16,6 +16,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
+#include <dt-bindings/media/video-interface-devices.h>
#include <dt-bindings/pinctrl/rockchip.h>
&{/} {
@@ -100,6 +101,12 @@ &i2c1 {
/* OV5675, GT911, DW9714 are limited to 400KHz */
clock-frequency = <400000>;
+ focus: focus@c {
+ compatible = "dongwoon,dw9714";
+ reg = <0xc>;
+ vcc-supply = <&cam_afvdd_2v8>;
+ };
+
touchscreen@14 {
compatible = "goodix,gt911";
reg = <0x14>;
@@ -122,6 +129,50 @@ pca9670: gpio@27 {
pinctrl-names = "default";
reset-gpios = <&gpio4 RK_PD6 GPIO_ACTIVE_LOW>;
};
+
+ camera@36 {
+ compatible = "ovti,ov5675";
+ reg = <0x36>;
+ assigned-clocks = <&cru SCLK_CIF_OUT>;
+ assigned-clock-rates = <24000000>;
+ clocks = <&cru SCLK_CIF_OUT>;
+ avdd-supply = <&cam_avdd_2v8>;
+ dvdd-supply = <&cam_dvdd_1v2>;
+ dovdd-supply = <&cam_dovdd_1v8>;
+ lens-focus = <&focus>;
+ orientation = <MEDIA_ORIENTATION_FRONT>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cif_clkouta>;
+ reset-gpios = <&pca9670 6 GPIO_ACTIVE_LOW>;
+ rotation = <180>;
+
+ port {
+ cam_output: endpoint {
+ data-lanes = <1 2>;
+ link-frequencies = /bits/ 64 <450000000>;
+ remote-endpoint = <&mipi_in_cam>;
+ };
+ };
+ };
+};
+
+&isp1 {
+ status = "okay";
+
+ ports {
+ port@0 {
+ mipi_in_cam: endpoint@0 {
+ reg = <0>;
+ data-lanes = <1 2>;
+ link-frequencies = /bits/ 64 <450000000>;
+ remote-endpoint = <&cam_output>;
+ };
+ };
+ };
+};
+
+&isp1_mmu {
+ status = "okay";
};
&mipi_dsi {
@@ -145,6 +196,10 @@ mipi_in_panel: endpoint {
};
};
+&mipi_dsi1 {
+ status = "okay";
+};
+
&mipi_out {
mipi_out_panel: endpoint {
remote-endpoint = <&mipi_in_panel>;
---
base-commit: 05441d697f7f9a927264f4058cbbc6a03dfcac9d
change-id: 20261103-rk3399-puma-haikou-video-demo-cam-d86be639a91e
Best regards,
--
Quentin Schulz <quentin.schulz@xxxxxxxxx>