Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
5.3 KiB

  1. // $Header: G:/SwDev/WDM/Video/bt848/rcs/Bt848api.h 1.2 1998/04/29 22:43:26 tomz Exp $
  2. #ifndef __BT848API_H
  3. #define __BT848API_H
  4. #ifndef BYTE
  5. typedef unsigned char BYTE;
  6. #endif
  7. #include "viddefs.h"
  8. #include "retcode.h"
  9. //===========================================================================
  10. // BT848 DLL API Header File
  11. //===========================================================================
  12. #ifdef __cplusplus
  13. extern "C"
  14. {
  15. #endif
  16. //---------------------------------------------------------------------------
  17. // I2C DATA/CONTROL REGISTER API
  18. //---------------------------------------------------------------------------
  19. /////////////////////////////////////////////////////////////////////////////
  20. // Method: bool I2CIsInitOK( void )
  21. // Purpose: Check if I2C is initialized successfully
  22. // Input: None
  23. // Output: None
  24. // Return: true or false
  25. /////////////////////////////////////////////////////////////////////////////
  26. bool I2CIsInitOK( void );
  27. /////////////////////////////////////////////////////////////////////////////
  28. // Method: ErrorCode I2CInitHWMode( long freq )
  29. // Purpose: Initialize I2C for hardware control of SCL and SDA
  30. // Input: long freq - frequency (hz) to run SCL at
  31. // Output: None
  32. // Return: None
  33. /////////////////////////////////////////////////////////////////////////////
  34. ErrorCode I2CInitHWMode( long freq );
  35. /////////////////////////////////////////////////////////////////////////////
  36. // Method: ErrorCode I2CInitSWMode( long freq )
  37. // Purpose: Initialize I2C for software control of SCL and SDA
  38. // Input: long freq - frequency (hz) to run SCL at
  39. // Output: None
  40. // Return: None
  41. /////////////////////////////////////////////////////////////////////////////
  42. ErrorCode I2CInitSWMode( long freq );
  43. /////////////////////////////////////////////////////////////////////////////
  44. // Method: void I2CSetFreq( long freq )
  45. // Purpose: Set frequency for SCL
  46. // Input: long freq - frequency (hz) to run SCL at. (137.5khz to 2.0625Mhz)
  47. // PCI frequency 33Mhz: SCL = (412.50Khz to 33.81Khz)
  48. // 25Mhz: SCL = (312.50Khz to 25.61Khz)
  49. // Output: None
  50. // Return: None
  51. /////////////////////////////////////////////////////////////////////////////
  52. void I2CSetFreq( long freq );
  53. /////////////////////////////////////////////////////////////////////////////
  54. // Method: int I2CReadDiv( void )
  55. // Purpose: Obtain value of programmable divider
  56. // Input: None
  57. // Output: None
  58. // Return: Value of programmable divider
  59. /////////////////////////////////////////////////////////////////////////////
  60. int I2CReadDiv( void );
  61. /////////////////////////////////////////////////////////////////////////////
  62. // Method: ErrorCode I2CHWRead( BYTE address, BYTE *value )
  63. // Purpose: Perform a hardware read from the I2C
  64. // Input: int address - address to be read from
  65. // Output: int *value - retrieved value
  66. // Return: Success or Fail
  67. /////////////////////////////////////////////////////////////////////////////
  68. ErrorCode I2CHWRead( BYTE address, BYTE *value );
  69. /////////////////////////////////////////////////////////////////////////////
  70. // Method: ErrorCode I2CHWWrite2( BYTE address, BYTE value1 )
  71. // Purpose: Perform a hardware write of two bytes to the I2C
  72. // Input: int address - address to be written to
  73. // int value1 - value of 2nd byte to be written
  74. // Output: None
  75. // Return: Success or Fail
  76. /////////////////////////////////////////////////////////////////////////////
  77. ErrorCode I2CHWWrite2( BYTE address, BYTE value1 );
  78. /////////////////////////////////////////////////////////////////////////////
  79. // Method: ErrorCode I2CHWWrite3( BYTE address, BYTE value1, BYTE value2 )
  80. // Purpose: Perform a hardware write of three bytes to the I2C
  81. // Input: int address - address to be written to
  82. // int value1 - value of 2nd byte to be written
  83. // int value2 - value of 3rd byte to be written
  84. // Output: None
  85. // Return: Success or Fail
  86. /////////////////////////////////////////////////////////////////////////////
  87. ErrorCode I2CHWWrite3( BYTE address, BYTE value1, BYTE value2 );
  88. /////////////////////////////////////////////////////////////////////////////
  89. // Method: ErrorCode I2CSetSync( State sync )
  90. // Purpose: Set I2C sync value
  91. // Input: sync: On - allow slave to insert wait states
  92. // Off - slave cannot insert wait states
  93. // Output: None
  94. // Return: Success or Fail
  95. /////////////////////////////////////////////////////////////////////////////
  96. ErrorCode I2CSetSync( State sync );
  97. /////////////////////////////////////////////////////////////////////////////
  98. // Method: int I2CReadSync( void )
  99. // Purpose: Read I2C sync value
  100. // Input: None
  101. // Output: None
  102. // Return: Sync value
  103. /////////////////////////////////////////////////////////////////////////////
  104. int I2CReadSync( void );
  105. /////////////////////////////////////////////////////////////////////////////
  106. // Method: int I2CGetLastError( void )
  107. // Purpose: Obtain last error number
  108. // Input: None
  109. // Output: None
  110. // Return: Last error number
  111. /////////////////////////////////////////////////////////////////////////////
  112. int I2CGetLastError( void );
  113. #ifdef __cplusplus
  114. }
  115. #endif
  116. #endif // __BT848API_H