AnsweredAssumed Answered

ADV7180 on IPU2_CSI1 with i.mx6q Device Tree bindings

Question asked by Michael Kasprowics on Sep 17, 2015
Latest reply on Dec 4, 2015 by josa



I have no prior experience of interfacing Cameras with I.mx6 but sensors I do.I am currently having trouble interfacing ADV7180 with two cameras CVBS1 & 2 connected on AIN1 and AIN2. PCAM_D0 to PCAM_D7 are tied to IPU2_CSI1 ... of the i.mx6q module. The board is a custom design.


I am using linux 3.10.17 with device tree support. The following are my current device tree bindings:


#ifdef SMX6_CPU_IMX6Q

        adv7180: adv7180@20 {

                compatible = "adv,adv7180";

                reg = <0x20>;

                pinctrl-names = "default";

                pinctrl-0 = <&pinctrl_ipu2_csi>;

                clocks = <&clks 201>;

                clock-names = "csi_mclk";

                DOVDD-supply = <&reg_3p3v>; /* 3.3v, enabled via 2.8 VGEN6 */

                AVDD-supply = <&reg_3p3v>;  /* 1.8v */

                DVDD-supply = <&reg_3p3v>;  /* 1.8v */

                PVDD-supply = <&reg_3p3v>;  /* 1.8v */

                rst-gpios = <&gpio3 3 0>;  /* tied to P111 GPIO3_CAM1_RST */

                csi_id = <1>;

                mclk = <24000000>;

                mclk_source = <0>;

                cvbs = <1>;




v4l2_cap_0 {

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

                ipu_id = <1>;

                csi_id = <1>;

                mclk_source = <0>;

                status = "okay";





#ifdef SMX6_CPU_IMX6Q


         ipu1 {

               pinctrl_ipu2_csi: ipu2-csi {

                       fsl,pins = <

                                MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12 0x80000000

                               MX6QDL_PAD_EIM_A18__IPU2_CSI1_DATA13 0x80000000

                               MX6QDL_PAD_EIM_A19__IPU2_CSI1_DATA14 0x80000000

                               MX6QDL_PAD_EIM_A20__IPU2_CSI1_DATA15 0x80000000

                               MX6QDL_PAD_EIM_A21__IPU2_CSI1_DATA16 0x80000000

                               MX6QDL_PAD_EIM_A22__IPU2_CSI1_DATA17 0x80000000

                               MX6QDL_PAD_EIM_A23__IPU2_CSI1_DATA18 0x80000000

                               MX6QDL_PAD_EIM_A24__IPU2_CSI1_DATA19 0x80000000

                               MX6QDL_PAD_EIM_EB3__IPU2_CSI1_HSYNC 0x80000000

                              MX6QDL_PAD_EIM_D17__IPU2_CSI1_PIXCLK 0x80000000

                               MX6QDL_PAD_EIM_DA12__IPU2_CSI1_VSYNC 0x80000000




               pinctrl_cam1_rst: cam1_rst {

                       fsl,pins = <

                                  MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x4000b0b1







After Linux boots up I get the following in dmesg:


DBG sensor data is at 7f002110

adv7180 1-0020: no sensor pwdn pin available

ERROR: v4l2 capture: slave not found!


Additionaly v4l2 dmesg entries:

root@linaro-ubuntu-desktop:~# dmesg | grep v4l2

mxc_v4l2_output v4l2_out.29: V4L2 device registered as video16

mxc_v4l2_output v4l2_out.29: V4L2 device registered as video17

mxc_v4l2_output v4l2_out.29: V4L2 device registered as video18

mxc_v4l2_output v4l2_out.29: V4L2 device registered as video19

ERROR: v4l2 capture: slave not found!



Both PCAM_ON_CSI0 and PCAM_ON_CSI1 are floating from the Module.

With the bindings I have also swapped CSI ID to 0, but same output.


I currently have no clue to what is going wrong.


Any advice or suggestion I would really appreaciate. Also, which tool from the v4l2 packages can i use to simply test if the camera is detected.?