#ifndef _DRV_SIF_INTERFACE_H #define _DRV_SIF_INTERFACE_H #include typedef enum { TVFE_AUDIO_SIF_AVAIL_ANALOG_MONO = 0x00000001, TVFE_AUDIO_SIF_AVAIL_NICAM_MONO = 0x00000002, TVFE_AUDIO_SIF_AVAIL_STEREO = 0x00000004, TVFE_AUDIO_SIF_AVAIL_DUAL = 0x00000008, TVFE_AUDIO_SIF_AVAIL_SAP = 0x00000010, TVFE_AUDIO_SIF_AVAIL_ERROR = 0x40000000, } TVFE_AudioSIFAvailableMode_e; typedef enum { TVFE_AUDIO_SIF_MODE_ANALOG_MONO = 0, TVFE_AUDIO_SIF_MODE_NICAM_MONO, TVFE_AUDIO_SIF_MODE_STEREO, TVFE_AUDIO_SIF_MODE_DUAL_I, TVFE_AUDIO_SIF_MODE_DUAL_II, TVFE_AUDIO_SIF_MODE_DUAL_I_II, TVFE_AUDIO_SIF_MODE_SAP, TVFE_AUDIO_SIF_MODE_ERR, } TVFE_AudioSIFMode_e; //****************************************************** // For Setting ASD threshold and force system, // it is the interface for sif debug tool //****************************************************** typedef enum { ASDADJ_SET_THHL = 0, ASDADJ_DISPOLLFM, ASDADJ_ENPOLLFM, ENHWASD_DISPOLLFM, AAOS_SET_THHL, ENSWASD, GETSIF_GAIN, }SIFSETREG_ASD_FLAG; typedef enum { BTSC = 0, PAL, KOREA, SECAML, }SIF_ASD_FORCE_SYS; //****************************************************** // For Adjust SIF pre-scale gain by 5 type // it is the interface for factory //****************************************************** typedef enum { BTSC_Mono_Mode=0, BTSC_SAP_Mode, Nicam_Mono_Mode, Nicam_Digital_Mode, A2_FM_Mode, }SIF_GAIN_TYPE_SYS; typedef struct _SET_SIF_GAIN { UINT8 flag; INT32 ADJUST_GAIN;//max:0db~min-20db 1step=0.5db }SET_SIF_GAIN,*pSET_SIF_GAIN; typedef struct _TVFE_AudioSIF_TH { //reserved for SW threshold control UINT8 MN1ThH; UINT8 MN1ThL; UINT8 MN2ThH; UINT8 MN2ThL; UINT8 PN2ThH; UINT8 PN2ThL; UINT8 FMSMTh; UINT8 FMSMTl; UINT8 FMSNTh; UINT8 FMSNTl; UINT8 NIERTh; UINT8 NIERTl; UINT8 PILMTh; UINT8 PILMTl; UINT8 ASMTh; UINT8 ASQTh; UINT8 AANTh; UINT8 ANNTh; UINT8 SQlTh; UINT8 SNsTh; UINT8 ASFTh; UINT8 AVOLCo; UINT8 PSCLCh; UINT8 PSCRCh; UINT8 AVCThH; UINT8 AVCThL; UINT8 NIAMPLe; UINT8 NIPLe; UINT8 A2PLe; UINT8 IAVCLo; UINT8 IAVCRo; } TVFE_AudioSIF_TH,*pTVFE_AudioSIF_TH; //ava@20130513 add - SIF AP tool for set sif regsiter (add define) typedef struct _SIF_RegInfo { UINT8 flag; UINT8 System; UINT8 CARRY2; UINT8 ASD; UINT8 AAOS; UINT8 NTSC_SAP_A2_DUAL; UINT8 EU_MODE; UINT8 A2_SYS; UINT8 Reg00; UINT8 Reg01; UINT8 Reg0C; UINT8 Reg0D; UINT8 Reg0E; UINT8 Reg0F; UINT8 Reg10; UINT8 Reg11; UINT8 Reg14; UINT8 Reg15; UINT8 Reg16; UINT8 Reg17; UINT8 Reg1A; UINT8 Reg1B; UINT8 Reg1C; UINT8 Reg1E; UINT8 Reg1F; UINT8 Reg20; UINT8 Reg21; UINT8 Reg2A; UINT8 Reg30; UINT8 Reg31; UINT8 Reg32; UINT8 Reg33; UINT8 Reg4A; UINT8 Reg4B; UINT8 Reg4C; UINT8 Reg4D; UINT8 Reg4E; UINT8 Reg4F; UINT8 Reg50; UINT8 Reg51; UINT8 Reg52; UINT8 Reg53; UINT8 Reg54; UINT8 Reg55; UINT8 Reg56; UINT8 Reg57; UINT8 Reg58; UINT8 Reg59; UINT8 Reg5A; UINT8 Reg5B; UINT8 Reg5E; UINT8 Reg81; UINT8 Reg82; UINT8 Reg83; UINT8 Reg84; UINT8 Reg85; UINT8 Reg86; UINT8 Reg87; UINT8 Reg8A; UINT8 Reg8B; UINT8 Reg92; UINT8 Reg92_SAP; UINT8 Reg98; UINT8 Reg99; UINT8 Reg9A; }SIF_RegInfo,*pSIF_RegInfo; typedef enum { SIF_Disable = 0, SIF_Enable }ATVPOWSTS_t; //****************************************************** // Return value (detected system) of "RX_TVSYSTEM" // it is the define of HW ATV system type //****************************************************** typedef enum //TV System Select (BTSC Enable) 0xbe160000 [3:0] { TSMOD_A2BG = 0x0, //SIF RETURN SYSTEM = A2_BG TSMOD_NICAMBG = 0x1, //SIF RETURN SYSTEM = NICAMBG TSMOD_NICAML = 0x2, //SIF RETURN SYSTEM = NICAML TSMOD_NICAMI = 0x3, //SIF RETURN SYSTEM = NICAMI TSMOD_A2DK1 = 0x4, //SIF RETURN SYSTEM = A2DK1 TSMOD_A2DK2 = 0x5, //SIF RETURN SYSTEM = A2DK2 TSMOD_A2DK3 = 0x6, //SIF RETURN SYSTEM = A2DK3 TSMOD_NICAMDK = 0x7, //SIF RETURN SYSTEM = NICAMDK TSMOD_A2MN = 0x8, //SIF RETURN SYSTEM = A2MN TSMOD_EIAJ = 0x9, //SIF RETURN SYSTEM = EIAJ TSMOD_BTSC = 0xa, //SIF RETURN SYSTEM = BTSCL //system type > 0xa will be invalid system type!! TSMOD_FMRUS = 0xb, //invalid system type TSMOD_FMREU1 = 0xc, //invalid system type TSMOD_FMREU2 = 0xd, //invalid system type TSMOD_FMREU3 = 0xe, //invalid system type TSMOD_FMREU4 = 0xf, //unknow system type, HW default value or system detect fail TSMOD_AutoMode = 0x10, //Current no use should be remove late TSMOD_NICAML1=0x11, //L' frequency <100Mhz TSMOD_UNKNOWN = 0xff, //ERROR, UNKNOWN SYSTEM }TVFE_AudioSIFStandard_t; //****************************************************** // ERROR CODE OF SIF DRIVERR //****************************************************** typedef enum { SIF_OK = 0x0, SIF_ERR_POWER_OFF = 0x80, SIF_ERR_UNKNOWN = 0xff, }TVFE_SIF_STATUS_e; typedef struct _TVSYS_CONFIG { UINT8 SupportSys; UINT8 DetectSys; }TVSYS_CONFIG,*pTVSYS_CONFIG; typedef enum { Audio_Do_SystemDetect = 0, Audio_ForceSystem_DK, Audio_ForceSystem_BG, Audio_ForceSystem_I, Audio_ForceSystem_L, Audio_ForceSystem_BTSC, Audio_SifDecoder_MUTE, Audio_SifDecoder_UNMUTE, Audio_SifDecoder_DumpReg, Audio_SifState_RFPlugin,//jovi@20110920 represent the RF Line plug in Audio_SifState_RFPlugOut, // APP flow notice ATV cable plug out , sif driver will mute and disable polling RX_SIFREG_GET, RX_SIFREG_SET, RX_ADJUST_SIF_GAIN, RX_SIFAAOSSTSFLAG_SET, RX_SIF_POWER_SET, RX_SIF_MTSMODE_SET, RX_SIF_THRESHOLD_SET, RX_SIF_AGC_RESET, RX_SIF_SHOW_REG, }SIFCTL_Operation; typedef enum { SSF_ALL_DISABLE = 0x0, // Disable ASD TIMER and AAOS (AutoMute) SSF_ASD_DIS_AAOS_EN = 0x1, // Disable ASD TIMER and ENABLE AAOS (AutoMute) SSF_ALL_ENABLE = 0x2, // ENABLE ASD TIMER and AAOS (AutoMute) SSF_ASD_EN_AAOS_DIS = 0x3, // ENABLE ASD TIMER and Disable AAOS (AutoMute) SSF_MAX_FLAG, }SIFAAOSASD_STSFLAG; //20090506 Shangru add for sifap typedef struct _SIF_CONTROL { UINT32 flag; union{ UINT32 value; UINT8 AAOS_ASDFLAG;//SIFAAOSASD_STSFLAG UINT8 SIFPOWERStatus;//ATVPOWSTS_t TVFE_AudioSIFMode_e SetMTSMod; pTVFE_AudioSIF_TH pSetSifTH; pSET_SIF_GAIN pSifGan; // set sif gain pSIF_RegInfo pSifReg; //set/read sif register }; }SIF_CONTROL, *pSIF_CONTROL; typedef struct _TVFE_AudioFrontEndStatus_t { TVFE_AudioSIFStandard_t eSySStandard; //sif system TVFE_AudioSIFAvailableMode_e eAvaiMode; //MTS OSD mdoe TVFE_AudioSIFMode_e eCurrentMode; //Current mode } TVFE_AudioFrontEndStatus_t,*pTVFE_AudioFrontEndStatus_t; #endif