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