Root/include/media/ovcamchip.h

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

Archive Download this file



interactive