tuner_fc0013.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #ifndef __TUNER_FC0013_H
  2. #define __TUNER_FC0013_H
  3. /**
  4. @file
  5. @brief FC0013 tuner module declaration
  6. One can manipulate FC0013 tuner through FC0013 module.
  7. FC0013 module is derived from tuner module.
  8. // The following context is implemented for FC0013 source code.
  9. **/
  10. #define FC0013_I2C_ADDR 0xc6
  11. #define FC0013_CHECK_ADDR 0x00
  12. #define FC0013_CHECK_VAL 0xa3
  13. // Definitions
  14. enum FC0013_TRUE_FALSE_STATUS
  15. {
  16. FC0013_FALSE,
  17. FC0013_TRUE,
  18. };
  19. enum FC0013_I2C_STATUS
  20. {
  21. FC0013_I2C_SUCCESS,
  22. FC0013_I2C_ERROR,
  23. };
  24. enum FC0013_FUNCTION_STATUS
  25. {
  26. FC0013_FUNCTION_SUCCESS,
  27. FC0013_FUNCTION_ERROR,
  28. };
  29. // Functions
  30. int FC0013_Read(void *pTuner, unsigned char RegAddr, unsigned char *pByte);
  31. int FC0013_Write(void *pTuner, unsigned char RegAddr, unsigned char Byte);
  32. int
  33. fc0013_SetRegMaskBits(
  34. void *pTuner,
  35. unsigned char RegAddr,
  36. unsigned char Msb,
  37. unsigned char Lsb,
  38. const unsigned char WritingValue
  39. );
  40. int
  41. fc0013_GetRegMaskBits(
  42. void *pTuner,
  43. unsigned char RegAddr,
  44. unsigned char Msb,
  45. unsigned char Lsb,
  46. unsigned char *pReadingValue
  47. );
  48. int FC0013_Open(void *pTuner);
  49. int FC0013_SetFrequency(void *pTuner, unsigned long Frequency, unsigned short Bandwidth);
  50. // Set VHF Track depends on input frequency
  51. int FC0013_SetVhfTrack(void *pTuner, unsigned long Frequency);
  52. // The following context is FC0013 tuner API source code
  53. // Definitions
  54. // Bandwidth mode
  55. enum FC0013_BANDWIDTH_MODE
  56. {
  57. FC0013_BANDWIDTH_6000000HZ = 6,
  58. FC0013_BANDWIDTH_7000000HZ = 7,
  59. FC0013_BANDWIDTH_8000000HZ = 8,
  60. };
  61. // Default for initialing
  62. #define FC0013_RF_FREQ_HZ_DEFAULT 50000000
  63. #define FC0013_BANDWIDTH_MODE_DEFAULT FC0013_BANDWIDTH_8000000HZ
  64. // Tuner LNA
  65. enum FC0013_LNA_GAIN_VALUE
  66. {
  67. FC0013_LNA_GAIN_LOW = 0x00, // -6.3dB
  68. FC0013_LNA_GAIN_MIDDLE = 0x08, // 7.1dB
  69. FC0013_LNA_GAIN_HIGH_17 = 0x11, // 19.1dB
  70. FC0013_LNA_GAIN_HIGH_19 = 0x10, // 19.7dB
  71. };
  72. // Manipulaing functions
  73. void
  74. fc0013_GetTunerType(
  75. void *pTuner,
  76. int *pTunerType
  77. );
  78. void
  79. fc0013_GetDeviceAddr(
  80. void *pTuner,
  81. unsigned char *pDeviceAddr
  82. );
  83. int
  84. fc0013_Initialize(
  85. void *pTuner
  86. );
  87. int
  88. fc0013_SetRfFreqHz(
  89. void *pTuner,
  90. unsigned long RfFreqHz
  91. );
  92. int
  93. fc0013_GetRfFreqHz(
  94. void *pTuner,
  95. unsigned long *pRfFreqHz
  96. );
  97. // Extra manipulaing functions
  98. int
  99. fc0013_SetBandwidthMode(
  100. void *pTuner,
  101. int BandwidthMode
  102. );
  103. int
  104. fc0013_GetBandwidthMode(
  105. void *pTuner,
  106. int *pBandwidthMode
  107. );
  108. int
  109. fc0013_RcCalReset(
  110. void *pTuner
  111. );
  112. int
  113. fc0013_RcCalAdd(
  114. void *pTuner,
  115. int RcValue
  116. );
  117. #endif