2005-04-17 02:20:36 +04:00
/* OmniVision* camera chip driver API
*
* Copyright ( c ) 1999 - 2004 Mark McClelland
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation ; either version 2 of the License , or ( at your
* option ) any later version . NO WARRANTY OF ANY KIND is expressed or implied .
*
* * OmniVision is a trademark of OmniVision Technologies , Inc . This driver
* is not sponsored or developed by them .
*/
# ifndef __LINUX_OVCAMCHIP_H
# define __LINUX_OVCAMCHIP_H
# include <linux/videodev.h>
2006-06-05 17:26:32 +04:00
# include <media/v4l2-common.h>
2005-04-17 02:20:36 +04:00
# include <linux/i2c.h>
/* --------------------------------- */
/* ENUMERATIONS */
/* --------------------------------- */
/* Controls */
enum {
OVCAMCHIP_CID_CONT , /* Contrast */
OVCAMCHIP_CID_BRIGHT , /* Brightness */
OVCAMCHIP_CID_SAT , /* Saturation */
OVCAMCHIP_CID_HUE , /* Hue */
OVCAMCHIP_CID_EXP , /* Exposure */
OVCAMCHIP_CID_FREQ , /* Light frequency */
OVCAMCHIP_CID_BANDFILT , /* Banding filter */
OVCAMCHIP_CID_AUTOBRIGHT , /* Auto brightness */
OVCAMCHIP_CID_AUTOEXP , /* Auto exposure */
OVCAMCHIP_CID_BACKLIGHT , /* Back light compensation */
OVCAMCHIP_CID_MIRROR , /* Mirror horizontally */
} ;
/* Chip types */
# define NUM_CC_TYPES 9
enum {
CC_UNKNOWN ,
CC_OV76BE ,
CC_OV7610 ,
CC_OV7620 ,
CC_OV7620AE ,
CC_OV6620 ,
CC_OV6630 ,
CC_OV6630AE ,
CC_OV6630AF ,
} ;
/* --------------------------------- */
/* I2C ADDRESSES */
/* --------------------------------- */
# define OV7xx0_SID (0x42 >> 1)
# define OV6xx0_SID (0xC0 >> 1)
/* --------------------------------- */
/* API */
/* --------------------------------- */
struct ovcamchip_control {
__u32 id ;
__s32 value ;
} ;
struct ovcamchip_window {
int x ;
int y ;
int width ;
int height ;
int format ;
int quarter ; /* Scale width and height down 2x */
/* This stuff will be removed eventually */
int clockdiv ; /* Clock divisor setting */
} ;
/* Commands */
# define OVCAMCHIP_CMD_Q_SUBTYPE _IOR (0x88, 0x00, int)
# define OVCAMCHIP_CMD_INITIALIZE _IOW (0x88, 0x01, int)
/* You must call OVCAMCHIP_CMD_INITIALIZE before any of commands below! */
# define OVCAMCHIP_CMD_S_CTRL _IOW (0x88, 0x02, struct ovcamchip_control)
# define OVCAMCHIP_CMD_G_CTRL _IOWR (0x88, 0x03, struct ovcamchip_control)
# define OVCAMCHIP_CMD_S_MODE _IOW (0x88, 0x04, struct ovcamchip_window)
# define OVCAMCHIP_MAX_CMD _IO (0x88, 0x3f)
# endif