All of lore.kernel.org
 help / color / mirror / Atom feed
* CCP2 on OMAP35x
@ 2010-08-16 15:38 Michael Jones
  2010-08-16 19:25 ` Laurent Pinchart
  0 siblings, 1 reply; 2+ messages in thread
From: Michael Jones @ 2010-08-16 15:38 UTC (permalink / raw)
  To: laurent.pinchart; +Cc: sakari.ailus@maxwell.research.nokia.com, linux-media

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: CCP2 on OMAP35x
  2010-08-16 15:38 CCP2 on OMAP35x Michael Jones
@ 2010-08-16 19:25 ` Laurent Pinchart
  0 siblings, 0 replies; 2+ messages in thread
From: Laurent Pinchart @ 2010-08-16 19:25 UTC (permalink / raw)
  To: Michael Jones; +Cc: sakari.ailus@maxwell.research.nokia.com, linux-media

Hi Michael,

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.

> 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.

> 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.

> 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.

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-08-16 19:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-16 15:38 CCP2 on OMAP35x Michael Jones
2010-08-16 19:25 ` Laurent Pinchart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.