1 //<MStar Software> 2 //****************************************************************************** 3 // MStar Software 4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5 // All software, firmware and related documentation herein ("MStar Software") are 6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7 // law, including, but not limited to, copyright law and international treaties. 8 // Any use, modification, reproduction, retransmission, or republication of all 9 // or part of MStar Software is expressly prohibited, unless prior written 10 // permission has been granted by MStar. 11 // 12 // By accessing, browsing and/or using MStar Software, you acknowledge that you 13 // have read, understood, and agree, to be bound by below terms ("Terms") and to 14 // comply with all applicable laws and regulations: 15 // 16 // 1. MStar shall retain any and all right, ownership and interest to MStar 17 // Software and any modification/derivatives thereof. 18 // No right, ownership, or interest to MStar Software and any 19 // modification/derivatives thereof is transferred to you under Terms. 20 // 21 // 2. You understand that MStar Software might include, incorporate or be 22 // supplied together with third party`s software and the use of MStar 23 // Software may require additional licenses from third parties. 24 // Therefore, you hereby agree it is your sole responsibility to separately 25 // obtain any and all third party right and license necessary for your use of 26 // such third party`s software. 27 // 28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29 // MStar`s confidential information and you agree to keep MStar`s 30 // confidential information in strictest confidence and not disclose to any 31 // third party. 32 // 33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34 // kind. Any warranties are hereby expressly disclaimed by MStar, including 35 // without limitation, any warranties of merchantability, non-infringement of 36 // intellectual property rights, fitness for a particular purpose, error free 37 // and in conformity with any international standard. You agree to waive any 38 // claim against MStar for any loss, damage, cost or expense that you may 39 // incur related to your use of MStar Software. 40 // In no event shall MStar be liable for any direct, indirect, incidental or 41 // consequential damages, including without limitation, lost of profit or 42 // revenues, lost or damage of data, and unauthorized system use. 43 // You agree that this Section 4 shall still apply without being affected 44 // even if MStar Software has been modified by MStar in accordance with your 45 // request or instruction for your use, except otherwise agreed by both 46 // parties in writing. 47 // 48 // 5. If requested, MStar may from time to time provide technical supports or 49 // services in relation with MStar Software to you for your use of 50 // MStar Software in conjunction with your or your customer`s product 51 // ("Services"). 52 // You understand and agree that, except otherwise agreed by both parties in 53 // writing, Services are provided on an "AS IS" basis and the warranty 54 // disclaimer set forth in Section 4 above shall apply. 55 // 56 // 6. Nothing contained herein shall be construed as by implication, estoppels 57 // or otherwise: 58 // (a) conferring any license or right to use MStar name, trademark, service 59 // mark, symbol or any other identification; 60 // (b) obligating MStar or any of its affiliates to furnish any person, 61 // including without limitation, you and your customers, any assistance 62 // of any kind whatsoever, or any information; or 63 // (c) conferring any license or right under any intellectual property right. 64 // 65 // 7. These terms shall be governed by and construed in accordance with the laws 66 // of Taiwan, R.O.C., excluding its conflict of law rules. 67 // Any and all dispute arising out hereof or related hereto shall be finally 68 // settled by arbitration referred to the Chinese Arbitration Association, 69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70 // Rules of the Association by three (3) arbitrators appointed in accordance 71 // with the said Rules. 72 // The place of arbitration shall be in Taipei, Taiwan and the language shall 73 // be English. 74 // The arbitration award shall be final and binding to both parties. 75 // 76 //****************************************************************************** 77 //<MStar Software> 78 //////////////////////////////////////////////////////////////////////////////// 79 // 80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc. 81 // All rights reserved. 82 // 83 // Unless otherwise stipulated in writing, any and all information contained 84 // herein regardless in any format shall remain the sole proprietary of 85 // MStar Semiconductor Inc. and be kept in strict confidence 86 // ("MStar Confidential Information") by the recipient. 87 // Any unauthorized act including without limitation unauthorized disclosure, 88 // copying, use, reproduction, sale, distribution, modification, disassembling, 89 // reverse engineering and compiling of the contents of MStar Confidential 90 // Information is unlawful and strictly prohibited. MStar hereby reserves the 91 // rights to any and all damages, losses, costs and expenses resulting therefrom. 92 // 93 //////////////////////////////////////////////////////////////////////////////// 94 95 /////////////////////////////////////////////////////////////////////////////////////////////////// 96 /// 97 /// @file drvDMD_ATSC.h 98 /// @brief ATSC Driver Interface 99 /// @author MStar Semiconductor Inc. 100 /////////////////////////////////////////////////////////////////////////////////////////////////// 101 102 /*! \defgroup Demod Demod interface 103 104 *! \defgroup ATSC ATSC interface (drvDMD_ATSC.h) 105 * \ingroup Demod 106 107 \brief 108 109 ATSC is the demodulator of supporting 8VSB and J83B standard. 110 Receive RF signal from Tuner and transmit demodulated data to TS module. 111 112 <b>Features</b> 113 114 - Support 8VSB and J83B standard. 115 - Pass A74 SPEC. 116 - Pass the field stream. 117 118 <b> ATSC Block Diagram: </b> \n 119 \image html drvDMD_ATSC_pic01.png 120 121 <b> Operation Code Flow: </b> \n 122 -# Initialize ATSC parameters and load DEMOD FW 123 -# Enable DEMOD state machine 124 -# Monitor lock status 125 126 *! \defgroup ATSC_BASIC ATSC basic control 127 * \ingroup ATSC 128 129 *! \defgroup ATSC_INFO ATSC information 130 * \ingroup ATSC 131 132 *! \defgroup ATSC_STR ATSC STR 133 * \ingroup ATSC 134 135 *! \defgroup ATSC_ToBeRemoved ATSC API to be removed 136 * \ingroup ATSC 137 */ 138 139 #ifndef _DRV_ATSC_H_ 140 #define _DRV_ATSC_H_ 141 142 //------------------------------------------------------------------------------------------------- 143 // Driver Compiler Options 144 //------------------------------------------------------------------------------------------------- 145 146 #define DMD_ATSC_UTOPIA_EN 1 147 #define DMD_ATSC_UTOPIA2_EN 0 148 149 #define DMD_ATSC_STR_EN 1 150 #define DMD_ATSC_MULTI_THREAD_SAFE 0 151 #define DMD_ATSC_MULTI_DMD_EN 1 152 153 //------------------------------------------------------------------------------------------------- 154 // Include Files 155 //------------------------------------------------------------------------------------------------- 156 157 #include "MsTypes.h" 158 #if DMD_ATSC_UTOPIA_EN || DMD_ATSC_UTOPIA2_EN 159 #include "MsVersion.h" 160 #include "MsCommon.h" 161 #endif 162 #if DMD_ATSC_UTOPIA2_EN || DMD_ATSC_STR_EN 163 #include "utopia.h" 164 #endif 165 166 //------------------------------------------------------------------------------------------------- 167 // Driver Capability 168 //------------------------------------------------------------------------------------------------- 169 170 171 //------------------------------------------------------------------------------------------------- 172 // Macro and Define 173 //------------------------------------------------------------------------------------------------- 174 175 #ifndef DLL_PUBLIC 176 #define DLL_PUBLIC 177 #endif 178 179 #if DMD_ATSC_MULTI_DMD_EN 180 #define DMD_ATSC_MAX_DEMOD_NUM 2 181 #else 182 #define DMD_ATSC_MAX_DEMOD_NUM 1 183 #endif 184 185 #if DMD_ATSC_UTOPIA_EN || DMD_ATSC_UTOPIA2_EN 186 #define MSIF_DMD_ATSC_LIB_CODE {'D','M','D','_','A','T', 'S','C','_'} //Lib code 187 #define MSIF_DMD_ATSC_LIBVER {'0','0'} //LIB version 188 #define MSIF_DMD_ATSC_BUILDNUM {'0','0' } //Build Number 189 #define MSIF_DMD_ATSC_CHANGELIST {'0','0','0','0','0','0','0','0'} //P4 ChangeList Number 190 191 #define DMD_ATSC_VER /* Character String for DRV/API version */ \ 192 MSIF_TAG, /* 'MSIF' */ \ 193 MSIF_CLASS, /* '00' */ \ 194 MSIF_CUS, /* 0x0000 */ \ 195 MSIF_MOD, /* 0x0000 */ \ 196 MSIF_CHIP, \ 197 MSIF_CPU, \ 198 MSIF_DMD_ATSC_LIB_CODE, /* IP__ */ \ 199 MSIF_DMD_ATSC_LIBVER, /* 0.0 ~ Z.Z */ \ 200 MSIF_DMD_ATSC_BUILDNUM, /* 00 ~ 99 */ \ 201 MSIF_DMD_ATSC_CHANGELIST, /* CL# */ \ 202 MSIF_OS 203 #endif // #if DMD_ATSC_UTOPIA_EN || DMD_ATSC_UTOPIA2_EN 204 205 #ifndef BIT_ 206 #define BIT_(n) (1 << (n)) 207 #endif 208 209 #define DMD_ATSC_LOCK_VSB_PRE_LOCK BIT_(0) 210 #define DMD_ATSC_LOCK_VSB_FSYNC_LOCK BIT_(1) 211 #define DMD_ATSC_LOCK_VSB_CE_LOCK BIT_(2) 212 #define DMD_ATSC_LOCK_VSB_FEC_LOCK BIT_(3) 213 214 #define DMD_ATSC_LOCK_QAM_AGC_LOCK BIT_(8) 215 #define DMD_ATSC_LOCK_QAM_PRE_LOCK BIT_(9) 216 #define DMD_ATSC_LOCK_QAM_MAIN_LOCK BIT_(10) 217 218 //------------------------------------------------------------------------------------------------- 219 // Type and Structure 220 //------------------------------------------------------------------------------------------------- 221 222 typedef enum 223 { 224 DMD_ATSC_HAL_CMD_Exit = 0, 225 DMD_ATSC_HAL_CMD_InitClk, 226 DMD_ATSC_HAL_CMD_Download, 227 DMD_ATSC_HAL_CMD_FWVERSION, 228 DMD_ATSC_HAL_CMD_SoftReset, 229 DMD_ATSC_HAL_CMD_SetVsbMode, 230 DMD_ATSC_HAL_CMD_Set64QamMode, 231 DMD_ATSC_HAL_CMD_Set256QamMode, 232 DMD_ATSC_HAL_CMD_SetModeClean, 233 DMD_ATSC_HAL_CMD_Set_QAM_SR, 234 DMD_ATSC_HAL_CMD_Active, 235 DMD_ATSC_HAL_CMD_Check8VSB64_256QAM, 236 DMD_ATSC_HAL_CMD_AGCLock, 237 DMD_ATSC_HAL_CMD_Vsb_PreLock, 238 DMD_ATSC_HAL_CMD_Vsb_FSync_Lock, 239 DMD_ATSC_HAL_CMD_Vsb_CE_Lock, 240 DMD_ATSC_HAL_CMD_Vsb_FEC_Lock, 241 DMD_ATSC_HAL_CMD_QAM_PreLock, 242 DMD_ATSC_HAL_CMD_QAM_Main_Lock, 243 DMD_ATSC_HAL_CMD_ReadIFAGC, 244 DMD_ATSC_HAL_CMD_CheckSignalCondition, 245 DMD_ATSC_HAL_CMD_ReadSNRPercentage, 246 DMD_ATSC_HAL_CMD_ReadPKTERR, 247 DMD_ATSC_HAL_CMD_GetPreViterbiBer, 248 DMD_ATSC_HAL_CMD_GetPostViterbiBer, 249 DMD_ATSC_HAL_CMD_ReadFrequencyOffset, 250 DMD_ATSC_HAL_CMD_TS_INTERFACE_CONFIG, 251 DMD_ATSC_HAL_CMD_IIC_Bypass_Mode, 252 DMD_ATSC_HAL_CMD_SSPI_TO_GPIO, 253 DMD_ATSC_HAL_CMD_GPIO_GET_LEVEL, 254 DMD_ATSC_HAL_CMD_GPIO_SET_LEVEL, 255 DMD_ATSC_HAL_CMD_GPIO_OUT_ENABLE, 256 DMD_ATSC_HAL_CMD_GET_REG, 257 DMD_ATSC_HAL_CMD_SET_REG, 258 CMD_ATSC_HAL_CMD_GET_QAM_SNR 259 } DMD_ATSC_HAL_COMMAND; 260 261 typedef struct 262 { 263 MS_U8 u8Pin; 264 union 265 { 266 MS_BOOL bLevel; 267 MS_BOOL bIsOut; 268 }; 269 } DMD_ATSC_GPIO_PIN_DATA; 270 271 typedef struct 272 { 273 MS_U16 u16Addr; 274 MS_U8 u8Data; 275 } DMD_ATSC_REG_DATA; 276 277 typedef enum 278 { 279 DMD_ATSC_DBGLV_NONE, // disable all the debug message 280 DMD_ATSC_DBGLV_INFO, // information 281 DMD_ATSC_DBGLV_NOTICE, // normal but significant condition 282 DMD_ATSC_DBGLV_WARNING, // warning conditions 283 DMD_ATSC_DBGLV_ERR, // error conditions 284 DMD_ATSC_DBGLV_CRIT, // critical conditions 285 DMD_ATSC_DBGLV_ALERT, // action must be taken immediately 286 DMD_ATSC_DBGLV_EMERG, // system is unusable 287 DMD_ATSC_DBGLV_DEBUG // debug-level messages 288 } DMD_ATSC_DbgLv; 289 290 typedef enum 291 { 292 DMD_ATSC_DEMOD_ATSC_VSB, 293 DMD_ATSC_DEMOD_ATSC_64QAM, 294 DMD_ATSC_DEMOD_ATSC_256QAM, 295 DMD_ATSC_DEMOD_ATSC_16QAM, 296 DMD_ATSC_DEMOD_ATSC_32QAM, 297 DMD_ATSC_DEMOD_ATSC_128QAM, 298 DMD_ATSC_DEMOD_MAX, 299 DMD_ATSC_DEMOD_NULL = DMD_ATSC_DEMOD_MAX 300 } DMD_ATSC_DEMOD_TYPE; 301 302 typedef enum 303 { 304 DMD_ATSC_SIGNAL_NO = 0, /* little or no input power detected */ 305 DMD_ATSC_SIGNAL_WEAK = 1, /* some power detected. */ 306 DMD_ATSC_SIGNAL_MODERATE = 2, 307 DMD_ATSC_SIGNAL_STRONG = 4, 308 DMD_ATSC_SIGNAL_VERY_STRONG = 8 309 } DMD_ATSC_SIGNAL_CONDITION; 310 311 typedef enum 312 { 313 DMD_ATSC_GETLOCK, 314 DMD_ATSC_GETLOCK_VSB_AGCLOCK, 315 DMD_ATSC_GETLOCK_VSB_PRELOCK, // pilot lock 316 DMD_ATSC_GETLOCK_VSB_FSYNCLOCK, 317 DMD_ATSC_GETLOCK_VSB_CELOCK, 318 DMD_ATSC_GETLOCK_VSB_FECLOCK, 319 DMD_ATSC_GETLOCK_QAM_AGCLOCK, 320 DMD_ATSC_GETLOCK_QAM_PRELOCK, // TR lock 321 DMD_ATSC_GETLOCK_QAM_MAINLOCK 322 } DMD_ATSC_GETLOCK_TYPE; 323 324 typedef enum 325 { 326 DMD_ATSC_LOCK, 327 DMD_ATSC_CHECKING, 328 DMD_ATSC_CHECKEND, 329 DMD_ATSC_UNLOCK, 330 DMD_ATSC_NULL 331 } DMD_ATSC_LOCK_STATUS; 332 333 typedef enum 334 { 335 I_PAD, 336 Q_PAD, 337 } DMD_ATSC_SEL_IQPAD; 338 339 typedef enum 340 { 341 QAM_64, 342 QAM_256, 343 } DMD_ATSC_QAM_TYPE; 344 345 typedef struct 346 { 347 MS_U8 QAM_type; 348 MS_U16 symbol_rate; 349 }DMD_J83B_Info; 350 351 typedef enum _eDMD_SEL 352 { 353 DMD0 = 0, 354 DMD1, 355 HK, 356 }eDMD_SEL; 357 358 /// For demod init 359 typedef struct 360 { 361 // Timeout time 362 MS_U16 u16VSBAGCLockCheckTime;//50 363 MS_U16 u16VSBPreLockCheckTime;//300 364 MS_U16 u16VSBFSyncLockCheckTime;//1200 365 MS_U16 u16VSBFECLockCheckTime;//5000 366 367 MS_U16 u16QAMAGCLockCheckTime;//50 368 MS_U16 u16QAMPreLockCheckTime;//1000 369 MS_U16 u16QAMMainLockCheckTime;//3000 370 371 // register init 372 MS_U8 *u8DMD_ATSC_DSPRegInitExt; // TODO use system variable type 373 MS_U8 u8DMD_ATSC_DSPRegInitSize; 374 MS_U8 *u8DMD_ATSC_InitExt; // TODO use system variable type 375 376 //By Tuners: 377 MS_U16 u16IF_KHZ;//By Tuners 378 MS_BOOL bIQSwap;//0 379 MS_U16 u16AGC_REFERENCE;//0 380 MS_BOOL bTunerGainInvert;//0 381 MS_BOOL bIsQPad;//0 382 383 //By IC: 384 MS_U8 u8IS_DUAL;//0 385 MS_BOOL bIsExtDemod;//0 386 387 //By TS (Only for MCP or ext demod): 388 MS_U8 u1TsConfigByte_SerialMode : 1; 389 MS_U8 u1TsConfigByte_DataSwap : 1; 390 MS_U8 u1TsConfigByte_ClockInv : 1; 391 MS_U8 u5TsConfigByte_DivNum : 5; 392 393 //By SYS I2C (Only for MCP or ext demod): 394 MS_U8 u8I2CSlaveAddr; 395 MS_U8 u8I2CSlaveBus; 396 MS_BOOL (*I2C_WriteBytes)(MS_U16 u16BusNumSlaveID, MS_U8 u8addrcount, MS_U8* pu8addr, MS_U16 u16size, MS_U8* pu8data); 397 MS_BOOL (*I2C_ReadBytes)(MS_U16 u16BusNumSlaveID, MS_U8 u8AddrNum, MS_U8* paddr, MS_U16 u16size, MS_U8* pu8data); 398 399 //By SYS MSPI (Only for MCP or ext demod): 400 MS_BOOL bIsUseSspiLoadCode; 401 MS_BOOL bIsSspiUseTsPin; 402 403 #if !DMD_ATSC_UTOPIA_EN && !DMD_ATSC_UTOPIA2_EN 404 MS_U32 (*GetSystemTimeMS)(void); // Get sys time (unit: ms) 405 void (*DelayMS)(MS_U32 ms); // Delay time (unit: ms) 406 MS_BOOL (*CreateMutex)(MS_BOOL enable); // Create&Delete mutex 407 void (*LockDMD)(MS_BOOL enable); // Enter&Leave mutex 408 #endif 409 } DMD_ATSC_InitData; 410 411 typedef struct 412 { 413 MS_BOOL bInit; 414 MS_BOOL bDownloaded; 415 416 #if DMD_ATSC_STR_EN 417 MS_BOOL bIsDTV; 418 EN_POWER_MODE eLastState; 419 #endif 420 DMD_ATSC_DEMOD_TYPE eLastType; 421 MS_U16 u16SymRate; 422 423 MS_BOOL (*HAL_DMD_ATSC_IOCTL_CMD)(DMD_ATSC_HAL_COMMAND eCmd, void *pPara); 424 } DMD_ATSC_PriData; 425 426 typedef struct 427 { 428 MS_U8 u8Version; 429 MS_U32 u32ATSCScanTimeStart; 430 MS_U32 u32ATSCFECLockTime; 431 MS_U32 u32ATSCLockStatus; 432 } DMD_ATSC_Info; 433 434 typedef struct 435 { 436 DMD_ATSC_InitData sDMD_ATSC_InitData; 437 DMD_ATSC_PriData sDMD_ATSC_PriData; 438 DMD_ATSC_Info sDMD_ATSC_Info; 439 } DMD_ATSC_ResData; 440 441 //------------------------------------------------------------------------------------------------- 442 // Function and Variable 443 //------------------------------------------------------------------------------------------------- 444 445 #ifdef __cplusplus 446 extern "C" 447 { 448 #endif 449 450 //------------------------------------------------------------------------------------------------- 451 /// Set detailed level of ATSC driver debug message 452 /// @ingroup ATSC_BASIC 453 /// @param u8DbgLevel \b IN: debug level for Parallel Flash driver 454 /// @return TRUE : succeed 455 /// @return FALSE : fail 456 //------------------------------------------------------------------------------------------------- 457 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SetDbgLevel(DMD_ATSC_DbgLv u8DbgLevel); 458 //------------------------------------------------------------------------------------------------- 459 /// Get the information of ATSC driver 460 /// @ingroup ATSC_INFO 461 /// @return : the pointer to the driver information 462 //------------------------------------------------------------------------------------------------- 463 // DLL_PUBLIC extern DMD_ATSC_Info* MDrv_DMD_ATSC_GetInfo(void); 464 //------------------------------------------------------------------------------------------------- 465 /// Get ATSC driver version 466 /// @ingroup ATSC_INFO 467 /// @param ppVersion \b OUT: the pointer to the driver version 468 /// @return TRUE : succeed 469 /// @return FALSE : fail 470 //------------------------------------------------------------------------------------------------- 471 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GetLibVer(const MSIF_Version **ppVersion); 472 //------------------------------------------------------------------------------------------------- 473 /// Initialize HAL interface 474 /// @ingroup ATSC_BASIC 475 /// @return TRUE : succeed 476 /// @return FALSE : fail 477 //------------------------------------------------------------------------------------------------- 478 DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_Initial_Hal_Interface(void); 479 480 //////////////////////////////////////////////////////////////////////////////// 481 /// SINGLE DEMOD API /// 482 //////////////////////////////////////////////////////////////////////////////// 483 484 //------------------------------------------------------------------------------------------------- 485 /// Initialize ATSC Demod 486 /// @ingroup ATSC_BASIC 487 /// @param pDMD_ATSC_InitData \b IN: ATSC initial parameters 488 /// @param u32InitDataLen \b IN: size of ATSC initial parameters 489 /// @return TRUE : succeed 490 /// @return FALSE : fail 491 //------------------------------------------------------------------------------------------------- 492 DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_Init(DMD_ATSC_InitData *pDMD_ATSC_InitData, MS_U32 u32InitDataLen); 493 //------------------------------------------------------------------------------------------------- 494 /// Exit ATSC DTV mode 495 /// @ingroup ATSC_STR 496 /// @return TRUE : succeed 497 /// @return FALSE : fail 498 //------------------------------------------------------------------------------------------------- 499 DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_Exit(void); 500 //------------------------------------------------------------------------------------------------- 501 /// Set Demod mode and restart Demod 502 /// @ingroup ATSC_BASIC 503 /// @param eType \b IN: Select ATSC modulation type 504 /// @param bEnable \b IN: Enable SetConfig function 505 /// @return TRUE : succeed 506 /// @return FALSE : fail 507 //------------------------------------------------------------------------------------------------- 508 DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SetConfig(DMD_ATSC_DEMOD_TYPE eType, MS_BOOL bEnable); 509 //------------------------------------------------------------------------------------------------- 510 /// Reset FW state machine 511 /// @ingroup ATSC_ToBeRemoved 512 /// @return TRUE : succeed 513 /// @return FALSE : fail 514 //------------------------------------------------------------------------------------------------- 515 DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SetReset(void); 516 //------------------------------------------------------------------------------------------------- 517 /// Select Demod number 518 /// @ingroup ATSC_ToBeRemoved 519 /// @param eDMD_NUM \b IN: Select Demod number 520 /// @return TRUE : succeed 521 /// @return FALSE : fail 522 //------------------------------------------------------------------------------------------------- 523 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SEL_DMD(eDMD_SEL eDMD_NUM); 524 //------------------------------------------------------------------------------------------------- 525 /// Load Demod FW 526 /// @ingroup ATSC_ToBeRemoved 527 /// @param DMD_NUM \b IN: Select Demod number 528 /// @return TRUE : succeed 529 /// @return FALSE : fail 530 //------------------------------------------------------------------------------------------------- 531 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_LoadFW(eDMD_SEL DMD_NUM); 532 //------------------------------------------------------------------------------------------------- 533 /// Enable VSB mode 534 /// @ingroup ATSC_BASIC 535 /// @return TRUE : succeed 536 /// @return FALSE : fail 537 //------------------------------------------------------------------------------------------------- 538 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SetVsbMode(void); 539 //------------------------------------------------------------------------------------------------- 540 /// Enable QAM256 mode 541 /// @ingroup ATSC_BASIC 542 /// @return TRUE : succeed 543 /// @return FALSE : fail 544 //------------------------------------------------------------------------------------------------- 545 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_Set256QamMode(void); 546 //------------------------------------------------------------------------------------------------- 547 /// Enable QAM64 mode 548 /// @ingroup ATSC_BASIC 549 /// @return TRUE : succeed 550 /// @return FALSE : fail 551 //------------------------------------------------------------------------------------------------- 552 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_Set64QamMode(void); 553 //------------------------------------------------------------------------------------------------- 554 /// Set QAM Type and symbol rate 555 /// @ingroup ATSC_ToBeRemoved 556 /// @param eType \b IN: QAM type 557 /// @param symbol_rate \b IN: symbol rate 558 /// @return TRUE : succeed 559 /// @return FALSE : fail 560 //------------------------------------------------------------------------------------------------- 561 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_Set_QAM_SR(DMD_ATSC_DEMOD_TYPE eType, MS_U16 symbol_rate); 562 //------------------------------------------------------------------------------------------------- 563 /// Active Demod 564 /// @ingroup ATSC_ToBeRemoved 565 /// @param bEnable \b IN: Active Demod if TRUE 566 /// @return TRUE : succeed 567 /// @return FALSE : fail 568 //------------------------------------------------------------------------------------------------- 569 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SetActive(MS_BOOL bEnable); 570 //------------------------------------------------------------------------------------------------- 571 /// Support ATSC STR function 572 /// @ingroup ATSC_STR 573 /// @param u16PowerState \b IN: Set STR status 574 /// @return : STR status 575 //------------------------------------------------------------------------------------------------- 576 #if DMD_ATSC_STR_EN 577 DLL_PUBLIC extern MS_U32 MDrv_DMD_ATSC_SetPowerState(EN_POWER_MODE u16PowerState); 578 #endif 579 //------------------------------------------------------------------------------------------------- 580 /// Get lock status 581 /// @ingroup ATSC_INFO 582 /// @param eType \b IN: select lock type 583 /// @return : lock status 584 //------------------------------------------------------------------------------------------------- 585 DLL_PUBLIC extern DMD_ATSC_LOCK_STATUS MDrv_DMD_ATSC_GetLock(DMD_ATSC_GETLOCK_TYPE eType); 586 //------------------------------------------------------------------------------------------------- 587 /// Get modulation mode 588 /// @ingroup ATSC_INFO 589 /// @return : modulation mode 590 //------------------------------------------------------------------------------------------------- 591 DLL_PUBLIC extern DMD_ATSC_DEMOD_TYPE MDrv_DMD_ATSC_GetModulationMode(void); 592 //------------------------------------------------------------------------------------------------- 593 /// Get Demod signal strength (IF AGC gain) 594 /// @ingroup ATSC_INFO 595 /// @param u16Strength \b OUT: the pointer to signal strength 596 /// @return TRUE : succeed 597 /// @return FALSE : fail 598 //------------------------------------------------------------------------------------------------- 599 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GetSignalStrength(MS_U16 *u16Strength); 600 //------------------------------------------------------------------------------------------------- 601 /// Get Demod signal quality (NO SIGNAL, WEAK, MODERATE, STRONG and VERY_STRONG) 602 /// @ingroup ATSC_INFO 603 /// @return : signal quality 604 //------------------------------------------------------------------------------------------------- 605 DLL_PUBLIC extern DMD_ATSC_SIGNAL_CONDITION MDrv_DMD_ATSC_GetSignalQuality(void); 606 //------------------------------------------------------------------------------------------------- 607 /// Get SNR percentage 608 /// @ingroup ATSC_INFO 609 /// @return : SNR percentage 610 //------------------------------------------------------------------------------------------------- 611 // DLL_PUBLIC extern MS_U8 MDrv_DMD_ATSC_GetSNRPercentage(void); 612 //------------------------------------------------------------------------------------------------- 613 /// Get QAM SNR 614 /// @ingroup ATSC_INFO 615 /// @param f_snr \b OUT: the pointer to SNR 616 /// @return TRUE : succeed 617 /// @return FALSE : fail 618 //------------------------------------------------------------------------------------------------- 619 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GET_QAM_SNR(float *f_snr); 620 //------------------------------------------------------------------------------------------------- 621 /// Get Demod packet error number 622 /// @ingroup ATSC_INFO 623 /// @param u16PacketErr \b OUT: the pointer to packet error number 624 /// @return TRUE : succeed 625 /// @return FALSE : fail 626 //------------------------------------------------------------------------------------------------- 627 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_Read_uCPKT_ERR(MS_U16 *u16PacketErr); 628 //------------------------------------------------------------------------------------------------- 629 /// Get Demod pre Viterbi number 630 /// @ingroup ATSC_ToBeRemoved 631 /// @param ber \b OUT: the pointer to pre Viterbi BER 632 /// @return TRUE : succeed 633 /// @return FALSE : fail 634 //------------------------------------------------------------------------------------------------- 635 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GetPreViterbiBer(float *ber); 636 //------------------------------------------------------------------------------------------------- 637 /// Get Demod post Viterbi number 638 /// @ingroup ATSC_INFO 639 /// @param ber \b OUT: the pointer to post Viterbi BER 640 /// @return TRUE : succeed 641 /// @return FALSE : fail 642 //------------------------------------------------------------------------------------------------- 643 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GetPostViterbiBer(float *ber); 644 //------------------------------------------------------------------------------------------------- 645 /// Get Demod frequency offset 646 /// @ingroup ATSC_INFO 647 /// @param cfo \b OUT: the pointer to CFO 648 /// @return TRUE : succeed 649 /// @return FALSE : fail 650 //------------------------------------------------------------------------------------------------- 651 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_ReadFrequencyOffset(MS_S16 *cfo); 652 //------------------------------------------------------------------------------------------------- 653 /// Set TS output mode 654 /// @ingroup ATSC_BASIC 655 /// @param u8TsConfigData \b IN: TS configuration 656 /// @return TRUE : succeed 657 /// @return FALSE : fail 658 //------------------------------------------------------------------------------------------------- 659 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SetSerialControl(MS_U8 u8TsConfigData); 660 //------------------------------------------------------------------------------------------------- 661 /// Enable I2C bypass mode 662 /// @ingroup ATSC_BASIC 663 /// @param bEnable \b IN: Enable bypass mode 664 /// @return TRUE : succeed 665 /// @return FALSE : fail 666 //------------------------------------------------------------------------------------------------- 667 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_IIC_BYPASS_MODE(MS_BOOL bEnable); 668 //------------------------------------------------------------------------------------------------- 669 /// Set SSPI pin as GPIO function 670 /// @ingroup ATSC_BASIC 671 /// @param bEnable \b IN: Switch to GPIO if TRUE, otherwise SSPI 672 /// @return TRUE : succeed 673 /// @return FALSE : fail 674 //------------------------------------------------------------------------------------------------- 675 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SWITCH_SSPI_GPIO(MS_BOOL bEnable); 676 //------------------------------------------------------------------------------------------------- 677 /// Get GPIO level 678 /// @ingroup ATSC_BASIC 679 /// @param u8Pin \b IN: Select pin number 680 /// @param bLevel \b OUT: the pointer to GPIO level 681 /// @return TRUE : succeed 682 /// @return FALSE : fail 683 //------------------------------------------------------------------------------------------------- 684 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GPIO_GET_LEVEL(MS_U8 u8Pin, MS_BOOL *bLevel); 685 //------------------------------------------------------------------------------------------------- 686 /// Set GPIO level 687 /// @ingroup ATSC_BASIC 688 /// @param u8Pin \b IN: Select pin number 689 /// @param bLevel \b IN: Set GPIO level 690 /// @return TRUE : succeed 691 /// @return FALSE : fail 692 //------------------------------------------------------------------------------------------------- 693 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GPIO_SET_LEVEL(MS_U8 u8Pin, MS_BOOL bLevel); 694 //------------------------------------------------------------------------------------------------- 695 /// Set GPIO as output or input 696 /// @ingroup ATSC_BASIC 697 /// @param u8Pin \b IN: Select pin number 698 /// @param bEnableOut \b IN: output if TRUE, otherwise input 699 /// @return TRUE : succeed 700 /// @return FALSE : fail 701 //------------------------------------------------------------------------------------------------- 702 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GPIO_OUT_ENABLE(MS_U8 u8Pin, MS_BOOL bEnableOut); 703 704 //------------------------------------------------------------------------------------------------- 705 /// Get Demod register value 706 /// @ingroup ATSC_BASIC 707 /// @param u16Addr \b IN: register address 708 /// @param pu8Data \b OUT: the pointer to register data 709 /// @return TRUE : succeed 710 /// @return FALSE : fail 711 //------------------------------------------------------------------------------------------------- 712 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_GetReg(MS_U16 u16Addr, MS_U8 *pu8Data); 713 //------------------------------------------------------------------------------------------------- 714 /// Set Demod register value 715 /// @ingroup ATSC_BASIC 716 /// @param u16Addr \b IN: register address 717 /// @param u8Data \b IN: register data 718 /// @return TRUE : succeed 719 /// @return FALSE : fail 720 //------------------------------------------------------------------------------------------------- 721 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_SetReg(MS_U16 u16Addr, MS_U8 u8Data); 722 723 //////////////////////////////////////////////////////////////////////////////// 724 /// MULTI DEMOD API /// 725 //////////////////////////////////////////////////////////////////////////////// 726 727 //------------------------------------------------------------------------------------------------- 728 /// Initialize multiple ATSC Demod 729 /// @ingroup ATSC_BASIC 730 /// @param id \b IN: Select Demod number 731 /// @param pDMD_ATSC_InitData \b IN: ATSC initial parameters 732 /// @param u32InitDataLen \b IN: size of ATSC initial parameters 733 /// @return TRUE : succeed 734 /// @return FALSE : fail 735 //------------------------------------------------------------------------------------------------- 736 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_Init(MS_U8 id, DMD_ATSC_InitData *pDMD_ATSC_InitData, MS_U32 u32InitDataLen); 737 //------------------------------------------------------------------------------------------------- 738 /// Support multiple Demod of exiting ATSC DTV mode 739 /// @ingroup ATSC_STR 740 /// @param id \b IN: Select Demod number 741 /// @return TRUE : succeed 742 /// @return FALSE : fail 743 //------------------------------------------------------------------------------------------------- 744 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_Exit(MS_U8 id); 745 //------------------------------------------------------------------------------------------------- 746 /// Support multiple Demod of setting and restarting Demod 747 /// @ingroup ATSC_BASIC 748 /// @param id \b IN: Select Demod number 749 /// @param eType \b IN: Select ATSC modulation type 750 /// @param bEnable \b IN: Enable SetConfig function 751 /// @return TRUE : succeed 752 /// @return FALSE : fail 753 //------------------------------------------------------------------------------------------------- 754 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_SetConfig(MS_U8 id, DMD_ATSC_DEMOD_TYPE eType, MS_BOOL bEnable); 755 //------------------------------------------------------------------------------------------------- 756 /// Reset FW state machine 757 /// @ingroup ATSC_ToBeRemoved 758 /// @return TRUE : succeed 759 /// @return FALSE : fail 760 //------------------------------------------------------------------------------------------------- 761 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_SetReset(void); 762 //------------------------------------------------------------------------------------------------- 763 /// Support multiple Demod of setting QAM Type and symbol rate 764 /// @ingroup ATSC_ToBeRemoved 765 /// @param id \b IN: Select Demod number 766 /// @param eType \b IN: QAM type 767 /// @param symbol_rate \b IN: symbol rate 768 /// @return TRUE : succeed 769 /// @return FALSE : fail 770 //------------------------------------------------------------------------------------------------- 771 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_Set_QAM_SR(MS_U8 id, DMD_ATSC_DEMOD_TYPE eType, MS_U16 symbol_rate); 772 //------------------------------------------------------------------------------------------------- 773 /// Support multiple Demod of active Demod 774 /// @ingroup ATSC_ToBeRemoved 775 /// @param id \b IN: Select Demod number 776 /// @param bEnable \b IN: Active Demod if TRUE 777 /// @return TRUE : succeed 778 /// @return FALSE : fail 779 //------------------------------------------------------------------------------------------------- 780 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_SetActive(MS_U8 id, MS_BOOL bEnable); 781 //------------------------------------------------------------------------------------------------- 782 /// Support multiple Demod of ATSC STR function 783 /// @ingroup ATSC_STR 784 /// @param id \b IN: Select Demod number 785 /// @param u16PowerState \b IN: Set STR status 786 /// @return : STR status 787 //------------------------------------------------------------------------------------------------- 788 #if DMD_ATSC_STR_EN 789 // DLL_PUBLIC extern MS_U32 MDrv_DMD_ATSC_MD_SetPowerState(MS_U8 id, EN_POWER_MODE u16PowerState); 790 #endif 791 //------------------------------------------------------------------------------------------------- 792 /// Support multiple Demod of getting lock status 793 /// @ingroup ATSC_INFO 794 /// @param id \b IN: Select Demod number 795 /// @param eType \b IN: select lock type 796 /// @return : lock status 797 //------------------------------------------------------------------------------------------------- 798 // DLL_PUBLIC extern DMD_ATSC_LOCK_STATUS MDrv_DMD_ATSC_MD_GetLock(MS_U8 id, DMD_ATSC_GETLOCK_TYPE eType); 799 //------------------------------------------------------------------------------------------------- 800 /// Support multiple Demod of getting modulation mode 801 /// @ingroup ATSC_INFO 802 /// @param id \b IN: Select Demod number 803 /// @return : modulation mode 804 //------------------------------------------------------------------------------------------------- 805 // DLL_PUBLIC extern DMD_ATSC_DEMOD_TYPE MDrv_DMD_ATSC_MD_GetModulationMode(MS_U8 id); 806 //------------------------------------------------------------------------------------------------- 807 /// Support multiple Demod of getting Demod signal strength (IF AGC gain) 808 /// @ingroup ATSC_INFO 809 /// @param id \b IN: Select Demod number 810 /// @param u16Strength \b OUT: the pointer to signal strength 811 /// @return TRUE : succeed 812 /// @return FALSE : fail 813 //------------------------------------------------------------------------------------------------- 814 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_GetSignalStrength(MS_U8 id, MS_U16 *u16Strength); 815 //------------------------------------------------------------------------------------------------- 816 /// Support multiple Demod of getting Demod signal quality (NO SIGNAL, WEAK, MODERATE, STRONG and VERY_STRONG) 817 /// @ingroup ATSC_INFO 818 /// @param id \b IN: Select Demod number 819 /// @return : signal quality 820 //------------------------------------------------------------------------------------------------- 821 // DLL_PUBLIC extern DMD_ATSC_SIGNAL_CONDITION MDrv_DMD_ATSC_MD_GetSignalQuality(MS_U8 id); 822 //------------------------------------------------------------------------------------------------- 823 /// Support multiple Demod of getting SNR percentage 824 /// @ingroup ATSC_INFO 825 /// @param id \b IN: Select Demod number 826 /// @return : SNR percentage 827 //------------------------------------------------------------------------------------------------- 828 // DLL_PUBLIC extern MS_U8 MDrv_DMD_ATSC_MD_GetSNRPercentage(MS_U8 id); 829 //------------------------------------------------------------------------------------------------- 830 /// Support multiple Demod of getting QAM SNR 831 /// @ingroup ATSC_INFO 832 /// @param id \b IN: Select Demod number 833 /// @param f_snr \b OUT: the pointer to SNR 834 /// @return TRUE : succeed 835 /// @return FALSE : fail 836 //------------------------------------------------------------------------------------------------- 837 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_GET_QAM_SNR(MS_U8 id, float *f_snr); 838 //------------------------------------------------------------------------------------------------- 839 /// Support multiple Demod of getting Demod packet error number 840 /// @ingroup ATSC_INFO 841 /// @param id \b IN: Select Demod number 842 /// @param u16PacketErr \b OUT: the pointer to packet error number 843 /// @return TRUE : succeed 844 /// @return FALSE : fail 845 //------------------------------------------------------------------------------------------------- 846 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_Read_uCPKT_ERR(MS_U8 id, MS_U16 *u16PacketErr); 847 //------------------------------------------------------------------------------------------------- 848 /// Support multiple Demod of getting Demod pre Viterbi number 849 /// @ingroup ATSC_ToBeRemoved 850 /// @param id \b IN: Select Demod number 851 /// @param ber \b OUT: the pointer to BER 852 /// @return TRUE : succeed 853 /// @return FALSE : fail 854 //------------------------------------------------------------------------------------------------- 855 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_GetPreViterbiBer(MS_U8 id, float *ber); 856 //------------------------------------------------------------------------------------------------- 857 /// Support multiple Demod of getting Demod post Viterbi number 858 /// @ingroup ATSC_INFO 859 /// @param id \b IN: Select Demod number 860 /// @param ber \b OUT: the pointer to BER 861 /// @return TRUE : succeed 862 /// @return FALSE : fail 863 //------------------------------------------------------------------------------------------------- 864 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_GetPostViterbiBer(MS_U8 id, float *ber); 865 //------------------------------------------------------------------------------------------------- 866 /// Support multiple Demod of getting Demod fequency offset 867 /// @ingroup ATSC_INFO 868 /// @param id \b IN: Select Demod number 869 /// @param cfo \b OUT: the pointer to CFO 870 /// @return TRUE : succeed 871 /// @return FALSE : fail 872 //------------------------------------------------------------------------------------------------- 873 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_ReadFrequencyOffset(MS_U8 id, MS_S16 *cfo); 874 //------------------------------------------------------------------------------------------------- 875 /// Support multiple Demod of setting TS output mode 876 /// @ingroup ATSC_BASIC 877 /// @param id \b IN: Select Demod number 878 /// @param u8TsConfigData \b IN: TS configuration 879 /// @return TRUE : succeed 880 /// @return FALSE : fail 881 //------------------------------------------------------------------------------------------------- 882 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_SetSerialControl(MS_U8 id, MS_U8 u8TsConfigData); 883 //------------------------------------------------------------------------------------------------- 884 /// Support multiple Demod of enabling I2C bypass mode 885 /// @ingroup ATSC_BASIC 886 /// @param id \b IN: Select Demod number 887 /// @param bEnable \b IN: Enable bypass mode 888 /// @return TRUE : succeed 889 /// @return FALSE : fail 890 //------------------------------------------------------------------------------------------------- 891 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_IIC_BYPASS_MODE(MS_U8 id, MS_BOOL bEnable); 892 //------------------------------------------------------------------------------------------------- 893 /// Support multiple Demod of setting SSPI pin as GPIO function 894 /// @ingroup ATSC_BASIC 895 /// @param id \b IN: Select Demod number 896 /// @param bEnable \b IN: Switch to GPIO if TRUE, otherwise SSPI 897 /// @return TRUE : succeed 898 /// @return FALSE : fail 899 //------------------------------------------------------------------------------------------------- 900 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_SWITCH_SSPI_GPIO(MS_U8 id, MS_BOOL bEnable); 901 //------------------------------------------------------------------------------------------------- 902 /// Support multiple Demod of getting GPIO level 903 /// @ingroup ATSC_BASIC 904 /// @param id \b IN: Select Demod number 905 /// @param u8Pin \b IN: Select pin number 906 /// @param bLevel \b OUT: the pointer to GPIO level 907 /// @return TRUE : succeed 908 /// @return FALSE : fail 909 //------------------------------------------------------------------------------------------------- 910 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_GPIO_GET_LEVEL(MS_U8 id, MS_U8 u8Pin, MS_BOOL *bLevel); 911 //------------------------------------------------------------------------------------------------- 912 /// Support multiple Demod of setting GPIO level 913 /// @ingroup ATSC_BASIC 914 /// @param id \b IN: Select Demod number 915 /// @param u8Pin \b IN: Select pin number 916 /// @param bLevel \b IN: Set GPIO level 917 /// @return TRUE : succeed 918 /// @return FALSE : fail 919 //------------------------------------------------------------------------------------------------- 920 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_GPIO_SET_LEVEL(MS_U8 id, MS_U8 u8Pin, MS_BOOL bLevel); 921 //------------------------------------------------------------------------------------------------- 922 /// Support multiple Demod of setting GPIO as output or input 923 /// @ingroup ATSC_BASIC 924 /// @param id \b IN: Select Demod number 925 /// @param u8Pin \b IN: Select pin number 926 /// @param bEnableOut \b IN: output if TRUE, otherwise input 927 /// @return TRUE : succeed 928 /// @return FALSE : fail 929 //------------------------------------------------------------------------------------------------- 930 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_GPIO_OUT_ENABLE(MS_U8 id, MS_U8 u8Pin, MS_BOOL bEnableOut); 931 //------------------------------------------------------------------------------------------------- 932 /// Support multiple Demod of getting Demod register value 933 /// @ingroup ATSC_BASIC 934 /// @param id \b IN: Select Demod number 935 /// @param u16Addr \b IN: register address 936 /// @param pu8Data \b OUT: the pointer to get register data 937 /// @return TRUE : succeed 938 /// @return FALSE : fail 939 //------------------------------------------------------------------------------------------------- 940 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_GetReg(MS_U8 id, MS_U16 u16Addr, MS_U8 *pu8Data); 941 //------------------------------------------------------------------------------------------------- 942 /// Support multiple Demod of setting Demod register value 943 /// @ingroup ATSC_BASIC 944 /// @param id \b IN: Select Demod number 945 /// @param u16Addr \b IN: register address 946 /// @param u8Data \b IN: register data 947 /// @return TRUE : succeed 948 /// @return FALSE : fail 949 //------------------------------------------------------------------------------------------------- 950 // DLL_PUBLIC extern MS_BOOL MDrv_DMD_ATSC_MD_SetReg(MS_U8 id, MS_U16 u16Addr, MS_U8 u8Data); 951 952 #ifdef __cplusplus 953 } 954 #endif 955 956 #endif // _DRV_ATSC_H_ 957 958