Skip to contentSkip to conversation

CCP2 on OMAP35x

DISCUSSION Michael Jones 2 participants 2 messages Aug 16, 2010 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

Hi Laurent,

I'm working on a sensor driver with a parallel interface to the ISP. In my OMAP35x TRM (spruf98h.pdf), I only find 2 occurrences of "CCP2", with no discussion or description, whereas in the ISP sources on omap3camera/devel I see that it is a building block of the ISP. From the sources, I'm guessing that it is involved in interfacing a serial sensor data stream to the CCDC, and would be uninvolved in parallel data from a sensor.

Is the CCP2 indeed documented somewhere for the OMAP35x? Or is this perhaps only available in the OMAP34x?

In omap34xxcam_video_init(), the media_entity links are activated. In this if/else there,

if (vdev->vdev_sensor->entity.links[0].sink->entity ==

    &isp->isp_csi2a.subdev.entity) {...} else {...}

the assumption is made that a sensor is either connected A. (sensor->)CSI2A->CCDC or
B. sensor->CCP2->CCDC

but if I'm correct that the CCP2 is related to serial data, there is an option (C) missing for parallel data: sensor->CCDC. In fact, this is the link that is created in omap34xxcam_probe() if 'case ISP_INTERFACE_PARALLEL'. Is this correct, that I would need to add an 'else if' to get parallel data working?

sincerely,
Michael

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, Hans-Joachim Reich

#1 lore raw

Hi Michael,

Quoted 8 lines · On Monday 16 August 2010 17:38:43 Michael Jones wrote:

Hi Laurent,

I'm working on a sensor driver with a parallel interface to the ISP. In my OMAP35x TRM (spruf98h.pdf), I only find 2 occurrences of "CCP2", with no discussion or description, whereas in the ISP sources on omap3camera/devel I see that it is a building block of the ISP. From the sources, I'm guessing that it is involved in interfacing a serial sensor data stream to the CCDC, and would be uninvolved in parallel data from a sensor.

That's correct. CCP2 stands for Compact Camera Port 2 and is an interface standard for serial cameras used in mobile phones (and possibly elsewhere). A quick search on Google turns up this link
http://www.sunex.com/SIMA/SMIA_CCP2_specification_1.0.pdf. If I'm not mistaken, CCP2 is a superset of the CSI-1 interface standard defined by the MIPI alliance.

Quoted 2 lines

Is the CCP2 indeed documented somewhere for the OMAP35x? Or is this perhaps only available in the OMAP34x?

The physical CCP2 interface is only available in the OMAP34xx and OMAP36xx processors. The OMAP35xx family has a parallel receiver only.

However, the CCP2 module can also read back raw data from memory. Even though the physical CCP2 interface is not present on the OMAP34xx/36xx families (at least according to the TRM, I don't think anymore has built an OMAP35xx board to verify this), the CCP2 module itself is available and can be used in memory input mode.

Quoted 9 lines

In omap34xxcam_video_init(), the media_entity links are activated. In this if/else there,

if (vdev->vdev_sensor->entity.links[0].sink->entity ==

    &isp->isp_csi2a.subdev.entity) {...} else {...}

the assumption is made that a sensor is either connected A. (sensor->)CSI2A->CCDC or
B. sensor->CCP2->CCDC

That's correct.

Quoted 5 lines

but if I'm correct that the CCP2 is related to serial data, there is an option (C) missing for parallel data: sensor->CCDC. In fact, this is the link that is created in omap34xxcam_probe() if 'case ISP_INTERFACE_PARALLEL'. Is this correct, that I would need to add an 'else if' to get parallel data working?

You shouldn't use the video nodes /dev/video0 and /dev/video1. They're legacy and will soon be removed. You should instead use the new video nodes /dev/video[2-8] along with the media controller API. They should support parallel sensors properly.

Signature · 3 lines
Regards,

Laurent Pinchart