Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
ov2640.c File Reference
#include <linux/init.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/v4l2-mediabus.h>
#include <linux/videodev2.h>
#include <media/soc_camera.h>
#include <media/v4l2-chip-ident.h>
#include <media/v4l2-subdev.h>
#include <media/v4l2-ctrls.h>

Go to the source code of this file.

Data Structures

struct  regval_list
 
struct  ov2640_win_size
 
struct  ov2640_priv
 

Macros

#define VAL_SET(x, mask, rshift, lshift)   ((((x) >> rshift) & mask) << lshift)
 
#define R_BYPASS   0x05 /* Bypass DSP */
 
#define R_BYPASS_DSP_BYPAS   0x01 /* Bypass DSP, sensor out directly */
 
#define R_BYPASS_USE_DSP   0x00 /* Use the internal DSP */
 
#define QS   0x44 /* Quantization Scale Factor */
 
#define CTRLI   0x50
 
#define CTRLI_LP_DP   0x80
 
#define CTRLI_ROUND   0x40
 
#define CTRLI_V_DIV_SET(x)   VAL_SET(x, 0x3, 0, 3)
 
#define CTRLI_H_DIV_SET(x)   VAL_SET(x, 0x3, 0, 0)
 
#define HSIZE   0x51 /* H_SIZE[7:0] (real/4) */
 
#define HSIZE_SET(x)   VAL_SET(x, 0xFF, 2, 0)
 
#define VSIZE   0x52 /* V_SIZE[7:0] (real/4) */
 
#define VSIZE_SET(x)   VAL_SET(x, 0xFF, 2, 0)
 
#define XOFFL   0x53 /* OFFSET_X[7:0] */
 
#define XOFFL_SET(x)   VAL_SET(x, 0xFF, 0, 0)
 
#define YOFFL   0x54 /* OFFSET_Y[7:0] */
 
#define YOFFL_SET(x)   VAL_SET(x, 0xFF, 0, 0)
 
#define VHYX   0x55 /* Offset and size completion */
 
#define VHYX_VSIZE_SET(x)   VAL_SET(x, 0x1, (8+2), 7)
 
#define VHYX_HSIZE_SET(x)   VAL_SET(x, 0x1, (8+2), 3)
 
#define VHYX_YOFF_SET(x)   VAL_SET(x, 0x3, 8, 4)
 
#define VHYX_XOFF_SET(x)   VAL_SET(x, 0x3, 8, 0)
 
#define DPRP   0x56
 
#define TEST   0x57 /* Horizontal size completion */
 
#define TEST_HSIZE_SET(x)   VAL_SET(x, 0x1, (9+2), 7)
 
#define ZMOW   0x5A /* Zoom: Out Width OUTW[7:0] (real/4) */
 
#define ZMOW_OUTW_SET(x)   VAL_SET(x, 0xFF, 2, 0)
 
#define ZMOH   0x5B /* Zoom: Out Height OUTH[7:0] (real/4) */
 
#define ZMOH_OUTH_SET(x)   VAL_SET(x, 0xFF, 2, 0)
 
#define ZMHH   0x5C /* Zoom: Speed and H&W completion */
 
#define ZMHH_ZSPEED_SET(x)   VAL_SET(x, 0x0F, 0, 4)
 
#define ZMHH_OUTH_SET(x)   VAL_SET(x, 0x1, (8+2), 2)
 
#define ZMHH_OUTW_SET(x)   VAL_SET(x, 0x3, (8+2), 0)
 
#define BPADDR   0x7C /* SDE Indirect Register Access: Address */
 
#define BPDATA   0x7D /* SDE Indirect Register Access: Data */
 
#define CTRL2   0x86 /* DSP Module enable 2 */
 
#define CTRL2_DCW_EN   0x20
 
#define CTRL2_SDE_EN   0x10
 
#define CTRL2_UV_ADJ_EN   0x08
 
#define CTRL2_UV_AVG_EN   0x04
 
#define CTRL2_CMX_EN   0x01
 
#define CTRL3   0x87 /* DSP Module enable 3 */
 
#define CTRL3_BPC_EN   0x80
 
#define CTRL3_WPC_EN   0x40
 
#define SIZEL   0x8C /* Image Size Completion */
 
#define SIZEL_HSIZE8_11_SET(x)   VAL_SET(x, 0x1, 11, 6)
 
#define SIZEL_HSIZE8_SET(x)   VAL_SET(x, 0x7, 0, 3)
 
#define SIZEL_VSIZE8_SET(x)   VAL_SET(x, 0x7, 0, 0)
 
#define HSIZE8   0xC0 /* Image Horizontal Size HSIZE[10:3] */
 
#define HSIZE8_SET(x)   VAL_SET(x, 0xFF, 3, 0)
 
#define VSIZE8   0xC1 /* Image Vertical Size VSIZE[10:3] */
 
#define VSIZE8_SET(x)   VAL_SET(x, 0xFF, 3, 0)
 
#define CTRL0   0xC2 /* DSP Module enable 0 */
 
#define CTRL0_AEC_EN   0x80
 
#define CTRL0_AEC_SEL   0x40
 
#define CTRL0_STAT_SEL   0x20
 
#define CTRL0_VFIRST   0x10
 
#define CTRL0_YUV422   0x08
 
#define CTRL0_YUV_EN   0x04
 
#define CTRL0_RGB_EN   0x02
 
#define CTRL0_RAW_EN   0x01
 
#define CTRL1   0xC3 /* DSP Module enable 1 */
 
#define CTRL1_CIP   0x80
 
#define CTRL1_DMY   0x40
 
#define CTRL1_RAW_GMA   0x20
 
#define CTRL1_DG   0x10
 
#define CTRL1_AWB   0x08
 
#define CTRL1_AWB_GAIN   0x04
 
#define CTRL1_LENC   0x02
 
#define CTRL1_PRE   0x01
 
#define R_DVP_SP   0xD3 /* DVP output speed control */
 
#define R_DVP_SP_AUTO_MODE   0x80
 
#define R_DVP_SP_DVP_MASK
 
#define IMAGE_MODE   0xDA /* Image Output Format Select */
 
#define IMAGE_MODE_Y8_DVP_EN   0x40
 
#define IMAGE_MODE_JPEG_EN   0x10
 
#define IMAGE_MODE_YUV422   0x00
 
#define IMAGE_MODE_RAW10   0x04 /* (DVP) */
 
#define IMAGE_MODE_RGB565   0x08
 
#define IMAGE_MODE_HREF_VSYNC
 
#define IMAGE_MODE_LBYTE_FIRST
 
#define RESET   0xE0 /* Reset */
 
#define RESET_MICROC   0x40
 
#define RESET_SCCB   0x20
 
#define RESET_JPEG   0x10
 
#define RESET_DVP   0x04
 
#define RESET_IPU   0x02
 
#define RESET_CIF   0x01
 
#define REGED   0xED /* Register ED */
 
#define REGED_CLK_OUT_DIS   0x10
 
#define MS_SP   0xF0 /* SCCB Master Speed */
 
#define SS_ID   0xF7 /* SCCB Slave ID */
 
#define SS_CTRL   0xF8 /* SCCB Slave Control */
 
#define SS_CTRL_ADD_AUTO_INC   0x20
 
#define SS_CTRL_EN   0x08
 
#define SS_CTRL_DELAY_CLK   0x04
 
#define SS_CTRL_ACC_EN   0x02
 
#define SS_CTRL_SEN_PASS_THR   0x01
 
#define MC_BIST   0xF9 /* Microcontroller misc register */
 
#define MC_BIST_RESET   0x80 /* Microcontroller Reset */
 
#define MC_BIST_BOOT_ROM_SEL   0x40
 
#define MC_BIST_12KB_SEL   0x20
 
#define MC_BIST_12KB_MASK   0x30
 
#define MC_BIST_512KB_SEL   0x08
 
#define MC_BIST_512KB_MASK   0x0C
 
#define MC_BIST_BUSY_BIT_R   0x02
 
#define MC_BIST_MC_RES_ONE_SH_W   0x02
 
#define MC_BIST_LAUNCH   0x01
 
#define BANK_SEL   0xFF /* Register Bank Select */
 
#define BANK_SEL_DSP   0x00
 
#define BANK_SEL_SENS   0x01
 
#define GAIN   0x00 /* AGC - Gain control gain setting */
 
#define COM1   0x03 /* Common control 1 */
 
#define COM1_1_DUMMY_FR   0x40
 
#define COM1_3_DUMMY_FR   0x80
 
#define COM1_7_DUMMY_FR   0xC0
 
#define COM1_VWIN_LSB_UXGA   0x0F
 
#define COM1_VWIN_LSB_SVGA   0x0A
 
#define COM1_VWIN_LSB_CIF   0x06
 
#define REG04   0x04 /* Register 04 */
 
#define REG04_DEF   0x20 /* Always set */
 
#define REG04_HFLIP_IMG   0x80 /* Horizontal mirror image ON/OFF */
 
#define REG04_VFLIP_IMG   0x40 /* Vertical flip image ON/OFF */
 
#define REG04_VREF_EN   0x10
 
#define REG04_HREF_EN   0x08
 
#define REG04_AEC_SET(x)   VAL_SET(x, 0x3, 0, 0)
 
#define REG08   0x08 /* Frame Exposure One-pin Control Pre-charge Row Num */
 
#define COM2   0x09 /* Common control 2 */
 
#define COM2_SOFT_SLEEP_MODE   0x10 /* Soft sleep mode */
 
#define COM2_OCAP_Nx_SET(N)   (((N) - 1) & 0x03) /* N = [1x .. 4x] */
 
#define PID   0x0A /* Product ID Number MSB */
 
#define VER   0x0B /* Product ID Number LSB */
 
#define COM3   0x0C /* Common control 3 */
 
#define COM3_BAND_50H   0x04 /* 0 For Banding at 60H */
 
#define COM3_BAND_AUTO   0x02 /* Auto Banding */
 
#define COM3_SING_FR_SNAPSH
 
#define AEC   0x10 /* AEC[9:2] Exposure Value */
 
#define CLKRC   0x11 /* Internal clock */
 
#define CLKRC_EN   0x80
 
#define CLKRC_DIV_SET(x)   (((x) - 1) & 0x1F) /* CLK = XVCLK/(x) */
 
#define COM7   0x12 /* Common control 7 */
 
#define COM7_SRST
 
#define COM7_RES_UXGA   0x00 /* Resolution selectors for UXGA */
 
#define COM7_RES_SVGA   0x40 /* SVGA */
 
#define COM7_RES_CIF   0x20 /* CIF */
 
#define COM7_ZOOM_EN   0x04 /* Enable Zoom mode */
 
#define COM7_COLOR_BAR_TEST   0x02 /* Enable Color Bar Test Pattern */
 
#define COM8   0x13 /* Common control 8 */
 
#define COM8_DEF   0xC0 /* Banding filter ON/OFF */
 
#define COM8_BNDF_EN   0x20 /* Banding filter ON/OFF */
 
#define COM8_AGC_EN   0x04 /* AGC Auto/Manual control selection */
 
#define COM8_AEC_EN   0x01 /* Auto/Manual Exposure control */
 
#define COM9
 
#define COM9_AGC_GAIN_2x   0x00 /* 000 : 2x */
 
#define COM9_AGC_GAIN_4x   0x20 /* 001 : 4x */
 
#define COM9_AGC_GAIN_8x   0x40 /* 010 : 8x */
 
#define COM9_AGC_GAIN_16x   0x60 /* 011 : 16x */
 
#define COM9_AGC_GAIN_32x   0x80 /* 100 : 32x */
 
#define COM9_AGC_GAIN_64x   0xA0 /* 101 : 64x */
 
#define COM9_AGC_GAIN_128x   0xC0 /* 110 : 128x */
 
#define COM10   0x15 /* Common control 10 */
 
#define COM10_PCLK_HREF   0x20 /* PCLK output qualified by HREF */
 
#define COM10_PCLK_RISE
 
#define COM10_HREF_INV
 
#define COM10_VSINC_INV   0x02 /* Invert VSYNC polarity */
 
#define HSTART   0x17 /* Horizontal Window start MSB 8 bit */
 
#define HEND   0x18 /* Horizontal Window end MSB 8 bit */
 
#define VSTART   0x19 /* Vertical Window start MSB 8 bit */
 
#define VEND   0x1A /* Vertical Window end MSB 8 bit */
 
#define MIDH   0x1C /* Manufacturer ID byte - high */
 
#define MIDL   0x1D /* Manufacturer ID byte - low */
 
#define AEW   0x24 /* AGC/AEC - Stable operating region (upper limit) */
 
#define AEB   0x25 /* AGC/AEC - Stable operating region (lower limit) */
 
#define VV   0x26 /* AGC/AEC Fast mode operating region */
 
#define VV_HIGH_TH_SET(x)   VAL_SET(x, 0xF, 0, 4)
 
#define VV_LOW_TH_SET(x)   VAL_SET(x, 0xF, 0, 0)
 
#define REG2A   0x2A /* Dummy pixel insert MSB */
 
#define FRARL   0x2B /* Dummy pixel insert LSB */
 
#define ADDVFL   0x2D /* LSB of insert dummy lines in Vertical direction */
 
#define ADDVFH   0x2E /* MSB of insert dummy lines in Vertical direction */
 
#define YAVG   0x2F /* Y/G Channel Average value */
 
#define REG32   0x32 /* Common Control 32 */
 
#define REG32_PCLK_DIV_2   0x80 /* PCLK freq divided by 2 */
 
#define REG32_PCLK_DIV_4   0xC0 /* PCLK freq divided by 4 */
 
#define ARCOM2   0x34 /* Zoom: Horizontal start point */
 
#define REG45   0x45 /* Register 45 */
 
#define FLL   0x46 /* Frame Length Adjustment LSBs */
 
#define FLH   0x47 /* Frame Length Adjustment MSBs */
 
#define COM19   0x48 /* Zoom: Vertical start point */
 
#define ZOOMS   0x49 /* Zoom: Vertical start point */
 
#define COM22   0x4B /* Flash light control */
 
#define COM25   0x4E /* For Banding operations */
 
#define BD50   0x4F /* 50Hz Banding AEC 8 LSBs */
 
#define BD60   0x50 /* 60Hz Banding AEC 8 LSBs */
 
#define REG5D   0x5D /* AVGsel[7:0], 16-zone average weight option */
 
#define REG5E   0x5E /* AVGsel[15:8], 16-zone average weight option */
 
#define REG5F   0x5F /* AVGsel[23:16], 16-zone average weight option */
 
#define REG60   0x60 /* AVGsel[31:24], 16-zone average weight option */
 
#define HISTO_LOW   0x61 /* Histogram Algorithm Low Level */
 
#define HISTO_HIGH   0x62 /* Histogram Algorithm High Level */
 
#define MANUFACTURER_ID   0x7FA2
 
#define PID_OV2640   0x2642
 
#define VERSION(pid, ver)   ((pid << 8) | (ver & 0xFF))
 
#define ENDMARKER   { 0xff, 0xff }
 
#define PER_SIZE_REG_SEQ(x, y, v_div, h_div, pclk_div)
 
#define OV2640_SIZE(n, w, h, r)   {.name = n, .width = w , .height = h, .regs = r }
 

Enumerations

enum  ov2640_width {
  W_QCIF = 176, W_QVGA = 320, W_CIF = 352, W_VGA = 640,
  W_SVGA = 800, W_XGA = 1024, W_SXGA = 1280, W_UXGA = 1600
}
 
enum  ov2640_height {
  H_QCIF = 144, H_QVGA = 240, H_CIF = 288, H_VGA = 480,
  H_SVGA = 600, H_XGA = 768, H_SXGA = 1024, H_UXGA = 1200
}
 

Functions

 MODULE_DEVICE_TABLE (i2c, ov2640_id)
 
 module_i2c_driver (ov2640_i2c_driver)
 
 MODULE_DESCRIPTION ("SoC Camera driver for Omni Vision 2640 sensor")
 
 MODULE_AUTHOR ("Alberto Panizzo")
 
 MODULE_LICENSE ("GPL v2")
 

Macro Definition Documentation

#define ADDVFH   0x2E /* MSB of insert dummy lines in Vertical direction */

Definition at line 220 of file ov2640.c.

#define ADDVFL   0x2D /* LSB of insert dummy lines in Vertical direction */

Definition at line 219 of file ov2640.c.

#define AEB   0x25 /* AGC/AEC - Stable operating region (lower limit) */

Definition at line 213 of file ov2640.c.

#define AEC   0x10 /* AEC[9:2] Exposure Value */

Definition at line 177 of file ov2640.c.

#define AEW   0x24 /* AGC/AEC - Stable operating region (upper limit) */

Definition at line 212 of file ov2640.c.

#define ARCOM2   0x34 /* Zoom: Horizontal start point */

Definition at line 225 of file ov2640.c.

#define BANK_SEL   0xFF /* Register Bank Select */

Definition at line 143 of file ov2640.c.

#define BANK_SEL_DSP   0x00

Definition at line 144 of file ov2640.c.

#define BANK_SEL_SENS   0x01

Definition at line 145 of file ov2640.c.

#define BD50   0x4F /* 50Hz Banding AEC 8 LSBs */

Definition at line 233 of file ov2640.c.

#define BD60   0x50 /* 60Hz Banding AEC 8 LSBs */

Definition at line 234 of file ov2640.c.

#define BPADDR   0x7C /* SDE Indirect Register Access: Address */

Definition at line 68 of file ov2640.c.

#define BPDATA   0x7D /* SDE Indirect Register Access: Data */

Definition at line 69 of file ov2640.c.

#define CLKRC   0x11 /* Internal clock */

Definition at line 178 of file ov2640.c.

#define CLKRC_DIV_SET (   x)    (((x) - 1) & 0x1F) /* CLK = XVCLK/(x) */

Definition at line 180 of file ov2640.c.

#define CLKRC_EN   0x80

Definition at line 179 of file ov2640.c.

#define COM1   0x03 /* Common control 1 */

Definition at line 152 of file ov2640.c.

#define COM10   0x15 /* Common control 10 */

Definition at line 201 of file ov2640.c.

#define COM10_HREF_INV
Value:
0x08 /* Invert HREF polarity:
* HREF negative for valid data*/

Definition at line 204 of file ov2640.c.

#define COM10_PCLK_HREF   0x20 /* PCLK output qualified by HREF */

Definition at line 202 of file ov2640.c.

#define COM10_PCLK_RISE
Value:
0x10 /* Data is updated at the rising edge of
* PCLK (user can latch data at the next
* falling edge of PCLK).
* 0 otherwise. */

Definition at line 203 of file ov2640.c.

#define COM10_VSINC_INV   0x02 /* Invert VSYNC polarity */

Definition at line 205 of file ov2640.c.

#define COM19   0x48 /* Zoom: Vertical start point */

Definition at line 229 of file ov2640.c.

#define COM1_1_DUMMY_FR   0x40

Definition at line 153 of file ov2640.c.

#define COM1_3_DUMMY_FR   0x80

Definition at line 154 of file ov2640.c.

#define COM1_7_DUMMY_FR   0xC0

Definition at line 155 of file ov2640.c.

#define COM1_VWIN_LSB_CIF   0x06

Definition at line 158 of file ov2640.c.

#define COM1_VWIN_LSB_SVGA   0x0A

Definition at line 157 of file ov2640.c.

#define COM1_VWIN_LSB_UXGA   0x0F

Definition at line 156 of file ov2640.c.

#define COM2   0x09 /* Common control 2 */

Definition at line 167 of file ov2640.c.

#define COM22   0x4B /* Flash light control */

Definition at line 231 of file ov2640.c.

#define COM25   0x4E /* For Banding operations */

Definition at line 232 of file ov2640.c.

#define COM2_OCAP_Nx_SET (   N)    (((N) - 1) & 0x03) /* N = [1x .. 4x] */

Definition at line 170 of file ov2640.c.

#define COM2_SOFT_SLEEP_MODE   0x10 /* Soft sleep mode */

Definition at line 168 of file ov2640.c.

#define COM3   0x0C /* Common control 3 */

Definition at line 173 of file ov2640.c.

#define COM3_BAND_50H   0x04 /* 0 For Banding at 60H */

Definition at line 174 of file ov2640.c.

#define COM3_BAND_AUTO   0x02 /* Auto Banding */

Definition at line 175 of file ov2640.c.

#define COM3_SING_FR_SNAPSH
Value:
0x01 /* 0 For enable live video output after the
* snapshot sequence*/

Definition at line 176 of file ov2640.c.

#define COM7   0x12 /* Common control 7 */

Definition at line 181 of file ov2640.c.

#define COM7_COLOR_BAR_TEST   0x02 /* Enable Color Bar Test Pattern */

Definition at line 187 of file ov2640.c.

#define COM7_RES_CIF   0x20 /* CIF */

Definition at line 185 of file ov2640.c.

#define COM7_RES_SVGA   0x40 /* SVGA */

Definition at line 184 of file ov2640.c.

#define COM7_RES_UXGA   0x00 /* Resolution selectors for UXGA */

Definition at line 183 of file ov2640.c.

#define COM7_SRST
Value:
0x80 /* Initiates system reset. All registers are
* set to factory default values after which
* the chip resumes normal operation */

Definition at line 182 of file ov2640.c.

#define COM7_ZOOM_EN   0x04 /* Enable Zoom mode */

Definition at line 186 of file ov2640.c.

#define COM8   0x13 /* Common control 8 */

Definition at line 188 of file ov2640.c.

#define COM8_AEC_EN   0x01 /* Auto/Manual Exposure control */

Definition at line 192 of file ov2640.c.

#define COM8_AGC_EN   0x04 /* AGC Auto/Manual control selection */

Definition at line 191 of file ov2640.c.

#define COM8_BNDF_EN   0x20 /* Banding filter ON/OFF */

Definition at line 190 of file ov2640.c.

#define COM8_DEF   0xC0 /* Banding filter ON/OFF */

Definition at line 189 of file ov2640.c.

#define COM9
Value:
0x14 /* Common control 9
* Automatic gain ceiling - maximum AGC value [7:5]*/

Definition at line 193 of file ov2640.c.

#define COM9_AGC_GAIN_128x   0xC0 /* 110 : 128x */

Definition at line 200 of file ov2640.c.

#define COM9_AGC_GAIN_16x   0x60 /* 011 : 16x */

Definition at line 197 of file ov2640.c.

#define COM9_AGC_GAIN_2x   0x00 /* 000 : 2x */

Definition at line 194 of file ov2640.c.

#define COM9_AGC_GAIN_32x   0x80 /* 100 : 32x */

Definition at line 198 of file ov2640.c.

#define COM9_AGC_GAIN_4x   0x20 /* 001 : 4x */

Definition at line 195 of file ov2640.c.

#define COM9_AGC_GAIN_64x   0xA0 /* 101 : 64x */

Definition at line 199 of file ov2640.c.

#define COM9_AGC_GAIN_8x   0x40 /* 010 : 8x */

Definition at line 196 of file ov2640.c.

#define CTRL0   0xC2 /* DSP Module enable 0 */

Definition at line 87 of file ov2640.c.

#define CTRL0_AEC_EN   0x80

Definition at line 88 of file ov2640.c.

#define CTRL0_AEC_SEL   0x40

Definition at line 89 of file ov2640.c.

#define CTRL0_RAW_EN   0x01

Definition at line 95 of file ov2640.c.

#define CTRL0_RGB_EN   0x02

Definition at line 94 of file ov2640.c.

#define CTRL0_STAT_SEL   0x20

Definition at line 90 of file ov2640.c.

#define CTRL0_VFIRST   0x10

Definition at line 91 of file ov2640.c.

#define CTRL0_YUV422   0x08

Definition at line 92 of file ov2640.c.

#define CTRL0_YUV_EN   0x04

Definition at line 93 of file ov2640.c.

#define CTRL1   0xC3 /* DSP Module enable 1 */

Definition at line 96 of file ov2640.c.

#define CTRL1_AWB   0x08

Definition at line 101 of file ov2640.c.

#define CTRL1_AWB_GAIN   0x04

Definition at line 102 of file ov2640.c.

#define CTRL1_CIP   0x80

Definition at line 97 of file ov2640.c.

#define CTRL1_DG   0x10

Definition at line 100 of file ov2640.c.

#define CTRL1_DMY   0x40

Definition at line 98 of file ov2640.c.

#define CTRL1_LENC   0x02

Definition at line 103 of file ov2640.c.

#define CTRL1_PRE   0x01

Definition at line 104 of file ov2640.c.

#define CTRL1_RAW_GMA   0x20

Definition at line 99 of file ov2640.c.

#define CTRL2   0x86 /* DSP Module enable 2 */

Definition at line 70 of file ov2640.c.

#define CTRL2_CMX_EN   0x01

Definition at line 75 of file ov2640.c.

#define CTRL2_DCW_EN   0x20

Definition at line 71 of file ov2640.c.

#define CTRL2_SDE_EN   0x10

Definition at line 72 of file ov2640.c.

#define CTRL2_UV_ADJ_EN   0x08

Definition at line 73 of file ov2640.c.

#define CTRL2_UV_AVG_EN   0x04

Definition at line 74 of file ov2640.c.

#define CTRL3   0x87 /* DSP Module enable 3 */

Definition at line 76 of file ov2640.c.

#define CTRL3_BPC_EN   0x80

Definition at line 77 of file ov2640.c.

#define CTRL3_WPC_EN   0x40

Definition at line 78 of file ov2640.c.

#define CTRLI   0x50

Definition at line 39 of file ov2640.c.

#define CTRLI_H_DIV_SET (   x)    VAL_SET(x, 0x3, 0, 0)

Definition at line 43 of file ov2640.c.

#define CTRLI_LP_DP   0x80

Definition at line 40 of file ov2640.c.

#define CTRLI_ROUND   0x40

Definition at line 41 of file ov2640.c.

#define CTRLI_V_DIV_SET (   x)    VAL_SET(x, 0x3, 0, 3)

Definition at line 42 of file ov2640.c.

#define DPRP   0x56

Definition at line 57 of file ov2640.c.

#define ENDMARKER   { 0xff, 0xff }

Definition at line 300 of file ov2640.c.

#define FLH   0x47 /* Frame Length Adjustment MSBs */

Definition at line 228 of file ov2640.c.

#define FLL   0x46 /* Frame Length Adjustment LSBs */

Definition at line 227 of file ov2640.c.

#define FRARL   0x2B /* Dummy pixel insert LSB */

Definition at line 218 of file ov2640.c.

#define GAIN   0x00 /* AGC - Gain control gain setting */

Definition at line 151 of file ov2640.c.

#define HEND   0x18 /* Horizontal Window end MSB 8 bit */

Definition at line 207 of file ov2640.c.

#define HISTO_HIGH   0x62 /* Histogram Algorithm High Level */

Definition at line 240 of file ov2640.c.

#define HISTO_LOW   0x61 /* Histogram Algorithm Low Level */

Definition at line 239 of file ov2640.c.

#define HSIZE   0x51 /* H_SIZE[7:0] (real/4) */

Definition at line 44 of file ov2640.c.

#define HSIZE8   0xC0 /* Image Horizontal Size HSIZE[10:3] */

Definition at line 83 of file ov2640.c.

#define HSIZE8_SET (   x)    VAL_SET(x, 0xFF, 3, 0)

Definition at line 84 of file ov2640.c.

#define HSIZE_SET (   x)    VAL_SET(x, 0xFF, 2, 0)

Definition at line 45 of file ov2640.c.

#define HSTART   0x17 /* Horizontal Window start MSB 8 bit */

Definition at line 206 of file ov2640.c.

#define IMAGE_MODE   0xDA /* Image Output Format Select */

Definition at line 108 of file ov2640.c.

#define IMAGE_MODE_HREF_VSYNC
Value:
0x02 /* HREF timing select in DVP JPEG output
* mode (0 for HREF is same as sensor) */

Definition at line 114 of file ov2640.c.

#define IMAGE_MODE_JPEG_EN   0x10

Definition at line 110 of file ov2640.c.

#define IMAGE_MODE_LBYTE_FIRST
Value:
0x01 /* Byte swap enable for DVP
* 1: Low byte first UYVY (C2[4] =0)
* VYUY (C2[4] =1)
* 0: High byte first YUYV (C2[4]=0)
* YVYU (C2[4] = 1) */

Definition at line 115 of file ov2640.c.

#define IMAGE_MODE_RAW10   0x04 /* (DVP) */

Definition at line 112 of file ov2640.c.

#define IMAGE_MODE_RGB565   0x08

Definition at line 113 of file ov2640.c.

#define IMAGE_MODE_Y8_DVP_EN   0x40

Definition at line 109 of file ov2640.c.

#define IMAGE_MODE_YUV422   0x00

Definition at line 111 of file ov2640.c.

#define MANUFACTURER_ID   0x7FA2

Definition at line 245 of file ov2640.c.

#define MC_BIST   0xF9 /* Microcontroller misc register */

Definition at line 133 of file ov2640.c.

#define MC_BIST_12KB_MASK   0x30

Definition at line 137 of file ov2640.c.

#define MC_BIST_12KB_SEL   0x20

Definition at line 136 of file ov2640.c.

#define MC_BIST_512KB_MASK   0x0C

Definition at line 139 of file ov2640.c.

#define MC_BIST_512KB_SEL   0x08

Definition at line 138 of file ov2640.c.

#define MC_BIST_BOOT_ROM_SEL   0x40

Definition at line 135 of file ov2640.c.

#define MC_BIST_BUSY_BIT_R   0x02

Definition at line 140 of file ov2640.c.

#define MC_BIST_LAUNCH   0x01

Definition at line 142 of file ov2640.c.

#define MC_BIST_MC_RES_ONE_SH_W   0x02

Definition at line 141 of file ov2640.c.

#define MC_BIST_RESET   0x80 /* Microcontroller Reset */

Definition at line 134 of file ov2640.c.

#define MIDH   0x1C /* Manufacturer ID byte - high */

Definition at line 210 of file ov2640.c.

#define MIDL   0x1D /* Manufacturer ID byte - low */

Definition at line 211 of file ov2640.c.

#define MS_SP   0xF0 /* SCCB Master Speed */

Definition at line 125 of file ov2640.c.

#define OV2640_SIZE (   n,
  w,
  h,
  r 
)    {.name = n, .width = w , .height = h, .regs = r }

Definition at line 552 of file ov2640.c.

#define PER_SIZE_REG_SEQ (   x,
  y,
  v_div,
  h_div,
  pclk_div 
)
Value:
CTRLI_H_DIV_SET(h_div)}, \
{ ZMOW, ZMOW_OUTW_SET(x) }, \
{ ZMOH, ZMOH_OUTH_SET(y) }, \
{ R_DVP_SP, pclk_div }, \
{ RESET, 0x00}

Definition at line 498 of file ov2640.c.

#define PID   0x0A /* Product ID Number MSB */

Definition at line 171 of file ov2640.c.

#define PID_OV2640   0x2642

Definition at line 246 of file ov2640.c.

#define QS   0x44 /* Quantization Scale Factor */

Definition at line 38 of file ov2640.c.

#define R_BYPASS   0x05 /* Bypass DSP */

Definition at line 35 of file ov2640.c.

#define R_BYPASS_DSP_BYPAS   0x01 /* Bypass DSP, sensor out directly */

Definition at line 36 of file ov2640.c.

#define R_BYPASS_USE_DSP   0x00 /* Use the internal DSP */

Definition at line 37 of file ov2640.c.

#define R_DVP_SP   0xD3 /* DVP output speed control */

Definition at line 105 of file ov2640.c.

#define R_DVP_SP_AUTO_MODE   0x80

Definition at line 106 of file ov2640.c.

#define R_DVP_SP_DVP_MASK
Value:
0x3F /* DVP PCLK = sysclk (48)/[6:0] (YUV0);
* = sysclk (48)/(2*[6:0]) (RAW);*/

Definition at line 107 of file ov2640.c.

#define REG04   0x04 /* Register 04 */

Definition at line 159 of file ov2640.c.

#define REG04_AEC_SET (   x)    VAL_SET(x, 0x3, 0, 0)

Definition at line 165 of file ov2640.c.

#define REG04_DEF   0x20 /* Always set */

Definition at line 160 of file ov2640.c.

#define REG04_HFLIP_IMG   0x80 /* Horizontal mirror image ON/OFF */

Definition at line 161 of file ov2640.c.

#define REG04_HREF_EN   0x08

Definition at line 164 of file ov2640.c.

#define REG04_VFLIP_IMG   0x40 /* Vertical flip image ON/OFF */

Definition at line 162 of file ov2640.c.

#define REG04_VREF_EN   0x10

Definition at line 163 of file ov2640.c.

#define REG08   0x08 /* Frame Exposure One-pin Control Pre-charge Row Num */

Definition at line 166 of file ov2640.c.

#define REG2A   0x2A /* Dummy pixel insert MSB */

Definition at line 217 of file ov2640.c.

#define REG32   0x32 /* Common Control 32 */

Definition at line 222 of file ov2640.c.

#define REG32_PCLK_DIV_2   0x80 /* PCLK freq divided by 2 */

Definition at line 223 of file ov2640.c.

#define REG32_PCLK_DIV_4   0xC0 /* PCLK freq divided by 4 */

Definition at line 224 of file ov2640.c.

#define REG45   0x45 /* Register 45 */

Definition at line 226 of file ov2640.c.

#define REG5D   0x5D /* AVGsel[7:0], 16-zone average weight option */

Definition at line 235 of file ov2640.c.

#define REG5E   0x5E /* AVGsel[15:8], 16-zone average weight option */

Definition at line 236 of file ov2640.c.

#define REG5F   0x5F /* AVGsel[23:16], 16-zone average weight option */

Definition at line 237 of file ov2640.c.

#define REG60   0x60 /* AVGsel[31:24], 16-zone average weight option */

Definition at line 238 of file ov2640.c.

#define REGED   0xED /* Register ED */

Definition at line 123 of file ov2640.c.

#define REGED_CLK_OUT_DIS   0x10

Definition at line 124 of file ov2640.c.

#define RESET   0xE0 /* Reset */

Definition at line 116 of file ov2640.c.

#define RESET_CIF   0x01

Definition at line 122 of file ov2640.c.

#define RESET_DVP   0x04

Definition at line 120 of file ov2640.c.

#define RESET_IPU   0x02

Definition at line 121 of file ov2640.c.

#define RESET_JPEG   0x10

Definition at line 119 of file ov2640.c.

#define RESET_MICROC   0x40

Definition at line 117 of file ov2640.c.

#define RESET_SCCB   0x20

Definition at line 118 of file ov2640.c.

#define SIZEL   0x8C /* Image Size Completion */

Definition at line 79 of file ov2640.c.

#define SIZEL_HSIZE8_11_SET (   x)    VAL_SET(x, 0x1, 11, 6)

Definition at line 80 of file ov2640.c.

#define SIZEL_HSIZE8_SET (   x)    VAL_SET(x, 0x7, 0, 3)

Definition at line 81 of file ov2640.c.

#define SIZEL_VSIZE8_SET (   x)    VAL_SET(x, 0x7, 0, 0)

Definition at line 82 of file ov2640.c.

#define SS_CTRL   0xF8 /* SCCB Slave Control */

Definition at line 127 of file ov2640.c.

#define SS_CTRL_ACC_EN   0x02

Definition at line 131 of file ov2640.c.

#define SS_CTRL_ADD_AUTO_INC   0x20

Definition at line 128 of file ov2640.c.

#define SS_CTRL_DELAY_CLK   0x04

Definition at line 130 of file ov2640.c.

#define SS_CTRL_EN   0x08

Definition at line 129 of file ov2640.c.

#define SS_CTRL_SEN_PASS_THR   0x01

Definition at line 132 of file ov2640.c.

#define SS_ID   0xF7 /* SCCB Slave ID */

Definition at line 126 of file ov2640.c.

#define TEST   0x57 /* Horizontal size completion */

Definition at line 58 of file ov2640.c.

#define TEST_HSIZE_SET (   x)    VAL_SET(x, 0x1, (9+2), 7)

Definition at line 59 of file ov2640.c.

#define VAL_SET (   x,
  mask,
  rshift,
  lshift 
)    ((((x) >> rshift) & mask) << lshift)

Definition at line 29 of file ov2640.c.

#define VEND   0x1A /* Vertical Window end MSB 8 bit */

Definition at line 209 of file ov2640.c.

#define VER   0x0B /* Product ID Number LSB */

Definition at line 172 of file ov2640.c.

#define VERSION (   pid,
  ver 
)    ((pid << 8) | (ver & 0xFF))

Definition at line 247 of file ov2640.c.

#define VHYX   0x55 /* Offset and size completion */

Definition at line 52 of file ov2640.c.

#define VHYX_HSIZE_SET (   x)    VAL_SET(x, 0x1, (8+2), 3)

Definition at line 54 of file ov2640.c.

#define VHYX_VSIZE_SET (   x)    VAL_SET(x, 0x1, (8+2), 7)

Definition at line 53 of file ov2640.c.

#define VHYX_XOFF_SET (   x)    VAL_SET(x, 0x3, 8, 0)

Definition at line 56 of file ov2640.c.

#define VHYX_YOFF_SET (   x)    VAL_SET(x, 0x3, 8, 4)

Definition at line 55 of file ov2640.c.

#define VSIZE   0x52 /* V_SIZE[7:0] (real/4) */

Definition at line 46 of file ov2640.c.

#define VSIZE8   0xC1 /* Image Vertical Size VSIZE[10:3] */

Definition at line 85 of file ov2640.c.

#define VSIZE8_SET (   x)    VAL_SET(x, 0xFF, 3, 0)

Definition at line 86 of file ov2640.c.

#define VSIZE_SET (   x)    VAL_SET(x, 0xFF, 2, 0)

Definition at line 47 of file ov2640.c.

#define VSTART   0x19 /* Vertical Window start MSB 8 bit */

Definition at line 208 of file ov2640.c.

#define VV   0x26 /* AGC/AEC Fast mode operating region */

Definition at line 214 of file ov2640.c.

#define VV_HIGH_TH_SET (   x)    VAL_SET(x, 0xF, 0, 4)

Definition at line 215 of file ov2640.c.

#define VV_LOW_TH_SET (   x)    VAL_SET(x, 0xF, 0, 0)

Definition at line 216 of file ov2640.c.

#define XOFFL   0x53 /* OFFSET_X[7:0] */

Definition at line 48 of file ov2640.c.

#define XOFFL_SET (   x)    VAL_SET(x, 0xFF, 0, 0)

Definition at line 49 of file ov2640.c.

#define YAVG   0x2F /* Y/G Channel Average value */

Definition at line 221 of file ov2640.c.

#define YOFFL   0x54 /* OFFSET_Y[7:0] */

Definition at line 50 of file ov2640.c.

#define YOFFL_SET (   x)    VAL_SET(x, 0xFF, 0, 0)

Definition at line 51 of file ov2640.c.

#define ZMHH   0x5C /* Zoom: Speed and H&W completion */

Definition at line 64 of file ov2640.c.

#define ZMHH_OUTH_SET (   x)    VAL_SET(x, 0x1, (8+2), 2)

Definition at line 66 of file ov2640.c.

#define ZMHH_OUTW_SET (   x)    VAL_SET(x, 0x3, (8+2), 0)

Definition at line 67 of file ov2640.c.

#define ZMHH_ZSPEED_SET (   x)    VAL_SET(x, 0x0F, 0, 4)

Definition at line 65 of file ov2640.c.

#define ZMOH   0x5B /* Zoom: Out Height OUTH[7:0] (real/4) */

Definition at line 62 of file ov2640.c.

#define ZMOH_OUTH_SET (   x)    VAL_SET(x, 0xFF, 2, 0)

Definition at line 63 of file ov2640.c.

#define ZMOW   0x5A /* Zoom: Out Width OUTW[7:0] (real/4) */

Definition at line 60 of file ov2640.c.

#define ZMOW_OUTW_SET (   x)    VAL_SET(x, 0xFF, 2, 0)

Definition at line 61 of file ov2640.c.

#define ZOOMS   0x49 /* Zoom: Vertical start point */

Definition at line 230 of file ov2640.c.

Enumeration Type Documentation

Enumerator:
H_QCIF 
H_QVGA 
H_CIF 
H_VGA 
H_SVGA 
H_XGA 
H_SXGA 
H_UXGA 

Definition at line 269 of file ov2640.c.

Enumerator:
W_QCIF 
W_QVGA 
W_CIF 
W_VGA 
W_SVGA 
W_XGA 
W_SXGA 
W_UXGA 

Definition at line 258 of file ov2640.c.

Function Documentation

MODULE_AUTHOR ( "Alberto Panizzo"  )
MODULE_DESCRIPTION ( "SoC Camera driver for Omni Vision 2640 sensor"  )
MODULE_DEVICE_TABLE ( i2c  ,
ov2640_id   
)
module_i2c_driver ( ov2640_i2c_driver  )
MODULE_LICENSE ( "GPL v2 )