summaryrefslogtreecommitdiff
path: root/hardware/src/r820/include/tuner_fc2580.h
diff options
context:
space:
mode:
authorArturs Artamonovs <arturs.artamonovs@protonmail.com>2022-03-12 17:48:54 +0000
committerArturs Artamonovs <arturs.artamonovs@protonmail.com>2022-03-12 17:48:54 +0000
commitec61b3e0e6084950eb4d5c95f83e442a01765a35 (patch)
treef9dee1721080ce33bf5452cc2f82deeafb047cc7 /hardware/src/r820/include/tuner_fc2580.h
parent4274248ca037308315f38ec77e66fddd8eae1395 (diff)
downloadr820sdr-init-ec61b3e0e6084950eb4d5c95f83e442a01765a35.tar.gz
r820sdr-init-ec61b3e0e6084950eb4d5c95f83e442a01765a35.zip
Working project
Diffstat (limited to 'hardware/src/r820/include/tuner_fc2580.h')
-rw-r--r--hardware/src/r820/include/tuner_fc2580.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/hardware/src/r820/include/tuner_fc2580.h b/hardware/src/r820/include/tuner_fc2580.h
new file mode 100644
index 0000000..9ebd935
--- /dev/null
+++ b/hardware/src/r820/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