AnsweredAssumed Answered

OV5640 mipi camera on mcimx6q-sdb

Question asked by Kamil Horák on Mar 14, 2016
Latest reply on Mar 15, 2016 by igorpadykov

I need to do some tests with the mipi camera module on sabresd board but unfortunatelly no success: the module is detected on i2c bus but no success in getting any image from it:

 

# uname -a

Linux (none) 3.14.38+ge4944a5 #1 SMP PREEMPT Mon Mar 14 15:34:18 CET 2016 armv7l GNU/Linux

 

(dmesg)

...

i2c /dev entries driver

camera ov5640_mipi is found

mag3110 2-000e: check mag3110 chip ID

...

 

but:

 

v4l2-ctl -d /dev/video0 -D

ERROR: v4l2 capture: slave not found!

Failed to open /dev/video0: Resource temporarily unavailable

 

The dts is as follows (used the dual-ov5640 patch as a pattern):

#include "imx6q-sabresd.dts"

 

 

&i2c2 {

 

       mipi_camera: ov5640@3c {

               compatible = "ovti,ov5640_mipi";

               reg = <0x3c>;

               clocks = <&clks 201>;

               clock-names = "csi_mclk";

               mclk = <25000000>;

           mclk_source = <0>;

               ipu_id = <0>;

               csi_id = <1>;

 

               DOVDD-supply = <&vgen4_reg>; /* 1.8v */

               AVDD-supply = <&vgen5_reg>;  /* 2.8v, rev C board is VGEN3

                                               rev B board is VGEN5 */

               DVDD-supply = <&vgen2_reg>;  /* 1.5v*/

           pwn-gpios = <&gpio6 9 1>;

               rst-gpios = <&gpio2 5 0>;

 

               port {

                       #address-cells = <1>;

                       #size-cells = <0>;

 

                       ov5640_1: endpoint@1 {

                               reg = <1>;

                               remote-endpoint = <&csi1_vc0>;

                               data-lanes = <0 1>;

                               clock-lanes = <2>;

                       };

               };

       };

};

 

&ipu1 { /* IPU1 */

       status = "okay";

 

       v4l2-capture {

               compatible = "fsl,imx6-v4l2-capture";

               #address-cells = <1>;

               #size-cells = <0>;

               status = "okay";

               pinctrl-names = "default";

 

               /* CSI1 */

               port@1 {

                       #address-cells = <1>;

                       #size-cells = <0>;

                       reg = <1>;

 

                       /* MIPI CSI-2 virtual channel 0 */

                       csi1_vc0: endpoint@0 {

                               reg = <0>;

                               remote-endpoint = <&ov5640_1>;

                               data-lanes = <0 1>;

                               clock-lanes = <2>;

                       };

               };

       };

};

 

There module has no power-down and reset signals connected and it has its own clock source (25MHz). Could this be the problem or am I missing something else?

Outcomes