Compare commits

..

2 Commits

Author SHA1 Message Date
OrangePi CM5 Builder 7a7bb0d551 imx586: enable driver, apply dt patch, ship IQ 2026-04-09 11:02:28 +08:00
OrangePi CM5 Builder 9bb11f565f imx586: add opi5ultra overlays and IQ config 2026-04-09 11:02:28 +08:00
17 changed files with 322 additions and 1 deletions

2
.gitignore vendored
View File

@ -28,6 +28,8 @@ mkimage.sh
!external/patch/u-boot
!external/patch/kernel
!external/patch/**/*.patch
!external/patch/**/series.conf
!external/config/kernel
!external/packages/bsp/common/etc/kernel
!external/packages/bsp/rk3588/etc/kernel

111
cam1_imx586_overlay.dts Normal file
View File

@ -0,0 +1,111 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&csi2_dphy1_hw>;
__overlay__ {
status = "okay";
};
};
fragment@1 {
target = <&csi2_dphy3>;
__overlay__ {
status = "okay";
};
};
fragment@2 {
target = <&mipi4_csi2>;
__overlay__ {
status = "okay";
};
};
fragment@3 {
target = <&rkcif_mipi_lvds4>;
__overlay__ {
status = "okay";
};
};
fragment@4 {
target = <&rkcif_mipi_lvds4_sditf>;
__overlay__ {
status = "okay";
};
};
fragment@5 {
target = <&rkisp1_vir1>;
__overlay__ {
status = "okay";
};
};
fragment@6 {
target = <&i2c9>;
__overlay__ {
status = "okay";
vm149c-p1@c {
status = "okay";
};
ov13850-1@10 {
status = "okay";
};
dw9714-p1@c {
status = "okay";
};
imx586-1@34 {
status = "okay";
avdd-supply = <&vcc_3v3_s0>;
dovdd-supply = <&vcc_1v8_s0>;
dvdd-supply = <&avdd_1v2_s0>;
};
};
};
fragment@7 {
target = <&rkcif>;
__overlay__ {
status = "okay";
};
};
fragment@8 {
target = <&rkcif_mmu>;
__overlay__ {
status = "okay";
};
};
fragment@9 {
target = <&rkisp1>;
__overlay__ {
status = "okay";
};
};
fragment@10 {
target = <&isp1_mmu>;
__overlay__ {
status = "okay";
};
};
};

View File

@ -4402,7 +4402,7 @@ CONFIG_VIDEO_IMX415=y
CONFIG_VIDEO_IMX464=y
# CONFIG_VIDEO_IMX492 is not set
# CONFIG_VIDEO_IMX577 is not set
# CONFIG_VIDEO_IMX586 is not set
CONFIG_VIDEO_IMX586=y
# CONFIG_VIDEO_JX_F37 is not set
# CONFIG_VIDEO_JX_H62 is not set
# CONFIG_VIDEO_JX_H65 is not set

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,79 @@
diff --git a/arch/arm64/boot/dts/rockchip/overlay/rk3588-opi5ultra-cam1.dts b/arch/arm64/boot/dts/rockchip/overlay/rk3588-opi5ultra-cam1.dts
index 866eeb3a8..1dc5e2af3 100644
--- a/arch/arm64/boot/dts/rockchip/overlay/rk3588-opi5ultra-cam1.dts
+++ b/arch/arm64/boot/dts/rockchip/overlay/rk3588-opi5ultra-cam1.dts
@@ -57,18 +57,22 @@ __overlay__ {
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 = "disabled";
+ };
+
+ imx586@1a {
status = "okay";
};
};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max-camera1.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max-camera1.dtsi
index 61cafdf53..e02b19059 100755
--- a/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max-camera1.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-max-camera1.dtsi
@@ -25,6 +25,12 @@ mipidphy1_in_ucam1: endpoint@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 @@ ov13855_out1: endpoint {
};
};
};
+
+ 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 {

BIN
imx586-clock-fix.dtbo Normal file

Binary file not shown.

3
imx586/commands.txt Normal file
View File

@ -0,0 +1,3 @@
cp /tmp/imx586_default_default.json /etc/iqfiles/'
sed -i "s/^overlays=.*/overlays=opi5ultra-cam0 opi5ultra-cam1 opi5ultra-cam2/" /boot/orangepiEnv.txt'

File diff suppressed because one or more lines are too long

48
imx586_clock_fix.dts Normal file
View File

@ -0,0 +1,48 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target-path = "/";
__overlay__ {
imx586_xvclk: imx586-xvclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24000000>;
clock-output-names = "imx586_xvclk";
};
};
};
fragment@1 {
target = <&i2c3>;
__overlay__ {
status = "okay";
imx586: imx586@34 {
compatible = "sony,imx586";
reg = <0x34>;
clocks = <&imx586_xvclk>;
clock-names = "xvclk";
reset-gpios = <&gpio3 9 0>; /* GPIO_ACTIVE_LOW */
pwdn-gpios = <&gpio3 11 1>; /* 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 = "CHT842B-MD";
status = "okay";
port {
imx586_out: endpoint {
remote-endpoint = <&mipi_in_imx586>;
data-lanes = <1 2 3 4>;
};
};
};
};
};
};

Binary file not shown.

View File

@ -0,0 +1,35 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&imx586_1>;
__overlay__ {
status = "okay";
reg = <0x1a>;
clocks = <&cru 0x101>;
clock-names = "xvclk";
pinctrl-names = "default";
pinctrl-0 = <&mipim1_camera2_clk>;
reset-gpios = <&gpio3 9 0>;
pwdn-gpios = <&gpio3 11 0>;
};
};
fragment@1 {
target = <&ov13850_1>;
__overlay__ {
status = "disabled";
};
};
fragment@2 {
target = <&ov13855_1>;
__overlay__ {
status = "disabled";
};
};
};

Binary file not shown.

View File

@ -0,0 +1,26 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&imx586_1>;
__overlay__ {
reg = <0x10>;
status = "okay";
};
};
fragment@1 {
target = <&ov13850_1>;
__overlay__ {
status = "disabled";
};
};
fragment@2 {
target = <&ov13855_1>;
__overlay__ {
status = "disabled";
};
};
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,15 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&imx586_1>;
__overlay__ {
status = "okay";
reg = <0x34>;
reset-gpios = <&gpio3 0x09 0x00>;
pwdn-gpios = <&gpio3 0x0b 0x01>;
};
};
};