Now I got the mx53 platform and the csi connect with the tvin chip TW2866.
I can r/w the reg through the i2c bus and I have measure the csi pin and found some signal generated by TW2866, but when I run the unit_test/mxc_v4l2_tvin program, I found error which is returned by the ioctl DQBUF. I trace the kernel source code and found out the mxc_v4l2_capture driver can't get the YUV data from the csi.
Normally, when the ipu csi get a frame of YUV data, it will generate a EOF(end of frame) event. Once we use the DQBUF get the frame data , the driver will check the event is exist or not.
Now, I'm sure the mx53 v4l2 driver is ok, and the TW2866 driver can control the chip normally.
and I want to know how to confirm the csi get the correct tvin data? Is there any register bit to dedicate the csi status?
You should set the Sensor protocol and data format and data size in the CSIx_SENS_CONF register, then CSI can capture the correct YUV data from the TV decoder. Also, checking the IOMUX pins for connceting the TW2866, in release bsp, we use the CSI0_D12 to CSI0_D19.
check the data path and see which DMA of IPU is used to output the data captured, usually we are using channel 0. monitor the status of channel 0 can show you if it was active.