Atmel Image Sensor Interface driver
This is a v4l2 driver for the Atmel Image Sensor Interface, which is integrated on the AT32AP7000 CPU as well as some AT91SAM926x ones. It consists primarily of a core driver which provides support for the actual ISI module, as well as one camera driver for each supported camera. The camera driver typically uses i2c or a similar protocol to configure the camera and start/stop capturing frames.
Features
- Two video device files that represent the two hardware processing paths (codec/preview)
- Streaming interface with memory mapped buffers (preview path). The buffers are provided by the driver.
- Capturing interface with read() interface (codec path).
- All mandatory V4L2 Capture Device ioctls are implemented
- The ISI driver offers an optional hook for camera drivers to exchange configurations and start/stop commands.
Known issues
Interfaces
If the ISI driver is the only video device on the system it will use following device numbers:
- /dev/video0 is the capture interface
- /dev/video1 is the streaming interface
Board setup code
The ISI configuration can be provided by filling out a platform data structure. These values correspond directly, or indirectly with some pre-defined macros, to register values that are documented in the device datasheet. The macros and the platform data structure are defined in include/media/atmel-isi.h.
Patches
Against 2.6.23.atmel.5
Examples
A lot of examples on how to use the V4L2 interface are available on the web. For example check out the tools from the xawtv toolset like streamer, v4lctl and webcam (
http://linux.bytesex.org/xawtv/).
Simple v4l2 capture utility
This utility will capture a single frame from a video device and write it to the specified file, or stdout if none is given. To use it:
Usage: capture [-d videodev] [-o outfile]
If no options are given, one frame is grabbed from
/dev/video0 and written to stdout in PPM format.
There is only a single source file, capture.c. Compile it like this
avr32-linux-gcc -o capture -O2 -g -Wall capture.c
and copy the resulting
capture file to the target.