blob: 98c01703c95776e8d61a6c749cf48b2aef2fc555 [file] [log] [blame]
/*******************************************************************************
* 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