blob: 8ae3555441ffb41d89119f8cc6710cdf56724630 [file] [log] [blame]
/*******************************************************************************
* Copyright by ZTE Corporation.
*
* File Name:
* File Mark:
* Description:
* Others:
* Version: v0.1
* Author: shideyou
* Date: 2013-6-29
* History 1:
* Date:
* Version:
* Author:
* Modification:
* History 2:
********************************************************************************/
#ifndef _DRVS_LPM_H
#define _DRVS_LPM_H
/****************************************************************************
* Include files
****************************************************************************/
//#include "drvs_general.h"
#include "drvs_dpram.h"
/****************************************************************************
* Macros
****************************************************************************/
/****************************************************************************
* Types
****************************************************************************/
typedef enum
{
LPM_RAT_TD,
LPM_RAT_LTE,
LPM_RAT_W,
LPM_T4_RAT_TD,
LPM_T4_RAT_W,
LPM_T2_RAT_LTE,
MAX_LPM_RAT
} T_ZDrvLpm_RAT;
typedef struct
{
UINT16 wWFrmCnt; /*0~4095 Fn*/
UINT16 wWSlotCnt; /*0~14 slot*/
UINT16 wWSymbolCnt; /*0~9 symbol*/
UINT16 wWChipCnt; /*0~255 chip*/
}T_WLpmTime;
typedef struct
{
UINT16 wTdFrmCnt; /*0~8191 Fn*/
UINT16 wTdChipCnt; /*0~6400 chip*/
}T_TdLpmTime;
typedef struct
{
UINT16 wLteSuperFrmCnt;
UINT16 wLteFrmCnt;
UINT16 wLteSubFrmCnt;
}T_LteLpmTime;
typedef VOID (*T_ZDrvLpm_CallbackFunction)(VOID); //used for LTE
/****************************************************************************
* Constants
****************************************************************************/
/****************************************************************************
* Global Variables
****************************************************************************/
/****************************************************************************
* Function Prototypes
****************************************************************************/
/*******************************************************************************
* Function: zDrvLpm_RegCallbackForLTE
* Description: regist callback function for LTE_lpm interrupt
* Parameters:
* Input:
* callback: function be register
* Output:
* None
* Returns:
* DRV_ERROR:interrupt install failed
* Drv_SUCCESS:successful!
*
* Others:
********************************************************************************/
SINT32 zDrvLpm_RegCallbackForLTE(T_ZDrvLpm_CallbackFunction callback);
/*******************************************************************************
* Function: zDrvLpm_RegCallbackForTD
* Description: regist callback function for TD_lpm interrupt
* Parameters:
* Input:
* callback: function be register
* Output:
* None
* Returns:
* DRV_ERROR:interrupt install failed
* Drv_SUCCESS:successful!
*
* Others:
********************************************************************************/
SINT32 zDrvLpm_RegCallbackForTD(T_ZDrvLpm_CallbackFunction callback);
/*******************************************************************************
* Function: zDrvLpm_RegCallbackForW
* Description: regist callback function for W_lpm interrupt
* Parameters:
* Input:
* callback: function be register
* Output:
* None
* Returns:
* DRV_ERROR:interrupt install failed
* Drv_SUCCESS:successful!
*
* Others:
********************************************************************************/
SINT32 zDrvLpm_RegCallbackForW(T_ZDrvLpm_CallbackFunction callback);
/*******************************************************************************
* Function: zDrvLpm_IrqEnable
* Description: enable interrupt of lpm
* Parameters:
* Input:
* rat: TD/W/LTE
* Output:
* None
* Returns:
* None
*
* Others:
********************************************************************************/
VOID zDrvLpm_IrqEnable(T_ZDrvLpm_RAT rat);
/*******************************************************************************
* Function: zDrvLpm_IrqDisable
* Description: disable interrupt of lpm
* Parameters:
* Input:
* rat: TD/W/LTE
* Output:
* None
* Returns:
* None
*
* Others:
********************************************************************************/
VOID zDrvLpm_IrqDisable(T_ZDrvLpm_RAT rat);
/**************************************************************************
* º¯ÊýÃû³Æ£º lpm_WDpramSfnIsValid
* ¹¦ÄÜÃèÊö£º »ñÈ¡WDpramÄÚÖ¡ºÅÐÅÏ¢ÊÇ·ñÓÐЧ
* ²ÎÊý˵Ã÷£º
* ·µ »Ø Öµ £ºTRUE ÓÐЧ£» FALSE ÎÞЧ
* ÆäËü˵Ã÷£º
**************************************************************************/
BOOL zDrvLpm_WDpramSfnIsValid(void);
/**************************************************************************
* º¯ÊýÃû³Æ£º Lpm_GetWCfnSfn
* ¹¦ÄÜÃèÊö£º PS»ñÈ¡WÖ¡ºÅµ÷¶ÈÐÅÏ¢
* ²ÎÊý˵Ã÷£º
* ·µ »Ø Öµ £º
* ÆäËü˵Ã÷£º
**************************************************************************/
VOID zDrvLpm_GetWCfnSfn(T_ZDrvDpram_CfnSfnForW* ptCfnSfn);
/**************************************************************************
* º¯ÊýÃû³Æ£º zDrvLpm_GetSfn_Lte
* ¹¦ÄÜÃèÊö£º PS»ñÈ¡LTEÖ¡ºÅÐÅÏ¢
* ²ÎÊý˵Ã÷£º
* ·µ »Ø Öµ £º
* ÆäËü˵Ã÷£º
**************************************************************************/
UINT32 zDrvLpm_GetSfn_Lte(VOID);
/**************************************************************************
* º¯ÊýÃû³Æ£º zDrvLpm_TdDpramSfnIsValid
* ¹¦ÄÜÃèÊö£º »ñÈ¡TdDpramÄÚÖ¡ºÅÐÅÏ¢ÊÇ·ñÓÐЧ
* ²ÎÊý˵Ã÷£º
* ·µ »Ø Öµ £ºTRUE ÓÐЧ£» FALSE ÎÞЧ
* ÆäËü˵Ã÷£º
**************************************************************************/
BOOL zDrvLpm_TdDpramSfnIsValid(void);
/**************************************************************************
* º¯ÊýÃû³Æ£º zDrvLpm_GetTdCfnSfn
* ¹¦ÄÜÃèÊö£º PS»ñÈ¡TDÖ¡ºÅµ÷¶ÈÐÅÏ¢
* ²ÎÊý˵Ã÷£º
* ·µ »Ø Öµ £ºTD NT ×ÓÖ¡ºÅ\Cfn
* ÆäËü˵Ã÷£º
**************************************************************************/
VOID zDrvLpm_GetTdCfnSfn(T_ZDrvDpram_CfnSfn* ptTdCfnSfn);
#endif/*_FILENAME_H*/