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