anp82.h
上传用户:aoeyumen
上传日期:2007-01-06
资源大小:3329k
文件大小:5k
源码类别:

DVD

开发平台:

Unix_Linux

  1. /*
  2.   **********************************************************************
  3.   *
  4.   *     Copyright 1999, 2000 Creative Labs, Inc.
  5.   *
  6.   **********************************************************************
  7.   *
  8.   *     Date                 Author               Summary of changes
  9.   *     ----                 ------               ------------------
  10.   *     October 20, 1999     Andrew de Quincey    Rewrote and extended
  11.   *                          Lucien Murray-Pitts  original incomplete 
  12.   *                                               driver.
  13.   *
  14.   *     April 18, 1999       Andrew Veliath       Original Driver
  15.   *                                               implementation
  16.   *
  17.   **********************************************************************
  18.   *
  19.   *     This program is free software; you can redistribute it and/or
  20.   *     modify it under the terms of the GNU General Public License as
  21.   *     published by the Free Software Foundation; either version 2 of
  22.   *     the License, or (at your option) any later version.
  23.   *
  24.   *     This program is distributed in the hope that it will be useful,
  25.   *     but WITHOUT ANY WARRANTY; without even the implied warranty of
  26.   *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27.   *     GNU General Public License for more details.
  28.   *
  29.   *     You should have received a copy of the GNU General Public
  30.   *     License along with this program; if not, write to the Free
  31.   *     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  32.   *     USA.
  33.   *
  34.   **********************************************************************
  35.   */
  36. /**
  37.  *
  38.  * Driver for the SkyTune/Auravision AnP82 VGA overlay chip
  39.  *
  40.  */
  41. #ifndef __ANP82_H__
  42. #define __ANP82_H__
  43. // *******************************************************************
  44. // useful defines
  45. // Full name of the chip
  46. #define ANP82_FULLNAME                  "SkyTune/Auravision AnP82 VGA Overlay"
  47. // Log name of the driver
  48. #define ANP82_LOGNAME "ANP82"
  49. // Chip ID for serial bus
  50. #define ANP82_CHIPID 0x28
  51. // *******************************************************************
  52. // register names
  53. #define ANP82_CKREDH 0x02
  54. #define ANP82_CKREDL 0x03
  55. #define ANP82_CKGREENH 0x04
  56. #define ANP82_CKGREENL 0x05
  57. #define ANP82_CKBLUEH 0x06
  58. #define ANP82_CKBLUEL 0x07
  59. #define ANP82_CKOFFSET 0x08
  60. #define ANP82_DACCTRL 0x0e
  61. #define ANP82_PCLKOUT 0x0f
  62. #define ANP82_ALPHAMIX 0x10
  63. #define ANP82_VBWIDTH 0x11
  64. #define ANP82_VBSL 0x12
  65. #define ANP82_VBSH 0x13
  66. #define ANP82_RDACL 0x14
  67. #define ANP82_GDACL 0x15
  68. #define ANP82_BDACL 0x16
  69. #define ANP82_VDACCG 0x17
  70. #define ANP82_VDACCR 0x18
  71. #define ANP82_FADETIME 0x19
  72. #define ANP82_KEYSTAT 0x1a
  73. #define ANP82_KEYCTRL 0x1b
  74. #define ANP82_PWRSAVE 0x1c
  75. #define ANP82_GPCR 0x1d
  76. #define ANP82_GPDR 0x1e
  77. #define ANP82_CTRL 0x1f
  78. #define ANP82_CNTCTRL 0x21
  79. #define ANP82_TCNTR 0x22
  80. #define ANP82_CNTCTRLB 0x23
  81. #define ANP82_PWRONCFG 0x24
  82. #define ANP82_INTRSTAT 0x2b
  83. #define ANP82_MISCCTRL 0x2c
  84. // *******************************************************************
  85. // Structures
  86. typedef struct _anp82_t anp82_t;
  87. typedef struct _anp82_ops_t anp82_ops_t;
  88. // generic driver structure
  89. struct _anp82_t{
  90.   anp82_ops_t* ops;
  91.   void* data;
  92. };
  93. // lowlevel access operations
  94. struct _anp82_ops_t {
  95.   char name[32];
  96.   int (* get_reg) (anp82_t *anp82, int reg);
  97.   int (* set_reg) (anp82_t *anp82, int reg, int val);
  98. };
  99. // *******************************************************************
  100. // function declarations
  101. // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  102. // Driver maintenance functions
  103. /**
  104.  *
  105.  * Create new AnP82 driver instance
  106.  *
  107.  * @param ops Lowlevel operations to talk to chip
  108.  * @param data Any extra data for said functions
  109.  *
  110.  */
  111. extern anp82_t* anp82_new(anp82_ops_t* ops, void* data);
  112. /**
  113.  *
  114.  * Destroy an Anp82 driver instance
  115.  *
  116.  * @param instance The instance to destroy
  117.  *
  118.  */
  119. extern void anp82_free(anp82_t* instance);
  120. // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  121. // High level convenience functions
  122. // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  123. // Register get/set functions
  124. /**
  125.  *
  126.  * Get register from the AnP82
  127.  *
  128.  * @param instance Instance of the AnP82 to use
  129.  * @param reg Register to retrieve
  130.  * @return The register's value (or negative on error)
  131.  *
  132.  */
  133. extern int anp82_get_reg(anp82_t* instance, int reg);
  134. /**
  135.  *
  136.  * Set register on the AnP82
  137.  *
  138.  * @param instance Instance of the AnP82 to use
  139.  * @param reg Register to retrieve
  140.  * @param val Value to set
  141.  *
  142.  */
  143. extern void anp82_set_reg(anp82_t* instance, int reg, int val);
  144. /**
  145.  *
  146.  * Get specified bitmask of a register from AnP82
  147.  *
  148.  * @param instance Instance of the AnP82 to use
  149.  * @param reg Register to retrieve
  150.  * @param bitmask Bitmask of bits to retrive from that register
  151.  *
  152.  * @return The register bitvalues
  153.  *
  154.  */
  155. extern int anp82_get_bits(anp82_t* instance, int reg, int bitmask);
  156. /**
  157.  *
  158.  * Set specified bits of a register on AnP82
  159.  *
  160.  * @param instance Instance of the AnP82 to use
  161.  * @param reg Register to retrieve
  162.  * @param bitmask Bitmask of bits to set from that register
  163.  * @param valuemask Values of the bits in the bitmask
  164.  *
  165.  */
  166. extern void anp82_set_bits(anp82_t* instance, int reg, int bitmask, int valuemask);
  167. #endif