summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSteve Markgraf <steve@steve-m.de>2012-04-01 20:06:33 +0200
committerSteve Markgraf <steve@steve-m.de>2012-04-01 20:06:33 +0200
commitb5e4b768858b60858a68f40d3635f1df004b5da6 (patch)
treea4699335bffbed489acd07a1d65f6a412e457ba1 /include
parent6322c9343dc7f22b6ec848f3189aa3f08e1dc88a (diff)
add FCI FC2580 tuner support
Signed-off-by: Steve Markgraf <steve@steve-m.de>
Diffstat (limited to 'include')
-rw-r--r--include/Makefile.am2
-rw-r--r--include/tuner_fc2580.h127
2 files changed, 128 insertions, 1 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index 17482c9..99b9d49 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -1,5 +1,5 @@
rtlsdr_HEADERS = rtl-sdr.h
-noinst_HEADERS = rtlsdr_i2c.h tuner_e4000.h tuner_fc0012.h tuner_fc0013.h
+noinst_HEADERS = rtlsdr_i2c.h tuner_e4000.h tuner_fc0012.h tuner_fc0013.h tuner_fc2580.h
rtlsdrdir = $(includedir)
diff --git a/include/tuner_fc2580.h b/include/tuner_fc2580.h
new file mode 100644
index 0000000..9ebd935
--- /dev/null
+++ b/include/tuner_fc2580.h
@@ -0,0 +1,127 @@
+#ifndef __TUNER_FC2580_H
+#define __TUNER_FC2580_H
+
+#define BORDER_FREQ 2600000 //2.6GHz : The border frequency which determines whether Low VCO or High VCO is used
+#define USE_EXT_CLK 0 //0 : Use internal XTAL Oscillator / 1 : Use External Clock input
+#define OFS_RSSI 57
+
+#define FC2580_I2C_ADDR 0xac
+#define FC2580_CHECK_ADDR 0x01
+#define FC2580_CHECK_VAL 0x56
+
+typedef enum {
+ FC2580_UHF_BAND,
+ FC2580_L_BAND,
+ FC2580_VHF_BAND,
+ FC2580_NO_BAND
+} fc2580_band_type;
+
+typedef enum {
+ FC2580_FCI_FAIL,
+ FC2580_FCI_SUCCESS
+} fc2580_fci_result_type;
+
+enum FUNCTION_STATUS
+{
+ FUNCTION_SUCCESS,
+ FUNCTION_ERROR,
+};
+
+extern void fc2580_wait_msec(void *pTuner, int a);
+
+fc2580_fci_result_type fc2580_i2c_write(void *pTuner, unsigned char reg, unsigned char val);
+fc2580_fci_result_type fc2580_i2c_read(void *pTuner, unsigned char reg, unsigned char *read_data);
+
+/*==============================================================================
+ fc2580 initial setting
+
+ This function is a generic function which gets called to initialize
+
+ fc2580 in DVB-H mode or L-Band TDMB mode
+
+ <input parameter>
+
+ ifagc_mode
+ type : integer
+ 1 : Internal AGC
+ 2 : Voltage Control Mode
+
+==============================================================================*/
+fc2580_fci_result_type fc2580_set_init(void *pTuner, int ifagc_mode, unsigned int freq_xtal );
+
+/*==============================================================================
+ fc2580 frequency setting
+
+ This function is a generic function which gets called to change LO Frequency
+
+ of fc2580 in DVB-H mode or L-Band TDMB mode
+
+ <input parameter>
+
+ f_lo
+ Value of target LO Frequency in 'kHz' unit
+ ex) 2.6GHz = 2600000
+
+==============================================================================*/
+fc2580_fci_result_type fc2580_set_freq(void *pTuner, unsigned int f_lo, unsigned int freq_xtal );
+
+
+/*==============================================================================
+ fc2580 filter BW setting
+
+ This function is a generic function which gets called to change Bandwidth
+
+ frequency of fc2580's channel selection filter
+
+ <input parameter>
+
+ filter_bw
+ 1 : 1.53MHz(TDMB)
+ 6 : 6MHz
+ 7 : 7MHz
+ 8 : 7.8MHz
+
+
+==============================================================================*/
+fc2580_fci_result_type fc2580_set_filter( void *pTuner, unsigned char filter_bw, unsigned int freq_xtal );
+
+// The following context is FC2580 tuner API source code
+// Definitions
+
+// AGC mode
+enum FC2580_AGC_MODE
+{
+ FC2580_AGC_INTERNAL = 1,
+ FC2580_AGC_EXTERNAL = 2,
+};
+
+
+// Bandwidth mode
+enum FC2580_BANDWIDTH_MODE
+{
+ FC2580_BANDWIDTH_1530000HZ = 1,
+ FC2580_BANDWIDTH_6000000HZ = 6,
+ FC2580_BANDWIDTH_7000000HZ = 7,
+ FC2580_BANDWIDTH_8000000HZ = 8,
+};
+
+// Manipulaing functions
+int
+fc2580_Initialize(
+ void *pTuner
+ );
+
+int
+fc2580_SetRfFreqHz(
+ void *pTuner,
+ unsigned long RfFreqHz
+ );
+
+// Extra manipulaing functions
+int
+fc2580_SetBandwidthMode(
+ void *pTuner,
+ int BandwidthMode
+ );
+
+#endif