From 9bb11f565f2f276db77f6cb71fa3215ecbdda43d Mon Sep 17 00:00:00 2001 From: OrangePi CM5 Builder Date: Thu, 9 Apr 2026 08:54:31 +0800 Subject: [PATCH] imx586: add opi5ultra overlays and IQ config --- cam1_imx586_overlay.dts | 111 ++++++++++++++++++ imx586-clock-fix.dtbo | Bin 0 -> 1862 bytes imx586/commands.txt | 3 + imx586/imx586_default_default.json | 1 + imx586_clock_fix.dts | 48 ++++++++ rk3588-opi5ultra-cam1-imx586-addr10-mclk.dtbo | Bin 0 -> 902 bytes rk3588-opi5ultra-cam1-imx586-addr10-mclk.dts | 35 ++++++ rk3588-opi5ultra-cam1-imx586-addr10.dtbo | Bin 0 -> 499 bytes rk3588-opi5ultra-cam1-imx586-addr10.dts | 26 ++++ rk3588-opi5ultra-cam1-imx586-clk.dtbo | Bin 0 -> 1938 bytes rk3588-opi5ultra-cam1-imx586-pwr.dtbo | Bin 0 -> 1938 bytes rk3588-opi5ultra-imx586-gpiofix.dtbo | Bin 0 -> 412 bytes rk3588-opi5ultra-imx586-gpiofix.dts | 15 +++ 13 files changed, 239 insertions(+) create mode 100644 cam1_imx586_overlay.dts create mode 100644 imx586-clock-fix.dtbo create mode 100644 imx586/commands.txt create mode 100644 imx586/imx586_default_default.json create mode 100644 imx586_clock_fix.dts create mode 100644 rk3588-opi5ultra-cam1-imx586-addr10-mclk.dtbo create mode 100644 rk3588-opi5ultra-cam1-imx586-addr10-mclk.dts create mode 100644 rk3588-opi5ultra-cam1-imx586-addr10.dtbo create mode 100644 rk3588-opi5ultra-cam1-imx586-addr10.dts create mode 100644 rk3588-opi5ultra-cam1-imx586-clk.dtbo create mode 100644 rk3588-opi5ultra-cam1-imx586-pwr.dtbo create mode 100644 rk3588-opi5ultra-imx586-gpiofix.dtbo create mode 100644 rk3588-opi5ultra-imx586-gpiofix.dts diff --git a/cam1_imx586_overlay.dts b/cam1_imx586_overlay.dts new file mode 100644 index 000000000000..ace5e510784e --- /dev/null +++ b/cam1_imx586_overlay.dts @@ -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"; + }; + }; +}; \ No newline at end of file diff --git a/imx586-clock-fix.dtbo b/imx586-clock-fix.dtbo new file mode 100644 index 0000000000000000000000000000000000000000..2067ec691f2a81eb0253c026de704d29bf5c5af1 GIT binary patch literal 1862 zcma(S%Z}49&<2*(3RZ#x;?6_b!&=!sSXDi(wg}k63M3G4L6MudZM2DP5+}4bB#s<7 za^u8-BR_(~e;|GVn2F;yiCPs)6VHri#`E&z=l-AHgzP>dgbWDT`3Cy|z)gS~0I=v6 z;A@LFzOT~>_`-@1)VYo@ ziRL0?L9BxE2>Dk4ZUf+Q^gSw%9lZ}o-`e!sHc|I60Q!nPIavAJ0q)A~)4#BQZu^Y) z?f|@07kmLbt}2d`Uf!k4(L2v>2%iUGsUm*SAV(jSa3*{;ir zFl1S-b-b{yV*cT^(fM}WP_>n7cYpW~{kA&ZeF}Gf+N#^E3uG)&Mle?=m-MPuFs69i ztQcIfY%e=o+OuTc+`zYs^8gpxZo{6fIn&(CNT3qfqj4; + 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>; + }; + }; + }; + }; + }; +}; \ No newline at end of file diff --git a/rk3588-opi5ultra-cam1-imx586-addr10-mclk.dtbo b/rk3588-opi5ultra-cam1-imx586-addr10-mclk.dtbo new file mode 100644 index 0000000000000000000000000000000000000000..1dd56b0bb8e522e653e09129126ceeb99a3e84b5 GIT binary patch literal 902 zcmb_aO-sW-5S_GYEq;>`HJgYBOQCefk{Yb?6 z%FdA{u4|Nip<%EXOQu4Ge9jobw7-ttN+x_x09tuw7xUwy-o$uddRR1zI2-6kv#A?S zFhL`XcxRp%^DNXQM)Ui{eBx}QUlw(nNN6Q~UEo^=h6YCRN|%%G5dSY-)Vt*cirBrbOm}RLl*P81&#LlOn@DOJC@bc^RYm1UYw0obJ;5jNCABC#uFj zMLu7}PlMRiGVIvq2;I>Qx?aVXLJ8gR(;%TCt61rS7cWTIZlUe5I^q1Ljr2cNoZe4P z`L=CyFQ7EnnF1+%Fv?Bn#5@uTN^$kdM*2boRG$h#G#d;rm;; + __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"; + }; + }; +}; diff --git a/rk3588-opi5ultra-cam1-imx586-addr10.dtbo b/rk3588-opi5ultra-cam1-imx586-addr10.dtbo new file mode 100644 index 0000000000000000000000000000000000000000..d6ec7159b195dad452ee16a23b06ec870fd347fa GIT binary patch literal 499 zcmcb>`|m9S1LJ1~1_lcteFR8r0I?tt3ji?)=mW)jAWRgJ5z1psD@shyP0cHDFaV1% z14$MT>pu_xDaQEt{Ib-doW#obc#tqmo*l>r*#Y9S0x@@fc48%v1_350Mwo2~7KiD@ zXErBLC3i|@abi+VY6@5vHuH?AV_tlGT4qIQK{3Q@V84h0O%~Ee1d3HjVo`c(i4`Pt zApQlZkw&O7#HB_Rp~eVZ4J?c}A?7m_rKU3!mn4>y7Bgh#R+w6t#Tzo@ml+ycm>R%Y Hra%?|o`_o_ literal 0 HcmV?d00001 diff --git a/rk3588-opi5ultra-cam1-imx586-addr10.dts b/rk3588-opi5ultra-cam1-imx586-addr10.dts new file mode 100644 index 000000000000..59300d31b385 --- /dev/null +++ b/rk3588-opi5ultra-cam1-imx586-addr10.dts @@ -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"; + }; + }; +}; diff --git a/rk3588-opi5ultra-cam1-imx586-clk.dtbo b/rk3588-opi5ultra-cam1-imx586-clk.dtbo new file mode 100644 index 0000000000000000000000000000000000000000..11aeeed028ff326d36668a04ad920c7e9431ee73 GIT binary patch literal 1938 zcmb`Hy;9pi5XV;#U?`G-0t#LrX*~AnWLtLS^yyRHXe1lo*orke`M?z|Gc*h>Jr6*Y zl1WF$@E*KEl3jgp!nP6ybTg~F-TU2N_px^mAAdgq>|6nW3$T5M^%t~#v^_K`j~GAC znlHXq?pdSQI}V3Gl0hqtY~uF=wfY>G_R_4SW)*I%{jD8F$;Q1{<&}YyQCoC%rCn{;w&+ z)3)0|NuF-(x_=k>^eNBH!arK_Kj(gtmsFeF?7n$_3O%ERw+>4&kN4e~UX5DWvAkv>@=lV6{gV~Azji>+LylVW)@aMC; zHRHSM)<|df(=cuo^UE;3b<82^+#80qmZ0Ju?PmD{D)ExJg3``Gc^4osO9Ed>TLjT~ z!NmB)cpO3*Nk>pO#1mhR1O>!Y2g+Fq2o=a=gkh;7CbWzhNZaS2eP3|Rg=(curd?{% VyadxWwNvRrFP!HRkm`i!{{^ktng{>@ literal 0 HcmV?d00001 diff --git a/rk3588-opi5ultra-cam1-imx586-pwr.dtbo b/rk3588-opi5ultra-cam1-imx586-pwr.dtbo new file mode 100644 index 0000000000000000000000000000000000000000..11aeeed028ff326d36668a04ad920c7e9431ee73 GIT binary patch literal 1938 zcmb`Hy;9pi5XV;#U?`G-0t#LrX*~AnWLtLS^yyRHXe1lo*orke`M?z|Gc*h>Jr6*Y zl1WF$@E*KEl3jgp!nP6ybTg~F-TU2N_px^mAAdgq>|6nW3$T5M^%t~#v^_K`j~GAC znlHXq?pdSQI}V3Gl0hqtY~uF=wfY>G_R_4SW)*I%{jD8F$;Q1{<&}YyQCoC%rCn{;w&+ z)3)0|NuF-(x_=k>^eNBH!arK_Kj(gtmsFeF?7n$_3O%ERw+>4&kN4e~UX5DWvAkv>@=lV6{gV~Azji>+LylVW)@aMC; zHRHSM)<|df(=cuo^UE;3b<82^+#80qmZ0Ju?PmD{D)ExJg3``Gc^4osO9Ed>TLjT~ z!NmB)cpO3*Nk>pO#1mhR1O>!Y2g+Fq2o=a=gkh;7CbWzhNZaS2eP3|Rg=(curd?{% VyadxWwNvRrFP!HRkm`i!{{^ktng{>@ literal 0 HcmV?d00001 diff --git a/rk3588-opi5ultra-imx586-gpiofix.dtbo b/rk3588-opi5ultra-imx586-gpiofix.dtbo new file mode 100644 index 0000000000000000000000000000000000000000..64e56493debcdb616a78480d1da0065836cf4797 GIT binary patch literal 412 zcmcb>`|m9S1LGV91_lctodTpafLIWS1%Ma?K;k+OCJM<278FCQ0;?AV%4zB&9BEaOSd^YxVg+$6#7u9X8Y3h% z`bciJDoQO*EzwOc$jmPWYQm+epgbiHt_Wxx+)bPi`xuH#5=%;p8H!TVff#Ng1417| RW^RS4g;~5I1IR981_0|URkQ#A literal 0 HcmV?d00001 diff --git a/rk3588-opi5ultra-imx586-gpiofix.dts b/rk3588-opi5ultra-imx586-gpiofix.dts new file mode 100644 index 000000000000..ef781b9390c3 --- /dev/null +++ b/rk3588-opi5ultra-imx586-gpiofix.dts @@ -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>; + }; + }; +};