|| ||Jonathan Corbet <email@example.com>|
|| ||[PATCH/RFC 0/5] Marvell 88alp01 "cafe" camera driver|
|| ||Sun, 15 Oct 2006 12:40:28 -0600|
Mauro Carvalho Chehab <firstname.lastname@example.org>|
The following set of patches is a v4l2 capture driver for the Marvell
88alp01 camera controller and OmniVision OV7670 sensor. This is, of
course, the hardware combination which will be part of the first OLPC
This is an RFC at this point - I'm sure there's a number of things wrong
here. But I would like to try for a merge in 2.6.20 if at all possible;
by then, the OLPC project expects to have hundreds of test systems out
there, so there will be demand for the driver.
Some more information can be found in the doc file, which is the first
Add a documentation file for the m88alp01/ov7670 combination.
diff -ruNp -X 19-rc2.jc/Documentation/dontdiff
--- /k/t/2.6.19-rc2/Documentation/video4linux/m88alp01-ccic 1969-12-31 17:00:00.000000000 -0700
+++ 19-rc2.jc/Documentation/video4linux/m88alp01-ccic 2006-10-15 12:04:32.000000000 -0600
@@ -0,0 +1,57 @@
+This is the initial version of the Cafe camera driver. Here's a few notes
+to go along with it...
+ - You need a 2.6.18+ kernel for this driver. If you're running
+ 2.6.18-vanilla, you'll need a couple of small v4l2 patches
+ or the driver will not function.
+ - The name of the driver (m88alp01-ccic) was taken from the product name
+ found in the draft spec. If we want to change its name (and Marvell
+ could well change theirs) now is probably the right time to do so.
+ - It is rock-solid with mplayer. The command I use is:
+ mplayer tv:// -tv driver=v4l2:width=640:height=480 -nosound
+ That will give you a 30fps window, VGA resolution, showing whatever the
+ camera sees. You can tweak contrast and brightness ('1' and '2' for
+ contrast, '3' and '4' for brightness); no other controls are hooked up
+ - Also supported are the RGB565 and RGB444 formats. RGB565 can be
+ displayed directly with a command like:
+ mplayer tv:// -tv driver=v4l2:width=640:height=480:outfmt=bgr16 -nosound
+ No application currently knows how to do RGB444, so the driver currently
+ implements a fake RGB32 mode generated from RGB444. V4L2 drivers are not
+ supposed to do video format transformations, so this options will
+ probably come out eventually, but it is useful for testing now; use
+ outfmt=rgb32 with mplayer to get this mode.
+ - It does not behave at all well with gqcam - which appears to be trying
+ to use the read() method. There is some residual weirdness with read()
+ that I've not yet had a chance to track down. Xawtv also does strange
+ - This driver uses the "ovcamchip" layer because it was convenient, but it
+ is at most a marriage of convenience. This layer has traditionally been
+ used to configure OmniVision sensors for a specific back-end processor;
+ here, instead, we want to see the sensor's output data directly. So the
+ supplied OV7670 driver will not work with the older ovcamchip users, and
+ the other OmniVision sensor drivers are not useful for the m88alp01
+ camera controller.
+ I have made a beginning attempt to shove some V4L2 functionality down
+ into the ovcamchip layer as a way of making it a bit more general, but
+ (1) this work is rough as yet, and (2) I have not been able to talk with
+ the ovcamchip maintainer about how he would like things done. So
+ changes may be required in this interface.
+Please do look it over, try it out, and get back to me with any questions
video4linux-list mailing list