/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2001
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *   dcl.h
 *
 * Project:
 * --------
 *   Maui
 *
 * Description:
 * ------------
 *   Header file of DCL (Driver Common Layer).
 *
 * Author:
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/

#ifndef __DCL_H__
#define __DCL_H__


#if !defined(GEN_FOR_PC) && !defined(NVRAM_AUTO_GEN)
#ifdef __CATEGORY_MODEM__
//#error drv_features.h include by modem detection
#endif 
#endif //!defined(GEN_FOR_PC) && !defined(NVRAM_AUTO_GEN)




/*  For solve build error after defined __CATEGORY_MODEM__ */
/*
#ifdef __CATEGORY_MODEM__  // doesn't need to include these module
//#define NONE_MODEM_BMT 
//#define NONE_MODEM_RTC 
#define NONE_MODEM_I2C
#define NONE_MODEM_AUX
//#define NONE_MODEM_KBDH 
//#define NONE_MODEM_KBD 
#define NONE_MODEM_PWM
#define NONE_MODEM_ALERTER
#define NONE_MODEM_TS
#define NONE_MODEM_SD
#define NONE_MODEM_USBD
#define NONE_MODEM_OTG
#define NONE_MODEM_IRDA
//#define NONE_MODEM_PW 
#define NONE_MODEM_PXS
#endif
*/

//#define NONE_MODEM_IDC

//ZTE73
//#ifdef __MODEM_COMPONENT__  // doesn't need to include these module in modem ip
//#define NONE_MODEM_BMT 				//	l4misc
//#define NONE_MODEM_RTC 				// 	l4misc
//#define NONE_MODEM_KBDH 			//	l4_classb
//#define NONE_MODEM_KBD 				//	l4_classb
//#define NONE_MODEM_PW  				//	l4_classb
//#endif

//NAMI76
//#ifdef __MODEM_PRODUCT__ // doesn't need to include these module in modem product
//#define NONE_MODEM_BMT  	// l4misc
//#define NONE_MODEM_RTC  	// l4misc
//#define NONE_MODEM_KBDH  	// l4misc l4_calssb
//#define NONE_MODEM_KBD 		// l4misc l4_classb
//#define NONE_MODEM_PW 		// l4misc peripheral l4_classb
//#endif



typedef char              DCL_CHAR;
typedef signed char       DCL_INT8;
typedef signed short      DCL_INT16;
typedef signed long       DCL_INT32;

typedef unsigned char      DCL_UCHAR;
typedef unsigned char      DCL_UINT8;
typedef unsigned short     DCL_UINT16;
typedef unsigned long      DCL_UINT32;

#if !defined(GEN_FOR_PC) && defined(_MSC_VER)
   typedef signed __int64    DCL_INT64;
typedef unsigned __int64   DCL_UINT64;
#else
   typedef unsigned long long   DCL_UINT64;
   typedef signed long long     DCL_INT64;
#endif

typedef double             DCL_DOUBLE;
typedef int		DCL_INT;

//typedef int DCL_BOOL;
typedef enum
{
   DCL_FALSE = 0,
   DCL_TRUE
}DCL_BOOLEAN;

#define DCL_BOOL  DCL_BOOLEAN

#define	DCL_DEFINITION_STRUCT

#ifndef NONE_MODEM_GPT
#include "dcl_gpt.h"
#endif
#ifndef NONE_MODEM_GPIO
#include "dcl_gpio.h"
#endif
#ifndef NONE_MODEM_UART
#include "dcl_uart.h"
#endif
#ifndef NONE_MODEM_WDT
#include "dcl_wdt.h"
#endif
#ifndef NONE_MODEM_ADC
#include "dcl_adc.h"
#endif
#ifndef NONE_MODEM_BMT
#include "dcl_bmt.h"
#endif
#ifndef NONE_MODEM_PFC
#include "dcl_pfc.h"
#endif
#ifndef NONE_MODEM_RTC
#include "dcl_rtc.h"
#endif
#ifndef NONE_MODEM_I2C
#include "dcl_i2c.h"
#endif
#ifndef NONE_MODEM_AUX
#include "dcl_aux.h"
#endif
#if !defined(NONE_MODEM_PWM) && !defined(NONE_MODEM_ALERTER)
#include "dcl_pwm.h"
#endif
#ifndef NONE_MODEM_KBDH
#include "DclH_kbd.h"
#endif
#ifndef NONE_MODEM_KBD
#include "DclS_kbd.h"
#endif
#ifndef NONE_MODEM_STS
#include "dcl_sts.h"
#endif
#ifndef NONE_MODEM_MSDC
#include "dcl_msdc.h"
#endif
#ifndef NONE_MODEM_USB
#include "dcl_usb_drv.h"
#endif
#ifndef NONE_MODEM_USBD
#include "dcl_usb_hcd.h"
#endif
#ifndef NONE_MODEM_OTG
#include "dcl_otg_drv.h"
#endif
#ifndef NONE_MODEM_IRDA
#include "dcl_irda.h"
#endif
#ifndef NONE_MODEM_SIM
#include "dcl_sim.h"
#endif
#ifndef NONE_MODEM_PMU
#include "dcl_pmu.h"
#endif
#ifndef NONE_MODEM_PW
#include "dcl_pw.h"
#endif
#ifndef NONE_MODEM_CHR_USB_DET
#include "dcl_chr_det.h"
#endif
#ifndef NONE_MODEM_SPMI
#include "dcl_spmi.h"
#endif
#ifndef NONE_MODEM_PXS
#include "dcl_pxs.h"
#endif
#ifndef NONE_MODEM_SIM_GPIO
#include "dcl_sim_gpio.h"
#endif
#ifndef NONE_MODEM_F32K_CLK
#include "dcl_f32k_clk.h"
#endif
#ifndef NONE_MODEM_IDC
#include "dcl_idc.h"
#endif
#ifndef NONE_MTAD
#include "dcl_mtad.h"
#endif


/*******************************************************************************
 * DCL_STATUS 
 *******************************************************************************/
#if defined(STATUS_OK)
#undef STATUS_OK
#endif

#if defined(STATUS_FAIL)
#undef STATUS_FAIL  
#endif  

typedef DCL_INT32 DCL_STATUS;
typedef enum
{
   STATUS_OK = 0,
   STATUS_FAIL = -1,
   STATUS_INVALID_CMD = -2,
   STATUS_UNSUPPORTED = -3,
   STATUS_NOT_OPENED = -4,
   STATUS_INVALID_EVENT = -5,
   STATUS_INVALID_DCL_HANDLE = -6,
   STATUS_INVALID_CTRL_DATA = -7,
   STATUS_INVALID_CONFIGURATION = -8,
   STATUS_INVALID_ARGUMENT = -9,
   STATUS_ERROR_TIMEOUT = -10,
   STATUS_ERROR_CRCERROR = -11,
   STATUS_ERROR_READONLY = -12,
   STATUS_ERROR_WRONG_STATE = -13,
   STATUS_INVALID_DEVICE = -14,
   STATUS_ALREADY_OPENED = -15,
   STATUS_SET_VFIFO_FAIL = -16,
   STATUS_INVALID_OPERATION = -17,
   STATUS_DEVICE_NOT_EXIST = -18,

   //*/ I2C DCL added /*//
   STATUS_DEVICE_NOT_SUPPORT_DMA = -19,
   STATUS_DEVICE_IS_BUSY = -20,
   STATUS_ACKERR = -21, 
   STATUS_HS_NACKERR = -22,

   STATUS_BUFFER_EMPTY = 1
} DCL_STATUS_T;

/*******************************************************************************
 * DCL_DEV
 *******************************************************************************/
typedef DCL_UINT16 DCL_DEV;
typedef enum
{
#ifndef NONE_MODEM_UART	
   DCL_UART_GROUP_START = 0,
   DCL_UART_DEV // Marco defined in dcl_uart.h
#endif
#ifndef NONE_MODEM_GPIO   
   DCL_GPIO_GROUP_START = 0x100,
   DCL_GPIO,
   DCL_GPO,
   DCL_GPIO_CLK,
#endif   
#ifndef NONE_MODEM_GPT   
   DCL_GPT_GROUP_START = 0x200,
   DCL_GPT_CB,
   DCL_GPT_CB2,
   DCL_GPT_BusyWait,
   DCL_GPT_FreeRUN3,
   DCL_GPT_FreeRUN4,
   DCL_GPT_DEBUG,
   DCL_XGPT,
   DCL_GPT_CB_MS, /* dongming add for 1ms GPT */
   DCL_LITEGPT_CB_ETMR, /* way add for ETMR */
   DCL_GPT_CB_LOGGING, /* way add for LOGGING 1ms GPT */
   DCL_GPT_C2K_OS, /* way add for C2K 1us OneShot timer */
   DCL_GPT_C2K_AR, /* way add for C2K 1us Auto Repeat timer */
   DCL_GPT_DSP, /* way add for DSP 1us OneShot timer */
   DCL_GPT_DSCC_0, /* Alva add for DSCC 1us OneShot timer */
   DCL_GPT_DSCC_1, /* Alva add for DSCC 1us OneShot timer */
   DCL_GPT_DPCOPRO,
#endif   
#ifndef NONE_MODEM_PWM  
   DCL_PWM_GROUP_START = 0x300,
   DCL_PWM1,
   DCL_PWM2,
   DCL_PWM3,
   DCL_PWM4,
   DCL_PWM5,
   DCL_PWM6,
#endif   
   DCL_PWM_GROUP_END = 0x400,
   DCL_REST_GROUP_START = DCL_PWM_GROUP_END,
#ifndef NONE_MODEM_BMT   
   DCL_BMT_GROUP_START = 0x500,    
   DCL_BMT,
#endif
#ifndef NONE_MODEM_PFC  
   DCL_PFC_GROUP_START = 0x600,  
   DCL_PFC,
#endif     
#ifndef NONE_MODEM_RTC 
   DCL_RTC_GROUP_START = 0x700,    
   DCL_RTC,
#endif     
#ifndef NONE_MODEM_ADC 
   DCL_ADC_GROUP_START = 0x800,      
   DCL_ADC,
#endif    
#ifndef NONE_MODEM_PMU
   DCL_PMU_GROUP_START = 0x900,      
   DCL_PMU,
#endif    
#ifndef NONE_MODEM_PW 
   DCL_PW_GROUP_START = 0xA00,    
   DCL_PW,
#endif    
#ifndef NONE_MODEM_CHR_USB_DET
   DCL_CHR_USB_DET_GROUP_START = 0xB00,   
   DCL_CHR_USB_DET,
#endif    
#ifndef NONE_MODEM_ALERTER   
   DCL_ALERTER_GROUP_START = 0xC00,
   DCL_ALERTER,
#endif 
#ifndef NONE_MODEM_KBD 
   DCL_KBD_GROUP_START = 0xD00,  
   DCL_KBD,
#endif    
#ifndef NONE_MODEM_TS 
   DCL_TS_GROUP_START = 0xE00,     
   DCL_TS,
#endif    
#ifndef NONE_MODEM_I2C  
   DCL_I2C_GROUP_START = 0xF00,  
   DCL_I2C,
#endif
/* Moly have no ACCDET*/    
#if 0
#ifndef NONE_MODEM_AUX  
/* under construction !*/
/* under construction !*/
#endif 
#endif
#ifndef NONE_MODEM_WDT 
   DCL_WDT_GROUP_START = 0x1100,  
   DCL_WDT,
#endif   
#ifndef NONE_MODEM_IRDA
   DCL_IRDA_GROUP_START = 0x1200,  
   DCL_IRDA,
#endif 
#ifndef NONE_MODEM_USB
   DCL_USB_GROUP_START = 0x1300,   
   DCL_USB,
#endif    
#ifndef NONE_MODEM_SIM 
   DCL_SIM_GROUP_START = 0x1400,   
   DCL_SIM,
#endif     
#ifndef NONE_MODEM_SD
   DCL_SD_GROUP_START = 0x1500,   
   DCL_SD,
#endif
#ifndef NONE_MODEM_MS 
   DCL_MS_GROUP_START = 0x1600,   
   DCL_MS,
#endif    
#ifndef NONE_MODEM_SDIO 
   DCL_SDIO_GROUP_START = 0x1700,   
   DCL_SDIO,
#endif    
#ifndef NONE_MODEM_ONEW 
   DCL_ONEW_GROUP_START = 0x1800,   
   DCL_ONEW, //1-wire
#endif    
#ifndef NONE_MODEM_HDQ
   DCL_HDQ_GROUP_START = 0x1900,    
   DCL_HDQ,
#endif    
#ifndef NONE_MODEM_PXS
   DCL_PXS_GROUP_START = 0x1A00,   
   DCL_PXS,
#endif 
#ifndef NONE_MODEM_SIM_GPIO  
   DCL_SIM_GPIO_GROUP_START = 0x1B00, 
   DCL_SIM_GPIO,
#endif    
#ifndef NONE_MODEM_SIM_GPI
   DCL_SIM_GPI_GROUP_START = 0x1C00,    
   DCL_SIM_GPI,
#endif  
#ifndef NONE_MODEM_F32K_CLK
   DCL_F32K_CLK_GROUP_START = 0x1D00,
   DCL_F32K_CLK,
#endif  
#ifndef NONE_MODEM_IDC
   DCL_IDC_GROUP_START = 0x1E00,  
   DCL_IDC,
#endif     
#ifndef NONE_MTAD
   DCL_MTAD_GROUP_START = 0x1F00,  
   DCL_MTAD,
#endif     
#ifndef NONE_MODEM_SPMI
   DCL_SPMI_GROUP_START = 0x2000,      
   DCL_SPMI
#endif    

} DCL_DEV_T;

/*******************************************************************************
 * DCL_FLAGS
 *******************************************************************************/
typedef DCL_UINT32 DCL_FLAGS;
typedef enum
{
   FLAGS_NONE = 0,
#ifndef NONE_MODEM_PMU
   /* Below is the command for PMU */
   PMU_FLAGS_START = 0x100,
   PMU_FLAGS //Please see dcl_pmu.h
#endif
   FLAGS_END
} DCL_FLAGS_T;


/*******************************************************************************
 * DCL_OPTIONS
 *******************************************************************************/
typedef DCL_UINT32 DCL_OPTIONS;
typedef enum
{
   OPTIONS_NONE = 0,
#ifndef NONE_MODEM_GPT   
   GPT_OPTIONS_START = OPTIONS_NONE,
   GPT_OPTIONS //Please see dcl_gpt.h
#endif  
#ifndef NONE_MODEM_GPIO   
   GPIO_OPTIONS_START = 0x100,
   GPIO_OPTIONS //Please see dcl_gpio.h
#endif  
#ifndef NONE_MODEM_ADC   
   ADC_OPTIONS_START = 0x200,
   ADC_OPTIONS //Please see dcl_adc.h
#endif  
#ifndef NONE_MODEM_WDT   
   WDT_OPTIONS_START = 0x300,
   WDT_OPTIONS //Please see dcl_wdt.h
#endif  
#ifndef NONE_MODEM_BMT       
   BMT_OPTIONS_START = 0x400,
   BMT_OPTIONS // Please see dcl_bmt.h   
#endif   
#ifndef NONE_MODEM_PFC
   PFC_OPTIONS_START = 0x500,
   PFC_OPTIONS // Please see dcl_pfc.h   
#endif  
#ifndef NONE_MODEM_RTC   
   RTC_OPTIONS_START = 0x600,
   RTC_OPTIONS // Please see dcl_rtc.h
#endif  
#ifndef NONE_MODEM_I2C  
   I2C_OPTIONS_START = 0x700,
   I2C_OPTIONS //Please see dcl_i2c.h
#endif  
#if 0
#ifndef NONE_MODEM_AUX
/* under construction !*/
/* under construction !*/
#endif  
#endif
#ifndef NONE_MODEM_TS
   TS_OPTIONS_START = 0x900,
   TS_OPTIONS//Please see dcl_ts.h
#endif
#ifndef NONE_MODEM_USB   
   USB_DRV_OPTIONS_START = 0xA00,
   USB_DRV_OPTIONS//Please see dcl_usb_drv.h
#endif  
#ifndef NONE_MODEM_USBD  
   USB_HCD_OPTIONS_START = 0xB00,
   USB_HCD_OPTIONS//Please see dcl_usb_hcd.h
#endif  
#ifndef NONE_MODEM_OTG
   OTG_DRV_OPTIONS_START = 0xC00,
   OTG_DRV_OPTIONS//Please see dcl_otg_drv.h
#endif  
#ifndef NONE_MODEM_IRDA
   IRDA_OPTIONS_START = 0xD00,
   IRDA_OPTIONS//Please see dcl_irda.h
#endif   
#ifndef NONE_MODEM_PMU
   PMU_OPTIONS_START = 0xE00,
   PMU_OPTIONS // Please see dcl_pmu.h
#endif  
#ifndef NONE_MODEM_PW
   PW_OPTIONS_START = 0xF00,
   PW_OPTIONS // Please see dcl_pw.h
#endif  
#ifndef NONE_MODEM_CHR_USB_DET
   CHR_DET_OPTIONS_START = 0x1000,
   CHR_DET_OPTIONS // Please see dcl_chr_usb_det.h
#endif     
#ifndef NONE_MODEM_SPMI
   SPMI_OPTIONS_START = 0x1100,
   SPMI_OPTIONS // Please see dcl_spmi.h
#endif  
#ifndef NONE_MODEM_PXS
   PXS_OPTIONS_START = 0x2000,
   PXS_OPTIONS // Please see dcl_pxs.h
#endif   
#ifndef NONE_MODEM_F32K_CLK
   F32K_CLK_OPTIONS_START = 0x4000,
   F32K_CLK_OPTIONS // Please see dcl_f32k_clk.h
#endif  
#ifndef NONE_MODEM_IDC
   IDC_OPTIONS_START = 0x5000,
   IDC_OPTIONS // Please see dcl_idc.h
#endif  
   OPTIONS_MAX
} DCL_OPTIONS_T;

/*******************************************************************************
 * DCL_HANDLE
 *******************************************************************************/
typedef DCL_INT32 DCL_HANDLE;
#define DCL_HANDLE_NONE    (0)
#define DCL_HANDLE_INVALID    (-1)
#define DCL_HANDLE_OCCUPIED    (-2)

/*******************************************************************************
 * DCL_BUFF
 *******************************************************************************/
typedef DCL_UINT8  DCL_BUFF;
typedef DCL_UINT32  DCL_BUFF_LEN;

/*******************************************************************************
 * DCL_CONFIGURE_T
 *******************************************************************************/
typedef union
{
#ifndef NONE_MODEM_PWM
   PWM_CONFIGS//Please see dcl_PWM.h
#endif  
#ifndef NONE_MODEM_ADC 
   // For ADC, please see dcl_adc.h
   ADC_CONFIGS
#endif
#ifndef NONE_MODEM_BMT    
   // For BMT, please see dcl_bmt.h
   BMT_CONFIGS   
#endif  
#ifndef NONE_MODEM_PFC 
   // For PFC, please see dcl_pfc.h
   PFC_CONFIGS   
#endif
#ifndef NONE_MODEM_RTC
   // For RTC, please see dcl_rtc.h
   RTC_CONFIGS
#endif
#ifndef NONE_MODEM_WDT    
   // For WDT, please see dcl_wdt.h
   WDT_CONFIGS
#endif
#ifndef NONE_MODEM_I2C   
   // For I2C, please see dcl_i2c.h
   I2C_CONFIGS
#endif
#if 0
#ifndef NONE_MODEM_AUX      
/* under construction !*/
/* under construction !*/
#endif   
#endif
#ifndef NONE_MODEM_USB
   // For USB_DRV, please see dcl_usb_drv.h
   USB_DRV_CONFIGS
#endif
#ifndef NONE_MODEM_USBD
   // For USB_HCD, please see dcl_usb_hcd.h
   USB_HCD_CONFIGS
#endif
#ifndef NONE_MODEM_OTG   
   // For OTG_DRV, please see dcl_otg_drv.h
   OTG_DRV_CONFIGS
#endif
#ifndef NONE_MODEM_IRDA
   // For IRDA, please see dcl_irda.h
   IRDA_CONFIGS
#endif   
#ifndef NONE_MODEM_PMU
   // For PMU, please see dcl_pmu.h
   PMU_CONFIGS
#endif
#ifndef NONE_MODEM_PW
   // For PW, please see dcl_pw.h
   PW_CONFIGS   
#endif
#ifndef NONE_MODEM_CHR_USB_DET
   // For CHR&USB detection , please see dcl_chr_usb_det.h
   CHR_DET_CONFIGS
#endif
#ifndef NONE_MODEM_SPMI
   // For SPMI, please see dcl_spmi.h
   SPMI_CONFIGS
#endif
#ifndef NONE_MODEM_SIM
   // For SIM, please see dcl_sim.h
   SIM_CONFIGS
#endif  
#ifndef NONE_MODEM_TS
   //for TS, please see dcl_ts.h
   TS_CONFIGS
#endif
#ifndef NONE_MODEM_PXS
   // For PXS, please see dcl_pxs.h
   PXS_CONFIGS
#endif
#ifndef NONE_MODEM_F32K_CLK
   // For F32K_CLK, please see dcl_f32k_clk.h
   F32K_CLK_CONFIGS
#endif  
#ifndef NONE_MODEM_IDC
   // For IDC, please see dcl_idc.h
   IDC_CONFIGS   
#endif
} DCL_CONFIGURE_T;


/*******************************************************************************
 * DCL_EVENT
 *******************************************************************************/
typedef DCL_UINT32  DCL_EVENT;
typedef enum
{
   EVENT_NULL = 0,
#ifndef NONE_MODEM_GPT
   // For HGPT, please see dcl_gpt.h
   GPT_EVENTS_START = EVENT_NULL,
   GPT_EVENTS
#endif  
#ifndef NONE_MODEM_GPIO
   //for GPIO, please see dcl_gpio.h
   GPIO_EVENTS_START = 0x100,
   GPIO_EVENTS
#endif  
#ifndef NONE_MODEM_BMT     
   // For BMT, please see dcl_bmt.h
   BMT_EVENTS_START = 0x200,
   BMT_EVENTS
#endif   
#ifndef NONE_MODEM_PFC
   // For PFC, please see dcl_pfc.h
   PFC_EVENTS_START = 0x300,
   PFC_EVENTS
#endif  
#ifndef NONE_MODEM_RTC
   // For RTC, please see dcl_rtc.h
   RTC_EVENTS_START = 0x400,
   RTC_EVENTS
#endif  
#ifndef NONE_MODEM_WDT
   // For WDT, please see dcl_wdt.h
   WDT_EVENTS_START = 0x500,
   WDT_EVENTS
#endif  
#ifndef NONE_MODEM_ADC
   // For ADC, please see dcl_adc.h
   ADC_EVENTS_START = 0x600,
   ADC_EVENTS
#endif  
#ifndef NONE_MODEM_I2C  
   // For I2C, please see dcl_i2c.h
   I2C_EVENTS_START = 0x700,
   I2C_EVENTS
#endif  
#if 0
#ifndef NONE_MODEM_AUX
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif    
#endif
#ifndef NONE_MODEM_KBDH
   //For Keypad, Please see dcl_kbd.h
   KBDH_EVENTS_START = 0x900,
   KBDH_EVENTS
#endif  
#ifndef NONE_MODEM_TS       
   //For TS, Please see dcl_ts.h
   TS_EVENTS_START = 0xA00,
   TS_EVENTS
#endif   
#ifndef NONE_MODEM_USB
   //For USB_DRV, please see dcl_usb_drv.h
   USB_DRV_EVENTS_START = 0xB00,
   USB_DRV_EVENTS
#endif  
#ifndef NONE_MODEM_USBD  
   //For USB_HCD, please see dcl_usb_hcd.h
   USB_HCD_EVENTS_START = 0xC00,
   USB_HCD_EVENTS
#endif  
#ifndef NONE_MODEM_OTG   
   //For OTG_DRV, please see dcl_otg_drv.h
   OTG_DRV_EVENTS_START = 0xD00,
   OTG_DRV_EVENTS
#endif  
#ifndef NONE_MODEM_IRDA
   // For IrDA, please see dcl_irda.h
   IRDA_EVENTS_START = 0xE00,
   IRDA_EVENTS
#endif   
#ifndef NONE_MODEM_PMU
   // For pmu, please see dcl_pmu.h
   PMU_EVENTS_START = 0xF00,
   PMU_EVENTS
#endif  
#ifndef NONE_MODEM_PW
   // For pw, please see dcl_pw.h
   PW_EVENTS_START = 0x1000,
   PW_EVENTS
#endif  
#ifndef NONE_MODEM_CHR_USB_DET
   // For Chr&USB detection , please see dcl_chr_usb_det.h
   CHR_DET_EVENTS_START = 0x1100,
   CHR_DET_EVENTS
#endif  
#ifndef NONE_MODEM_PXS  
   // For PXS, please see dcl_pxs.h
   PXS_EVENTS_START = 0x1200,
   PXS_EVENTS
#endif   
#ifndef NONE_MODEM_F32K_CLK
   // For F32K_CLK, please see dcl_f32k_clk.h
   F32K_CLK_EVENTS_START = 0x1300,
   F32K_CLK_EVENTS  
#endif  
#ifndef NONE_MODEM_IDC
   // For IDC, please see dcl_idc.h
   IDC_EVENTS_START = 0x1400,
   IDC_EVENTS
#endif  
#ifndef NONE_MODEM_SPMI
   // For spmi, please see dcl_spmi.h
   SPMI_EVENTS_START = 0x1500,
   SPMI_EVENTS
#endif  
   EVENT_END
} DCL_EVENT_T;

/*******************************************************************************
 * PFN_DCL_CALLBACK
 *******************************************************************************/
typedef void (*PFN_DCL_CALLBACK)(DCL_EVENT event);

/*******************************************************************************
 * DCL_CTRL_CMD
 *******************************************************************************/
#if defined(CMD_END)
#undef CMD_END  
#endif 
typedef DCL_UINT32  DCL_CTRL_CMD;
typedef enum
{
   CMDS_START = 0,
   /* Below is the command for GPIO */
#ifndef NONE_MODEM_GPIO
   //please make sure GPIO Command start from zero! [drv_tool genertate a char type variable]
   GPIO_CMDS_START = CMDS_START, 
   GPIO_CMDS //please see dcl_gpio.h
#endif
#ifndef NONE_MODEM_UART
   /* Below is the command for UART */
   UART_CMDS_START = 0x100,
   UART_CMDS //please see dcl_uart.h
#endif
#ifndef NONE_MODEM_GPT
   /* Below is the command for GPT */
   GPT_CMDS_START = 0x200,
   GPT_CMDS //please see dcl_gpt.h
#endif
#ifndef NONE_MODEM_ADC
   /* Below is the command for ADC */
     /* Exported adc schedule APIs */
   ADC_CMDS_START = 0x300,
   ADC_CMDS
     /* Interfac for Hardware ADC */
   HADC_CMDS_START = 0x400,
   HADC_CMDS
#endif   
#ifndef NONE_MODEM_WDT
   /* Below is the command for WDT */
   WDT_CMDS_START = 0x500,
   WDT_CMDS
#endif   
#ifndef NONE_MODEM_BMT  
   /* Below is the command for BMT */
   BMT_CMDS_START = 0x600,
   BMT_CMDS // Please see dcl_bmt.h
#endif  
#ifndef NONE_MODEM_PFC
   /* Below is the command for PFC */
   PFC_CMDS_START = 0x700,
   PFC_CMDS // Please see dcl_pfc.h
#endif
#ifndef NONE_MODEM_RTC
   /* Below is the command for RTC */
   RTC_CMDS_START = 0x800,
   RTC_CMDS // Please see dcl_rtc.h
#endif
#ifndef NONE_MODEM_I2C  
   /* Below is the command for I2C */
   I2C_CMDS_START = 0x900,
   I2C_CMDS
#endif
#if 0
#ifndef NONE_MODEM_AUX
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif   
#endif
#ifndef NONE_MODEM_KBDH
   /* Below is the command for KBD */
   KBDH_CMDS_START = 0xB00,
   KBDH_CMDS
#endif
#ifndef NONE_MODEM_KBD
   KBD_CMDS_START = 0xC00,
   KBD_CMDS//Please see dcl_kbd.h
#endif
#ifndef NONE_MODEM_PWM   
   /* Below is the command for OWM */
   PWM_CMDS_START = 0xD00,
   PWM_CMDS//Please see dcl_PWM.h
#endif
#ifndef NONE_MODEM_ALERTER
   ALERTER_CMDS_START = 0xE00,
   ALERTER_CMDS //please see dcl_pwm.h
#endif
#ifndef NONE_MODEM_TS
   /* Below is the command for TS */
   TS_CMDS_START = 0xF00,
   TS_CMDS//Please see dcl_ts.h
#endif
#ifndef NONE_MODEM_SD
   /* Below is the command for SD*/
   SD_CMDS_START = 0x1000,
   SD_CMDS//Please see dcl_msdc.h
#endif   
#ifndef NONE_MODEM_SDIO
   /* Below is the command for SDIO*/
   SDIO_CMDS_START = 0x1100,
   SDIO_CMDS//Please see dcl_msdc.h
#endif
#ifndef NONE_MODEM_USB
   /* Below is the commands for USB_DRV, please see dcl_usb_drv.h */
   USB_DRV_CMDS_START = 0x1300,
   USB_DRV_CMDS
#endif
#ifndef NONE_MODEM_USBD 
   /* Below is the commands for USB_HCD, please see dcl_usb_hcd.h */
   USB_HCD_CMDS_START = 0x1400,
   USB_HCD_CMDS
#endif
#ifndef NONE_MODEM_OTG
   /* Below is the commands for OTG_DRV, please see dcl_otg_drv.h */
   OTG_DRV_CMDS_START = 0x1500,
   OTG_DRV_CMDS
#endif
#ifndef NONE_MODEM_IRDA
   /* Below is the command for IRDA*/
   IRDA_CMDS_START = 0x1600,
   IRDA_CMDS//Please see dcl_irda.h
#endif   
#ifndef NONE_MODEM_SIM
   /* Below is the command for SIM*/
   SIM_CMDS_START = 0x1700,
   SIM_CMDS//Please see dcl_msdc.h
#endif
#ifndef NONE_MODEM_PMU
   /* Below is the command for PMU */
   PMU_CMDS_START = 0x1800,
   PMU_CMDS //Please see dcl_pmu.h
#endif
#ifndef NONE_MODEM_PW
   /* Below is the command for PW */
   PW_CMDS_START = 0x1900,
   PW_CMDS //Please see dcl_pw.h
#endif
#ifndef NONE_MODEM_CHR_USB_DET
   /* Below is the command for CHR USB DETECT */
   CHR_DET_CMDS_START = 0x1A00,
   CHR_DET_CMDS //Please see dcl_chr_usb_det.h
#endif
#ifndef NONE_MODEM_PXS   
   /* Below is the command for PXS */
   PXS_CMDS_START = 0x1B00,
   PXS_CMDS //Please see dcl_pxs.h
#endif   
#ifndef NONE_MODEM_SIM_GPIO
	/* Below is the command for SIM GPIO */
    SIMGPIO_CMDS_START = 0x1C00,
	SIMGPIO_CMDS //Please see dcl_sim_gpio.h
#endif 
#ifndef NONE_MODEM_F32K_CLK
 /* Below is the command for F32K_CLK */
   F32K_CLK_CMDS_START = 0x1D00,
   F32K_CLK_CMDS //please see dcl_f32k_clk.h	
#endif 
#ifndef NONE_MODEM_IDC
   /* Below is the command for IDC */
   IDC_CMDS_START = 0x1E00,
   IDC_CMDS // Please see dcl_idc.h
#endif
#ifndef NONE_MODEM_SPMI
   /* Below is the command for SPMI */
   SPMI_CMDS_START = 0x1F00,
   SPMI_CMDS //Please see dcl_spmi.h
#endif
   CMD_END
} DCL_CTRL_CMD_T;

/*******************************************************************************
 * DCL_CTRL_DATA_T: Define the Control data structure for each module's command
 *******************************************************************************/
typedef union
{
#ifndef NONE_MODEM_GPT
   /* GPT control datas, please see dcl_gpt.h */
   GPT_CTRLS
#endif 
#ifndef NONE_MODEM_UART
   /* UART control datas, please see dcl_uart.h */
   UART_CTRLS
#endif 
#ifndef NONE_MODEM_GPIO
   /* GPIO control datas, please see dcl_gpio.h */
   GPIO_CTRLS
#endif 
#ifndef NONE_MODEM_ADC
   /* ADC control datas, please see dcl_adc.h */
   ADC_CTRLS
#endif 
#ifndef NONE_MODEM_WDT
   /* WDT control datas, please see dcl_wdt.h */
   WDT_CTRLS
#endif 
#ifndef NONE_MODEM_BMT
   /* Below is the ctrl structures for BMT */
   BMT_CTRLS //Please see dcl_bmt.h
#endif   
#ifndef NONE_MODEM_PFC
   /* Below is the ctrl structures for PFC */
   PFC_CTRLS // Please see dcl_pfc.h
#endif 
#ifndef NONE_MODEM_RTC
   /* RTC control datas, please see dcl_rtc.h */
   RTC_CTRLS // Please see dcl_rtc.h
#endif 
#ifndef NONE_MODEM_I2C    
   /* I2C control datas, please see dcl_i2c.h */
   I2C_CTRLS
#endif 
#if 0
#ifndef NONE_MODEM_AUX
/* under construction !*/
/* under construction !*/
#endif
#endif
#ifndef NONE_MODEM_KBD
   /* KBD control datas, please see dcl_kbd.h */
  KBDS_CTRLS//Please see dcl_kbd.h
#endif 
#ifndef NONE_MODEM_KBDH
   KBDH_CTRLS
#endif 
#ifndef NONE_MODEM_PWM     
   /* PWM control datas, please see dcl_PWM.h */
   PWM_CTRLS//Please see dcl_PWM.h   
#endif 
#ifndef NONE_MODEM_ALERTER
   ALERTER_CTRLS
#endif 
#ifndef NONE_MODEM_TS
   /* TS control datas, please see dcl_ts.h */
   TS_CTRLS//Please see dcl_ts.h
#endif 
#ifndef NONE_MODEM_SD
   /* Below is the ctrl structures for SD*/
   SD_CTRLS//Please see dcl_msdc.h
#endif   
#ifndef NONE_MODEM_SDIO
   /* Below is the ctrl structures for SDIO*/
   SDIO_CTRLS//Please see dcl_msdc.h
#endif 
#ifndef NONE_MODEM_USB
   /* Below is the control data structures for USB_DRV, please see dcl_usb_drv.h */
   USB_DRV_CTRLS
#endif 
#ifndef NONE_MODEM_USBD  
   /* Below is the control data structures for USB_HCD, please see dcl_usb_hcd.h */
   USB_HCD_CTRLS
#endif 
#ifndef NONE_MODEM_OTG
   /* Below is the control data structures for OTG_DRV, please see dcl_otg_drv.h */
   OTG_DRV_CTRLS
#endif 
#ifndef NONE_MODEM_IRDA
   /* Below is the ctrl structures for IRDA*/
   IRDA_CTRLS//Please see dcl_irda.h
#endif   
#ifndef NONE_MODEM_SIM
   /* Below is the ctrl structures for SIM*/
   SIM_CTRLS//Please see dcl_sim.h
#endif 
#ifndef NONE_MODEM_PMU
   /* Below is the ctrl structures for PMU */
   PMU_CTRLS//Please see dcl_pmu.h
#endif 
#ifndef NONE_MODEM_PW
   /* Below is the ctrl structures for Power up reason */
   PW_CTRLS//Please see dcl_pW.h
#endif 
#ifndef NONE_MODEM_CHR_USB_DET
   /* Below is the ctrl structures for Chr & USB detection */
   CHR_DET_CTRLS//Please see dcl_chr_usb_det.h   
#endif 
#ifndef NONE_MODEM_SPMI
   /* Below is the ctrl structures for SPMI */
   SPMI_CTRLS//Please see dcl_spmi.h
#endif 
#ifndef NONE_MODEM_PXS
   /* Below is the ctrl structures for PXS */
   PXS_CTRLS//Please see dcl_pxs.h
#endif 
#ifndef NONE_MODEM_SIM_GPIO  
   /* Below is the ctrl structures for SIM_GPIO */
   SIMGPIO_CTRLS//Please see dcl_sim_gpio.h      
#endif       
#ifndef NONE_MODEM_F32K_CLK
   /* Below is the ctrl structures for SIM_GPIO */
   F32K_CLK_CTRLS//please see dcl_f32k_clk.h   	
#endif   
#ifndef NONE_MODEM_IDC
   /* Below is the ctrl structures for IDC */
   IDC_CTRLS//please see dcl_idc.h
#endif 
#ifndef NONE_MTAD
    /* Below is the ctrl structures for MTAD */
    MTAD_CTRLS//please check dcl_mtad.h
#endif
} DCL_CTRL_DATA_T;


/*definitions of structures are finished, undefine DCL_DEFINITION_STRUCT*/
#undef DCL_DEFINITION_STRUCT
#define DCL_DEFINITION_PROTOTYPE

#ifndef NONE_MODEM_GPT
#include "dcl_gpt.h"
#endif
#ifndef NONE_MODEM_GPIO
#include "dcl_gpio.h"
#endif
#ifndef NONE_MODEM_UART
#include "dcl_uart.h"
#endif
#ifndef NONE_MODEM_WDT
#include "dcl_wdt.h"
#endif
#ifndef NONE_MODEM_ADC
#include "dcl_adc.h"
#endif
#ifndef NONE_MODEM_BMT
#include "dcl_bmt.h"
#endif
#ifndef NONE_MODEM_PFC
#include "dcl_pfc.h"
#endif
#ifndef NONE_MODEM_RTC
#include "dcl_rtc.h"
#endif
#ifndef NONE_MODEM_I2C
#include "dcl_i2c.h"
#endif
#ifndef NONE_MODEM_AUX
#include "dcl_aux.h"
#endif
#if !defined(NONE_MODEM_PWM) && !defined(NONE_MODEM_ALERTER)
#include "dcl_pwm.h"
#endif
#ifndef NONE_MODEM_KBDH
#include "DclH_kbd.h"
#endif
#ifndef NONE_MODEM_KBD
#include "DclS_kbd.h"
#endif
#ifndef NONE_MODEM_STS
#include "dcl_sts.h"
#endif
#ifndef NONE_MODEM_MSDC
#include "dcl_msdc.h"
#endif
#ifndef NONE_MODEM_USB
#include "dcl_usb_drv.h"
#endif
#ifndef NONE_MODEM_USBD
#include "dcl_usb_hcd.h"
#endif
#ifndef NONE_MODEM_OTG
#include "dcl_otg_drv.h"
#endif
#ifndef NONE_MODEM_IRDA
#include "dcl_irda.h"
#endif
#ifndef NONE_MODEM_SIM
#include "dcl_sim.h"
#endif
#ifndef NONE_MODEM_PMU
#include "dcl_pmu.h"
#endif
#ifndef NONE_MODEM_PW
#include "dcl_pw.h"
#endif
#ifndef NONE_MODEM_CHR_USB_DET
#include "dcl_chr_det.h"
#endif
#ifndef NONE_MODEM_SPMI
#include "dcl_spmi.h"
#endif
#ifndef NONE_MODEM_PXS
#include "dcl_pxs.h"
#endif
#ifndef NONE_MODEM_SIM_GPIO
#include "dcl_sim_gpio.h"
#endif
#ifndef NONE_MODEM_F32K_CLK
#include "dcl_f32k_clk.h"	
#endif   
#ifndef NONE_MODEM_IDC
#include "dcl_idc.h"
#endif
#ifndef NONE_MTAD
#define DCL_DEFINITION_PROTOTYPE
#include "dcl_mtad.h"
#endif

#undef DCL_DEFINITION_PROTOTYPE


#endif  /* __DCL_H__ */
