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 */ 25 enum { 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 41 enum { 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 64 struct ovcamchip_control { 65 __u32 id; 66 __s32 value; 67 }; 68 69 struct 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