From 96ff85af55193c15be7b786c7c359cf5633374d8 Mon Sep 17 00:00:00 2001 From: OrangePi CM5 Builder Date: Thu, 9 Apr 2026 15:34:06 +0800 Subject: [PATCH] rk3588 legacy: add IMX586 support (OPI5Ultra cam1) --- ...inux-rockchip-rk3588-legacy-opi5max.config | 2 +- .../0001-opi5ultra-cam1-imx586.patch | 81 +++++++++++++++++++ 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 external/patch/kernel/rockchip-rk3588-legacy/0001-opi5ultra-cam1-imx586.patch diff --git a/external/config/kernel/linux-rockchip-rk3588-legacy-opi5max.config b/external/config/kernel/linux-rockchip-rk3588-legacy-opi5max.config index d56b0e983c83..ba50fd662b2b 100644 --- a/external/config/kernel/linux-rockchip-rk3588-legacy-opi5max.config +++ b/external/config/kernel/linux-rockchip-rk3588-legacy-opi5max.config @@ -4663,7 +4663,7 @@ CONFIG_VIDEO_IMX464=y # CONFIG_VIDEO_IMX492 is not set # CONFIG_VIDEO_IMX355 is not set # CONFIG_VIDEO_IMX577 is not set -# CONFIG_VIDEO_IMX586=y +CONFIG_VIDEO_IMX586=y # CONFIG_VIDEO_JX_K17 is not set # CONFIG_VIDEO_OS02G10 is not set # CONFIG_VIDEO_OS02K10 is not set diff --git a/external/patch/kernel/rockchip-rk3588-legacy/0001-opi5ultra-cam1-imx586.patch b/external/patch/kernel/rockchip-rk3588-legacy/0001-opi5ultra-cam1-imx586.patch new file mode 100644 index 000000000000..c202f08c8451 --- /dev/null +++ b/external/patch/kernel/rockchip-rk3588-legacy/0001-opi5ultra-cam1-imx586.patch @@ -0,0 +1,81 @@ +diff -ruN a/arch/arm64/boot/dts/rockchip/overlay/rk3588-opi5ultra-cam1.dts b/arch/arm64/boot/dts/rockchip/overlay/rk3588-opi5ultra-cam1.dts +--- a/arch/arm64/boot/dts/rockchip/overlay/rk3588-opi5ultra-cam1.dts 2026-04-09 15:25:14.858311745 +0800 ++++ b/arch/arm64/boot/dts/rockchip/overlay/rk3588-opi5ultra-cam1.dts 2026-04-09 15:25:14.880312027 +0800 +@@ -57,19 +57,23 @@ + status = "okay"; + + vm149c-p1@c { +- status = "okay"; ++ status = "disabled"; + }; + + ov13850-1@10 { +- status = "okay"; ++ status = "disabled"; + }; + + dw9714-p1@c { +- status = "okay"; ++ status = "disabled"; + }; + + ov13855-1@36 { +- status = "okay"; ++ status = "disabled"; ++ }; ++ ++ imx586@1a { ++ status = "okay"; + }; + }; + }; +diff -ruN a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max-camera1.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max-camera1.dtsi +--- a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max-camera1.dtsi 2026-04-09 15:25:14.859311758 +0800 ++++ b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max-camera1.dtsi 2026-04-09 15:25:14.881312039 +0800 +@@ -25,6 +25,12 @@ + mipidphy1_in_ucam1: endpoint@1 { + reg = <1>; + remote-endpoint = <&ov13855_out1>; + data-lanes = <1 2>; + }; ++ ++ mipidphy1_in_ucam2: endpoint@2 { ++ reg = <2>; ++ remote-endpoint = <&imx586_out1>; ++ data-lanes = <1 2 3 4>; ++ }; + }; + port@1 { + reg = <1>; +@@ -107,6 +113,31 @@ + }; + }; + }; ++ ++ imx586_1: imx586@1a { ++ compatible = "sony,imx586"; ++ status = "disabled"; ++ reg = <0x1a>; ++ clocks = <&cru CLK_MIPI_CAMARAOUT_M2>; ++ clock-names = "xvclk"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mipim1_camera2_clk>; ++ reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>; ++ pwdn-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; ++ avdd-supply = <&vcc_3v3_s0>; ++ dovdd-supply = <&vcc_1v8_s0>; ++ dvdd-supply = <&avdd_1v2_s0>; ++ rockchip,camera-module-index = <1>; ++ rockchip,camera-module-facing = "back"; ++ rockchip,camera-module-name = "CIS-IMX586"; ++ rockchip,camera-module-lens-name = "default"; ++ port { ++ imx586_out1: endpoint { ++ remote-endpoint = <&mipidphy1_in_ucam2>; ++ data-lanes = <1 2 3 4>; ++ }; ++ }; ++ }; + }; + + &mipi4_csi2 {