xref: /utopia/UTPA2-700.0.x/mxlib/include/drvDMD_INTERN_DVBS.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi //    Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi //    No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi //    modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi //    supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi //    Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi //    Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi //    obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi //    such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi //    MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi //    confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi //    third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi //    without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi //    intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi //    and in conformity with any international standard.  You agree to waive any
38*53ee8cc1Swenshuai.xi //    claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi //    incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi //    In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi //    consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi //    revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi //    You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi //    even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi //    request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi //    parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi //    services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi //    MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi //    ("Services").
52*53ee8cc1Swenshuai.xi //    You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi //    writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi //    disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi //    or otherwise:
58*53ee8cc1Swenshuai.xi //    (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi //        mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi //    (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi //        including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi //        of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi //    (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi //    of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi //    Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi //    settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi //    Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi //    with the said Rules.
72*53ee8cc1Swenshuai.xi //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi //    be English.
74*53ee8cc1Swenshuai.xi //    The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi 
95*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
96*53ee8cc1Swenshuai.xi ///
97*53ee8cc1Swenshuai.xi /// @file   drvDMD_INTERN_DVBS.h
98*53ee8cc1Swenshuai.xi /// @brief  DVBS Driver Interface
99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
100*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi #ifndef _DRV_DVBS_H_
103*53ee8cc1Swenshuai.xi #define _DRV_DVBS_H_
104*53ee8cc1Swenshuai.xi #include "UFO.h"
105*53ee8cc1Swenshuai.xi #include "MsTypes.h"
106*53ee8cc1Swenshuai.xi 
107*53ee8cc1Swenshuai.xi #include "MsCommon.h"
108*53ee8cc1Swenshuai.xi #include "drvDMD_common.h"
109*53ee8cc1Swenshuai.xi #ifdef __cplusplus
110*53ee8cc1Swenshuai.xi extern "C"
111*53ee8cc1Swenshuai.xi {
112*53ee8cc1Swenshuai.xi #endif
113*53ee8cc1Swenshuai.xi 
114*53ee8cc1Swenshuai.xi 
115*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
116*53ee8cc1Swenshuai.xi //  Driver Capability
117*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
118*53ee8cc1Swenshuai.xi 
119*53ee8cc1Swenshuai.xi 
120*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
121*53ee8cc1Swenshuai.xi //  Macro and Define
122*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
123*53ee8cc1Swenshuai.xi #define MSIF_DMD_DVBS_INTERN_LIB_CODE           {'D','V', 'B','S'} //Lib code
124*53ee8cc1Swenshuai.xi #define MSIF_DMD_DVBS_INTERN_LIBVER             {'0','1'}      //LIB version
125*53ee8cc1Swenshuai.xi #define MSIF_DMD_DVBS_INTERN_BUILDNUM           {'2','2' }    //Build Number
126*53ee8cc1Swenshuai.xi #define MSIF_DMD_DVBS_INTERN_CHANGELIST         {'0','0','0','0','0','0','0','0'} //P4 ChangeList Number
127*53ee8cc1Swenshuai.xi 
128*53ee8cc1Swenshuai.xi #define DMD_DVBS_INTERN_VER             /* Character String for DRV/API version             */  \
129*53ee8cc1Swenshuai.xi     MSIF_TAG,                           /* 'MSIF'                                           */  \
130*53ee8cc1Swenshuai.xi     MSIF_CLASS,                         /* '00'                                             */  \
131*53ee8cc1Swenshuai.xi     MSIF_CUS,                           /* 0x0000                                           */  \
132*53ee8cc1Swenshuai.xi     MSIF_MOD,                           /* 0x0000                                           */  \
133*53ee8cc1Swenshuai.xi     MSIF_CHIP,                                                                                  \
134*53ee8cc1Swenshuai.xi     MSIF_CPU,                                                                                   \
135*53ee8cc1Swenshuai.xi     MSIF_DMD_DVBS_INTERN_LIB_CODE,      /* IP__                                             */  \
136*53ee8cc1Swenshuai.xi     MSIF_DMD_DVBS_INTERN_LIBVER,        /* 0.0 ~ Z.Z                                        */  \
137*53ee8cc1Swenshuai.xi     MSIF_DMD_DVBS_INTERN_BUILDNUM,      /* 00 ~ 99                                          */  \
138*53ee8cc1Swenshuai.xi     MSIF_DMD_DVBS_INTERN_CHANGELIST,    /* CL#                                              */  \
139*53ee8cc1Swenshuai.xi     MSIF_OS
140*53ee8cc1Swenshuai.xi 
141*53ee8cc1Swenshuai.xi #define IS_BITS_SET(val, bits)                  (((val)&(bits)) == (bits))
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
144*53ee8cc1Swenshuai.xi //  Type and Structure
145*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
146*53ee8cc1Swenshuai.xi typedef enum
147*53ee8cc1Swenshuai.xi {
148*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_NONE,    // disable all the debug message
149*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_INFO,    // information
150*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_NOTICE,  // normal but significant condition
151*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_WARNING, // warning conditions
152*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_ERR,     // error conditions
153*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_CRIT,    // critical conditions
154*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_ALERT,   // action must be taken immediately
155*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_EMERG,   // system is unusable
156*53ee8cc1Swenshuai.xi     DMD_DVBS_DBGLV_DEBUG,   // debug-level messages
157*53ee8cc1Swenshuai.xi } DMD_DVBS_DbgLv;
158*53ee8cc1Swenshuai.xi 
159*53ee8cc1Swenshuai.xi typedef enum
160*53ee8cc1Swenshuai.xi {
161*53ee8cc1Swenshuai.xi     DMD_DVBS_LOCK,
162*53ee8cc1Swenshuai.xi     DMD_DVBS_CHECKING,
163*53ee8cc1Swenshuai.xi     DMD_DVBS_CHECKEND,
164*53ee8cc1Swenshuai.xi     DMD_DVBS_UNLOCK,
165*53ee8cc1Swenshuai.xi     DMD_DVBS_NULL,
166*53ee8cc1Swenshuai.xi } DMD_DVBS_LOCK_STATUS;
167*53ee8cc1Swenshuai.xi 
168*53ee8cc1Swenshuai.xi typedef enum
169*53ee8cc1Swenshuai.xi {
170*53ee8cc1Swenshuai.xi     DMD_DVBS_GETLOCK,
171*53ee8cc1Swenshuai.xi     DMD_DVBS_GETLOCK_TR_EVER_LOCK,
172*53ee8cc1Swenshuai.xi     DMD_DVBS_GETLOCK_NO_CHANNEL,
173*53ee8cc1Swenshuai.xi } DMD_DVBS_GETLOCK_TYPE;
174*53ee8cc1Swenshuai.xi 
175*53ee8cc1Swenshuai.xi typedef enum
176*53ee8cc1Swenshuai.xi {
177*53ee8cc1Swenshuai.xi     DMD_DVBS_QPSK = 0,
178*53ee8cc1Swenshuai.xi     DMD_DVBS_8PSK = 1,
179*53ee8cc1Swenshuai.xi     DMD_DVBS_16APSK = 2,
180*53ee8cc1Swenshuai.xi     DMD_DVBS_32APSK = 3,
181*53ee8cc1Swenshuai.xi     DMD_DVBS_8APSK = 4,
182*53ee8cc1Swenshuai.xi     DMD_DVBS_8_8APSK = 5,
183*53ee8cc1Swenshuai.xi     DMD_DVBS_4_8_4_16APSK = 6
184*53ee8cc1Swenshuai.xi } DMD_DVBS_MODULATION_TYPE;
185*53ee8cc1Swenshuai.xi 
186*53ee8cc1Swenshuai.xi typedef enum
187*53ee8cc1Swenshuai.xi {
188*53ee8cc1Swenshuai.xi     DMD_SAT_DVBS  = 0,
189*53ee8cc1Swenshuai.xi     DMD_SAT_DVBS2 = 1,
190*53ee8cc1Swenshuai.xi } DMD_DVBS_DEMOD_TYPE;
191*53ee8cc1Swenshuai.xi 
192*53ee8cc1Swenshuai.xi typedef enum
193*53ee8cc1Swenshuai.xi {
194*53ee8cc1Swenshuai.xi /*
195*53ee8cc1Swenshuai.xi     E_DMD_S2_ZIF_EN = 0x00,
196*53ee8cc1Swenshuai.xi     E_DMD_S2_RF_AGC_EN,
197*53ee8cc1Swenshuai.xi     E_DMD_S2_DCR_EN,
198*53ee8cc1Swenshuai.xi     E_DMD_S2_IQB_EN,
199*53ee8cc1Swenshuai.xi     E_DMD_S2_IIS_EN,
200*53ee8cc1Swenshuai.xi     E_DMD_S2_CCI_EN,
201*53ee8cc1Swenshuai.xi     E_DMD_S2_FORCE_ACI_SELECT,
202*53ee8cc1Swenshuai.xi     E_DMD_S2_IQ_SWAP,					//For DVBS2
203*53ee8cc1Swenshuai.xi     E_DMD_S2_AGC_REF_EXT_0,
204*53ee8cc1Swenshuai.xi     E_DMD_S2_AGC_REF_EXT_1,
205*53ee8cc1Swenshuai.xi     E_DMD_S2_AGC_K,
206*53ee8cc1Swenshuai.xi     E_DMD_S2_ADCI_GAIN,
207*53ee8cc1Swenshuai.xi     E_DMD_S2_ADCQ_GAIN,
208*53ee8cc1Swenshuai.xi     E_DMD_S2_SRD_SIG_SRCH_RNG,
209*53ee8cc1Swenshuai.xi     E_DMD_S2_SRD_DC_EXC_RNG,
210*53ee8cc1Swenshuai.xi     E_DMD_S2_FORCE_CFO_0,				//0FH
211*53ee8cc1Swenshuai.xi     E_DMD_S2_FORCE_CFO_1,
212*53ee8cc1Swenshuai.xi     E_DMD_S2_DECIMATION_NUM,
213*53ee8cc1Swenshuai.xi     E_DMD_S2_PSD_SMTH_TAP,
214*53ee8cc1Swenshuai.xi     E_DMD_S2_CCI_FREQN_0_L,
215*53ee8cc1Swenshuai.xi     E_DMD_S2_CCI_FREQN_0_H,
216*53ee8cc1Swenshuai.xi     E_DMD_S2_CCI_FREQN_1_L,
217*53ee8cc1Swenshuai.xi     E_DMD_S2_CCI_FREQN_1_H,
218*53ee8cc1Swenshuai.xi     E_DMD_S2_CCI_FREQN_2_L,
219*53ee8cc1Swenshuai.xi     E_DMD_S2_CCI_FREQN_2_H,
220*53ee8cc1Swenshuai.xi     E_DMD_S2_TR_LOPF_KP,
221*53ee8cc1Swenshuai.xi     E_DMD_S2_TR_LOPF_KI,
222*53ee8cc1Swenshuai.xi     E_DMD_S2_FINEFE_KI_SWITCH_0,
223*53ee8cc1Swenshuai.xi     E_DMD_S2_FINEFE_KI_SWITCH_1,
224*53ee8cc1Swenshuai.xi     E_DMD_S2_FINEFE_KI_SWITCH_2,
225*53ee8cc1Swenshuai.xi     E_DMD_S2_FINEFE_KI_SWITCH_3,
226*53ee8cc1Swenshuai.xi     E_DMD_S2_FINEFE_KI_SWITCH_4,		//1FH
227*53ee8cc1Swenshuai.xi     E_DMD_S2_PR_KP_SWITCH_0,
228*53ee8cc1Swenshuai.xi     E_DMD_S2_PR_KP_SWITCH_1,
229*53ee8cc1Swenshuai.xi     E_DMD_S2_PR_KP_SWITCH_2,
230*53ee8cc1Swenshuai.xi     E_DMD_S2_PR_KP_SWITCH_3,
231*53ee8cc1Swenshuai.xi     E_DMD_S2_PR_KP_SWITCH_4,
232*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_GAMMA,
233*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_ALPHA0,
234*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_ALPHA1,
235*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_ALPHA2,
236*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_ALPHA3,
237*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_H_MODE_SEL,
238*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_OBSWIN,
239*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_PEAK_DET_TH_L,
240*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_PEAK_DET_TH_H,
241*53ee8cc1Swenshuai.xi     E_DMD_S2_FS_CONFIRM_NUM,
242*53ee8cc1Swenshuai.xi     E_DMD_S2_EQ_MU_FFE_DA,				//2FH
243*53ee8cc1Swenshuai.xi     E_DMD_S2_EQ_MU_FFE_DD,
244*53ee8cc1Swenshuai.xi     E_DMD_S2_EQ_ALPHA_SNR_DA,
245*53ee8cc1Swenshuai.xi     E_DMD_S2_EQ_ALPHA_SNR_DD,
246*53ee8cc1Swenshuai.xi     E_DMD_S2_FEC_ALFA,					//For DVBS2
247*53ee8cc1Swenshuai.xi     E_DMD_S2_FEC_BETA,					//For DVBS2
248*53ee8cc1Swenshuai.xi     E_DMD_S2_FEC_SCALING_LLR,			//For DVBS2
249*53ee8cc1Swenshuai.xi */
250*53ee8cc1Swenshuai.xi     E_DMD_S2_TS_SERIAL=0x00,
251*53ee8cc1Swenshuai.xi     E_DMD_S2_TS_CLK_RATE,
252*53ee8cc1Swenshuai.xi     E_DMD_S2_TS_OUT_INV,
253*53ee8cc1Swenshuai.xi     E_DMD_S2_TS_DATA_SWAP,
254*53ee8cc1Swenshuai.xi 	//------------------------------------------
255*53ee8cc1Swenshuai.xi 	E_DMD_S2_FW_VERSION_L,           	//0x3A
256*53ee8cc1Swenshuai.xi 	E_DMD_S2_FW_VERSION_H,           	//0x3B
257*53ee8cc1Swenshuai.xi 	E_DMD_S2_CHIP_VERSION,
258*53ee8cc1Swenshuai.xi 	E_DMD_S2_FS_L,		 				//Frequency
259*53ee8cc1Swenshuai.xi 	E_DMD_S2_FS_H,						//Frequency
260*53ee8cc1Swenshuai.xi 	E_DMD_S2_MANUAL_TUNE_SYMBOLRATE_L,	//0x3F
261*53ee8cc1Swenshuai.xi 	E_DMD_S2_MANUAL_TUNE_SYMBOLRATE_H,	//
262*53ee8cc1Swenshuai.xi 	E_DMD_S2_SYSTEM_TYPE,				//DVBS/S2
263*53ee8cc1Swenshuai.xi 	E_DMD_S2_MODULATION_TYPE,			//QPSK/8PSK
264*53ee8cc1Swenshuai.xi 	E_DMD_S2_BLINDSCAN_CHECK,
265*53ee8cc1Swenshuai.xi 
266*53ee8cc1Swenshuai.xi 	E_DMD_S2_UNCRT_PKT_NUM_7_0,
267*53ee8cc1Swenshuai.xi 	E_DMD_S2_UNCRT_PKT_NUM_8_15,
268*53ee8cc1Swenshuai.xi 	E_DMD_S2_STATE_FLAG,
269*53ee8cc1Swenshuai.xi 	E_DMD_S2_SUBSTATE_FLAG,
270*53ee8cc1Swenshuai.xi 	E_DMD_S2_HUM_DETECT_FLAG,
271*53ee8cc1Swenshuai.xi 	E_DMD_S2_CCI_DETECT_FLAG,
272*53ee8cc1Swenshuai.xi 	E_DMD_S2_IIS_DETECT_FLAG,
273*53ee8cc1Swenshuai.xi 	E_DMD_S2_OPEN_HUM_VLD_IRQ_FLAG,
274*53ee8cc1Swenshuai.xi 	E_DMD_S2_SRD_COARSE_DONE_FLAG,
275*53ee8cc1Swenshuai.xi 	E_DMD_S2_SRD_FINE_DONE_FLAG,
276*53ee8cc1Swenshuai.xi 	E_DMD_S2_FINEFE_DONE_FLAG,
277*53ee8cc1Swenshuai.xi 	E_DMD_S2_REV_FRAME_FLAG,			//0x4F
278*53ee8cc1Swenshuai.xi 	E_DMD_S2_DUMMY_FRAME_FLAG,
279*53ee8cc1Swenshuai.xi 	E_DMD_S2_PLSC_DONE_FLAG,
280*53ee8cc1Swenshuai.xi 	E_DMD_S2_GET_INFO_FROM_FRAME_LENGTH_DONE_FLAG,
281*53ee8cc1Swenshuai.xi 	E_DMD_S2_IQ_SWAP_DETECT_FLAG,
282*53ee8cc1Swenshuai.xi 	E_DMD_S2_FRAME_ACQUISITION_DONE_FLAG,
283*53ee8cc1Swenshuai.xi 	E_DMD_S2_OLCFE_DONE_FLAG,
284*53ee8cc1Swenshuai.xi 	E_DMD_S2_FSYNC_FOUND_FLAG,
285*53ee8cc1Swenshuai.xi 	E_DMD_S2_FSYNC_FAIL_SEARCH_FLAG,
286*53ee8cc1Swenshuai.xi 	E_DMD_S2_FALSE_ALARM_FLAG,
287*53ee8cc1Swenshuai.xi 	E_DMD_S2_VITERBI_IN_SYNC_FLAG,
288*53ee8cc1Swenshuai.xi 	E_DMD_S2_INT_CODE_RATE_SEARCH_FAIL_FLAG,
289*53ee8cc1Swenshuai.xi 	E_DMD_S2_VITERBI_INT_PRE_FLAG,
290*53ee8cc1Swenshuai.xi 	E_DMD_S2_BER_WINDOW_END_FLAG,
291*53ee8cc1Swenshuai.xi 	E_DMD_S2_PASS_WRONG_INT_FLAG,
292*53ee8cc1Swenshuai.xi 	E_DMD_S2_CLK_CNT_OVER_FLAG,
293*53ee8cc1Swenshuai.xi 	E_DMD_S2_UNCRT_OVER_FLAG,			//0x5F
294*53ee8cc1Swenshuai.xi 	E_DMD_S2_DISEQC_RX_LENGTH,
295*53ee8cc1Swenshuai.xi 	E_DMD_S2_DISEQC_INTERRUPT_FLAG,
296*53ee8cc1Swenshuai.xi 	E_DMD_S2_DISEQC_RX_FLAG,
297*53ee8cc1Swenshuai.xi 	E_DMD_S2_DISEQC_INTERRUPT_STATUS,
298*53ee8cc1Swenshuai.xi 	E_DMD_S2_DISEQC_STATUS_FLAG,
299*53ee8cc1Swenshuai.xi 	E_DMD_S2_ACI_FIR_SELECTED,			//0x65
300*53ee8cc1Swenshuai.xi 	//LOCK
301*53ee8cc1Swenshuai.xi 	E_DMD_S2_AGC_LOCK_FLAG,
302*53ee8cc1Swenshuai.xi 	E_DMD_S2_DCR_LOCK_FLAG,
303*53ee8cc1Swenshuai.xi 	E_DMD_S2_DAGC0_LOCK_FLAG,
304*53ee8cc1Swenshuai.xi 	E_DMD_S2_DAGC1_LOCK_FLAG,
305*53ee8cc1Swenshuai.xi 	E_DMD_S2_DAGC2_LOCK_FLAG,
306*53ee8cc1Swenshuai.xi 	E_DMD_S2_DAGC3_LOCK_FLAG,
307*53ee8cc1Swenshuai.xi 	E_DMD_S2_TR_LOCK_FLAG,
308*53ee8cc1Swenshuai.xi 	E_DMD_S2_CLCFE_LOCK_FLAG,
309*53ee8cc1Swenshuai.xi 	E_DMD_S2_EQ_LOCK_FLAG,
310*53ee8cc1Swenshuai.xi 	E_DMD_S2_PR_LOCK_FLAG,				//0x6F
311*53ee8cc1Swenshuai.xi 	E_DMD_S2_FSYNC_LOCK_FLAG,
312*53ee8cc1Swenshuai.xi 	E_DMD_S2_FSYNC_FAIL_LOCK_FLAG,
313*53ee8cc1Swenshuai.xi 
314*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE12L,				//0x72
315*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE12H,
316*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE13L,
317*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE13H,
318*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE14L,
319*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE14H,
320*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE15L,
321*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE15H,
322*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE16L,
323*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE16H,
324*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_SWUSE17L,
325*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_SWUSE17H,
326*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE18L,
327*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE18H,				//0x7F
328*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE19L,
329*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE19H,
330*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1AL,
331*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1AH,
332*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1BL,
333*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1BH,
334*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1CL,
335*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1CH,
336*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1DL,
337*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1DH,
338*53ee8cc1Swenshuai.xi   	E_DMD_S2_MB_SWUSE1EL,
339*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_SWUSE1EH,
340*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_SWUSE1FL,
341*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_SWUSE1FH, 				//0x8D
342*53ee8cc1Swenshuai.xi 
343*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_0,
344*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_1,			//0x8F
345*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_2,
346*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_3,
347*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_4,
348*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_5,
349*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_6,
350*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_7,
351*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_8,
352*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_9,
353*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_A,
354*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_DBG_B,
355*53ee8cc1Swenshuai.xi 
356*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE00L,
357*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE00H,
358*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE01L,
359*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE01H,
360*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE02L,
361*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE02H,		//0x9F
362*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE03L,
363*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE03H,
364*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE04L,
365*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE04H,
366*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE05L,
367*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE05H,
368*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE06L,
369*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE06H,
370*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE07L,
371*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_SWUSE07H,
372*53ee8cc1Swenshuai.xi 
373*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_90,
374*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_91,
375*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_92,
376*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_93,
377*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_94,
378*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_95,			//0xAF
379*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_96,
380*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_97,
381*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_98,
382*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_TOP_WR_DBG_99,
383*53ee8cc1Swenshuai.xi 
384*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_0,
385*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_1,
386*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_2,
387*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_3,
388*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_4,
389*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_5,
390*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_6,
391*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_7,
392*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_8,
393*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_9,
394*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_A,
395*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_B,			//0xBF
396*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_C,
397*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_D,
398*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_E,
399*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_F,
400*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_10,
401*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DUMMY_REG_11,
402*53ee8cc1Swenshuai.xi 
403*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_INFO_01,
404*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_INFO_02,
405*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_INFO_03,
406*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_INFO_04,
407*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_INFO_05,
408*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_INFO_06,
409*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_INFO_07,
410*53ee8cc1Swenshuai.xi 	E_DMD_S2_MB_DMDTOP_INFO_08,
411*53ee8cc1Swenshuai.xi 
412*53ee8cc1Swenshuai.xi 	E_DMD_S2_IDLE_STATE_UPDATED,
413*53ee8cc1Swenshuai.xi 	E_DMD_S2_LOG_FLAG,					//0xCF
414*53ee8cc1Swenshuai.xi 	E_DMD_S2_LOG_SKIP_INDEX,
415*53ee8cc1Swenshuai.xi 	E_DMD_S2_LOCK_COUNT,
416*53ee8cc1Swenshuai.xi 	E_DMD_S2_NARROW_STEP_FLAG,
417*53ee8cc1Swenshuai.xi 	E_DMD_S2_UNCORRECT_PKT_COUNT,
418*53ee8cc1Swenshuai.xi 	E_DMD_S2_DISEQC_INIT_MODE,
419*53ee8cc1Swenshuai.xi 	E_DMD_S2_DECIMATE_FORCED,
420*53ee8cc1Swenshuai.xi 	E_DMD_S2_SRD_MAX_SRG_FLAG,
421*53ee8cc1Swenshuai.xi 	E_DMD_S2_DVBS_OUTER_RETRY,
422*53ee8cc1Swenshuai.xi 
423*53ee8cc1Swenshuai.xi 	E_DMD_S2_FORCED_DECIMATE_FLAG,
424*53ee8cc1Swenshuai.xi 	E_DMD_S2_NO_SIGNAL_FLAG,
425*53ee8cc1Swenshuai.xi 	E_DMD_S2_SPECTRUM_TRACK_FLAG,
426*53ee8cc1Swenshuai.xi 	E_DMD_S2_SRD_LOCAL_SEARCH_FLAG,
427*53ee8cc1Swenshuai.xi 	E_DMD_S2_NO_SIGNAL_RATIO_CHECK_FLAG,
428*53ee8cc1Swenshuai.xi 	E_DMD_S2_LOW_SR_ACI_FLAG,
429*53ee8cc1Swenshuai.xi 	E_DMD_S2_SPECTRUM_TRACKER_TIMEOUT,
430*53ee8cc1Swenshuai.xi 	E_DMD_S2_TR_TIMEOUT,				//0xDF
431*53ee8cc1Swenshuai.xi 	E_DMD_S2_BALANCE_TRACK,
432*53ee8cc1Swenshuai.xi 	E_DMD_S2_GAIN_TILT_FLAG,			//0xE1
433*53ee8cc1Swenshuai.xi 	E_DMD_S2_SIS_EN,
434*53ee8cc1Swenshuai.xi 	E_DMD_S2_ISSY_ACTIVE,
435*53ee8cc1Swenshuai.xi 	E_DMD_S2_CODE_RATE,//174
436*53ee8cc1Swenshuai.xi 	E_DMD_S2_PILOT_FLAG,
437*53ee8cc1Swenshuai.xi 	E_DMD_S2_FEC_TYPE,
438*53ee8cc1Swenshuai.xi 	E_DMD_S2_MOD_TYPE,//177
439*53ee8cc1Swenshuai.xi 	E_DMD_S2_VCM_OPT,
440*53ee8cc1Swenshuai.xi 	E_DMD_S2_OPPRO_FLAG,
441*53ee8cc1Swenshuai.xi 	E_DMD_S2_IS_ID,
442*53ee8cc1Swenshuai.xi         E_DMD_S2_CHECK_EVER_UNLOCK,         //0xE2
443*53ee8cc1Swenshuai.xi 	E_DMD_S2_IS_ID_TABLE = 0x100, // use 32bytes length
444*53ee8cc1Swenshuai.xi 	DVBS2_PARAM_LEN = 120
445*53ee8cc1Swenshuai.xi } DVBS_Param_2;
446*53ee8cc1Swenshuai.xi 
447*53ee8cc1Swenshuai.xi 
448*53ee8cc1Swenshuai.xi 
449*53ee8cc1Swenshuai.xi 	//Interrupt callback
450*53ee8cc1Swenshuai.xi typedef void (*fpIntCallBack)(MS_U8 u8arg);
451*53ee8cc1Swenshuai.xi 
452*53ee8cc1Swenshuai.xi 
453*53ee8cc1Swenshuai.xi typedef struct
454*53ee8cc1Swenshuai.xi {
455*53ee8cc1Swenshuai.xi     // tuner parameter
456*53ee8cc1Swenshuai.xi     MS_U8 u8SarChannel;
457*53ee8cc1Swenshuai.xi     DMD_RFAGC_SSI *pTuner_RfagcSsi;
458*53ee8cc1Swenshuai.xi     MS_U16 u16Tuner_RfagcSsi_Size;
459*53ee8cc1Swenshuai.xi     DMD_IFAGC_SSI *pTuner_IfagcSsi_LoRef;
460*53ee8cc1Swenshuai.xi     MS_U16 u16Tuner_IfagcSsi_LoRef_Size;
461*53ee8cc1Swenshuai.xi     DMD_IFAGC_SSI *pTuner_IfagcSsi_HiRef;
462*53ee8cc1Swenshuai.xi     MS_U16 u16Tuner_IfagcSsi_HiRef_Size;
463*53ee8cc1Swenshuai.xi     DMD_IFAGC_ERR *pTuner_IfagcErr_LoRef;
464*53ee8cc1Swenshuai.xi     MS_U16 u16Tuner_IfagcErr_LoRef_Size;
465*53ee8cc1Swenshuai.xi     DMD_IFAGC_ERR *pTuner_IfagcErr_HiRef;
466*53ee8cc1Swenshuai.xi     MS_U16 u16Tuner_IfagcErr_HiRef_Size;
467*53ee8cc1Swenshuai.xi     DMD_SQI_CN_NORDIGP1 *pSqiCnNordigP1;
468*53ee8cc1Swenshuai.xi     MS_U16 u16SqiCnNordigP1_Size;
469*53ee8cc1Swenshuai.xi 
470*53ee8cc1Swenshuai.xi     // register init
471*53ee8cc1Swenshuai.xi     MS_U8 *u8DMD_DVBS_DSPRegInitExt; 	// TODO use system variable type
472*53ee8cc1Swenshuai.xi     MS_U8 u8DMD_DVBS_DSPRegInitSize;
473*53ee8cc1Swenshuai.xi     MS_U8 *u8DMD_DVBS_InitExt; 			// TODO use system variable type
474*53ee8cc1Swenshuai.xi 
475*53ee8cc1Swenshuai.xi 	//add for Kris: Since we have to borrow 3MByte DRAM for DJB
476*53ee8cc1Swenshuai.xi 	#ifdef UFO_PUBLIC_HEADER_212
477*53ee8cc1Swenshuai.xi 	MS_U32  u32DjbStartAddr;
478*53ee8cc1Swenshuai.xi        #endif
479*53ee8cc1Swenshuai.xi 
480*53ee8cc1Swenshuai.xi } DMD_DVBS_InitData;
481*53ee8cc1Swenshuai.xi 
482*53ee8cc1Swenshuai.xi typedef enum
483*53ee8cc1Swenshuai.xi {
484*53ee8cc1Swenshuai.xi     E_DMD_DVBS_FAIL=0,
485*53ee8cc1Swenshuai.xi     E_DMD_DVBS_OK=1
486*53ee8cc1Swenshuai.xi } DMD_DVBS_Result;
487*53ee8cc1Swenshuai.xi 
488*53ee8cc1Swenshuai.xi 
489*53ee8cc1Swenshuai.xi typedef struct
490*53ee8cc1Swenshuai.xi {
491*53ee8cc1Swenshuai.xi     MS_U16 	u16Version;
492*53ee8cc1Swenshuai.xi     MS_U32 	u32SymbolRate;
493*53ee8cc1Swenshuai.xi     DMD_DVBS_MODULATION_TYPE eQamMode;
494*53ee8cc1Swenshuai.xi     MS_U32 	u32IFFreq;
495*53ee8cc1Swenshuai.xi     MS_BOOL bSpecInv;
496*53ee8cc1Swenshuai.xi     MS_BOOL bSerialTS;
497*53ee8cc1Swenshuai.xi     MS_U8 	u8SarValue;
498*53ee8cc1Swenshuai.xi     MS_U32 	u32ChkScanTimeStart;
499*53ee8cc1Swenshuai.xi     DMD_DVBS_LOCK_STATUS eLockStatus;
500*53ee8cc1Swenshuai.xi     MS_U16 	u16Strength;
501*53ee8cc1Swenshuai.xi     MS_U16 	u16Quality;
502*53ee8cc1Swenshuai.xi     MS_U32 	u32Intp; //
503*53ee8cc1Swenshuai.xi     MS_U32 	u32FcFs; //
504*53ee8cc1Swenshuai.xi     MS_U8 	u8Qam; //
505*53ee8cc1Swenshuai.xi     MS_U16 	u16SymbolRateHal; //
506*53ee8cc1Swenshuai.xi } DMD_DVBS_Info;
507*53ee8cc1Swenshuai.xi 
508*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------
509*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------
510*53ee8cc1Swenshuai.xi /// Define converlution code rate for DVB-T and DVB-S
511*53ee8cc1Swenshuai.xi typedef enum
512*53ee8cc1Swenshuai.xi {
513*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_1_2,		///< Code rate = 1/2
514*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_1_3,		///< Code rate = 1/3
515*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_2_3,		///< Code rate = 2/3
516*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_1_4,		///< Code rate = 1/4
517*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_3_4,		///< Code rate = 3/4
518*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_2_5,		///< Code rate = 2/5
519*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_3_5,		///< Code rate = 3/5
520*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_4_5,		///< Code rate = 4/5
521*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_5_6,		///< Code rate = 5/6
522*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_7_8,		///< Code rate = 7/8
523*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_8_9,		///< Code rate = 8/9
524*53ee8cc1Swenshuai.xi     HAL_DEMOD_CONV_CODE_RATE_9_10,		///< Code rate = 9/10
525*53ee8cc1Swenshuai.xi 
526*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_2_9,
527*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_13_45,
528*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_9_20,
529*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_90_180,
530*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_96_180,
531*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_11_20,
532*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_100_180,
533*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_104_180,
534*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_26_45_L,
535*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_18_30,
536*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_28_45,
537*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_23_36,
538*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_116_180,
539*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_20_30,
540*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_124_180,
541*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_25_36,
542*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_128_180,
543*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_13_18,
544*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_132_180,
545*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_22_30,
546*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_135_180,
547*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_140_180,
548*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_7_9,
549*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_154_180,
550*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_11_45,
551*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_4_15,
552*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_14_45,
553*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_7_15,
554*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_8_15,
555*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_26_45_S,
556*53ee8cc1Swenshuai.xi     HAL_DEMOD_DVBS2_CODE_RATE_32_45
557*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_CONV_CODE_RATE_TYPE;
558*53ee8cc1Swenshuai.xi 
559*53ee8cc1Swenshuai.xi /// Define terrestrial band width
560*53ee8cc1Swenshuai.xi typedef enum
561*53ee8cc1Swenshuai.xi {
562*53ee8cc1Swenshuai.xi     HAL_DEMOD_BW_MODE_6MHZ = 0,                                                   ///< 6 MHz
563*53ee8cc1Swenshuai.xi     HAL_DEMOD_BW_MODE_7MHZ,                                                       ///< 7 MHz
564*53ee8cc1Swenshuai.xi     HAL_DEMOD_BW_MODE_8MHZ                                                        ///< 8 MHz
565*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_TER_BW_MODE;
566*53ee8cc1Swenshuai.xi 
567*53ee8cc1Swenshuai.xi 
568*53ee8cc1Swenshuai.xi /// Define terrestrial constellation type
569*53ee8cc1Swenshuai.xi typedef enum
570*53ee8cc1Swenshuai.xi {
571*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_QPSK,                                                           ///< QPSK type
572*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_QAM16,                                                          ///< QAM 16 type
573*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_QAM64                                                           ///< QAM 64 type
574*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_TER_CONSTEL_TYPE;
575*53ee8cc1Swenshuai.xi 
576*53ee8cc1Swenshuai.xi /// Define terrestrial hierarchy information
577*53ee8cc1Swenshuai.xi typedef enum
578*53ee8cc1Swenshuai.xi {
579*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_HIE_NONE,                                                       ///< Non-hierarchy
580*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_HIE_ALPHA_1,                                                    ///< Hierarchy alpha = 1
581*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_HIE_ALPHA_2,                                                    ///< Hierarchy alpha = 2
582*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_HIE_ALPHA_4                                                     ///< Hierarchy alpha = 4
583*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_TER_HIE_TYPE;
584*53ee8cc1Swenshuai.xi 
585*53ee8cc1Swenshuai.xi /// Define terrestrial guard interval
586*53ee8cc1Swenshuai.xi typedef enum
587*53ee8cc1Swenshuai.xi {
588*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_GI_1_32,                                                        ///< Guard interval value = 1/32
589*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_GI_1_16,                                                        ///< Guard interval value = 1/16
590*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_GI_1_8,                                                         ///< Guard interval value = 1/8
591*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_GI_1_4                                                          ///< Guard interval value = 1/4
592*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_TER_GI_TYPE;
593*53ee8cc1Swenshuai.xi 
594*53ee8cc1Swenshuai.xi /// Define terrestrial transmission mode
595*53ee8cc1Swenshuai.xi typedef enum
596*53ee8cc1Swenshuai.xi {
597*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_FFT_2K,                                                         ///< 2k FFT mode
598*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_FFT_8K                                                          ///< 8k FFT mode
599*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_TER_FFT_MODE;
600*53ee8cc1Swenshuai.xi 
601*53ee8cc1Swenshuai.xi /// Define terrestrial transmission mode
602*53ee8cc1Swenshuai.xi typedef enum
603*53ee8cc1Swenshuai.xi {
604*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_HP_SEL,                                                         ///< High priority level selection
605*53ee8cc1Swenshuai.xi     HAL_DEMOD_TER_LP_SEL                                                          ///< Low priority level selection
606*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_TER_LEVEL_SEL;
607*53ee8cc1Swenshuai.xi 
608*53ee8cc1Swenshuai.xi /// Define DVB-C modulation scheme
609*53ee8cc1Swenshuai.xi typedef enum
610*53ee8cc1Swenshuai.xi {
611*53ee8cc1Swenshuai.xi     HAL_DEMOD_CAB_QAM16,                                                          ///< QAM 16
612*53ee8cc1Swenshuai.xi     HAL_DEMOD_CAB_QAM32,                                                          ///< QAM 32
613*53ee8cc1Swenshuai.xi     HAL_DEMOD_CAB_QAM64,                                                          ///< QAM 64
614*53ee8cc1Swenshuai.xi     HAL_DEMOD_CAB_QAM128,                                                         ///< QAM 128
615*53ee8cc1Swenshuai.xi     HAL_DEMOD_CAB_QAM256
616*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_CAB_CONSTEL_TYPE;
617*53ee8cc1Swenshuai.xi 
618*53ee8cc1Swenshuai.xi 
619*53ee8cc1Swenshuai.xi /// Define DVB-S IQ tuning mode
620*53ee8cc1Swenshuai.xi typedef enum
621*53ee8cc1Swenshuai.xi {
622*53ee8cc1Swenshuai.xi     HAL_DEMOD_CAB_IQ_NORMAL,                                                      ///< Normal
623*53ee8cc1Swenshuai.xi     HAL_DEMOD_CAB_IQ_INVERT                                                       ///< Inverse
624*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_CAB_IQ_MODE;
625*53ee8cc1Swenshuai.xi 
626*53ee8cc1Swenshuai.xi 
627*53ee8cc1Swenshuai.xi /// Define DVB-S modulatiopn scheme
628*53ee8cc1Swenshuai.xi typedef enum
629*53ee8cc1Swenshuai.xi {
630*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_DVBS,
631*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_DVBS2                                                          ///< DVBS2                                                           ///< DVBS
632*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_SAT_MOD_TYPE;
633*53ee8cc1Swenshuai.xi 
634*53ee8cc1Swenshuai.xi typedef enum
635*53ee8cc1Swenshuai.xi {
636*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_QPSK,                                                           ///< QPSK
637*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_8PSK,                                                           ///< 8PSK
638*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_QAM16,                                                           ///< QAM16
639*53ee8cc1Swenshuai.xi     //HAL_DEMOD_SAT_16APSK,
640*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_32APSK,
641*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_8APSK,
642*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_8_8APSK,
643*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_4_8_4_16APSK
644*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_SAT_CONSTEL_TYPE;
645*53ee8cc1Swenshuai.xi 
646*53ee8cc1Swenshuai.xi /// Define DVB-S Roll-Off factor
647*53ee8cc1Swenshuai.xi typedef enum
648*53ee8cc1Swenshuai.xi {
649*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_RO_35,                                                          ///< roll-off factor = 0.35
650*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_RO_25,                                                          ///< roll-off factor = 0.25
651*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_RO_20                                                           ///< roll-off factor = 0.20
652*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_SAT_ROLL_OFF_TYPE;
653*53ee8cc1Swenshuai.xi 
654*53ee8cc1Swenshuai.xi /// Define DVB-S IQ tuning mode
655*53ee8cc1Swenshuai.xi typedef enum
656*53ee8cc1Swenshuai.xi {
657*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_IQ_NORMAL,                                                      ///< Normal
658*53ee8cc1Swenshuai.xi     HAL_DEMOD_SAT_IQ_INVERSE                                                      ///< Inverse
659*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_SAT_IQ_MODE;
660*53ee8cc1Swenshuai.xi 
661*53ee8cc1Swenshuai.xi /// Define Bit Error Rate range measure from signal
662*53ee8cc1Swenshuai.xi typedef enum
663*53ee8cc1Swenshuai.xi {
664*53ee8cc1Swenshuai.xi     HAL_DEMOD_BIT_ERR_RATIO_LOW ,                                                 ///< Low BER
665*53ee8cc1Swenshuai.xi     HAL_DEMOD_BIT_ERR_RATIO_MEDIUM ,                                              ///< Medium BER
666*53ee8cc1Swenshuai.xi     HAL_DEMOD_BIT_ERR_RATIO_HIGH                                                  ///< High BER
667*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_BIT_ERR_RATIO;
668*53ee8cc1Swenshuai.xi 
669*53ee8cc1Swenshuai.xi /// Define lock status of front end
670*53ee8cc1Swenshuai.xi typedef enum
671*53ee8cc1Swenshuai.xi {
672*53ee8cc1Swenshuai.xi     HAL_DEMOD_FE_UNLOCKED = 0,                                                    ///< Frontend is unlocked
673*53ee8cc1Swenshuai.xi     HAL_DEMOD_FE_LOCKED                                                           ///< Frontend is locked
674*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_FE_LOCK_STATUS;
675*53ee8cc1Swenshuai.xi 
676*53ee8cc1Swenshuai.xi 
677*53ee8cc1Swenshuai.xi /// Define tuning mode
678*53ee8cc1Swenshuai.xi /// NOTE: When this typedef is modified, the apiChScan should be rebuild.
679*53ee8cc1Swenshuai.xi typedef enum
680*53ee8cc1Swenshuai.xi {
681*53ee8cc1Swenshuai.xi     HAL_DEMOD_FE_TUNE_MANUAL,                                                     ///< Manual tuning to carrier
682*53ee8cc1Swenshuai.xi     HAL_DEMOD_FE_TUNE_AUTO,                                                       ///< Auto tuning to carrier
683*53ee8cc1Swenshuai.xi } HAL_DEMOD_EN_FE_TUNE_MODE;
684*53ee8cc1Swenshuai.xi 
685*53ee8cc1Swenshuai.xi /// Define output mode
686*53ee8cc1Swenshuai.xi /// NOTE: When this typedef is modified, the apiChScan should be rebuild.
687*53ee8cc1Swenshuai.xi typedef enum
688*53ee8cc1Swenshuai.xi {
689*53ee8cc1Swenshuai.xi     HAL_DEMOD_INTERFACE_SERIAL = 0,                                                   ///< Serial interface
690*53ee8cc1Swenshuai.xi     HAL_DEMOD_INTERFACE_PARALLEL                                                  ///< Parallel interface
691*53ee8cc1Swenshuai.xi } HAL_DEMOD_INTERFACE_MODE;
692*53ee8cc1Swenshuai.xi 
693*53ee8cc1Swenshuai.xi /// Define tuning paramter of DVB-T front-end
694*53ee8cc1Swenshuai.xi typedef struct
695*53ee8cc1Swenshuai.xi {
696*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_TER_BW_MODE                  eBandWidth;                         ///< Band width
697*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_TER_CONSTEL_TYPE             eConstellation;                     ///< Constellation type
698*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_TER_HIE_TYPE                 eHierarchy;                         ///< Hierarchy
699*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_TER_GI_TYPE                  eGuardInterval;                     ///< Guard interval
700*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_TER_FFT_MODE                 eFFT_Mode;                          ///< Transmission mode
701*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_CONV_CODE_RATE_TYPE          eHPCodeRate;                        ///< HP code rate
702*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_CONV_CODE_RATE_TYPE          eLPCodeRate;                        ///< LP code rate
703*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_TER_LEVEL_SEL                eLevelSel;                          ///< Select HP or LP level
704*53ee8cc1Swenshuai.xi } HAL_DEMOD_MS_TER_CARRIER_PARAM;
705*53ee8cc1Swenshuai.xi 
706*53ee8cc1Swenshuai.xi /// Define tuning paramter of DVB-C front-end
707*53ee8cc1Swenshuai.xi typedef struct
708*53ee8cc1Swenshuai.xi {
709*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_CAB_CONSTEL_TYPE       eConstellation;                     ///< Constellation type
710*53ee8cc1Swenshuai.xi     MS_U16                          	u16SymbolRate;                      ///< Symbol rate (Ksym/sec)
711*53ee8cc1Swenshuai.xi 
712*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_CAB_IQ_MODE            eIQMode;                            ///< IQ Mode
713*53ee8cc1Swenshuai.xi     MS_U8                           	u8TapAssign;                        ///< Tap assign
714*53ee8cc1Swenshuai.xi     MS_U32                          	u32FreqOffset;                      ///< Carrier frequency offset
715*53ee8cc1Swenshuai.xi     MS_U8                           	u8TuneFreqOffset;                       ///< Requeset tuner freq offset
716*53ee8cc1Swenshuai.xi } HAL_DEMOD_MS_CAB_CARRIER_PARAM;
717*53ee8cc1Swenshuai.xi 
718*53ee8cc1Swenshuai.xi /// Define tuning paramter of DVB-S front-end
719*53ee8cc1Swenshuai.xi typedef struct
720*53ee8cc1Swenshuai.xi {
721*53ee8cc1Swenshuai.xi     //HAL_DEMOD_EN_SAT_MOD_TYPE             eDemod_Type;                        ///< Mode type
722*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_SAT_CONSTEL_TYPE           eConstellation;                     ///< Constellation type
723*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_SAT_ROLL_OFF_TYPE          eRollOff;                           ///< Roll-Off factor
724*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_SAT_IQ_MODE                eIQ_Mode;                           ///< IQ mode
725*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_CONV_CODE_RATE_TYPE        eCodeRate;                          ///< Converlution code rate
726*53ee8cc1Swenshuai.xi     MS_U32                                	u32SymbolRate;
727*53ee8cc1Swenshuai.xi 
728*53ee8cc1Swenshuai.xi #if defined(UFO_PUBLIC_HEADER_212) || defined(UFO_PUBLIC_HEADER_300) || defined(UFO_DEMOD_GetParam_NEW_FLOW)
729*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_SAT_MOD_TYPE               eDemodType;
730*53ee8cc1Swenshuai.xi     float                                   eFreqoff;
731*53ee8cc1Swenshuai.xi #endif
732*53ee8cc1Swenshuai.xi     //MS_U8                                 u8Polarity;                         // 0: Horizon; > 0(default 1): Vertical;
733*53ee8cc1Swenshuai.xi     //MS_S16                                s16FreqOffset;
734*53ee8cc1Swenshuai.xi 
735*53ee8cc1Swenshuai.xi } HAL_DEMOD_MS_SAT_CARRIER_PARAM;
736*53ee8cc1Swenshuai.xi 
737*53ee8cc1Swenshuai.xi /// Define carrier paramter of digital tuner
738*53ee8cc1Swenshuai.xi /// NOTE: When this typedef is modified, the apiChScan should be rebuild.
739*53ee8cc1Swenshuai.xi typedef struct
740*53ee8cc1Swenshuai.xi {
741*53ee8cc1Swenshuai.xi     MS_U32                          	  u32Frequency;
742*53ee8cc1Swenshuai.xi     union
743*53ee8cc1Swenshuai.xi     {
744*53ee8cc1Swenshuai.xi         HAL_DEMOD_MS_TER_CARRIER_PARAM        TerParam;                           ///< Paramters for DVB-T front-end
745*53ee8cc1Swenshuai.xi         HAL_DEMOD_MS_CAB_CARRIER_PARAM        CabParam;                           ///< Paramters for DVB-C front-end
746*53ee8cc1Swenshuai.xi         HAL_DEMOD_MS_SAT_CARRIER_PARAM        SatParam;                           ///< Paramters for DVB-S front-end
747*53ee8cc1Swenshuai.xi     };
748*53ee8cc1Swenshuai.xi } HAL_DEMOD_MS_FE_CARRIER_PARAM;
749*53ee8cc1Swenshuai.xi 
750*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------
751*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------
752*53ee8cc1Swenshuai.xi #ifdef UFO_PUBLIC_HEADER_212
753*53ee8cc1Swenshuai.xi typedef struct
754*53ee8cc1Swenshuai.xi {
755*53ee8cc1Swenshuai.xi     MS_U8        cmd_code;
756*53ee8cc1Swenshuai.xi     MS_U8        param[80];
757*53ee8cc1Swenshuai.xi } S_CMDPKTREG;
758*53ee8cc1Swenshuai.xi 
759*53ee8cc1Swenshuai.xi typedef enum
760*53ee8cc1Swenshuai.xi {
761*53ee8cc1Swenshuai.xi     TS_MODUL_MODE,
762*53ee8cc1Swenshuai.xi     TS_FFX_VALUE,
763*53ee8cc1Swenshuai.xi     TS_GUARD_INTERVAL,
764*53ee8cc1Swenshuai.xi     TS_CODE_RATE,
765*53ee8cc1Swenshuai.xi 
766*53ee8cc1Swenshuai.xi     TS_PARAM_MAX_NUM
767*53ee8cc1Swenshuai.xi }E_SIGNAL_TYPE;
768*53ee8cc1Swenshuai.xi 
769*53ee8cc1Swenshuai.xi typedef enum
770*53ee8cc1Swenshuai.xi {
771*53ee8cc1Swenshuai.xi     CMD_SYSTEM_INIT = 0,
772*53ee8cc1Swenshuai.xi     CMD_DAC_CALI,
773*53ee8cc1Swenshuai.xi     CMD_DVBT_CONFIG,
774*53ee8cc1Swenshuai.xi     CMD_DVBC_CONFIG,
775*53ee8cc1Swenshuai.xi     CMD_VIF_CTRL,
776*53ee8cc1Swenshuai.xi     CMD_FSM_CTRL,
777*53ee8cc1Swenshuai.xi     CMD_INDIR_RREG,
778*53ee8cc1Swenshuai.xi     CMD_INDIR_WREG,
779*53ee8cc1Swenshuai.xi     CMD_GET_INFO,
780*53ee8cc1Swenshuai.xi     CMD_TS_CTRL,
781*53ee8cc1Swenshuai.xi     CMD_TUNED_VALUE,
782*53ee8cc1Swenshuai.xi 
783*53ee8cc1Swenshuai.xi     CMD_MAX_NUM
784*53ee8cc1Swenshuai.xi }E_CMD_CODE;
785*53ee8cc1Swenshuai.xi 
786*53ee8cc1Swenshuai.xi typedef enum
787*53ee8cc1Swenshuai.xi {
788*53ee8cc1Swenshuai.xi     TS_PARALLEL = 0,
789*53ee8cc1Swenshuai.xi     TS_SERIAL = 1,
790*53ee8cc1Swenshuai.xi 
791*53ee8cc1Swenshuai.xi     TS_MODE_MAX_NUM
792*53ee8cc1Swenshuai.xi }E_TS_MODE;
793*53ee8cc1Swenshuai.xi 
794*53ee8cc1Swenshuai.xi typedef enum
795*53ee8cc1Swenshuai.xi {
796*53ee8cc1Swenshuai.xi     E_SYS_UNKOWN = -1,
797*53ee8cc1Swenshuai.xi     E_SYS_DVBT,
798*53ee8cc1Swenshuai.xi     E_SYS_DVBC,
799*53ee8cc1Swenshuai.xi     E_SYS_ATSC,
800*53ee8cc1Swenshuai.xi     E_SYS_VIF,
801*53ee8cc1Swenshuai.xi     E_SYS_DVBS,
802*53ee8cc1Swenshuai.xi 
803*53ee8cc1Swenshuai.xi     E_SYS_NUM
804*53ee8cc1Swenshuai.xi }E_SYSTEM;
805*53ee8cc1Swenshuai.xi #endif
806*53ee8cc1Swenshuai.xi 
807*53ee8cc1Swenshuai.xi /// Define the quality report
808*53ee8cc1Swenshuai.xi typedef struct
809*53ee8cc1Swenshuai.xi {
810*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_FE_LOCK_STATUS             eLock;                              ///< Lock
811*53ee8cc1Swenshuai.xi     HAL_DEMOD_EN_BIT_ERR_RATIO              eBER;                               ///< Bit error rate
812*53ee8cc1Swenshuai.xi     float                                 	fSNR;                              	///< SNR
813*53ee8cc1Swenshuai.xi     float                                   fSignalLevel;                       ///< Signal Level=1~100
814*53ee8cc1Swenshuai.xi     MS_U16                                	u16SignalStrength;                  ///< Signal Strength[dBm],mick
815*53ee8cc1Swenshuai.xi     MS_U8                                 	u8SignalQuality;                    ///< Signal Quality,mick
816*53ee8cc1Swenshuai.xi     float                                   fPreBER;                            ///< xxE-xx,mick
817*53ee8cc1Swenshuai.xi     float                                   fPostBerTSBER;
818*53ee8cc1Swenshuai.xi     MS_U32                                	u32LockTime;                        ///< LockTime
819*53ee8cc1Swenshuai.xi     MS_U16                                	u16TSpacketError;                   ///< TS Packet Error
820*53ee8cc1Swenshuai.xi } HAL_DEMOD_MS_FE_CARRIER_STATUS;
821*53ee8cc1Swenshuai.xi 
822*53ee8cc1Swenshuai.xi typedef struct
823*53ee8cc1Swenshuai.xi {
824*53ee8cc1Swenshuai.xi         MS_BOOL                           bLNBPowerOn;                                              ///< Power On/Off
825*53ee8cc1Swenshuai.xi         MS_BOOL                           b22kOn;                                                           ///< LNB 22k On/Off
826*53ee8cc1Swenshuai.xi         MS_BOOL                           bLNBOutLow;                                                   ///< LNB 13/18V
827*53ee8cc1Swenshuai.xi 
828*53ee8cc1Swenshuai.xi } HAL_DEMOD_MS_FE_CARRIER_DISEQC;
829*53ee8cc1Swenshuai.xi 
830*53ee8cc1Swenshuai.xi /// Define the carrier information
831*53ee8cc1Swenshuai.xi typedef struct
832*53ee8cc1Swenshuai.xi {
833*53ee8cc1Swenshuai.xi     HAL_DEMOD_MS_FE_CARRIER_PARAM             Param;                              ///< Carrier parameter
834*53ee8cc1Swenshuai.xi     HAL_DEMOD_MS_FE_CARRIER_STATUS            Status;                             ///< Quality report
835*53ee8cc1Swenshuai.xi     HAL_DEMOD_MS_FE_CARRIER_DISEQC            DiSEqCp;                                                      ///< DiSEqC
836*53ee8cc1Swenshuai.xi } HAL_DEMOD_MS_FE_CARRIER_INFO;
837*53ee8cc1Swenshuai.xi 
838*53ee8cc1Swenshuai.xi typedef struct
839*53ee8cc1Swenshuai.xi {
840*53ee8cc1Swenshuai.xi     // Demodulator option
841*53ee8cc1Swenshuai.xi     MS_BOOL                         bX4CFE_en;                          ///< Carrier frequency estimation
842*53ee8cc1Swenshuai.xi     MS_BOOL                         bPPD_en;                            ///< Tap assign estimation
843*53ee8cc1Swenshuai.xi     MS_BOOL                         bIQAutoSwap_en;                     ///< IQ mode auto swap
844*53ee8cc1Swenshuai.xi     MS_BOOL                         bQAMScan_en;                        ///< QAM type auto scan
845*53ee8cc1Swenshuai.xi     MS_BOOL                         bFHO_en;                            ///< FHO
846*53ee8cc1Swenshuai.xi     MS_BOOL                         (*fptTunerSet)(MS_U32);             ///< Tuner set freq function pointer
847*53ee8cc1Swenshuai.xi } Hal_Demod_Mode;
848*53ee8cc1Swenshuai.xi 
849*53ee8cc1Swenshuai.xi  //d0: 1/4, d1: 1/3, d2: 2/5, d3: 1/2, d4: 3/5, d5: 2/3, d6: 3/4, d7: 4/5, d8: 5/6, d9: 8/9, d10: 9/10,
850*53ee8cc1Swenshuai.xi  //d11: 2/9, d12: 13/45, d13: 9/20, d14: 90/180, d15: 96/180, d16: 11/20, d17: 100/180, d18: 104/180, d19: 26/45
851*53ee8cc1Swenshuai.xi  //d20: 18/30, d21: 28/45, d22: 23/36, d23: 116/180, d24: 20/30, d25: 124/180, d26: 25/36, d27: 128/180,, d28: 13/18
852*53ee8cc1Swenshuai.xi  //d29: 132/180, d30: 22/30, d31: 135/180, d32: 140/180, d33: 7/9, d34: 154/180
853*53ee8cc1Swenshuai.xi  //d35: 11/45, d36: 4/15, d37: 14/45, d38: 7/15, d39: 8/15, d40: 26/45, d41: 32/45
854*53ee8cc1Swenshuai.xi 
855*53ee8cc1Swenshuai.xi typedef enum
856*53ee8cc1Swenshuai.xi {
857*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_1_2,                                                 ///< Code rate = 1/2
858*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_1_3,                                                 ///< Code rate = 1/3
859*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_2_3,                                                 ///< Code rate = 2/3
860*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_1_4,                                                 ///< Code rate = 1/4
861*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_3_4,                                                 ///< Code rate = 3/4
862*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_2_5,                                                 ///< Code rate = 2/5
863*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_3_5,                                                 ///< Code rate = 3/5
864*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_4_5,                                                 ///< Code rate = 4/5
865*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_5_6,                                                 ///< Code rate = 5/6
866*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_7_8,                                                 ///< Code rate = 7/8
867*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_8_9,                                                 ///< Code rate = 8/9
868*53ee8cc1Swenshuai.xi     DMD_CONV_CODE_RATE_9_10,                                                 ///< Code rate = 9/10
869*53ee8cc1Swenshuai.xi 
870*53ee8cc1Swenshuai.xi     // DVBS2X
871*53ee8cc1Swenshuai.xi 
872*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_2_9,
873*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_13_45,
874*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_9_20,
875*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_90_180,
876*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_96_180,
877*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_11_20,
878*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_100_180,
879*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_104_180,
880*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_26_45_L,
881*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_18_30,
882*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_28_45,
883*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_23_36,
884*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_116_180,
885*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_20_30,
886*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_124_180,
887*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_25_36,
888*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_128_180,
889*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_13_18,
890*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_132_180,
891*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_22_30,
892*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_135_180,
893*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_140_180,
894*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_7_9,
895*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_154_180,
896*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_11_45,
897*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_4_15,
898*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_14_45,
899*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_7_15,
900*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_8_15,
901*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_26_45_S,
902*53ee8cc1Swenshuai.xi     DMD_DVBS2_CODE_RATE_32_45
903*53ee8cc1Swenshuai.xi } DMD_DVBS_CODE_RATE_TYPE;
904*53ee8cc1Swenshuai.xi 
905*53ee8cc1Swenshuai.xi #ifdef UFO_SUPPORT_VCM
906*53ee8cc1Swenshuai.xi typedef enum
907*53ee8cc1Swenshuai.xi {
908*53ee8cc1Swenshuai.xi     VCM_Disabled = 0,
909*53ee8cc1Swenshuai.xi     VCM_MODE,
910*53ee8cc1Swenshuai.xi     VCM_Forced_Mode
911*53ee8cc1Swenshuai.xi }DMD_DVBS_VCM_OPT;
912*53ee8cc1Swenshuai.xi #endif
913*53ee8cc1Swenshuai.xi 
914*53ee8cc1Swenshuai.xi #ifdef UFO_SUPPORT_KERNEL_FLOATING
915*53ee8cc1Swenshuai.xi typedef struct
916*53ee8cc1Swenshuai.xi {
917*53ee8cc1Swenshuai.xi   MS_S32 DATA; // 2^31-1 ~ -2^31
918*53ee8cc1Swenshuai.xi   MS_S8 EXP; // -128~127
919*53ee8cc1Swenshuai.xi }MS_FLOAT_ST;
920*53ee8cc1Swenshuai.xi //output = DATA*2^(EXP)
921*53ee8cc1Swenshuai.xi 
922*53ee8cc1Swenshuai.xi typedef enum
923*53ee8cc1Swenshuai.xi {
924*53ee8cc1Swenshuai.xi   add = 0,
925*53ee8cc1Swenshuai.xi   minus,
926*53ee8cc1Swenshuai.xi   multiply,
927*53ee8cc1Swenshuai.xi   divide
928*53ee8cc1Swenshuai.xi }OP_type;
929*53ee8cc1Swenshuai.xi #endif
930*53ee8cc1Swenshuai.xi 
931*53ee8cc1Swenshuai.xi //typedef void(*P_DMD_ISR_Proc)(MS_U8 u8DMDID);
932*53ee8cc1Swenshuai.xi //---------------------------------------------------------------
933*53ee8cc1Swenshuai.xi 
934*53ee8cc1Swenshuai.xi 
935*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
936*53ee8cc1Swenshuai.xi //  Function and Variable
937*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
938*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
939*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBT_Init
940*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
941*53ee8cc1Swenshuai.xi 
942*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_Init(DMD_DVBS_InitData *pDMD_DVBS_InitData, MS_U32 u32InitDataLen);
943*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
944*53ee8cc1Swenshuai.xi /// Should be called when exit VD input source
945*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
946*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_Exit(void);
947*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
948*53ee8cc1Swenshuai.xi /// Set detailed level of DVBT driver debug message
949*53ee8cc1Swenshuai.xi /// u8DbgLevel : debug level for Parallel Flash driver\n
950*53ee8cc1Swenshuai.xi /// AVD_DBGLV_NONE,    ///< disable all the debug message\n
951*53ee8cc1Swenshuai.xi /// AVD_DBGLV_INFO,    ///< information\n
952*53ee8cc1Swenshuai.xi /// AVD_DBGLV_NOTICE,  ///< normal but significant condition\n
953*53ee8cc1Swenshuai.xi /// AVD_DBGLV_WARNING, ///< warning conditions\n
954*53ee8cc1Swenshuai.xi /// AVD_DBGLV_ERR,     ///< error conditions\n
955*53ee8cc1Swenshuai.xi /// AVD_DBGLV_CRIT,    ///< critical conditions\n
956*53ee8cc1Swenshuai.xi /// AVD_DBGLV_ALERT,   ///< action must be taken immediately\n
957*53ee8cc1Swenshuai.xi /// AVD_DBGLV_EMERG,   ///< system is unusable\n
958*53ee8cc1Swenshuai.xi /// AVD_DBGLV_DEBUG,   ///< debug-level messages\n
959*53ee8cc1Swenshuai.xi /// @return TRUE : succeed
960*53ee8cc1Swenshuai.xi /// @return FALSE : failed to set the debug level
961*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------
962*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_SetDbgLevel(DMD_DVBS_DbgLv u8DbgLevel);
963*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
964*53ee8cc1Swenshuai.xi /// Get the information of DVBT driver\n
965*53ee8cc1Swenshuai.xi /// @return the pointer to the driver information
966*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
967*53ee8cc1Swenshuai.xi extern DLL_PUBLIC const DMD_DVBS_Info* MDrv_DMD_DVBS_GetInfo(void);
968*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
969*53ee8cc1Swenshuai.xi /// Get DVBT driver version
970*53ee8cc1Swenshuai.xi /// when get ok, return the pointer to the driver version
971*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
972*53ee8cc1Swenshuai.xi 
973*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////
974*53ee8cc1Swenshuai.xi ///To get/set the DSP parameter table from demod MCU
975*53ee8cc1Swenshuai.xi //u16Addr     :the address of the demod MCU DSP parameter table
976*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////////
977*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetDSPReg(MS_U16 u16Addr, MS_U8 *pu8Data);
978*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_SetDSPReg(MS_U16 u16Addr, MS_U8 pu8Data);
979*53ee8cc1Swenshuai.xi 
980*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetLibVer(const MSIF_Version **ppVersion);
981*53ee8cc1Swenshuai.xi 
982*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
983*53ee8cc1Swenshuai.xi /// To get DVBT's register  value, only for special purpose.\n
984*53ee8cc1Swenshuai.xi /// u16Addr       : the address of DVBT's register\n
985*53ee8cc1Swenshuai.xi /// return the value of AFEC's register\n
986*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
987*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetReg(MS_U16 u16Addr, MS_U8 *pu8Data);
988*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
989*53ee8cc1Swenshuai.xi /// To set DVBT's register value, only for special purpose.\n
990*53ee8cc1Swenshuai.xi /// u16Addr       : the address of DVBT's register\n
991*53ee8cc1Swenshuai.xi /// u8Value        : the value to be set\n
992*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
993*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetFWVer(MS_U16 *ver);
994*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
995*53ee8cc1Swenshuai.xi /// Get DVBS FW version
996*53ee8cc1Swenshuai.xi /// u16Addr       : the address of DVBS's register\n
997*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
998*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_SetReg(MS_U16 u16Addr, MS_U8 u8Data);
999*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1000*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBT_SetSerialControl
1001*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1002*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_SetSerialControl(MS_BOOL bEnable);
1003*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1004*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBT_SetConfig
1005*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1006*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_SetConfig(MS_U32 u32SymbolRate, DMD_DVBS_MODULATION_TYPE eQamMode, MS_U32 u32IFFreq, MS_BOOL bSpecInv, MS_BOOL bSerialTS);
1007*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1008*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBT_SetConfig_symbol_rate_list
1009*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1010*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_SetConfig_symbol_rate_list(MS_U32 u32SymbolRate, DMD_DVBS_MODULATION_TYPE eQamMode, MS_U32 u32IFFreq, MS_BOOL bSpecInv, MS_BOOL bSerialTS, MS_U16 *pu16_symbol_rate_list,MS_U8 u8_symbol_rate_list_num);
1011*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1012*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_BlindScanConfig
1013*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1014*53ee8cc1Swenshuai.xi #ifdef UFO_DEMOD_BLINDSCAN_NEW_FLOW
1015*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_Config(MS_U32 u32SymbolRate, DMD_DVBS_MODULATION_TYPE eQamMode, MS_U32 u32IFFreq, MS_BOOL bSpecInv, MS_BOOL bSerialTS);
1016*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1017*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_BlindScanConfig_symbol_rate_list
1018*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1019*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_Config_symbol_rate_list(MS_U32 u32SymbolRate, DMD_DVBS_MODULATION_TYPE eQamMode, MS_U32 u32IFFreq, MS_BOOL bSpecInv, MS_BOOL bSerialTS, MS_U16 *pu16_symbol_rate_list,MS_U8 u8_symbol_rate_list_num);
1020*53ee8cc1Swenshuai.xi #endif
1021*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1022*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBT_SetActive
1023*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1024*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_SetActive(MS_BOOL bEnable);
1025*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1026*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBT_Get_Lock
1027*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1028*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetLock(DMD_DVBS_GETLOCK_TYPE eType, DMD_DVBS_LOCK_STATUS *eLockStatus);
1029*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1030*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetParam
1031*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1032*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1033*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetLockWithRFPower
1034*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1035*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetLockWithRFPower(DMD_DVBS_GETLOCK_TYPE eType, DMD_DVBS_LOCK_STATUS *eLockStatus, float fCurrRFPowerDbm, float fNoChannelRFPowerDbm);
1036*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1037*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetTunrSignalLevel_PWR
1038*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1039*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetTunrSignalLevel_PWR(float *fPowerLevel);
1040*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1041*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBT_GetSignalStrength
1042*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1043*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetSignalStrength(MS_U16 *u16Strength);
1044*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1045*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetSignalStrengthWithRFPower
1046*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1047*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetSignalStrengthWithRFPower(MS_U16 *u16Strength, float fRFPowerDbm);
1048*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1049*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetSignalQuality
1050*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1051*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetSignalQuality(MS_U16 *u16Quality);
1052*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1053*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetSignalQualityWithRFPower
1054*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1055*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetSignalQualityWithRFPower(MS_U16 *u16Quality, float fRFPowerDbm);
1056*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1057*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetSNR
1058*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1059*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetSNR(float *fSNR);
1060*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1061*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetPostViterbiBer
1062*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1063*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetPostViterbiBer(float *ber);
1064*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1065*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetPacketErr
1066*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1067*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetPacketErr(MS_U16 *pktErr);
1068*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1069*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBT_GetCellID
1070*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1071*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetCellID(MS_U16 *u16CellID);
1072*53ee8cc1Swenshuai.xi 
1073*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetParam(HAL_DEMOD_MS_SAT_CARRIER_PARAM *pParam);
1074*53ee8cc1Swenshuai.xi 
1075*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1076*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetAGCInfo
1077*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1078*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetAGCInfo(MS_U8 u8dbg_mode, MS_U16 *pu16Data);
1079*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1080*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_GetStatus
1081*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1082*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetStatus(DMD_DVBS_MODULATION_TYPE *pQAMMode, MS_U32 *u32SymbolRate, float *pFreqOff);
1083*53ee8cc1Swenshuai.xi 
1084*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_ActiveDmdSwitch(MS_U8 demod_no);
1085*53ee8cc1Swenshuai.xi 
1086*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_U32 MDrv_DMD_DVBS_SetPowerState(EN_POWER_MODE u16PowerState);
1087*53ee8cc1Swenshuai.xi 
1088*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_U32 MDrv_DMD_DVBS_Demod_Restart(MS_U32 u32SymbolRate, MS_U32 u32Frequency);
1089*53ee8cc1Swenshuai.xi 
1090*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_Get_FreqOffset(float *pFreqOff, MS_U8 u8BW);
1091*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1092*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_BlindScan Function
1093*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1094*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_Start(MS_U16 u16StartFreq, MS_U16 u16EndFreq);
1095*53ee8cc1Swenshuai.xi 
1096*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_NextFreq(MS_BOOL* bBlindScanEnd);
1097*53ee8cc1Swenshuai.xi 
1098*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_Cancel(void);
1099*53ee8cc1Swenshuai.xi 
1100*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_End(void);
1101*53ee8cc1Swenshuai.xi 
1102*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_GetChannel(MS_U16 u16ReadStart, MS_U16* u16TPNum, HAL_DEMOD_MS_FE_CARRIER_PARAM *pTable);
1103*53ee8cc1Swenshuai.xi 
1104*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_GetCurrentFreq(MS_U32 *u32CurrentFeq);
1105*53ee8cc1Swenshuai.xi 
1106*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_WaitCurFreqFinished(MS_U8* u8Progress,MS_U8 *u8FindNum);
1107*53ee8cc1Swenshuai.xi 
1108*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_BlindScan_GetTunerFreq_EX(MS_U16 *u16TunerCenterFreq, MS_U16 *u16TunerCutOffFreq);
1109*53ee8cc1Swenshuai.xi #define Temp_func2(a,b,...) MDrv_DMD_DVBS_BlindScan_GetTunerFreq_EX(a,b)
1110*53ee8cc1Swenshuai.xi #define Temp_func1(...) Temp_func2(__VA_ARGS__)
1111*53ee8cc1Swenshuai.xi #define MDrv_DMD_DVBS_BlindScan_GetTunerFreq(...) Temp_func1(__VA_ARGS__,NULL)
1112*53ee8cc1Swenshuai.xi 
1113*53ee8cc1Swenshuai.xi 
1114*53ee8cc1Swenshuai.xi 
1115*53ee8cc1Swenshuai.xi 
1116*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1117*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_DiSEqC Function
1118*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1119*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_Init(void);
1120*53ee8cc1Swenshuai.xi 
1121*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_SetLNBOut(MS_BOOL bLow);
1122*53ee8cc1Swenshuai.xi 
1123*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_GetLNBOut(MS_BOOL* bLNBOutLow);
1124*53ee8cc1Swenshuai.xi 
1125*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_Set22kOnOff(MS_BOOL b22kOn);
1126*53ee8cc1Swenshuai.xi 
1127*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_Get22kOnOff(MS_BOOL* b22kOn);
1128*53ee8cc1Swenshuai.xi 
1129*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_SendCmd(MS_U8* pCmd,MS_U8 u8CmdSize);
1130*53ee8cc1Swenshuai.xi 
1131*53ee8cc1Swenshuai.xi 
1132*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_ReceiveCmd(MS_U8* pCmd,MS_U8* u8CmdSize);
1133*53ee8cc1Swenshuai.xi 
1134*53ee8cc1Swenshuai.xi #ifdef UFO_DEMOD_DVBS_CUSTOMIZED_DISEQC_SEND_CMD
1135*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_Customized_DiSEqC_SendCmd(MS_U8* pCmd,MS_U8 u8CmdSize);
1136*53ee8cc1Swenshuai.xi #endif
1137*53ee8cc1Swenshuai.xi 
1138*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_SetTxToneMode(MS_BOOL bTxTone22kOff);
1139*53ee8cc1Swenshuai.xi 
1140*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_DiSEqC_SetTone(MS_BOOL bTone1);
1141*53ee8cc1Swenshuai.xi 
1142*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_UnicableAGCCheckPower(MS_BOOL pbAGCCheckPower);
1143*53ee8cc1Swenshuai.xi 
1144*53ee8cc1Swenshuai.xi 
1145*53ee8cc1Swenshuai.xi MS_BOOL MDrv_DMD_DVBS_Reg_INT_CB(fpIntCallBack fpCBReg);
1146*53ee8cc1Swenshuai.xi 
1147*53ee8cc1Swenshuai.xi 
1148*53ee8cc1Swenshuai.xi //Terry add
1149*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS2_TS_DivNum_Calculation(void);
1150*53ee8cc1Swenshuai.xi 
1151*53ee8cc1Swenshuai.xi #ifdef UFO_SUPPORT_VCM
1152*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS2_Set_IS_ID(MS_U8 u8IS_ID);
1153*53ee8cc1Swenshuai.xi 
1154*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS2_Set_Default_IS_ID(MS_U8 *u8IS_ID_table);
1155*53ee8cc1Swenshuai.xi 
1156*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS2_Get_IS_ID_INFO(MS_U8 *u8IS_ID, MS_U8 *u8IS_ID_table);
1157*53ee8cc1Swenshuai.xi 
1158*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS2_VCM_Init(DMD_DVBS_VCM_OPT u8VCM_OPT, MS_U8 u8IS_ID, MS_U32 u32DVBS2_DJB_START_ADDR);
1159*53ee8cc1Swenshuai.xi 
1160*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS2_VCM_Check(void);
1161*53ee8cc1Swenshuai.xi 
1162*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS2_VCM_Enabled(MS_U8 u8VCM_ENABLED);
1163*53ee8cc1Swenshuai.xi 
1164*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS2_VCM_Change_Mode(DMD_DVBS_VCM_OPT u8VCM_OPT);
1165*53ee8cc1Swenshuai.xi #endif
1166*53ee8cc1Swenshuai.xi 
1167*53ee8cc1Swenshuai.xi #ifdef UFO_SUPPORT_KERNEL_FLOATING
1168*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1169*53ee8cc1Swenshuai.xi /// MDrv_DMD_DVBS_Kernel function
1170*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1171*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetSNR_Kernel(MS_FLOAT_ST *fSNR);
1172*53ee8cc1Swenshuai.xi 
1173*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_GetBER_Kernel(MS_FLOAT_ST *ber);
1174*53ee8cc1Swenshuai.xi 
1175*53ee8cc1Swenshuai.xi extern DLL_PUBLIC MS_BOOL MDrv_DMD_DVBS_TS_DivNum_Calculation_Kernel(void);
1176*53ee8cc1Swenshuai.xi #endif
1177*53ee8cc1Swenshuai.xi 
1178*53ee8cc1Swenshuai.xi #ifdef __cplusplus
1179*53ee8cc1Swenshuai.xi }
1180*53ee8cc1Swenshuai.xi #endif
1181*53ee8cc1Swenshuai.xi 
1182*53ee8cc1Swenshuai.xi 
1183*53ee8cc1Swenshuai.xi #endif // _DRV_DVBS_H_
1184*53ee8cc1Swenshuai.xi 
1185