www.pudn.com > drivers.rar > peripherals.h
/***************************************************************************** Legend R&D Communication Lab +--------------------------------------------------------------------+ | PROJECT: Poloview Rev.1 $Workfile:: peripherals.c $| | $Author: Leo Liu $Revision: 0.9 $| | CREATED: 11.04.2002 $Modtime:: 06.06.02 15:50 $| +--------------------------------------------------------------------+ MODULE : Baseband & MMI driver head file PURPOSE : This Module decleras poloview rev.1 baseband & mmi driver variables. $Log:: ../driver/board/peripherals.h ---------------------------------------------------------------------------- HISTORY NOTES: 0.x means major version, 0.xx means trifle revision. a means debug verion, b means release version. -------------------------------- Ver0.91b 020606 Adding declarations of four L1 voice band adjust function for engineering mode Ver0.92b 020703 Patch potential bug of adjust melody amp's status. Patch bug of adjust melody light's status. Fix bug of the audio channel switch function. add the compile switch of rvf_trace Ver1.01a 020828 From this version on, it's for poloview2.0 only!!! Add sim cd feature to support new hw filp detect machanism, compatible with 1.0's mmi interface. In this implematation, using GPIO2 for flip status double checking. (FIX ME: in this sim cd, the interrupt will be trigged automaticly once(three times before None-Hisr) sooner after welcome animations over. So mmi have to call flip status check to make sure it will not do any fault. Esp. when close folder before welcome over and auto-swith on conditions!!!) Ver1.01b 020913 remove #include nucleus.h and Type define of T_HISR_INFOS into .c file to avoid conflict with cbuild. Ver1.02b 020917 add PVIEWx for version ctrl. Ver1.03a 020918 add self voice loop function for engineering mode. ******************************************************************************/ #ifndef __MMI_Driver_Functions_H_ #define __MMI_Driver_Functions_H_ /*=====================INCLUDES=================================*/ #include "chipset.cfg" // include chipset and board features #include "sys_types.h" #include "rvm/rvm_gen.h" #include "rvm/rvm_use_id_list.h" #if 0 #include "nucleus.h" // conflict with condat build, so move it into peripherals.c #endif //========================================================== /*=====================DEFINITIONS=================================*/ // for Drv RVF trace //#define DRV_Debug 1 // debug #define DRV_Debug 0 //release // define it to avoid potential confliction with condat's codes #if !defined(UWORD8) typedef unsigned char UWORD8; #endif #if !defined(UWORD16) typedef unsigned short UWORD16; #endif #ifndef U8 #define U8 unsigned char #endif //define ASIC CONFIG REGISTER #ifndef ASIC_CONFIG_REG #define ASIC_CONFIG_REG (0xFFFEF008) /* Asic Configuration register */ #endif // ==== Version Ctrl === #define PVIEW1 0 #define PVIEW2 0 #define PVIEW3 1 //define absolute address of calypso control register #if((CHIPSET == 7) || (CHIPSET == 8)) #define LCR_REG 0xfffe7800 #define PM_REG 0xfffe7801 #endif // macro defined to send trace --- because peripherals do not have its own swe id, temply use KPD_USE_ID // this should be removed in release version // param is uint32 #if DRV_Debug #define DRV_SEND_TRACE(text,level) rvf_send_trace(text, sizeof(text)-1, NULL_PARAM, level, KPD_USE_ID ) #define DRV_SEND_TRACE_PARAM(text,param,level) rvf_send_trace(text, sizeof(text)-1, param, level, KPD_USE_ID ) #else #define DRV_SEND_TRACE(text,level) #define DRV_SEND_TRACE_PARAM(text,param,level) #endif // define for MmiDvSetMdLt() #define permanent 0x10 // define value & macro for audio layer1 adjust #define Auto_cancel 0x01 #define Audio_all_channel 0x04 // all audio channel output #define DvAdAutoCancel(audio_channel) L1DvAdPopCancel(audio_channel,Auto_cancel) //call this one // define value for ctrl charge pump #define Pump_open 0x05 #define Pump_close 0x06 // define value for audio downlink volume control #define Audio_dl_max 0x2C // define value for mmi volume downlink control #define Audio_Vol_0dB 0x02 #define Audio_Vol_n6dB 0x06 #define Audio_Vol_n12dB 0x00 #define Audio_Vol_n18dB 0x04 #define Audio_Vol_n24dB 0x03 #define Audio_Vol_MUTE 0x05 // define value for L1 PGA downlink control #define DL_PGA_n6dB 0x0000 #define DL_PGA_n3dB 0x0003 #define DL_PGA_0dB 0x0006 #define DL_PGA_2dB 0x0008 #define DL_PGA_4dB 0x000A #define DL_PGA_6dB 0x000C // leo added 020827 for sim_cd #define Reg_Sim_Maskit 0xFFFE000E /*SIM CD interrupt mask reg*/ #define Reg_Sim_Conf2 0xFFFE0006 /*SIM CD deboucing*/ #define Mask_IT_Reg2 0xFFFFFA0A /*SIM CD IT MASK*/ /*======================VARIABLES===============================*/ // extern val declaration extern unsigned short GPIO_In_Status; // I have to use an global variable to determine which GPIO interrupt occurs present /*======================DECLARATIONS===============================*/ // these 3 ext func are used for temply test flip key. Must be remarked in formal version. extern void LcdSleepIn(void); void LcdSleepOut(void); void LcdBackLightSetting(unsigned char); extern T_RV_RET dar_reset_system(void); // these extern declarations are for abb vol ctrl extern void ABB_DlMute (BOOL); extern void ABB_UpMute (BOOL); extern void ABB_CAL_UlVolume (UWORD8); extern void ABB_SideTone(UWORD8); // Note: SYS_BOOL == SYS_UWORD8; // application sw layer driver interface declaration // for melody // for keypad backlight SYS_BOOL MmiDvEnaKpdLt(void); SYS_BOOL MmiDvDisKpdLt(void); // for tri-color LED lamp // red led (melody lamp) SYS_BOOL MmiDvIsMdLtOn(void); SYS_BOOL MmiDvEnaMdLt(void); SYS_BOOL MmiDvSetMdLt(SYS_UWORD16 BlinkFreq, SYS_UWORD16 MdLtOnTime); SYS_BOOL MmiDvDisMdLt(void); // green led SYS_BOOL MmiDvEnaChgLt(void); SYS_BOOL MmiDvDisChgLt(void); // blue led SYS_BOOL MmiDvEnaNetiLt(void); SYS_BOOL MmiDvDisNetiLt(void); // open chargepump SYS_BOOL BBDvCtrlPump(SYS_UWORD8); // flip status detect for mmi void Flip_Detect_IntHandler(void); // Audio // Hisr int handler (Flip detect) //void IO_hisr_entry(void); // MIDI IRQ extern void MIDI_Irq_IntHandler(unsigned char); // Sim_Cd void SIM_CD_Init(void); void SIM_CD_IntHandler(void); void SIM_CD_hisr_entry(void); void AI_MaskSIMCD_IT(void); void AI_UnmaskSIMCD_IT(void); SYS_UWORD8 MMIDvGetFlipStatus(void); //vib void drvVibStart(U8 ucReserve); void drvVibStop(U8 ucReserve); // Declare extern MMI call back functions extern U8 MmiCcAudioJkDet(BOOL bAudioJk_Status); extern U8 MmiCcDataJkDet(BOOL bDataJk_Status); // extern void audio_load_default(); // extern void audio_AEC_Enable(); #if 0 // baseband internal debug functions interface declaration void L1DvAdPopCancel(SYS_UWORD8,SYS_UWORD8); // function for Audio Pop Cancelation void L1DvDLinkVolCtrl(SYS_UWORD8); void L1DvTrRegStatus(void); void L1DvMemSpdAcc(void); void L1DvSwReset(void); void L1DvVbDLMute(BOOL Mute); void L1DvVbULMute(BOOL Mute); void L1DvVbULVloCtrl(SYS_WORD8); void L1DvVbSideTone(SYS_WORD8); void L1EMSelfLoopMode(SYS_BOOL); #endif //void L1DvDLPGACtrl(SYS_UWORD16); #endif