home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / media / ovcamchip.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.5 KB  |  91 lines

  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 <linux/i2c.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.