Use adv7180 on i.mx6q fail

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

Use adv7180 on i.mx6q fail

Jump to solution
1,095 Views
zoechen
Contributor I

Hi All,

     I use adv7180 on i.mx6q with Android KK BSP. When I want to preview it will log "ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0", the parameter as follow:

preview size : 720 x 576

std:               PAL

format:          V4L2_PIX_FMT_NV12

check the single from oscilloscope, the CVBS line , csi0 data line, csi0 vsync , csi0hsync all have single, but it seem that csi0 host port don't receive any data from ADV7180.  Who can tell me how to debug it ?

This is our debug log :

In MVC: mxc_v4l_open

   device name is Mxc Camera

   Returning size of 720x625

End of mxc_v4l_open: v2f pix widthxheight 288 x 352

End of mxc_v4l_open: crop_bounds widthxheight 720 x 625

End of mxc_v4l_open: crop_defrect widthxheight 720 x 625

End of mxc_v4l_open: crop_current widthxheight 720 x 625

On Open: Input to ipu size is 720 x 625

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl 80685600

   case VIDIOC_QUERYCAP

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl 80085617

   case VIDIOC_G_STD

In mxc_v4l2_g_std

MVC: mxc_v4l2_g_std: Changing standard

In mxc_v4l2_s_std ff

   Setting standard to PAL ff

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl 40085618

   case VIDIOC_S_STD

In mxc_v4l2_s_std ff

   Setting standard to PAL ff

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c02c564a

   case VIDIOC_ENUM_FRAMESIZES

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c02c564a

   case VIDIOC_ENUM_FRAMESIZES

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0045627

   case VIDIOC_S_INPUT

In MVC:mxc_streamoff

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0cc5616

   case VIDIOC_S_PARM

In mxc_v4l2_s_param

   type is V4L2_BUF_TYPE_VIDEO_CAPTURE

   Current capabilities are 0

   Current capturemode is 0  change to 0

   Current framerate is 30  change to 15

   clock_curr=mclk=0

   Returning size of 720x625

   g_fmt_cap returns widthxheight of input as 720 x 625

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0cc5605

   case VIDIOC_S_FMT

In MVC: mxc_v4l2_s_fmt

   type=V4L2_BUF_TYPE_VIDEO_CAPTURE

   format is V4L2_PIX_FMT_NV12

End of mxc_v4l2_s_fmt: v2f pix widthxheight 720 x 576

End of mxc_v4l2_s_fmt: crop_bounds widthxheight 720 x 625

End of mxc_v4l2_s_fmt: crop_defrect widthxheight 720 x 625

End of mxc_v4l2_s_fmt: crop_current widthxheight 720 x 576

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0145608

   case VIDIOC_REQBUFS

In MVC:mxc_streamoff

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0445609

   case VIDIOC_QUERYBUF

In MVC:mxc_v4l2_release_bufs

In MVC:mxc_v4l2_prepare_bufs

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0445609

   case VIDIOC_QUERYBUF

In MVC:mxc_v4l2_release_bufs

In MVC:mxc_v4l2_prepare_bufs

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0445609

   case VIDIOC_QUERYBUF

In MVC:mxc_v4l2_release_bufs

In MVC:mxc_v4l2_prepare_bufs

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0445609

   case VIDIOC_QUERYBUF

In MVC:mxc_v4l2_release_bufs

In MVC:mxc_v4l2_prepare_bufs

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c044560f

   case VIDIOC_QBUF

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c044560f

   case VIDIOC_QBUF

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c044560f

   case VIDIOC_QBUF

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl 40045612

   case VIDIOC_STREAMON

In MVC:mxc_streamon

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0445611

   case VIDIOC_DQBUF

In MVC:mxc_v4l_dqueue

ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl 40045613

   case VIDIOC_STREAMOFF

In MVC:mxc_streamoff

In MVC:mxc_free_frames

BR,

Zoe

Labels (2)
0 Kudos
1 Solution
701 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

The adv7180 is supported already in the imx6qsabreauto. You could use the camer.apk to test it.

. The procedure of porting TVIN

(1)Adjust BSP files of your design.

As I previously mentioned in our Sabre-AI board, ADV7180 is supported, you could open "myandroid/kernel_imx/arch/arm/mach-mx6/board-mx6q_sabreauto.c" and refer to code for adv7180, then add them into your BSP file.

(2)Adjust HAL code of camera

Hardware Abstract Layer of camera is at path "myandroid/hardware/imx/libcamera/", After reading corresponding code , you will know how to modify them for you design.

I hope that helps,

Alejandro

View solution in original post

0 Kudos
3 Replies
701 Views
zoechen
Contributor I

This is my code, please help to check:

static void adv7180_pwdn(int pwdn)

{

    if (pwdn)

        gpio_set_value_cansleep(BUS_ADV7180_PWN_EN, 0);

    else

        gpio_set_value_cansleep(BUS_ADV7180_PWN_EN, 1);

}

static void mx6q_csi0_io_init(void)

{

    if (cpu_is_mx6q())

        mxc_iomux_v3_setup_multiple_pads(mx6q_sabresd_csi0_sensor_pads,

            ARRAY_SIZE(mx6q_sabresd_csi0_sensor_pads));

    else if (cpu_is_mx6dl())

        mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_csi0_sensor_pads,

            ARRAY_SIZE(mx6dl_sabresd_csi0_sensor_pads));

    if (cpu_is_mx6q())

        mxc_iomux_set_gpr_register(1, 19, 1, 1);

    else if (cpu_is_mx6dl())

        mxc_iomux_set_gpr_register(13, 0, 3, 4);

}

static struct fsl_mxc_tvin_platform_data adv7180_data = {

    .dvddio_reg    = NULL,

    .dvdd_reg    = NULL,

    .avdd_reg    = NULL,

    .pvdd_reg    = NULL,

    .pwdn        = adv7180_pwdn,

    .reset        = NULL,

    .cvbs        = true,

    .io_init    = mx6q_csi0_io_init,

};

0 Kudos
702 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

The adv7180 is supported already in the imx6qsabreauto. You could use the camer.apk to test it.

. The procedure of porting TVIN

(1)Adjust BSP files of your design.

As I previously mentioned in our Sabre-AI board, ADV7180 is supported, you could open "myandroid/kernel_imx/arch/arm/mach-mx6/board-mx6q_sabreauto.c" and refer to code for adv7180, then add them into your BSP file.

(2)Adjust HAL code of camera

Hardware Abstract Layer of camera is at path "myandroid/hardware/imx/libcamera/", After reading corresponding code , you will know how to modify them for you design.

I hope that helps,

Alejandro

0 Kudos
701 Views
zoechen
Contributor I

Hi,

     The adv7180 have worked well, there is a hardware mistake cause LLC signal do not output to CSI pixel clock pin.

Thanks for your reply.

BR,

Zoe

0 Kudos