1/* OmniVision* camera chip driver API 2 * 3 * Copyright (c) 1999-2004 Mark McClelland 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License as published by the 7 * Free Software Foundation; either version 2 of the License, or (at your 8 * option) any later version. NO WARRANTY OF ANY KIND is expressed or implied. 9 * 10 * * OmniVision is a trademark of OmniVision Technologies, Inc. This driver 11 * is not sponsored or developed by them. 12 */ 13 14#ifndef __LINUX_OVCAMCHIP_H 15#define __LINUX_OVCAMCHIP_H 16 17#include <linux/videodev.h> 18#include <media/v4l2-common.h> 19 20/* --------------------------------- */ 21/* ENUMERATIONS */ 22/* --------------------------------- */ 23 24/* Controls */ 25enum { 26 OVCAMCHIP_CID_CONT, /* Contrast */ 27 OVCAMCHIP_CID_BRIGHT, /* Brightness */ 28 OVCAMCHIP_CID_SAT, /* Saturation */ 29 OVCAMCHIP_CID_HUE, /* Hue */ 30 OVCAMCHIP_CID_EXP, /* Exposure */ 31 OVCAMCHIP_CID_FREQ, /* Light frequency */ 32 OVCAMCHIP_CID_BANDFILT, /* Banding filter */ 33 OVCAMCHIP_CID_AUTOBRIGHT, /* Auto brightness */ 34 OVCAMCHIP_CID_AUTOEXP, /* Auto exposure */ 35 OVCAMCHIP_CID_BACKLIGHT, /* Back light compensation */ 36 OVCAMCHIP_CID_MIRROR, /* Mirror horizontally */ 37}; 38 39/* Chip types */ 40#define NUM_CC_TYPES 9 41enum { 42 CC_UNKNOWN, 43 CC_OV76BE, 44 CC_OV7610, 45 CC_OV7620, 46 CC_OV7620AE, 47 CC_OV6620, 48 CC_OV6630, 49 CC_OV6630AE, 50 CC_OV6630AF, 51}; 52 53/* --------------------------------- */ 54/* I2C ADDRESSES */ 55/* --------------------------------- */ 56 57#define OV7xx0_SID (0x42 >> 1) 58#define OV6xx0_SID (0xC0 >> 1) 59 60/* --------------------------------- */ 61/* API */ 62/* --------------------------------- */ 63 64struct ovcamchip_control { 65 __u32 id; 66 __s32 value; 67}; 68 69struct ovcamchip_window { 70 int x; 71 int y; 72 int width; 73 int height; 74 int format; 75 int quarter; /* Scale width and height down 2x */ 76 77 /* This stuff will be removed eventually */ 78 int clockdiv; /* Clock divisor setting */ 79}; 80 81/* Commands */ 82#define OVCAMCHIP_CMD_Q_SUBTYPE _IOR (0x88, 0x00, int) 83#define OVCAMCHIP_CMD_INITIALIZE _IOW (0x88, 0x01, int) 84/* You must call OVCAMCHIP_CMD_INITIALIZE before any of commands below! */ 85#define OVCAMCHIP_CMD_S_CTRL _IOW (0x88, 0x02, struct ovcamchip_control) 86#define OVCAMCHIP_CMD_G_CTRL _IOWR (0x88, 0x03, struct ovcamchip_control) 87#define OVCAMCHIP_CMD_S_MODE _IOW (0x88, 0x04, struct ovcamchip_window) 88#define OVCAMCHIP_MAX_CMD _IO (0x88, 0x3f) 89 90#endif 91