/******************************************************************************* | |
* Copyright (C) 2010, ZTE Corporation. | |
* | |
* File Name: | |
* File Mark: | |
* Description: | |
* Others: | |
* Version: V1.0 | |
* Author: yuxiang | |
* Date: 2013-9-4 | |
* History 1: | |
* Date: | |
* Version: | |
* Author: | |
* Modification: | |
* History 2: | |
********************************************************************************/ | |
#ifndef _DRVS_PM_H | |
#define _DRVS_PM_H | |
/**************************************************************************** | |
* Include files | |
****************************************************************************/ | |
/**************************************************************************** | |
* Macros | |
****************************************************************************/ | |
/**************************************************************************** | |
* Types | |
****************************************************************************/ | |
typedef enum _T_ZDrvPmic_Enable{ | |
PM_DISABLE = 0, | |
PM_ENABLE, | |
PM_ENABLE_NOT_SUPPORT = -100, | |
PM_ENABLE_MAX_STATUS = -255 | |
} T_ZDrvPmic_Enable; | |
typedef enum _T_ZDrvPmic_NrmMode{ | |
PM_NRMMODE_AUTO = 0, | |
PM_NRMMODE_PFM, | |
PM_NRMMODE_PWM, | |
PM_NRMMODE_NOT_SUPPORT = -100, | |
PM_NRMMODE_MAX_STATUS = -255 | |
}T_ZDrvPmic_NrmMode; | |
typedef enum _T_ZDrvPmic_SlpMode{ | |
PM_SLPMODE_AUTO_NORMAL = 0, //auto in dcdc, normal in ldo | |
PM_SLPMODE_ECO_NRMV, //normal voltage | |
PM_SLPMODE_ECO_SLPV, //sleep voltage | |
PM_SLPMODE_OFF, //OFF | |
PM_SLPMODE_NOT_SUPPORT = -100, | |
PM_SLPMODE_MAX_STATUS = -255 | |
}T_ZDrvPmic_SlpMode; | |
//consumer | |
typedef enum _T_ZDrvPmic_Regulator{ | |
VCORE0 = 0, | |
VCORE1, | |
VDDR, | |
VMMC, | |
VSD0, | |
VSD1, | |
VIO_LO, | |
VIO_HI, | |
VUSB_0V9, | |
VUSB_3v3, | |
VPLL_LO, | |
VPLL_HI, | |
VSIM1, | |
VSIM2, | |
VRF_LO, | |
VRF_HI, | |
VRF_SW, | |
VPA, | |
VCTCXO1, | |
VCTCXO2, | |
VSSBUF, | |
VRTC, | |
} T_ZDrvPmic_Regulator; | |
typedef enum _T_ZDrvPmic_Vcore{ | |
PM_VOLT_0_800 = 0, | |
PM_VOLT_0_850 , //output V, | |
PM_VOLT_0_875 , //output V, | |
PM_VOLT_0_900 , //output V, | |
PM_VOLT_0_925 , //output V, | |
PM_VOLT_0_950 , //output V, | |
PM_VOLT_1_100 , //output V, | |
PM_VOLT_1_150 , //output V, | |
PM_VOLT_1_200 , //output V, | |
PM_VOLT_1_250 , //output V, | |
PM_VOLT_1_600 , //output V, | |
PM_VOLT_1_800 , //output V, | |
PM_VOLT_2_750 , //output V, | |
PM_VOLT_2_800 , //output V, | |
PM_VOLT_2_850 , //output V, | |
PM_VOLT_3_000 , //output V, | |
PM_VOLT_3_300 , //output V, | |
PM_VOLT_3_600 , //output V, | |
PM_VOLT_NOT_SUPPORT = -100, | |
PM_VOLT_MAX_STATUS = -255, | |
} T_ZDrvPmic_Voltage; | |
typedef struct _T_ZDrvPmic_Opt | |
{ | |
SINT32 (*zDrvPmic_LdoInit)(VOID); | |
}T_ZDrvPmic_Opt; | |
/**************************************************************************** | |
* Constants | |
****************************************************************************/ | |
/**************************************************************************** | |
* Global Variables | |
****************************************************************************/ | |
/**************************************************************************** | |
* Function Prototypes | |
****************************************************************************/ | |
SINT32 zDrvPmic_Initiate(VOID); | |
SINT32 zDrvPmic_SetNormalOnOff(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_Enable enable); | |
SINT32 zDrvPmic_SetNormalVoltage(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_Voltage voltage); | |
SINT32 zDrvPmic_SetNormalMode(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_NrmMode nrmMode); | |
SINT32 zDrvPmic_GetNormalOnOff(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_Enable* enable); | |
SINT32 zDrvPmic_GetNormalVoltage(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_Voltage* voltage); | |
SINT32 zDrvPmic_GetNormalMode(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_NrmMode* nrmMode); | |
SINT32 zDrvPmic_SetSleepOnOff(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_Enable enable); | |
SINT32 zDrvPmic_SetSleepVoltage(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_Voltage voltage); | |
SINT32 zDrvPmic_SetSleepMode(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_SlpMode slpMode); | |
SINT32 zDrvPmic_GetSleepOnOff(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_Enable* enable); | |
SINT32 zDrvPmic_GetSleepVoltage(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_Voltage* voltage); | |
SINT32 zDrvPmic_GetSleepMode(T_ZDrvPmic_Regulator regulator, T_ZDrvPmic_SlpMode* slpMode); | |
SINT32 zDrvPmic_SetOpt(T_ZDrvPmic_Opt* pPmicOpt); | |
#endif | |