1 .. SPDX-License-Identifier: GPL-2.0 1 .. SPDX-License-Identifier: GPL-2.0 2 2 3 The cafe_ccic driver 3 The cafe_ccic driver 4 ==================== 4 ==================== 5 5 6 Author: Jonathan Corbet <corbet@lwn.net> 6 Author: Jonathan Corbet <corbet@lwn.net> 7 7 8 Introduction 8 Introduction 9 ------------ 9 ------------ 10 10 11 "cafe_ccic" is a driver for the Marvell 88ALP0 11 "cafe_ccic" is a driver for the Marvell 88ALP01 "cafe" CMOS camera 12 controller. This is the controller found in f 12 controller. This is the controller found in first-generation OLPC systems, 13 and this driver was written with support from 13 and this driver was written with support from the OLPC project. 14 14 15 Current status: the core driver works. It can 15 Current status: the core driver works. It can generate data in YUV422, 16 RGB565, and RGB444 formats. (Anybody looking 16 RGB565, and RGB444 formats. (Anybody looking at the code will see RGB32 as 17 well, but that is a debugging aid which will b 17 well, but that is a debugging aid which will be removed shortly). VGA and 18 QVGA modes work; CIF is there but the colors r 18 QVGA modes work; CIF is there but the colors remain funky. Only the OV7670 19 sensor is known to work with this controller a 19 sensor is known to work with this controller at this time. 20 20 21 To try it out: either of these commands will w 21 To try it out: either of these commands will work: 22 22 23 .. code-block:: none 23 .. code-block:: none 24 24 25 $ mplayer tv:// -tv driver=v4l2:width=640 25 $ mplayer tv:// -tv driver=v4l2:width=640:height=480 -nosound 26 $ mplayer tv:// -tv driver=v4l2:width=640 26 $ mplayer tv:// -tv driver=v4l2:width=640:height=480:outfmt=bgr16 -nosound 27 27 28 The "xawtv" utility also works; gqcam does not 28 The "xawtv" utility also works; gqcam does not, for unknown reasons. 29 29 30 Load time options 30 Load time options 31 ----------------- 31 ----------------- 32 32 33 There are a few load-time options, most of whi 33 There are a few load-time options, most of which can be changed after 34 loading via sysfs as well: 34 loading via sysfs as well: 35 35 36 - alloc_bufs_at_load: Normally, the driver w 36 - alloc_bufs_at_load: Normally, the driver will not allocate any DMA 37 buffers until the time comes to transfer da 37 buffers until the time comes to transfer data. If this option is set, 38 then worst-case-sized buffers will be alloc 38 then worst-case-sized buffers will be allocated at module load time. 39 This option nails down the memory for the l 39 This option nails down the memory for the life of the module, but 40 perhaps decreases the chances of an allocat 40 perhaps decreases the chances of an allocation failure later on. 41 41 42 - dma_buf_size: The size of DMA buffers to al 42 - dma_buf_size: The size of DMA buffers to allocate. Note that this 43 option is only consulted for load-time allo 43 option is only consulted for load-time allocation; when buffers are 44 allocated at run time, they will be sized a 44 allocated at run time, they will be sized appropriately for the current 45 camera settings. 45 camera settings. 46 46 47 - n_dma_bufs: The controller can cycle throug 47 - n_dma_bufs: The controller can cycle through either two or three DMA 48 buffers. Normally, the driver tries to use 48 buffers. Normally, the driver tries to use three buffers; on faster 49 systems, however, it will work well with on 49 systems, however, it will work well with only two. 50 50 51 - min_buffers: The minimum number of streamin 51 - min_buffers: The minimum number of streaming I/O buffers that the driver 52 will consent to work with. Default is one, 52 will consent to work with. Default is one, but, on slower systems, 53 better behavior with mplayer can be achieve 53 better behavior with mplayer can be achieved by setting to a higher 54 value (like six). 54 value (like six). 55 55 56 - max_buffers: The maximum number of streamin 56 - max_buffers: The maximum number of streaming I/O buffers; default is 57 ten. That number was carefully picked out 57 ten. That number was carefully picked out of a hat and should not be 58 assumed to actually mean much of anything. 58 assumed to actually mean much of anything. 59 59 60 - flip: If this boolean parameter is set, the 60 - flip: If this boolean parameter is set, the sensor will be instructed to 61 invert the video image. Whether it makes s 61 invert the video image. Whether it makes sense is determined by how 62 your particular camera is mounted. 62 your particular camera is mounted.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.