IMX8MP CSI port 2 configuration

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX8MP CSI port 2 configuration

Jump to solution
1,773 Views
Vilius
Contributor II

Greetings,

I was wondering what is the correct way to setup the IMX8MP CSI port 2 as a single camera interface with 4 lanes?

I have tried similar stuff to this as we are running a compulab bsp.
https://github.com/compulab-yokneam/linux-compulab/blob/bca57e9940b5454a8c77a3a1bf50bc2a23c6c68e/arc...

But seems like something is not getting wired correctly and the subdev device in v4l2 is not getting brought up. 

When running on CSI1, I get the expected result of (and the expected media graph):

root@ucm-imx8m-plus:~# v4l2-ctl --list-devices
 ():
        /dev/v4l-subdev0
        /dev/v4l-subdev1
        /dev/v4l-subdev2
 (csi0):
        /dev/v4l-subdev3
FSL Capture Media Device (platform:32c00000.bus:camera):
        /dev/media1
VIV (platform:viv0):
        /dev/video2
vsi_v4l2dec (platform:vsi_v4l2dec):
        /dev/video1
vsi_v4l2enc (platform:vsi_v4l2enc):
        /dev/video0
viv_media (platform:vvcam-video.0):
        /dev/media0

and dmesg output of:

[ 8.715165] mx8-img-md: Registered sensor subdevice: imx67x 4-001a (1) [ 8.720058] enter isp_mi_stop [ 8.722050] mx8-img-md: created link [imx67x 4-001a] => [mxc-mipi-csi2.0] [ 8.731969] mxc-md 32c00000.bus:camera: mxc_md_create_links

But when using a DTB for CSI port 2, then I dont get the subdevices linked/registered.

So my question is what is important to get the subdevice up and running? And how are they getting linked? Does the CSI port 2 require ISP2? Does the registers change or what? 

Tags (4)
0 Kudos
Reply
1 Solution
1,629 Views
Vilius
Contributor II
This DTB works, ensure you load the kernel modules in the correct order.

View solution in original post

0 Kudos
Reply
3 Replies
1,723 Views
Manuel_Salas
NXP TechSupport
NXP TechSupport

Hello @Vilius 

I hope you are doing very well.

 

Please take a look to the imx8mp-frdm-ap1302-dual.dts.

 

Best regards,

Salas.

0 Kudos
Reply
1,706 Views
Vilius
Contributor II

Well, like I mentioned, I have looked into other dtbs with csi port 2, but even checking the one you linked, I still have yet to get the media graph setup correctly.

DTB snippet of what I'm currently trying to use

&i2c5 {
       pinctrl-0 = <&pinctrl_i2c5>;
       scl-gpios = <&gpio3 26>;
       sda-gpios = <&gpio3 27>;
       status = "okay";
   
       /delete-node/ ov5640_mipi@3c;
       imx_camera: camera_mipi@1a {
               compatible = "framos,imx67x";
               reg = <0x1a>;
               pinctrl-names = "default";
               pinctrl-0 = <&pinctrl_csi_mclk>;
               clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
               clock-names = "csi_mclk";
               csi_id = <1>;
               en-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
               rst-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
               mipi_csi;
               status = "okay";
               port {
                       camera_mipi_1_ep: endpoint {
                               remote-endpoint = <&mipi_csi1_ep>;
                               data-lanes = <1 2 3 4>;
                               clock-lanes = <0>;
                               max-pixel-frequency = /bits/ 64 <266000000>;
                       };
               };
       };
};

&mipi_csi_0 {
       status = "disabled";
};

&mipi_csi_1 {
       #address-cells = <1>;
       #size-cells = <0>;
       status = "okay";
       port@1 {
               reg = <1>;
               mipi_csi1_ep: endpoint {
                       remote-endpoint = <&camera_mipi_1_ep>;
                       data-lanes = <4>;
                       csis-hs-settle = <13>;
                       csis-clk-settle = <2>;
                       csis-wclk;
               };
       };
};

&isi_0 {
       status = "disabled";
};

&isi_1 {
       status = "disabled";
};

&isp_0 {
       status = "okay";
};

 

0 Kudos
Reply
1,630 Views
Vilius
Contributor II
This DTB works, ensure you load the kernel modules in the correct order.
0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2222628%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EIMX8MP%20CSI%20port%202%20configuration%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2222628%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EGreetings%2C%3C%2FP%3E%3CP%3EI%20was%20wondering%20what%20is%20the%20correct%20way%20to%20setup%20the%20IMX8MP%20CSI%20port%202%20as%20a%20single%20camera%20interface%20with%204%20lanes%3F%3C%2FP%3E%3CP%3EI%20have%20tried%20similar%20stuff%20to%20this%20as%20we%20are%20running%20a%20compulab%20bsp.%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fcompulab-yokneam%2Flinux-compulab%2Fblob%2Fbca57e9940b5454a8c77a3a1bf50bc2a23c6c68e%2Farch%2Farm64%2Fboot%2Fdts%2Fcompulab%2Fsom-imx8m-plus_mipi-csi2.dtsi%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fcompulab-yokneam%2Flinux-compulab%2Fblob%2Fbca57e9940b5454a8c77a3a1bf50bc2a23c6c68e%2Farch%2Farm64%2Fboot%2Fdts%2Fcompulab%2Fsom-imx8m-plus_mipi-csi2.dtsi%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3EBut%20seems%20like%20something%20is%20not%20getting%20wired%20correctly%20and%20the%20subdev%20device%20in%20v4l2%20is%20not%20getting%20brought%20up.%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3EWhen%20running%20on%20CSI1%2C%20I%20get%20the%20expected%20result%20of%20(and%20the%20expected%20media%20graph)%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Eroot%40ucm-imx8m-plus%3A~%23%20v4l2-ctl%20--list-devices%0A%20()%3A%0A%20%20%20%20%20%20%20%20%2Fdev%2Fv4l-subdev0%0A%20%20%20%20%20%20%20%20%2Fdev%2Fv4l-subdev1%0A%20%20%20%20%20%20%20%20%2Fdev%2Fv4l-subdev2%0A%20(csi0)%3A%0A%20%20%20%20%20%20%20%20%2Fdev%2Fv4l-subdev3%0AFSL%20Capture%20Media%20Device%20(platform%3A32c00000.bus%3Acamera)%3A%0A%20%20%20%20%20%20%20%20%2Fdev%2Fmedia1%0AVIV%20(platform%3Aviv0)%3A%0A%20%20%20%20%20%20%20%20%2Fdev%2Fvideo2%0Avsi_v4l2dec%20(platform%3Avsi_v4l2dec)%3A%0A%20%20%20%20%20%20%20%20%2Fdev%2Fvideo1%0Avsi_v4l2enc%20(platform%3Avsi_v4l2enc)%3A%0A%20%20%20%20%20%20%20%20%2Fdev%2Fvideo0%0Aviv_media%20(platform%3Avvcam-video.0)%3A%0A%20%20%20%20%20%20%20%20%2Fdev%2Fmedia0%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3Eand%20dmesg%20output%20of%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%5B%208.715165%5D%20mx8-img-md%3A%20Registered%20sensor%20subdevice%3A%20imx67x%204-001a%20(1)%20%5B%208.720058%5D%20enter%20isp_mi_stop%20%5B%208.722050%5D%20mx8-img-md%3A%20created%20link%20%5Bimx67x%204-001a%5D%20%3D%26gt%3B%20%5Bmxc-mipi-csi2.0%5D%20%5B%208.731969%5D%20mxc-md%2032c00000.bus%3Acamera%3A%20mxc_md_create_links%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EBut%20when%20using%20a%20DTB%20for%20CSI%20port%202%2C%20then%20I%20dont%20get%20the%20subdevices%20linked%2Fregistered.%3C%2FP%3E%3CP%3ESo%20my%20question%20is%20what%20is%20important%20to%20get%20the%20subdevice%20up%20and%20running%3F%20And%20how%20are%20they%20getting%20linked%3F%20Does%20the%20CSI%20port%202%20require%20ISP2%3F%20Does%20the%20registers%20change%20or%20what%3F%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2232768%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX8MP%20CSI%20port%202%20configuration%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2232768%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EWell%2C%20like%20I%20mentioned%2C%20I%20have%20looked%20into%20other%20dtbs%20with%20csi%20port%202%2C%20but%20even%20checking%20the%20one%20you%20linked%2C%20I%20still%20have%20yet%20to%20get%20the%20media%20graph%20setup%20correctly.%3C%2FP%3E%3CP%3EDTB%20snippet%20of%20what%20I'm%20currently%20trying%20to%20use%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%26amp%3Bi2c5%20%7B%0A%20%20%20%20%20%20%20pinctrl-0%20%3D%20%26lt%3B%26amp%3Bpinctrl_i2c5%26gt%3B%3B%0A%20%20%20%20%20%20%20scl-gpios%20%3D%20%26lt%3B%26amp%3Bgpio3%2026%26gt%3B%3B%0A%20%20%20%20%20%20%20sda-gpios%20%3D%20%26lt%3B%26amp%3Bgpio3%2027%26gt%3B%3B%0A%20%20%20%20%20%20%20status%20%3D%20%22okay%22%3B%0A%20%20%20%0A%20%20%20%20%20%20%20%2Fdelete-node%2F%20ov5640_mipi%403c%3B%0A%20%20%20%20%20%20%20imx_camera%3A%20camera_mipi%401a%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20compatible%20%3D%20%22framos%2Cimx67x%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reg%20%3D%20%26lt%3B0x1a%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pinctrl-names%20%3D%20%22default%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pinctrl-0%20%3D%20%26lt%3B%26amp%3Bpinctrl_csi_mclk%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20clocks%20%3D%20%26lt%3B%26amp%3Bclk%20IMX8MP_CLK_IPP_DO_CLKO2%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20clock-names%20%3D%20%22csi_mclk%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20csi_id%20%3D%20%26lt%3B1%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20en-gpios%20%3D%20%26lt%3B%26amp%3Bgpio1%200%20GPIO_ACTIVE_LOW%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rst-gpios%20%3D%20%26lt%3B%26amp%3Bgpio1%201%20GPIO_ACTIVE_LOW%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mipi_csi%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20status%20%3D%20%22okay%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20port%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20camera_mipi_1_ep%3A%20endpoint%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20remote-endpoint%20%3D%20%26lt%3B%26amp%3Bmipi_csi1_ep%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data-lanes%20%3D%20%26lt%3B1%202%203%204%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20clock-lanes%20%3D%20%26lt%3B0%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20max-pixel-frequency%20%3D%20%2Fbits%2F%2064%20%26lt%3B266000000%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%26amp%3Bmipi_csi_0%20%7B%0A%20%20%20%20%20%20%20status%20%3D%20%22disabled%22%3B%0A%7D%3B%0A%0A%26amp%3Bmipi_csi_1%20%7B%0A%20%20%20%20%20%20%20%23address-cells%20%3D%20%26lt%3B1%26gt%3B%3B%0A%20%20%20%20%20%20%20%23size-cells%20%3D%20%26lt%3B0%26gt%3B%3B%0A%20%20%20%20%20%20%20status%20%3D%20%22okay%22%3B%0A%20%20%20%20%20%20%20port%401%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reg%20%3D%20%26lt%3B1%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mipi_csi1_ep%3A%20endpoint%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20remote-endpoint%20%3D%20%26lt%3B%26amp%3Bcamera_mipi_1_ep%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data-lanes%20%3D%20%26lt%3B4%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20csis-hs-settle%20%3D%20%26lt%3B13%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20csis-clk-settle%20%3D%20%26lt%3B2%26gt%3B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20csis-wclk%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%26amp%3Bisi_0%20%7B%0A%20%20%20%20%20%20%20status%20%3D%20%22disabled%22%3B%0A%7D%3B%0A%0A%26amp%3Bisi_1%20%7B%0A%20%20%20%20%20%20%20status%20%3D%20%22disabled%22%3B%0A%7D%3B%0A%0A%26amp%3Bisp_0%20%7B%0A%20%20%20%20%20%20%20status%20%3D%20%22okay%22%3B%0A%7D%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2228824%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX8MP%20CSI%20port%202%20configuration%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2228824%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F248662%22%20target%3D%22_blank%22%3E%40Vilius%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EI%20hope%20you%20are%20doing%20very%20well.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EPlease%20take%20a%20look%20to%20the%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%2Fblob%2Fbe78e49cb4339fd38c9a40019df49b72fbb8bcb7%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx8mp-frdm-ap1302-dual.dts%23L125%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Eimx8mp-frdm-ap1302-dual.dts%3C%2FA%3E.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3ESalas.%3C%2FP%3E%3C%2FLINGO-BODY%3E