[RFC 0/2] BCM283x Camera Receiver driver
dave.stevenson at raspberrypi.org
Wed Jun 14 08:15:45 PDT 2017
This is adding a V4L2 subdevice driver for the CSI2/CCP2 camera
receiver peripheral on BCM283x, as used on Raspberry Pi.
v4l2-compliance results depend on the sensor subdevice this is
connected to. It passes the basic tests cleanly with TC358743,
but objects with OV5647
fail: v4l2-test-controls.cpp(574): g_ext_ctrls does not support count == 0
Neither OV5647 nor Unicam support any controls.
I must admit to not having got OV5647 to stream with the current driver
register settings. It works with a set of register settings for VGA RAW10.
I also have a couple of patches pending for OV5647, but would like to
understand the issues better before sending them out.
Two queries I do have in V4L2-land:
- When s_dv_timings or s_std is called, is the format meant to
be updated automatically? Even if we're already streaming?
Some existing drivers seem to, but others don't.
- With s_fmt, is sizeimage settable by the application in the same
way as bytesperline? yavta allows you to specify it on the command
line, whilst v4l2-ctl doesn't. Some of the other parts of the Pi
firmware have a requirement that the buffer is a multiple of 16 lines
high, which can be matched by V4L2 if we can over-allocate the
buffers by the app specifying sizeimage. But if I allow that,
then I get a v4l2-compliance failure as the size doesn't get
reset when switching from RGB3 to UYVY as it takes the request as
a request to over-allocate.
Apologies if I've messed up in sending these patches - so many ways
to do something.
Thanks in advance.
Dave Stevenson (2):
[media] dt-bindings: Document BCM283x CSI2/CCP2 receiver
[media] bcm2835-unicam: Driver for CCP2/CSI2 camera interface
.../devicetree/bindings/media/bcm2835-unicam.txt | 76 +
drivers/media/platform/Kconfig | 1 +
drivers/media/platform/Makefile | 2 +
drivers/media/platform/bcm2835/Kconfig | 14 +
drivers/media/platform/bcm2835/Makefile | 3 +
drivers/media/platform/bcm2835/bcm2835-unicam.c | 2100 ++++++++++++++++++++
drivers/media/platform/bcm2835/vc4-regs-unicam.h | 257 +++
7 files changed, 2453 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/bcm2835-unicam.txt
create mode 100644 drivers/media/platform/bcm2835/Kconfig
create mode 100644 drivers/media/platform/bcm2835/Makefile
create mode 100644 drivers/media/platform/bcm2835/bcm2835-unicam.c
create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h
More information about the linux-rpi-kernel