linux/include/media/ovcamchip.h
<<
>>
Prefs
   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