summaryrefslogtreecommitdiffstats
path: root/api/Common.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/Common.h')
-rw-r--r--api/Common.h286
1 files changed, 286 insertions, 0 deletions
diff --git a/api/Common.h b/api/Common.h
new file mode 100644
index 0000000..ddde613
--- /dev/null
+++ b/api/Common.h
@@ -0,0 +1,286 @@
+#pragma once
+
+typedef unsigned char BYTE; /** At least 1 Byte */
+typedef unsigned short WORD; /** At least 2 Bytes */
+typedef signed short _s16;
+typedef unsigned long DWORD; /** At least 4 Bytes */
+typedef void * HANDLE; /** Pointer to memory location */
+
+#define TUNER_REGS_NUM 104
+#define INITCTRL_NUM 40
+#ifdef _MXL_PRODUCTION
+#define CHCTRL_NUM 39
+#else
+#define CHCTRL_NUM 36
+#endif
+
+#define MXLCTRL_NUM 189
+
+#define MASTER_CONTROL_ADDR 9
+
+/** Enumeration of AGC Mode */
+typedef enum
+{
+ MXL_DUAL_AGC = 0 ,
+ MXL_SINGLE_AGC
+} AGC_Mode ;
+
+/**
+ * Enumeration of Master Control Register State
+ */
+typedef enum
+{
+ MC_LOAD_START = 1 ,
+ MC_POWER_DOWN ,
+ MC_SYNTH_RESET ,
+ MC_SEQ_OFF
+} Master_Control_State ;
+
+/**
+ * Enumeration of MXL5005 Tuner Mode
+ */
+typedef enum
+{
+ MXL_ANALOG_MODE = 0 ,
+ MXL_DIGITAL_MODE
+
+} Tuner_Mode ;
+
+/**
+ * Enumeration of MXL5005 Tuner IF Mode
+ */
+typedef enum
+{
+ MXL_ZERO_IF = 0 ,
+ MXL_LOW_IF
+
+} Tuner_IF_Mode ;
+
+/**
+ * Enumeration of MXL5005 Tuner Clock Out Mode
+ */
+typedef enum
+{
+ MXL_CLOCK_OUT_DISABLE = 0 ,
+ MXL_CLOCK_OUT_ENABLE
+} Tuner_Clock_Out ;
+
+/**
+ * Enumeration of MXL5005 Tuner Div Out Mode
+ */
+typedef enum
+{
+ MXL_DIV_OUT_1 = 0 ,
+ MXL_DIV_OUT_4
+
+} Tuner_Div_Out ;
+
+/**
+ * Enumeration of MXL5005 Tuner Pull-up Cap Select Mode
+ */
+typedef enum
+{
+ MXL_CAP_SEL_DISABLE = 0 ,
+ MXL_CAP_SEL_ENABLE
+
+} Tuner_Cap_Select ;
+
+/**
+ * Enumeration of MXL5005 Tuner RSSI Mode
+ */
+typedef enum
+{
+ MXL_RSSI_DISABLE = 0 ,
+ MXL_RSSI_ENABLE
+
+} Tuner_RSSI ;
+
+/**
+ * Enumeration of MXL5005 Tuner Modulation Type
+ */
+typedef enum
+{
+ MXL_DEFAULT_MODULATION = 0 ,
+ MXL_DVBT,
+ MXL_ATSC,
+ MXL_QAM,
+ MXL_ANALOG_CABLE,
+ MXL_ANALOG_OTA
+
+} Tuner_Modu_Type ;
+
+/**
+ * Enumeration of MXL5005 Tuner Tracking Filter Type
+ */
+typedef enum
+{
+ MXL_TF_DEFAULT = 0 ,
+ MXL_TF_OFF,
+ MXL_TF_C,
+ MXL_TF_C_H,
+ MXL_TF_D,
+ MXL_TF_D_L,
+ MXL_TF_E,
+ MXL_TF_F,
+ MXL_TF_E_2,
+ MXL_TF_E_NA,
+ MXL_TF_G
+
+
+} Tuner_TF_Type ;
+
+/**
+ * MXL5005 Tuner Register Struct
+ */
+typedef struct _TunerReg_struct
+{
+ WORD Reg_Num ; // Tuner Register Address
+ WORD Reg_Val ; // Current sofware programmed value waiting to be writen
+} TunerReg_struct ;
+
+/**
+ * MXL5005 Tuner Control Struct
+ */
+typedef struct _TunerControl_struct {
+ WORD Ctrl_Num ; // Control Number
+ WORD size ; // Number of bits to represent Value
+ WORD addr[25] ; // Array of Tuner Register Address for each bit position
+ WORD bit[25] ; // Array of bit position in Register Address for each bit position
+ WORD val[25] ; // Binary representation of Value
+} TunerControl_struct ;
+
+/**
+ * MXL5005 Tuner Struct
+ */
+typedef struct _Tuner_struct
+{
+ BYTE Mode ; /** 0: Analog Mode ; 1: Digital Mode */
+ BYTE IF_Mode ; /** for Analog Mode, 0: zero IF; 1: low IF */
+ DWORD Chan_Bandwidth ; /** filter channel bandwidth (6, 7, 8) */
+ DWORD IF_OUT ; /** Desired IF Out Frequency */
+ WORD IF_OUT_LOAD ; /** IF Out Load Resistor (200/300 Ohms) */
+ DWORD RF_IN ; /** RF Input Frequency */
+ DWORD Fxtal ; /** XTAL Frequency */
+ BYTE AGC_Mode ; /** AGC Mode 0: Dual AGC; 1: Single AGC */
+ WORD TOP ; /** Value: take over point */
+ BYTE CLOCK_OUT ; /** 0: turn off clock out; 1: turn on clock out */
+ BYTE DIV_OUT ; /** 4MHz or 16MHz */
+ BYTE CAPSELECT ; /** 0: disable On-Chip pulling cap; 1: enable */
+ BYTE EN_RSSI ; /** 0: disable RSSI; 1: enable RSSI */
+ BYTE Mod_Type ; /** Modulation Type; */
+ /** 0 - Default; 1 - DVB-T; 2 - ATSC; 3 - QAM; 4 - Analog Cable */
+ BYTE TF_Type ; // Tracking Filter Type
+ // 0 - Default; 1 - Off; 2 - Type C; 3 - Type C-H
+
+ /** Calculated Settings */
+ DWORD RF_LO ; /** Synth RF LO Frequency */
+ DWORD IF_LO ; /** Synth IF LO Frequency */
+ DWORD TG_LO ; /** Synth TG_LO Frequency */
+
+ /** Pointers to ControlName Arrays */
+ WORD Init_Ctrl_Num ; /** Number of INIT Control Names */
+ TunerControl_struct Init_Ctrl[INITCTRL_NUM] ; /** INIT Control Names Array Pointer */
+ WORD CH_Ctrl_Num ; /** Number of CH Control Names */
+ TunerControl_struct CH_Ctrl[CHCTRL_NUM] ; /** CH Control Name Array Pointer */
+ WORD MXL_Ctrl_Num ; /** Number of MXL Control Names */
+ TunerControl_struct MXL_Ctrl[MXLCTRL_NUM] ; /** MXL Control Name Array Pointer */
+
+ /** Pointer to Tuner Register Array */
+ WORD TunerRegs_Num ; /** Number of Tuner Registers */
+ TunerReg_struct TunerRegs[TUNER_REGS_NUM] ; /** Tuner Register Array Pointer */
+} Tuner_struct ;
+
+
+
+typedef enum
+{
+ /**
+ * Initialization Control Names
+ */
+ DN_IQTN_AMP_CUT = 1 , /** 1 */
+ BB_MODE , /** 2 */
+ BB_BUF , /** 3 */
+ BB_BUF_OA , /** 4 */
+ BB_ALPF_BANDSELECT , /** 5 */
+ BB_IQSWAP , /** 6 */
+ BB_DLPF_BANDSEL , /** 7 */
+ RFSYN_CHP_GAIN , /** 8 */
+ RFSYN_EN_CHP_HIGAIN , /** 9 */
+ AGC_IF , /** 10 */
+ AGC_RF , /** 11 */
+ IF_DIVVAL , /** 12 */
+ IF_VCO_BIAS , /** 13 */
+ CHCAL_INT_MOD_IF , /** 14 */
+ CHCAL_FRAC_MOD_IF , /** 15 */
+ DRV_RES_SEL , /** 16 */
+ I_DRIVER , /** 17 */
+ EN_AAF , /** 18 */
+ EN_3P , /** 19 */
+ EN_AUX_3P , /** 20 */
+ SEL_AAF_BAND , /** 21 */
+ SEQ_ENCLK16_CLK_OUT , /** 22 */
+ SEQ_SEL4_16B , /** 23 */
+ XTAL_CAPSELECT , /** 24 */
+ IF_SEL_DBL , /** 25 */
+ RFSYN_R_DIV , /** 26 */
+ SEQ_EXTSYNTHCALIF , /** 27 */
+ SEQ_EXTDCCAL , /** 28 */
+ AGC_EN_RSSI , /** 29 */
+ RFA_ENCLKRFAGC , /** 30 */
+ RFA_RSSI_REFH , /** 31 */
+ RFA_RSSI_REF , /** 32 */
+ RFA_RSSI_REFL , /** 33 */
+ RFA_FLR , /** 34 */
+ RFA_CEIL , /** 35 */
+ SEQ_EXTIQFSMPULSE , /** 36 */
+ OVERRIDE_1 , /** 37 */
+ BB_INITSTATE_DLPF_TUNE, /** 38 */
+ TG_R_DIV, /** 39 */
+ EN_CHP_LIN_B , /** 40 */
+
+ /**
+ * Channel Change Control Names
+ */
+ DN_POLY = 51 , /** 51 */
+ DN_RFGAIN , /** 52 */
+ DN_CAP_RFLPF , /** 53 */
+ DN_EN_VHFUHFBAR , /** 54 */
+ DN_GAIN_ADJUST , /** 55 */
+ DN_IQTNBUF_AMP , /** 56 */
+ DN_IQTNGNBFBIAS_BST , /** 57 */
+ RFSYN_EN_OUTMUX , /** 58 */
+ RFSYN_SEL_VCO_OUT , /** 59 */
+ RFSYN_SEL_VCO_HI , /** 60 */
+ RFSYN_SEL_DIVM , /** 61 */
+ RFSYN_RF_DIV_BIAS , /** 62 */
+ DN_SEL_FREQ , /** 63 */
+ RFSYN_VCO_BIAS , /** 64 */
+ CHCAL_INT_MOD_RF , /** 65 */
+ CHCAL_FRAC_MOD_RF , /** 66 */
+ RFSYN_LPF_R , /** 67 */
+ CHCAL_EN_INT_RF , /** 68 */
+ TG_LO_DIVVAL , /** 69 */
+ TG_LO_SELVAL , /** 70 */
+ TG_DIV_VAL , /** 71 */
+ TG_VCO_BIAS , /** 72 */
+ SEQ_EXTPOWERUP , /** 73 */
+ OVERRIDE_2 , /** 74 */
+ OVERRIDE_3 , /** 75 */
+ OVERRIDE_4 , /** 76 */
+ SEQ_FSM_PULSE , /** 77 */
+ GPIO_4B, /** 78 */
+ GPIO_3B, /** 79 */
+ GPIO_4, /** 80 */
+ GPIO_3, /** 81 */
+ GPIO_1B, /** 82 */
+ DAC_A_ENABLE , /** 83 */
+ DAC_B_ENABLE , /** 84 */
+ DAC_DIN_A , /** 85 */
+ DAC_DIN_B , /** 86 */
+#ifdef _MXL_PRODUCTION
+ RFSYN_EN_DIV, /** 87 */
+ RFSYN_DIVM, /** 88 */
+ DN_BYPASS_AGC_I2C /** 89 */
+#endif
+
+} MXL5005_ControlName ;