Linux 2.6.35-rc2
[linux/fpc-iii.git] / include / media / ovcamchip.h
blob05b9569ef1c893cb4a2129f790c6cb6bbfb272fe
1 /* OmniVision* camera chip driver API
3 * Copyright (c) 1999-2004 Mark McClelland
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.
10 * * OmniVision is a trademark of OmniVision Technologies, Inc. This driver
11 * is not sponsored or developed by them.
14 #ifndef __LINUX_OVCAMCHIP_H
15 #define __LINUX_OVCAMCHIP_H
17 #include <linux/videodev.h>
18 #include <media/v4l2-common.h>
20 /* --------------------------------- */
21 /* ENUMERATIONS */
22 /* --------------------------------- */
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 */
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,
53 /* --------------------------------- */
54 /* I2C ADDRESSES */
55 /* --------------------------------- */
57 #define OV7xx0_SID (0x42 >> 1)
58 #define OV6xx0_SID (0xC0 >> 1)
60 /* --------------------------------- */
61 /* API */
62 /* --------------------------------- */
64 struct ovcamchip_control {
65 __u32 id;
66 __s32 value;
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 */
77 /* This stuff will be removed eventually */
78 int clockdiv; /* Clock divisor setting */
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)
90 #endif