/* Camera interface */
#define OVREG511_CAM_DELAY 0x10
#define OVREG511_CAM_EDGE 0x11
#define OVREG511_CAM_PXCNT 0x12
#define OVREG511_CAM_LNCNT 0x13
#define OVREG511_CAM_PXDIV 0x14
#define OVREG511_CAM_LNDIV 0x15
#define OVREG511_CAM_M400 0x16
#define OVREG511_CAM_LINE_MODE 0x17
#define OVREG511_CAM_M420_YFIR 0x18
/* Snapshot mode */
#define OVREG511_SNAP_FRAME 0x19
#define OVREG511_SNAP_PXCNT 0x1A
#define OVREG511_SNAP_LNCNT 0x1B
#define OVREG511_SNAP_PXDIV 0x1C
#define OVREG511_SNAP_LNDIV 0x1D
#define OVREG511_SNAP_UV_EN 0x1E
#define OVREG511_SNAP_OPTS 0x1F
/* DRAM */
#define OVREG511_DRAM_FLOW_CTL 0x20
#define OVREG511_DRAM_ARCP 0x21
#define OVREG511_DRAM_MRC 0x22
#define OVREG511_DRAM_RFC 0x23
/* ISO FIFO */
#define OVREG51x_FIFO_PSIZE 0x30 /* 16-bit on OV518/OV51*/
#define OVREG511_FIFO_OPTS 0x31
/* Parallel I/O */
#define OVREG511_PIO_OPTS 0x38
#define OVREG511_PIO_DATA 0x39
#define OVREG511_PIO_BIST 0x3E
/* i2c */
#define OVREG511_I2C_CTL 0x40
#define OVREG518_I2C_CTL 0x47
#define OVREG51x_I2C_W_SID 0x41
#define OVREG51x_I2C_SADDR_3 0x42
#define OVREG51x_I2C_SADDR_2 0x43
#define OVREG51x_I2C_SID 0x44
#define OVREG51x_I2C_DATA 0x45
#define OVREG51x_I2C_CLOCK 0x46
#define OVREG51x_I2C_TIMEOUT 0x47
/* i2c snapshot */
#define OVREG511_SI2C_SADDR_E 0x48
#define OVREG511_SI2C_DATA 0x49
/* System control */
#define OVREG51x_SYS_RESET 0x50
/* Reset types */
#define OV511_RESET_UDC 0x01
#define OV511_RESET_I2C 0x02
#define OV511_RESET_FIFO 0x04
#define OV511_RESET_OMNICE 0x08
#define OV511_RESET_DRAM 0x10
#define OV511_RESET_CAM_INT 0x20
#define OV511_RESET_OV511 0x40
#define OV511_RESET_NOREGS 0x3F
#define OV511_RESET_ALL 0x7F
#define OVREG511_SYS_CLOCK_DIV 0x51
#define OVREG511_SYS_SNAP 0x52
#define OVREG511_SYS_INIT 0x53
#define OVREG511_SYS_PWR_CLK 0x54 /* OV511/OV518/OV518+ */
#define OVREG511_SYS_LED_CTL 0x55 /* OV511+ only */
#define OVREG511_SYS_USER 0x5E
#define OVREG511_SYS_CUST_ID 0x5F
/* Compression */
#define OVREG511_REG_PRH_Y 0x70
#define OVREG511_REG_PRH_UV 0x71
#define OVREG511_REG_PRV_Y 0x72
#define OVREG511_REG_PRV_UV 0x73
#define OVREG511_REG_QTH_Y 0x74
#define OVREG511_REG_QTH_UV 0x75
#define OVREG511_REG_QTV_Y 0x76
#define OVREG511_REG_QTV_UV 0x77
#define OVREG511_REG_CE_EN 0x78
#define OVREG511_REG_LT_EN 0x79
#define OVREG511_REG_LT_EN 0x79
#define OV7610_REG_GC 0x00
#define OV7610_REG_BLU 0x01
#define OV7610_REG_RED 0x02
#define OV7610_REG_SAT 0x03
#define OV7610_REG_CTR 0x05
#define OV7610_REG_BRT 0x06
#define OV7610_REG_BBS 0x0C
#define OV7610_REG_RBS 0x0D
#define OV7610_REG_GAM 0x0E
#define OV7610_REG_RWB 0x0F
#define OV7610_REG_EC 0x10
#define OV7610_REG_SYN_CLK 0x11
#define OV7610_REG_COMA 0x12
#define OV7610_REG_COMB 0x13
#define OV7610_REG_COMC 0x14
#define OV7610_REG_COMD 0x15
#define OV7610_REG_FD 0x16
#define OV7610_REG_HS 0x17
#define OV7610_REG_HE 0x18
#define OV7610_REG_VS 0x19
#define OV7610_REG_VE 0x1A
#define OV7610_REG_PS 0x1B
#define OV7610_REG_MIDH 0x1C
#define OV7610_REG_MIDL 0x1D
#define OV7610_REG_COME 0x20
#define OV7610_REG_YOF 0x21
#define OV7610_REG_UOF 0x22
#define OV7610_REG_ECW 0x24
#define OV7610_REG_ECB 0x25
#define OV7610_REG_COMF 0x26
#define OV7610_REG_COMG 0x27
#define OV7610_REG_COMH 0x28
#define OV7610_REG_COMI 0x29
#define OV7610_REG_EHSH 0x2A
#define OV7610_REG_EHSL 0x2B
#define OV7610_REG_EXBK 0x2C
#define OV7610_REG_COMJ 0x2D
#define OV7610_REG_VOF 0x2E
#define OV7610_REG_ABS 0x2F
#define OV7610_REG_YGAM 0x33
#define OV7610_REG_BADJ 0x34
#define OV7610_REG_COML 0x35
#define OV7610_REG_COMK 0x38
#define OV7610_I2C_WRITE_ID 0x42
#define OV7610_I2C_READ_ID 0x43
#define OV7610_I2C_RETRIES 3
#define OV7610_I2C_CLOCK_DIV 4
/* ALTERNATE NUMBERS */
/* Alternate numbers for various max packet sizes (OV511 only) */
#define OV511_ALT_SIZE_992 0
#define OV511_ALT_SIZE_993 1
#define OV511_ALT_SIZE_768 2
#define OV511_ALT_SIZE_769 3
#define OV511_ALT_SIZE_512 4
#define OV511_ALT_SIZE_513 5
#define OV511_ALT_SIZE_257 6
#define OV511_ALT_SIZE_0 7
/* Alternate numbers for various max packet sizes (OV511+ only) */
#define OV511PLUS_ALT_SIZE_0 0
#define OV511PLUS_ALT_SIZE_33 1
#define OV511PLUS_ALT_SIZE_129 2
#define OV511PLUS_ALT_SIZE_257 3
#define OV511PLUS_ALT_SIZE_385 4
#define OV511PLUS_ALT_SIZE_513 5
#define OV511PLUS_ALT_SIZE_769 6
#define OV511PLUS_ALT_SIZE_961 7
/* Alternate numbers for various max packet sizes (OV518(+) only) */
#define OV518_ALT_SIZE_0 0
#define OV518_ALT_SIZE_128 1
#define OV518_ALT_SIZE_256 2
#define OV518_ALT_SIZE_384 3
#define OV518_ALT_SIZE_512 4
#define OV518_ALT_SIZE_640 5
#define OV518_ALT_SIZE_768 6
#define OV518_ALT_SIZE_896 7