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 <linux/i2c.h>
20 /* Remove these once they are officially defined */
21 #ifndef I2C_DRIVERID_OVCAMCHIP
22 #define I2C_DRIVERID_OVCAMCHIP 0xf00f
24 #ifndef I2C_HW_SMBUS_OV511
25 #define I2C_HW_SMBUS_OV511 0xfe
27 #ifndef I2C_HW_SMBUS_OV518
28 #define I2C_HW_SMBUS_OV518 0xff
30 #ifndef I2C_HW_SMBUS_OVFX2
31 #define I2C_HW_SMBUS_OVFX2 0xfd
34 /* --------------------------------- */
36 /* --------------------------------- */
40 OVCAMCHIP_CID_CONT
, /* Contrast */
41 OVCAMCHIP_CID_BRIGHT
, /* Brightness */
42 OVCAMCHIP_CID_SAT
, /* Saturation */
43 OVCAMCHIP_CID_HUE
, /* Hue */
44 OVCAMCHIP_CID_EXP
, /* Exposure */
45 OVCAMCHIP_CID_FREQ
, /* Light frequency */
46 OVCAMCHIP_CID_BANDFILT
, /* Banding filter */
47 OVCAMCHIP_CID_AUTOBRIGHT
, /* Auto brightness */
48 OVCAMCHIP_CID_AUTOEXP
, /* Auto exposure */
49 OVCAMCHIP_CID_BACKLIGHT
, /* Back light compensation */
50 OVCAMCHIP_CID_MIRROR
, /* Mirror horizontally */
54 #define NUM_CC_TYPES 9
67 /* --------------------------------- */
69 /* --------------------------------- */
71 #define OV7xx0_SID (0x42 >> 1)
72 #define OV6xx0_SID (0xC0 >> 1)
74 /* --------------------------------- */
76 /* --------------------------------- */
78 struct ovcamchip_control
{
83 struct ovcamchip_window
{
89 int quarter
; /* Scale width and height down 2x */
91 /* This stuff will be removed eventually */
92 int clockdiv
; /* Clock divisor setting */
96 #define OVCAMCHIP_CMD_Q_SUBTYPE _IOR (0x88, 0x00, int)
97 #define OVCAMCHIP_CMD_INITIALIZE _IOW (0x88, 0x01, int)
98 /* You must call OVCAMCHIP_CMD_INITIALIZE before any of commands below! */
99 #define OVCAMCHIP_CMD_S_CTRL _IOW (0x88, 0x02, struct ovcamchip_control)
100 #define OVCAMCHIP_CMD_G_CTRL _IOWR (0x88, 0x03, struct ovcamchip_control)
101 #define OVCAMCHIP_CMD_S_MODE _IOW (0x88, 0x04, struct ovcamchip_window)
102 #define OVCAMCHIP_MAX_CMD _IO (0x88, 0x3f)