[RFC 0/2] BCM283x Camera Receiver driver

Hans Verkuil hverkuil at xs4all.nl
Thu Jun 15 00:17:03 PDT 2017

On 06/14/2017 11:03 PM, Dave Stevenson wrote:
> On 14 June 2017 at 18:38, Hans Verkuil <hverkuil at xs4all.nl> wrote:
>> On 06/14/2017 06:29 PM, Dave Stevenson wrote:
>>> Hi Hans.
>>> On 14 June 2017 at 16:42, Hans Verkuil <hverkuil at xs4all.nl> wrote:
>>>> Hi Dave,
>>>> How does this driver relate to this staging driver:
>>>> drivers/staging/vc04_services/bcm2835-camera/
>>>> It's not obvious to me.
>>> drivers/staging/vc04_services/bcm2835-camera/ is using the VideoCore
>>> firmware to control Unicam, ISP, and all the tuner algorithms. The ARM
>>> gets delivered fully processed buffers from the VideoCore side. The
>>> firmware only has drivers for the Omnivision OV5647 and Sony IMX219
>>> (and an unsupported one for the Toshiba TC358743).
>>> This driver is solely the Unicam block, reading the data in over
>>> CSI2/CCP2 from the sensor and writing it to memory. No ISP or control
>>> loops.
>>> Other than power management, this driver is running solely on the ARM
>>> with no involvement from the VideoCore firmware.
>>> The sensor driver is whatever suitable V4L2 subdevice driver you fancy
>>> attaching (as long as it supports CSI2, or eventually CCP2).
>> What is the interaction between these two drivers? Can they co-exist?
>> I would expect them to be mutually exclusive.
> Mutually exclusive for the same Unicam instance, yes.
> There are two Unicam instances on all BCM283x chips and both are
> brought out on the Compute Modules. You could run bcm2835-unicam on
> one and bcm2835-camera on the other if you so wished.
> The firmware checks whether the csi nodes in the device tree are
> active, and won't touch them if they are.

It would be good if this explanation is mentioned both in the driver code
and (I think) in the bindings document of *both* drivers. This setup is
unusual, so some extra documentation isn't amiss.



More information about the linux-rpi-kernel mailing list