I'm using the OMAP3EVM and trying to use the parallel camera interface on the ISP tp write images directly to memory with the CCDC. I'm using the omap3camera linux tree, so I have first set up the links sensor->CCDC and CCDC->"CCDC Output" with the media-ctl tool. When I then select() on the /dev/videoX node corresponding to "OMAP3 ISP CCDC output", it times out, never receiving the VD0 interrupt.
I first suspected that the sensor signals were not arriving at the ISP. But I _am_ getting HS_VS interrupts on rising VS (or HS if I reprogram it) edges, which vanish when I disconnect the respective signal from the EVM, so the HS signal must be arriving. However, while I measure a frame rate of ~100Hz on the oscilloscope, the HS_VS interrupts for VS come about 300 times faster- more like 30kHz. My line frequency should be about 50kHz, so if the ISP is indeed getting VS at 30kHz, it's no wonder the line count never gets up to the value in VDINT. On the oscilloscope, the signals look good- 480 HS pulses inside of each VS pulse.
I have double-checked the following registers are set up as follows to enable the VD0 interrupt appropriately.
CCDC_SYN_MODE = 0x30600
ISP_CTRL = 0x214100
HS/VS slave mode?
ISP_IRQ0ENABLE = 0x811931f9
CCDC_VDINT = 0x140000 (I've moved VDINT0 down from 480 to 20 to try to get the interrupt)
Can someone tell me how I could possibly not be getting the VD0 interrupt? Or how I could be getting so many erroneous HS_VS interrupts?