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