tuner_e4000.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #ifndef __TUNER_E4000_H
  2. #define __TUNER_E4000_H
  3. // Definition (implemeted for E4000)
  4. #define E4000_1_SUCCESS 1
  5. #define E4000_1_FAIL 0
  6. #define E4000_I2C_SUCCESS 1
  7. #define E4000_I2C_FAIL 0
  8. #define E4K_I2C_ADDR 0xc8
  9. #define E4K_CHECK_ADDR 0x02
  10. #define E4K_CHECK_VAL 0x40
  11. // Function (implemeted for E4000)
  12. int
  13. I2CReadByte(void *pTuner,
  14. unsigned char NoUse,
  15. unsigned char RegAddr,
  16. unsigned char *pReadingByte
  17. );
  18. int
  19. I2CWriteByte(
  20. void *pTuner,
  21. unsigned char NoUse,
  22. unsigned char RegAddr,
  23. unsigned char WritingByte
  24. );
  25. int
  26. I2CWriteArray(void *pTuner,
  27. unsigned char NoUse,
  28. unsigned char RegStartAddr,
  29. unsigned char ByteNum,
  30. unsigned char *pWritingBytes
  31. );
  32. // Functions (from E4000 source code)
  33. int tunerreset (void *pTuner);
  34. int Tunerclock(void *pTuner);
  35. int Qpeak(void *pTuner);
  36. int DCoffloop(void *pTuner);
  37. int GainControlinit(void *pTuner);
  38. int Gainmanual(void *pTuner);
  39. int E4000_gain_freq(void *pTuner, int frequency);
  40. int PLL(void *pTuner, int Ref_clk, int Freq);
  41. int LNAfilter(void *pTuner, int Freq);
  42. int IFfilter(void *pTuner, int bandwidth, int Ref_clk);
  43. int freqband(void *pTuner, int Freq);
  44. int DCoffLUT(void *pTuner);
  45. int GainControlauto(void *pTuner);
  46. int E4000_sensitivity(void *pTuner, int Freq, int bandwidth);
  47. int E4000_linearity(void *pTuner, int Freq, int bandwidth);
  48. int E4000_high_linearity(void *pTuner);
  49. int E4000_nominal(void *pTuner, int Freq, int bandwidth);
  50. // The following context is E4000 tuner API source code
  51. // Definitions
  52. // Bandwidth in Hz
  53. enum E4000_BANDWIDTH_HZ
  54. {
  55. E4000_BANDWIDTH_6000000HZ = 6000000,
  56. E4000_BANDWIDTH_7000000HZ = 7000000,
  57. E4000_BANDWIDTH_8000000HZ = 8000000,
  58. };
  59. // Manipulaing functions
  60. void
  61. e4000_GetTunerType(
  62. void *pTuner,
  63. int *pTunerType
  64. );
  65. void
  66. e4000_GetDeviceAddr(
  67. void *pTuner,
  68. unsigned char *pDeviceAddr
  69. );
  70. int
  71. e4000_Initialize(
  72. void *pTuner
  73. );
  74. int
  75. e4000_SetRfFreqHz(
  76. void *pTuner,
  77. unsigned long RfFreqHz
  78. );
  79. int
  80. e4000_GetRfFreqHz(
  81. void *pTuner,
  82. unsigned long *pRfFreqHz
  83. );
  84. // Extra manipulaing functions
  85. int
  86. e4000_GetRegByte(
  87. void *pTuner,
  88. unsigned char RegAddr,
  89. unsigned char *pReadingByte
  90. );
  91. int
  92. e4000_SetBandwidthHz(
  93. void *pTuner,
  94. unsigned long BandwidthHz
  95. );
  96. int
  97. e4000_GetBandwidthHz(
  98. void *pTuner,
  99. unsigned long *pBandwidthHz
  100. );
  101. #endif