tuner_fc2580.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #ifndef __TUNER_FC2580_H
  2. #define __TUNER_FC2580_H
  3. #define BORDER_FREQ 2600000 //2.6GHz : The border frequency which determines whether Low VCO or High VCO is used
  4. #define USE_EXT_CLK 0 //0 : Use internal XTAL Oscillator / 1 : Use External Clock input
  5. #define OFS_RSSI 57
  6. #define FC2580_I2C_ADDR 0xac
  7. #define FC2580_CHECK_ADDR 0x01
  8. #define FC2580_CHECK_VAL 0x56
  9. typedef enum {
  10. FC2580_UHF_BAND,
  11. FC2580_L_BAND,
  12. FC2580_VHF_BAND,
  13. FC2580_NO_BAND
  14. } fc2580_band_type;
  15. typedef enum {
  16. FC2580_FCI_FAIL,
  17. FC2580_FCI_SUCCESS
  18. } fc2580_fci_result_type;
  19. enum FUNCTION_STATUS
  20. {
  21. FUNCTION_SUCCESS,
  22. FUNCTION_ERROR,
  23. };
  24. extern void fc2580_wait_msec(void *pTuner, int a);
  25. fc2580_fci_result_type fc2580_i2c_write(void *pTuner, unsigned char reg, unsigned char val);
  26. fc2580_fci_result_type fc2580_i2c_read(void *pTuner, unsigned char reg, unsigned char *read_data);
  27. /*==============================================================================
  28. fc2580 initial setting
  29. This function is a generic function which gets called to initialize
  30. fc2580 in DVB-H mode or L-Band TDMB mode
  31. <input parameter>
  32. ifagc_mode
  33. type : integer
  34. 1 : Internal AGC
  35. 2 : Voltage Control Mode
  36. ==============================================================================*/
  37. fc2580_fci_result_type fc2580_set_init(void *pTuner, int ifagc_mode, unsigned int freq_xtal );
  38. /*==============================================================================
  39. fc2580 frequency setting
  40. This function is a generic function which gets called to change LO Frequency
  41. of fc2580 in DVB-H mode or L-Band TDMB mode
  42. <input parameter>
  43. f_lo
  44. Value of target LO Frequency in 'kHz' unit
  45. ex) 2.6GHz = 2600000
  46. ==============================================================================*/
  47. fc2580_fci_result_type fc2580_set_freq(void *pTuner, unsigned int f_lo, unsigned int freq_xtal );
  48. /*==============================================================================
  49. fc2580 filter BW setting
  50. This function is a generic function which gets called to change Bandwidth
  51. frequency of fc2580's channel selection filter
  52. <input parameter>
  53. filter_bw
  54. 1 : 1.53MHz(TDMB)
  55. 6 : 6MHz
  56. 7 : 7MHz
  57. 8 : 7.8MHz
  58. ==============================================================================*/
  59. fc2580_fci_result_type fc2580_set_filter( void *pTuner, unsigned char filter_bw, unsigned int freq_xtal );
  60. // The following context is FC2580 tuner API source code
  61. // Definitions
  62. // AGC mode
  63. enum FC2580_AGC_MODE
  64. {
  65. FC2580_AGC_INTERNAL = 1,
  66. FC2580_AGC_EXTERNAL = 2,
  67. };
  68. // Bandwidth mode
  69. enum FC2580_BANDWIDTH_MODE
  70. {
  71. FC2580_BANDWIDTH_1530000HZ = 1,
  72. FC2580_BANDWIDTH_6000000HZ = 6,
  73. FC2580_BANDWIDTH_7000000HZ = 7,
  74. FC2580_BANDWIDTH_8000000HZ = 8,
  75. };
  76. // Manipulaing functions
  77. int
  78. fc2580_Initialize(
  79. void *pTuner
  80. );
  81. int
  82. fc2580_SetRfFreqHz(
  83. void *pTuner,
  84. unsigned long RfFreqHz
  85. );
  86. // Extra manipulaing functions
  87. int
  88. fc2580_SetBandwidthMode(
  89. void *pTuner,
  90. int BandwidthMode
  91. );
  92. #endif