Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  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 
  This page was automatically generated by the LXR engine.