AnsweredAssumed Answered

How to configure CSI1 to capture embad sync PAL video in IMX6 solo

Question asked by Liu lensan on May 3, 2015
Latest reply on May 13, 2015 by igorpadykov

Hi all:

     We re-design a hardware which is reference to SABRE smart device, the software base is Freescale's 3.10.17-1.0.0 Yocto BSP, kernel version: 3.10.17-r0.

     We connect a MIPI device to CSI0 and connect a TV AD transfer chipset to CSI1.

     Currently the MIPI device is work well and we can capture the video, but we can not capture the video from CSI1 which connected to a TV-in device.

     Please help to check the configure. Thank you!

     We connect EIM_ADDR16 as IPU1_CSI1_PIXCLK, and EIM_ADDR17~EIM_ADDR24 as IPU1_CSI1_DATA12~19.

     We use EAV/SAV embad sync code to sync line and frame, so we do not have hsync and vsync pin.

     Following is our software configure:

                pinctrl_ipu1_2: ipu1grp-2 { /* parallel camera */

                        fsl,pins = <

                                MX6QDL_PAD_EIM_A16__IPU1_CSI1_PIXCLK    0x80000000

                                MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12    0x80000000

                                MX6QDL_PAD_EIM_A18__IPU1_CSI1_DATA13    0x80000000

                                MX6QDL_PAD_EIM_A19__IPU1_CSI1_DATA14    0x80000000

                                MX6QDL_PAD_EIM_A20__IPU1_CSI1_DATA15    0x80000000

                                MX6QDL_PAD_EIM_A21__IPU1_CSI1_DATA16    0x80000000

                                MX6QDL_PAD_EIM_A22__IPU1_CSI1_DATA17    0x80000000

                                MX6QDL_PAD_EIM_A23__IPU1_CSI1_DATA18    0x80000000

                                MX6QDL_PAD_EIM_A24__IPU1_CSI1_DATA19    0x80000000




          pinctrl-names = "default";

          pinctrl-0 = <&pinctrl_ipu1_2>;

          clocks = <&clks 201>;

          clock-names = "csi_mclk";

          pwn-gpios = <&gpio7 12 0>;  /* power down pin */

          csi_id = <1>;

          mclk = <27000000>;

          mclk_source = <0>;

          cvbs = <1>;


    Following is the driver configure in ioctl_g_ifparm function:

static int ioctl_g_ifparm(struct v4l2_int_device *s, struct v4l2_ifparm *p)


     memset(p, 0, sizeof(*p));

     p->if_type = V4L2_IF_TYPE_BT656;

     p->u.bt656.mode = V4L2_IF_TYPE_BT656_MODE_BT_8BIT;

     p->u.bt656.latch_clk_inv = 0;  // I check the signal, which is sample at clock rise edge, I am not sure whether need set as "1" and I also test is as"1"

     return 0;



Now my input signal source is a PAL format signal, I use following test command to capture video,

But I can not receive any data(I add some log at the csi_enc_callback function of  ipu_fg_overlay_sdc.c and ipu_bg_overlay_sdc.c)

./mxc_v4l2_overlay.out -di /dev/video1 -iw 720 -ih 576 -it 0 -il 0 -ot 20 -ol 20 -ow 720 -oh 576


So please help to check it.

Thank you!