home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / drivers / media / video / indycam.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  3.6 KB  |  109 lines

  1. /*
  2.  *  indycam.h - Silicon Graphics IndyCam digital camera driver
  3.  *
  4.  *  Copyright (C) 2003 Ladislav Michl <ladis@linux-mips.org>
  5.  *  Copyright (C) 2004,2005 Mikael Nousiainen <tmnousia@cc.hut.fi>
  6.  *
  7.  *  This program is free software; you can redistribute it and/or modify
  8.  *  it under the terms of the GNU General Public License version 2 as
  9.  *  published by the Free Software Foundation.
  10.  */
  11.  
  12. #ifndef _INDYCAM_H_
  13. #define _INDYCAM_H_
  14.  
  15. /* I2C address for the Guinness Camera */
  16. #define INDYCAM_ADDR            0x56
  17.  
  18. /* Camera version */
  19. #define CAMERA_VERSION_INDY        0x10    /* v1.0 */
  20. #define CAMERA_VERSION_MOOSE        0x12    /* v1.2 */
  21. #define INDYCAM_VERSION_MAJOR(x)    (((x) & 0xf0) >> 4)
  22. #define INDYCAM_VERSION_MINOR(x)    ((x) & 0x0f)
  23.  
  24. /* Register bus addresses */
  25. #define INDYCAM_REG_CONTROL        0x00
  26. #define INDYCAM_REG_SHUTTER        0x01
  27. #define INDYCAM_REG_GAIN        0x02
  28. #define INDYCAM_REG_BRIGHTNESS        0x03 /* read-only */
  29. #define INDYCAM_REG_RED_BALANCE        0x04
  30. #define INDYCAM_REG_BLUE_BALANCE    0x05
  31. #define INDYCAM_REG_RED_SATURATION    0x06
  32. #define INDYCAM_REG_BLUE_SATURATION    0x07
  33. #define INDYCAM_REG_GAMMA        0x08
  34. #define INDYCAM_REG_VERSION        0x0e /* read-only */
  35. #define INDYCAM_REG_RESET        0x0f /* write-only */
  36.  
  37. #define INDYCAM_REG_LED            0x46
  38. #define INDYCAM_REG_ORIENTATION        0x47
  39. #define INDYCAM_REG_BUTTON        0x48
  40.  
  41. /* Field definitions of registers */
  42. #define INDYCAM_CONTROL_AGCENA        (1<<0) /* automatic gain control */
  43. #define INDYCAM_CONTROL_AWBCTL        (1<<1) /* automatic white balance */
  44.                         /* 2-3 are reserved */
  45. #define INDYCAM_CONTROL_EVNFLD        (1<<4)    /* read-only */
  46.  
  47. #define INDYCAM_SHUTTER_10000        0x02    /* 1/10000 second */
  48. #define INDYCAM_SHUTTER_4000        0x04    /* 1/4000 second */
  49. #define INDYCAM_SHUTTER_2000        0x08    /* 1/2000 second */
  50. #define INDYCAM_SHUTTER_1000        0x10    /* 1/1000 second */
  51. #define INDYCAM_SHUTTER_500        0x20    /* 1/500 second */
  52. #define INDYCAM_SHUTTER_250        0x3f    /* 1/250 second */
  53. #define INDYCAM_SHUTTER_125        0x7e    /* 1/125 second */
  54. #define INDYCAM_SHUTTER_100        0x9e    /* 1/100 second */
  55. #define INDYCAM_SHUTTER_60        0x00    /* 1/60 second */
  56.  
  57. #define INDYCAM_LED_ACTIVE            0x10
  58. #define INDYCAM_LED_INACTIVE            0x30
  59. #define INDYCAM_ORIENTATION_BOTTOM_TO_TOP    0x40
  60. #define INDYCAM_BUTTON_RELEASED            0x10
  61.  
  62. /* Values for controls */
  63. #define INDYCAM_SHUTTER_MIN        0x00
  64. #define INDYCAM_SHUTTER_MAX        0xff
  65. #define INDYCAM_GAIN_MIN                0x00
  66. #define INDYCAM_GAIN_MAX                0xff
  67. #define INDYCAM_RED_BALANCE_MIN        0x00
  68. #define INDYCAM_RED_BALANCE_MAX        0xff
  69. #define INDYCAM_BLUE_BALANCE_MIN        0x00
  70. #define INDYCAM_BLUE_BALANCE_MAX        0xff
  71. #define INDYCAM_RED_SATURATION_MIN      0x00
  72. #define INDYCAM_RED_SATURATION_MAX      0xff
  73. #define INDYCAM_BLUE_SATURATION_MIN    0x00
  74. #define INDYCAM_BLUE_SATURATION_MAX    0xff
  75. #define INDYCAM_GAMMA_MIN        0x00
  76. #define INDYCAM_GAMMA_MAX        0xff
  77.  
  78. #define INDYCAM_AGC_DEFAULT        1
  79. #define INDYCAM_AWB_DEFAULT        0
  80. #define INDYCAM_SHUTTER_DEFAULT        0xff
  81. #define INDYCAM_GAIN_DEFAULT        0x80
  82. #define INDYCAM_RED_BALANCE_DEFAULT    0x18
  83. #define INDYCAM_BLUE_BALANCE_DEFAULT    0xa4
  84. #define INDYCAM_RED_SATURATION_DEFAULT    0x80
  85. #define INDYCAM_BLUE_SATURATION_DEFAULT    0xc0
  86. #define INDYCAM_GAMMA_DEFAULT        0x80
  87.  
  88. /* Driver interface definitions */
  89.  
  90. #define INDYCAM_CONTROL_AGC            0    /* boolean */
  91. #define INDYCAM_CONTROL_AWB            1    /* boolean */
  92. #define INDYCAM_CONTROL_SHUTTER            2
  93. #define INDYCAM_CONTROL_GAIN            3
  94. #define INDYCAM_CONTROL_RED_BALANCE        4
  95. #define INDYCAM_CONTROL_BLUE_BALANCE        5
  96. #define INDYCAM_CONTROL_RED_SATURATION        6
  97. #define INDYCAM_CONTROL_BLUE_SATURATION        7
  98. #define INDYCAM_CONTROL_GAMMA            8
  99.  
  100. struct indycam_control {
  101.     u8 type;
  102.     s32 value;
  103. };
  104.  
  105. #define    DECODER_INDYCAM_GET_CONTROL    _IOR('d', 193, struct indycam_control)
  106. #define    DECODER_INDYCAM_SET_CONTROL    _IOW('d', 194, struct indycam_control)
  107.  
  108. #endif
  109.