Hello team,
We are working in PDS device prototype based on i.Mx6DL SODIMM module.
We are using kernel 3.10.53.We are now trying to bring camera up
Camera used is Color CMOS QSXGA (5MP) based on OV5640 sensor(parallel CSI). Resolution is 2592x1944
Following changes have been done in dts file
ov5640: ov5640@3c {
compatible = "ov5640";
reg = <0x3c>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu1_1>;
clocks = <&clks 201>;
clock-names = "csi_mclk";
csi_id = <0>;
mclk = <24000000>;
mclk_source = <0>;
};
v4l2_cap_0 {
compatible = "fsl,imx6q-v4l2-capture";
ipu_id = <0>;
csi_id = <0>;
mclk_source = <0>;
status = "okay";
};
v4l2_out {
compatible = "fsl,mxc_v4l2_output";
status = "okay";
};
IPU pinctrl pins are added in
----------------------------------------
ipu1 {
pinctrl_ipu1_1: ipu1grp-sm-csi {
fsl,pins = <
MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x80000000
MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x80000000
MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x80000000
MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x80000000
MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x80000000
MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x80000000
MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x80000000
MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x80000000
MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x80000000
MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x80000000
MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x80000000
MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x80000000
MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x80000000
/* MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x80000000 */
>;
};
}
These changes and all done and ov5640 driver has been enabled in make menuconfig
With these changes. We have run the mxc_v4l2_capture application and this is the ouput
root@imx6dlsabresd: ./mxc_v4l2_capture.out -iw 2592 -ih 1944 -ow 640 -oh 480 -d /dev/video0 -c 5 1.yuv
in_width = 2592, in_height = 1944
out_width = 640, out_height = 480
top = 0, left = 0
Setting mclk to 24 MHz
sensor chip is ov5640_camera
sensor supported frame size:
640x480
320x240
720x480
720x576
1280x720
1920x1080
2592x1944
176x144
1024x768
sensor frame format: YUYV
sensor frame format: YUYV
sensor frame format: YUYV
sensor frame format: YUYV
sensor frame format: YUYV
sensor frame format: YUYV
sensor frame format: YUYV
sensor frame format: YUYV
sensor frame format: YUYV
Width = 640 Height = 480 Image size = 460800
pixelformat: YU12
YUV420
ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0
VIDIOC_DQBUF failed.
ERROR: v4l2 capture: VIDIOC_QBUF: buffer already queued
VIDIOC_QBUF failed
Can you get what is the reason for this error. I am completely struck up with this.
Harware wise probed all possible lines. voltage supply, HSYNC,VSYNC, Data lines, pixelclock and all seems fine. So till CPU it seems fine.
But not sure why V4L2 app fails to capture. Even mxc v4l2 Overlay application also fails
Please help with this.
Thanks in advance.
Sarjoon