summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSteve Markgraf <steve@steve-m.de>2012-09-08 02:37:30 +0200
committerSteve Markgraf <steve@steve-m.de>2012-09-08 02:37:30 +0200
commit5a26bd51e77f54160854d668c590a2d1d53265a5 (patch)
treed65719f32880a4f4753066934355c64d7e27ac35 /include
parent0fb8543ddee1207963d965217261312ff098e04d (diff)
add initial support for the R820T tuner
Signed-off-by: Steve Markgraf <steve@steve-m.de>
Diffstat (limited to 'include')
-rw-r--r--include/rtl-sdr.h3
-rw-r--r--include/tuner_r820t.h192
2 files changed, 194 insertions, 1 deletions
diff --git a/include/rtl-sdr.h b/include/rtl-sdr.h
index 5eef94a..2b9fff0 100644
--- a/include/rtl-sdr.h
+++ b/include/rtl-sdr.h
@@ -131,7 +131,8 @@ enum rtlsdr_tuner {
RTLSDR_TUNER_E4000,
RTLSDR_TUNER_FC0012,
RTLSDR_TUNER_FC0013,
- RTLSDR_TUNER_FC2580
+ RTLSDR_TUNER_FC2580,
+ RTLSDR_TUNER_R820T
};
/*!
diff --git a/include/tuner_r820t.h b/include/tuner_r820t.h
new file mode 100644
index 0000000..058a9f2
--- /dev/null
+++ b/include/tuner_r820t.h
@@ -0,0 +1,192 @@
+#ifndef _R820T_TUNER_H
+#define _R820T_TUNER_H
+
+#define R820T_I2C_ADDR 0x34
+#define R820T_CHECK_ADDR 0x00
+#define R820T_CHECK_VAL 0x69
+
+//***************************************************************
+//* INCLUDES.H
+//***************************************************************
+#define VERSION "R820T_v1.49_ASTRO"
+#define VER_NUM 49
+
+#define USE_16M_XTAL FALSE
+#define R828_Xtal 28800
+
+#define USE_DIPLEXER FALSE
+#define TUNER_CLK_OUT TRUE
+
+#ifndef _UINT_X_
+#define _UINT_X_ 1
+typedef unsigned char UINT8;
+typedef unsigned short UINT16;
+typedef unsigned int UINT32;
+#endif
+
+#define TRUE 1
+#define FALSE 0
+
+#define FUNCTION_SUCCESS 0
+#define FUNCTION_ERROR -1
+
+typedef enum _R828_ErrCode
+{
+ RT_Success,
+ RT_Fail
+}R828_ErrCode;
+
+typedef enum _Rafael_Chip_Type //Don't modify chip list
+{
+ R828 = 0,
+ R828D,
+ R828S,
+ R820T,
+ R820C,
+ R620D,
+ R620S
+}Rafael_Chip_Type;
+//----------------------------------------------------------//
+// R828 Parameter //
+//----------------------------------------------------------//
+
+extern UINT8 R828_ADDRESS;
+
+#define DIP_FREQ 320000
+#define IMR_TRIAL 9
+#define VCO_pwr_ref 0x02
+
+extern UINT32 R828_IF_khz;
+extern UINT32 R828_CAL_LO_khz;
+extern UINT8 R828_IMR_point_num;
+extern UINT8 R828_IMR_done_flag;
+extern UINT8 Rafael_Chip;
+
+typedef enum _R828_Standard_Type //Don't remove standand list!!
+{
+ NTSC_MN = 0,
+ PAL_I,
+ PAL_DK,
+ PAL_B_7M, //no use
+ PAL_BGH_8M, //for PAL B/G, PAL G/H
+ SECAM_L,
+ SECAM_L1_INV, //for SECAM L'
+ SECAM_L1, //no use
+ ATV_SIZE,
+ DVB_T_6M = ATV_SIZE,
+ DVB_T_7M,
+ DVB_T_7M_2,
+ DVB_T_8M,
+ DVB_T2_6M,
+ DVB_T2_7M,
+ DVB_T2_7M_2,
+ DVB_T2_8M,
+ DVB_T2_1_7M,
+ DVB_T2_10M,
+ DVB_C_8M,
+ DVB_C_6M,
+ ISDB_T,
+ DTMB,
+ R828_ATSC,
+ FM,
+ STD_SIZE
+}R828_Standard_Type;
+
+extern UINT8 R828_Fil_Cal_flag[STD_SIZE];
+
+typedef enum _R828_SetFreq_Type
+{
+ FAST_MODE = TRUE,
+ NORMAL_MODE = FALSE
+}R828_SetFreq_Type;
+
+typedef enum _R828_LoopThrough_Type
+{
+ LOOP_THROUGH = TRUE,
+ SIGLE_IN = FALSE
+}R828_LoopThrough_Type;
+
+
+typedef enum _R828_InputMode_Type
+{
+ AIR_IN = 0,
+ CABLE_IN_1,
+ CABLE_IN_2
+}R828_InputMode_Type;
+
+typedef enum _R828_IfAgc_Type
+{
+ IF_AGC1 = 0,
+ IF_AGC2
+}R828_IfAgc_Type;
+
+typedef enum _R828_GPIO_Type
+{
+ HI_SIG = TRUE,
+ LO_SIG = FALSE
+}R828_GPIO_Type;
+
+typedef struct _R828_Set_Info
+{
+ UINT32 RF_KHz;
+ R828_Standard_Type R828_Standard;
+ R828_LoopThrough_Type RT_Input;
+ R828_InputMode_Type RT_InputMode;
+ R828_IfAgc_Type R828_IfAgc_Select;
+}R828_Set_Info;
+
+typedef struct _R828_RF_Gain_Info
+{
+ UINT8 RF_gain1;
+ UINT8 RF_gain2;
+ UINT8 RF_gain_comb;
+}R828_RF_Gain_Info;
+
+typedef enum _R828_RF_Gain_TYPE
+{
+ RF_AUTO = 0,
+ RF_MANUAL
+}R828_RF_Gain_TYPE;
+
+typedef struct _R828_I2C_LEN_TYPE
+{
+ UINT8 RegAddr;
+ UINT8 Data[50];
+ UINT8 Len;
+}R828_I2C_LEN_TYPE;
+
+typedef struct _R828_I2C_TYPE
+{
+ UINT8 RegAddr;
+ UINT8 Data;
+}R828_I2C_TYPE;
+//----------------------------------------------------------//
+// R828 Function //
+//----------------------------------------------------------//
+R828_ErrCode R828_Init(void *pTuner);
+R828_ErrCode R828_Standby(void *pTuner, R828_LoopThrough_Type R828_LoopSwitch);
+R828_ErrCode R828_GPIO(void *pTuner, R828_GPIO_Type R828_GPIO_Conrl);
+R828_ErrCode R828_SetStandard(void *pTuner, R828_Standard_Type RT_Standard);
+R828_ErrCode R828_SetFrequency(void *pTuner, R828_Set_Info R828_INFO, R828_SetFreq_Type R828_SetFreqMode);
+R828_ErrCode R828_GetRfGain(void *pTuner, R828_RF_Gain_Info *pR828_rf_gain);
+R828_ErrCode R828_RfGainMode(void *pTuner, R828_RF_Gain_TYPE R828_RfGainType);
+
+int
+r820t_SetRfFreqHz(
+ void *pTuner,
+ unsigned long RfFreqHz
+ );
+
+int
+r820t_SetStandardMode(
+ void *pTuner,
+ int StandardMode
+ );
+
+int
+r820t_SetStandby(
+ void *pTuner,
+ int LoopThroughType
+ );
+
+#endif /* _R820T_TUNER_H */