Hi All. I am working on driver integration for ADV7280-m(mipi-csi2).
mipi stat register is 0x300. Err registers are zero. So as I understand I was managed to catch clk and data from the sensor on dphy level.
Adv7280-m pass 480i template signal(free run mode) virtual channel=0(1 data lane).
I read mipi debug steps documents.
I set IPU=0, CSI=0, GPR 1 bit 19 to zero for virtual channel 0. And all ipu, csi registers look correct.
But I can`t get idmac eof interrupt still.
Can anybody advice my what settings could I check?
Here is my debug output:
<7>In MVC: mxc_v4l_open
<7> device name is Mxc Camera
<7>v4l test0
<7>v4l test1
<7>v4l test2
<7>v4l test4
<7>adv7280 3-0021: adv7280:ioctl_g_ifparm
<7>adv7280 3-0021: adv7280:ioctl_g_fmt_cap
<7> Returning size of 720x525
<7>End of mxc_v4l_open: v2f pix widthxheight 288 x 352
<7>End of mxc_v4l_open: crop_bounds widthxheight 720 x 525
<7>End of mxc_v4l_open: crop_defrect widthxheight 720 x 525
<7>End of mxc_v4l_open: crop_current widthxheight 720 x 525
<7>On Open: Input to ipu size is 720 x 525
<7>imx-ipuv3 imx-ipuv3.0: CSI_SENS_CONF = 0x00000A02
<7>imx-ipuv3 imx-ipuv3.0: CSI_ACT_FRM_SIZE = 0x020C02CF
<7>adv7280 3-0021: adv7280:ioctl_s_power:1
<7>adv7280 3-0021: In adv7280:ioctl_init
<7>ehci_fsl_bus_suspend begins, Host 1
<7>adv7280:ioctl_dev_init
<7> Setting mclk to 24 MHz
<7>ehci_fsl_bus_suspend ends, Host 1
<7>mipi csi2 status:300
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi_err1:0
<3>mipi csi2 can not reveive data correctly1:0!
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi_err2:0
<3>mipi csi2 can not reveive data correctly2:0!
<7>mipi ok
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c02c5651
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c02c564a
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c02c564a
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0405602
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0cc5616
<7> case VIDIOC_S_PARM
<7>In mxc_v4l2_s_param
<7> Current capabilities are cdad
<7> Current capturemode is 52653 change to 0
<7> Current framerate is 61189 change to 30
<7>adv7280 3-0021: In adv7280:ioctl_s_parm
<7>adv7280 3-0021: adv7280:ioctl_g_ifparm
<7> clock_curr=mclk=24000000
<7>adv7280 3-0021: adv7280:ioctl_g_fmt_cap
<7> Returning size of 720x525
<7> g_fmt_cap returns widthxheight of input as 720 x 525
<7>imx-ipuv3 imx-ipuv3.0: CSI_SENS_CONF = 0x00000A02
<7>imx-ipuv3 imx-ipuv3.0: CSI_ACT_FRM_SIZE = 0x020C02CF
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0045627
<7> case VIDIOC_S_INPUT
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c014563b
<7> case VIDIOC_G_CROP
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl 4014563c
<7> case VIDIOC_S_CROP
<7> Cropping Input to ipu size 176 x 144
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0cc5605
<7> case VIDIOC_S_FMT
<7>In MVC: mxc_v4l2_s_fmt
<7> type=V4L2_BUF_TYPE_VIDEO_CAPTURE
<7>End of mxc_v4l2_s_fmt: v2f pix widthxheight 176 x 144
<7>End of mxc_v4l2_s_fmt: crop_bounds widthxheight 720 x 525
<7>End of mxc_v4l2_s_fmt: crop_defrect widthxheight 720 x 525
<7>End of mxc_v4l2_s_fmt: crop_current widthxheight 176 x 144
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c008561c
<7> case VIDIOC_S_CTRL
<7>In MVC:mxc_v4l2_s_ctrl
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0145608
<7> case VIDIOC_REQBUFS
<7>In MVC:mxc_streamoff
<7>MVC: In mxc_free_frame_buf
<7>In MVC:mxc_allocate_frame_buf - size=38016
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0cc5604
<7> case VIDIOC_G_FMT
<7>In MVC: mxc_v4l2_g_fmt type=1
<7> type is V4L2_BUF_TYPE_VIDEO_CAPTURE
<7>End of mxc_v4l2_g_fmt: v2f pix widthxheight 176 x 144
<7>End of mxc_v4l2_g_fmt: crop_bounds widthxheight 720 x 525
<7>End of mxc_v4l2_g_fmt: crop_defrect widthxheight 720 x 525
<7>End of mxc_v4l2_g_fmt: crop_current widthxheight 176 x 144
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0445609
<7> case VIDIOC_QUERYBUF
<7>In MVC:mxc_v4l2_buffer_status
<7>In MVC:mxc_mmap
<7> pgoff=0x22f30, start=0x40215000, end=0x4021f000
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0445609
<7> case VIDIOC_QUERYBUF
<7>In MVC:mxc_v4l2_buffer_status
<7>In MVC:mxc_mmap
<7> pgoff=0x22f40, start=0x402d6000, end=0x402e0000
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0445609
<7> case VIDIOC_QUERYBUF
<7>In MVC:mxc_v4l2_buffer_status
<7>In MVC:mxc_mmap
<7> pgoff=0x22f50, start=0x40357000, end=0x40361000
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c044560f
<7> case VIDIOC_QBUF
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c044560f
<7> case VIDIOC_QBUF
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c044560f
<7> case VIDIOC_QBUF
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl 40045612
<7> case VIDIOC_STREAMON
<7>In MVC:mxc_streamon
<4>IPU:In csi_enc_enabling_tasks
<4>In csi_enc_setup
<3>mipi csi test:0-0!
<3>mipi csi test0!
<7>imx-ipuv3 imx-ipuv3.0: init channel3 = 15
<7>imx-ipuv3 imx-ipuv3.0: mipi enable
<7>imx-ipuv3 imx-ipuv3.0: mipi enable0
<7>imx-ipuv3 imx-ipuv3.0: initializing idma ch 0 @ d98c0000
<7>imx-ipuv3 imx-ipuv3.0: ch 0 word 0 - 00000000 03180000 0000F780 E0020000 00023C15
<7>imx-ipuv3 imx-ipuv3.0: ch 0 word 1 - 04F00000 589E0000 0047C000 000057C0 00000057
<7>imx-ipuv3 imx-ipuv3.0: PFS 0x2,
<7>imx-ipuv3 imx-ipuv3.0: BPP 0x0,
<7>imx-ipuv3 imx-ipuv3.0: NPB 0x1f
<7>imx-ipuv3 imx-ipuv3.0: FW 175,
<7>imx-ipuv3 imx-ipuv3.0: FH 143,
<7>imx-ipuv3 imx-ipuv3.0: EBA0 0x27800000
<7>imx-ipuv3 imx-ipuv3.0: EBA1 0x27800000
<7>imx-ipuv3 imx-ipuv3.0: Stride 351
<7>imx-ipuv3 imx-ipuv3.0: scan_order 1
<7>imx-ipuv3 imx-ipuv3.0: uv_stride 87
<7>imx-ipuv3 imx-ipuv3.0: u_offset 0x6300
<7>imx-ipuv3 imx-ipuv3.0: v_offset 0x7bc0
<7>imx-ipuv3 imx-ipuv3.0: Width0 0+1,
<7>imx-ipuv3 imx-ipuv3.0: Width1 0+1,
<7>imx-ipuv3 imx-ipuv3.0: Width2 0+1,
<7>imx-ipuv3 imx-ipuv3.0: Width3 0+1,
<7>imx-ipuv3 imx-ipuv3.0: Offset0 23,
<7>imx-ipuv3 imx-ipuv3.0: Offset1 2,
<7>imx-ipuv3 imx-ipuv3.0: Offset2 0,
<7>imx-ipuv3 imx-ipuv3.0: Offset3 0
<7>imx-ipuv3 imx-ipuv3.0: channel:f-out:0-in:3f
<7>imx-ipuv3 imx-ipuv3.0: IPU_CONF = 0x10000761
<7>imx-ipuv3 imx-ipuv3.0: IDMAC_CONF = 0x0000002F
<7>imx-ipuv3 imx-ipuv3.0: IDMAC_CHA_EN1 = 0x00800001
<7>imx-ipuv3 imx-ipuv3.0: IDMAC_CHA_EN2 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IDMAC_CHA_PRI1 = 0x18800001
<7>imx-ipuv3 imx-ipuv3.0: IDMAC_CHA_PRI2 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IDMAC_BAND_EN1 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IDMAC_BAND_EN2 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_CHA_DB_MODE_SEL0 = 0x00000001
<7>imx-ipuv3 imx-ipuv3.0: IPU_CHA_DB_MODE_SEL1 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_CHA_TRB_MODE_SEL0 = 0x00800000
<7>imx-ipuv3 imx-ipuv3.0: IPU_CHA_TRB_MODE_SEL1 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: DMFC_WR_CHAN = 0x00000090
<7>imx-ipuv3 imx-ipuv3.0: DMFC_WR_CHAN_DEF = 0x202020F6
<7>imx-ipuv3 imx-ipuv3.0: DMFC_DP_CHAN = 0x00009694
<7>imx-ipuv3 imx-ipuv3.0: DMFC_DP_CHAN_DEF = 0x2020F6F6
<7>imx-ipuv3 imx-ipuv3.0: DMFC_IC_CTRL = 0x00000002
<7>imx-ipuv3 imx-ipuv3.0: IPU_FS_PROC_FLOW1 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_FS_PROC_FLOW2 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_FS_PROC_FLOW3 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_FS_DISP_FLOW1 = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_VDIC_VDI_FSIZE = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_VDIC_VDI_C = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_IC_CONF = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_INT_STAT = 0x00800000
<7>imx-ipuv3 imx-ipuv3.0: CSI_MIPI_DI = 0xFFFFFF1E
<7>imx-ipuv3 imx-ipuv3.0: CSI_SENS_CONF = 0x04000A02
<7>imx-ipuv3 imx-ipuv3.0: CSI_SENS_FRM_SIZE = 0x020C02CF
<7>imx-ipuv3 imx-ipuv3.0: CSI_ACT_FRM_SIZE = 0x008F00AF
<7>imx-ipuv3 imx-ipuv3.0: CSI_OUT_FRM_CTRL = 0x00000000
<7>imx-ipuv3 imx-ipuv3.0: IPU_INT_CTRL1 = 0x80000001
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c0445611
<7> case VIDIOC_DQBUF
<7>In MVC:mxc_v4l_dqueue
<3>ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl c044560f
<7> case VIDIOC_QBUF
<3>ERROR: v4l2 capture: VIDIOC_QBUF: buffer already queued
<7>In MVC:mxc_v4l_ioctl
<7>In MVC: mxc_v4l_do_ioctl 40045613
<7> case VIDIOC_STREAMOFF
<7>In MVC:mxc_streamoff
<7>imx-ipuv3 imx-ipuv3.0: CSI stop timeout - 5 * 10ms
<7>In MVC:mxc_free_frames
<7>In MVC:mxc_v4l_close
<7>In MVC:mxc_streamoff
<7>adv7280 3-0021: adv7280:ioctl_s_power:0
<7>mxc_v4l_close: release resource
<7>MVC: In mxc_free_frame_buf
<7>In MVC:mxc_free_frames
The issue resolved. Great thanks freescale technical experts.
igorpadykov can you continue with the follow up?
Hi Fan
please try attached patch and check:
1. the adv7280 should be enabled after mipi_csi2_reset().
2. For MIPI CSI input, the clock mode in IPU_CSI_SENS_CONF must be gated clock mode.
p->u.bt656.clock_curr = 1;
3. For interlaced input, IDMAC 0 should be set to interlaced mode: "params.csi_mem.interlaced = true;"
For progressive input, IDMAC 0 shoudl be set to progressive mode: "params.csi_mem.interlaced = false;"
case IPU_CSI_CLK_MODE_GATED_CLK: in file
drivers\media\video\mxc\capture\ipu_csi_enc.c, function csi_enc_setup().
4. For device type:
adv7280_data.sen.pix.priv = 1; /* 1 is used to indicate TV in */
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor.
Sorry for the long feedback, just got back from vacation.
I checked your patch. My driver has been made according to your recomendations. But I have the same status still. See my debug dump above.
As I said, It looks like my Dphy work correct(there are no any errors in mipi csi2 registers), but I cant get EOF interrupt.
Could you look at my registers dump and give advice about configuration.
Thanks.
Update:
Attached my files
Hi Fan
NXP has Professional Services for helping customers with porting own drivers
http://www.nxp.com/support/nxp-professional-services:PROFESSIONAL-SERVICE
Pro-Support contact www.nxp.com/prosupport
alternatively you can elevate your requests through local fae channel,
note project info may be required.
Best regards
igor