1190 lines
31 KiB
C
1190 lines
31 KiB
C
/*****************************************************************************
|
|
*
|
|
* Filename:
|
|
* ---------
|
|
* pmic6326_sw.h
|
|
*
|
|
* Project:
|
|
* --------
|
|
* Maui_Software
|
|
*
|
|
* Description:
|
|
* ------------
|
|
* This file is intended for PMIC 6326 driver.
|
|
*
|
|
* Author:
|
|
* -------
|
|
* mtk01845
|
|
*
|
|
*============================================================================
|
|
* HISTORY
|
|
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
|
|
*------------------------------------------------------------------------------
|
|
* $Revision$
|
|
* $Modtime: 20 Jun 2005 20:03:54 $
|
|
* $Log: //mtkvs01/vmdata/Maui_sw/archives/mcu/drv/src/gpt.c-arc $
|
|
*
|
|
* 08 09 2010 chipeng.chang
|
|
* [ALPS00003297] [Need Patch] [Volunteer Patch] android 2.2 migration
|
|
* remove .o and add header file.
|
|
*
|
|
* Feb 5 2009 mtk01845
|
|
* [MAUI_01624867] [Drv] PMIC6326 ECO version compatible support
|
|
*
|
|
*
|
|
* Jan 19 2009 mtk01845
|
|
* [MAUI_01314361] [Drv]MT6268 check to MAUI
|
|
*
|
|
*
|
|
* Sep 12 2008 mtk01845
|
|
* [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
|
|
*
|
|
*
|
|
* Sep 2 2008 mtk01845
|
|
* [MAUI_01231139] [Drv][PMIC6326] Redundent custom APIs cause MoDIS link error
|
|
*
|
|
*
|
|
* Aug 29 2008 mtk01845
|
|
* [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
|
|
*
|
|
*
|
|
* Aug 6 2008 mtk01845
|
|
* [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
|
|
*
|
|
*
|
|
* Aug 5 2008 mtk01845
|
|
* [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
|
|
*
|
|
*
|
|
* Jul 13 2008 mtk01845
|
|
* [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
|
|
*
|
|
*
|
|
* Jun 23 2008 mtk01845
|
|
* [MAUI_00791553] [Drv] MT6268A merge DVT code back to MAUI
|
|
*
|
|
*
|
|
* Jun 23 2008 mtk01845
|
|
* [MAUI_00791553] [Drv] MT6268A merge DVT code back to MAUI
|
|
*
|
|
*
|
|
* Jun 23 2008 mtk01845
|
|
* [MAUI_00791553] [Drv] MT6268A merge DVT code back to MAUI
|
|
*
|
|
*
|
|
* Jun 20 2008 mtk01845
|
|
* [MAUI_00791553] [Drv] MT6268A merge DVT code back to MAUI
|
|
*
|
|
*------------------------------------------------------------------------------
|
|
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
|
|
*============================================================================
|
|
****************************************************************************/
|
|
|
|
#ifndef __PMIC6326_SW_H__
|
|
#define __PMIC6326_SW_H__
|
|
/* #include "pmic_features.h" */
|
|
|
|
|
|
#ifndef __PRODUCTION_RELEASE__
|
|
/* Define to keep chaging when assert */
|
|
/* This flag is only for debug purpose */
|
|
/* #define DRV_MISC_PMIC_ASSERT_KEEP_CHARGING */
|
|
#endif /* #ifndef __PRODUCTION_RELEASE__ */
|
|
|
|
|
|
#ifdef __PRODUCTION_RELEASE__
|
|
/* Define to enable PMIC6326 charger watch dog timer kick */
|
|
/* When enable charger, PMIC6326 will enable a watch dog timer */
|
|
/* We need to kick the timer periodically, to ontify PMIC6326 that BB is alive */
|
|
/* If timeout, PMIC6326 will disable charge automatically */
|
|
/* #### If this is NOT enabled, we will disable the watch dog timer function at boot time */
|
|
#define ENABLE_KICK_PMIC6326_CHARGER_WATCHDOG_TIMER
|
|
#endif /* #ifdef __PRODUCTION_RELEASE__ */
|
|
|
|
|
|
|
|
#define PMIC6326_ECO_1_VERSION 0x01
|
|
#define PMIC6326_ECO_2_VERSION 0x02
|
|
#define PMIC6326_ECO_3_VERSION 0x03
|
|
#define PMIC6326_ECO_4_VERSION 0x04
|
|
|
|
|
|
typedef struct {
|
|
void (*pmic_ac_det) (void);
|
|
void (*pmic_usb_det) (void);
|
|
} pmic6326_chrdect_callbac_struct;
|
|
|
|
|
|
|
|
/* TTTTTTTTTTTTTTTTT */
|
|
/* Implemented functions */
|
|
|
|
|
|
|
|
/* (0x0D) INT STATUS 3 (RO) */
|
|
typedef enum {
|
|
VSDIO_OC_STAT = 0x01, /* BIT0 */
|
|
VGP_OC_STAT = 0x02, /* BIT1 */
|
|
VUSB_OC_STAT = 0x04, /* BIT2 */
|
|
OVP_INT_STAT = 0x08, /* BIT3 */
|
|
CHRDET_INT_STAT = 0x10, /* BIT4 */
|
|
PWRKEY_INT_STAT = 0x20 /* BIT5 */
|
|
} int_state_3_enum;
|
|
|
|
|
|
/* (0x1B) LDO CTRL 2 VRF */
|
|
typedef enum {
|
|
VRF_BIAS_CURRENT_TIMES_1_0 = 0,
|
|
VRF_BIAS_CURRENT_TIMES_0_5,
|
|
VRF_BIAS_CURRENT_TIMES_2_0,
|
|
VRF_BIAS_CURRENT_TIMES_3_0
|
|
} vrf_ical_en_enum;
|
|
|
|
/* (0x1C) LDO CTRL 3 VRF */
|
|
typedef enum {
|
|
VRF_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VRF_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VRF_MAX_SLEW_RATE,
|
|
VRF_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vrf_calst_enum;
|
|
typedef enum {
|
|
VRF_OC_THRESHOLD_685MA = 0,
|
|
VRF_OC_THRESHOLD_635MA,
|
|
VRF_OC_THRESHOLD_785MA,
|
|
VRF_OC_THRESHOLD_735MA
|
|
} vrf_caloc_enum;
|
|
|
|
typedef enum {
|
|
VRF_DEFAULT_MILLER_CAPACITOR = 0,
|
|
VRF_INCREASE_MILLER_CAPACITOR
|
|
} vrf_cm_enum;
|
|
|
|
typedef enum {
|
|
VRF_ENABLE_WITH_SRCLKEN = 0,
|
|
VRF_ENABLE_WITH_VRF_EN
|
|
} vrf_on_sel_enum;
|
|
|
|
|
|
/* (0x1E) LDO CTRL 5 VTCXO */
|
|
typedef enum {
|
|
VTCXO_BIAS_CURRENT_TIMES_1_0 = 0,
|
|
VTCXO_BIAS_CURRENT_TIMES_0_5,
|
|
VTCXO_BIAS_CURRENT_TIMES_2_0,
|
|
VTCXO_BIAS_CURRENT_TIMES_3_0
|
|
} vtcxo_ical_en_enum;
|
|
|
|
|
|
/* (0x1F) LDO CTRL 6 VTCXO */
|
|
typedef enum {
|
|
VTCXO_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VTCXO_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VTCXO_MAX_SLEW_RATE,
|
|
VTCXO_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vtcxo_calst_enum;
|
|
typedef enum {
|
|
VTCXO_OC_THRESHOLD_100MA = 0,
|
|
VTCXO_OC_THRESHOLD_109MA,
|
|
VTCXO_OC_THRESHOLD_82MA,
|
|
VTCXO_OC_THRESHOLD_91MA
|
|
} vtcxo_caloc_enum;
|
|
|
|
typedef enum {
|
|
VTCXO_ENABLE_WITH_SRCLKEN = 0,
|
|
VTCXO_ENABLE_WITH_VTCXO_EN
|
|
} vtcxo_on_sel_enum;
|
|
|
|
typedef enum {
|
|
VTCXO_DEFAULT_MILLER_CAPACITOR = 0,
|
|
VTCXO_INCREASE_MILLER_CAPACITOR
|
|
} vtcxo_cm_enum;
|
|
|
|
/* (0x21) LDO CTRL 8 V3GTX */
|
|
typedef enum {
|
|
V3GTX_BIAS_CURRENT_TIMES_1_0 = 0,
|
|
V3GTX_BIAS_CURRENT_TIMES_0_5,
|
|
V3GTX_BIAS_CURRENT_TIMES_2_0,
|
|
V3GTX_BIAS_CURRENT_TIMES_3_0
|
|
} v3gtx_ical_en_enum;
|
|
|
|
typedef enum {
|
|
V3GTX_2_8 = 0,
|
|
V3GTX_3_0,
|
|
V3GTX_3_3,
|
|
V3GTX_2_5
|
|
} v3gtx_vol;
|
|
|
|
|
|
/* (0x22) LDO CTRL 9 V3GTX */
|
|
typedef enum {
|
|
V3GTX_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
V3GTX_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
V3GTX_MAX_SLEW_RATE,
|
|
V3GTX_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} v3gtx_calst_enum;
|
|
|
|
typedef enum {
|
|
V3GTX_OC_THRESHOLD_400MA = 0,
|
|
V3GTX_OC_THRESHOLD_438MA,
|
|
V3GTX_OC_THRESHOLD_324MA,
|
|
V3GTX_OC_THRESHOLD_362MA
|
|
} v3gtx_caloc_enum;
|
|
|
|
typedef enum {
|
|
V3GTX_ENABLE_WITH_SRCLKEN = 0,
|
|
V3GTX_ENABLE_WITH_V3GTX_EN
|
|
} v3gtx_on_sel_enum;
|
|
|
|
|
|
/* (0x24) LDO CTRL 11 V3GRX */
|
|
typedef enum {
|
|
V3GRX_2_8 = 0,
|
|
V3GRX_3_0,
|
|
V3GRX_3_3,
|
|
V3GRX_2_5
|
|
} v3grx_vol;
|
|
|
|
typedef enum {
|
|
V3GRX_BIAS_CURRENT_TIMES_1_0 = 0,
|
|
V3GRX_BIAS_CURRENT_TIMES_0_5,
|
|
V3GRX_BIAS_CURRENT_TIMES_2_0,
|
|
V3GRX_BIAS_CURRENT_TIMES_3_0
|
|
} v3grx_ical_en_enum;
|
|
|
|
|
|
/* (0x25) LDO CTRL 12 V3GRX */
|
|
typedef enum {
|
|
V3GRX_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
V3GRX_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
V3GRX_MAX_SLEW_RATE,
|
|
V3GRX_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} v3grx_calst_enum;
|
|
|
|
typedef enum {
|
|
V3GRX_OC_THRESHOLD_200MA = 0,
|
|
V3GRX_OC_THRESHOLD_219MA,
|
|
V3GRX_OC_THRESHOLD_162MA,
|
|
V3GRX_OC_THRESHOLD_181MA
|
|
} v3grx_caloc_enum;
|
|
|
|
|
|
typedef enum {
|
|
V3GRX_ENABLE_WITH_SRCLKEN = 0,
|
|
V3GRX_ENABLE_WITH_V3GRX_EN
|
|
} v3grx_on_sel_enum;
|
|
|
|
|
|
/* (0x2E) LDO CTRL 21 VCAMA */
|
|
typedef enum {
|
|
VCAMA_2_8 = 0,
|
|
VCAMA_2_5,
|
|
VCAMA_1_8,
|
|
VCAMA_1_5
|
|
} vcama_sel_enum;
|
|
typedef enum {
|
|
VCAMA_BIAS_CURRENT_X_1_0 = 0,
|
|
VCAMA_BIAS_CURRENT_X_0_5,
|
|
VCAMA_BIAS_CURRENT_X_2_0,
|
|
VCAMA_BIAS_CURRENT_X_3_0
|
|
} vcama_ical_en_enum;
|
|
|
|
/* (0x2F) LDO CTRL 22 VCAMA */
|
|
typedef enum {
|
|
VCAMA_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VCAMA_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VCAMA_MAX_SLEW_RATE,
|
|
VCAMA_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vcama_calst_enum;
|
|
typedef enum {
|
|
VCAMA_OC_THRESHOLD_500MA = 0,
|
|
VCAMA_OC_THRESHOLD_548MA,
|
|
VCAMA_OC_THRESHOLD_405MA,
|
|
VCAMA_OC_THRESHOLD_452MA
|
|
} vcama_caloc_enum;
|
|
|
|
typedef enum {
|
|
VCAMA_DEFAULT_MILLER_CAPACITOR = 0,
|
|
VCAMA_INCREASE_MILLER_CAPACITOR
|
|
} vcama_cm_enum;
|
|
|
|
/* (0x31) LDO CTRL 24 VWIFI3V3 */
|
|
typedef enum {
|
|
VWIFI3V3_2_8 = 0,
|
|
VWIFI3V3_3_0,
|
|
VWIFI3V3_3_3,
|
|
VWIFI3V3_2_5
|
|
} vwifi3v3_sel_enum;
|
|
typedef enum {
|
|
VWIFI3V3_BIAS_CURRENT_X_1_0 = 0,
|
|
VWIFI3V3_BIAS_CURRENT_X_0_5,
|
|
VWIFI3V3_BIAS_CURRENT_X_2_0,
|
|
VWIFI3V3_BIAS_CURRENT_X_3_0
|
|
} vwifi3v3_ical_en_enum;
|
|
|
|
/* (0x32) LDO CTRL 25 VWIFI3V3 */
|
|
typedef enum {
|
|
VWIFI3V3_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VWIFI3V3_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VWIFI3V3_MAX_SLEW_RATE,
|
|
VWIFI3V3_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vwifi3v3_calst_enum;
|
|
typedef enum {
|
|
VWIFI3V3_OC_THRESHOLD_600MA = 0,
|
|
VWIFI3V3_OC_THRESHOLD_657MA,
|
|
VWIFI3V3_OC_THRESHOLD_486MA,
|
|
VWIFI3V3_OC_THRESHOLD_543MA
|
|
} vwifi3v3_caloc_enum;
|
|
|
|
typedef enum {
|
|
VWIFI3V3_DEFAULT_MILLER_CAPACITOR = 0,
|
|
VWIFI3V3_INCREASE_MILLER_CAPACITOR
|
|
} vwifi3v3_cm_enum;
|
|
|
|
/* (0x34) LDO CTRL 27 VWIFI2V8 */
|
|
typedef enum {
|
|
VWIFI2V8_2_8 = 0,
|
|
VWIFI2V8_3_0,
|
|
VWIFI2V8_3_3,
|
|
VWIFI2V8_2_5
|
|
} vwifi2v8_sel_enum;
|
|
typedef enum {
|
|
VWIFI2V8_BIAS_CURRENT_X_1_0 = 0,
|
|
VWIFI2V8_BIAS_CURRENT_X_0_5,
|
|
VWIFI2V8_BIAS_CURRENT_X_2_0,
|
|
VWIFI2V8_BIAS_CURRENT_X_3_0
|
|
} vwifi2v8_ical_en_enum;
|
|
|
|
/* (0x35) LDO CTRL 28 VWIFI2V8 */
|
|
typedef enum {
|
|
VWIFI2V8_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VWIFI2V8_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VWIFI2V8_MAX_SLEW_RATE,
|
|
VWIFI2V8_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vwifi2v8_calst_enum;
|
|
typedef enum {
|
|
VWIFI2V8_OC_THRESHOLD_300MA = 0,
|
|
VWIFI2V8_OC_THRESHOLD_329MA,
|
|
VWIFI2V8_OC_THRESHOLD_243MA,
|
|
VWIFI2V8_OC_THRESHOLD_271MA
|
|
} vwifi2v8_caloc_enum;
|
|
|
|
typedef enum {
|
|
VWIFI2V8_DEFAULT_MILLER_CAPACITOR = 0,
|
|
VWIFI2V8_INCREASE_MILLER_CAPACITOR
|
|
} vwifi2v8_cm_enum;
|
|
|
|
/* (0x37) LDO CTRL 30 VSIM */
|
|
typedef enum {
|
|
VSIM_1_3V = 0,
|
|
VSIM_1_5V,
|
|
VSIM_1_8V,
|
|
VSIM_2_5V,
|
|
VSIM_2_8V,
|
|
VSIM_3_0V,
|
|
VSIM_3_3V,
|
|
VSIM_1_2V
|
|
} vsim_sel_enum;
|
|
typedef enum {
|
|
VSIM_BIAS_CURRENT_X_1_0 = 0,
|
|
VSIM_BIAS_CURRENT_X_0_5,
|
|
VSIM_BIAS_CURRENT_X_2_0,
|
|
VSIM_BIAS_CURRENT_X_3_0
|
|
} vsim_ical_en_enum;
|
|
|
|
/* (0x3A) LDO CTRL 33 VUSB */
|
|
typedef enum {
|
|
VUSB_1_3 = 0,
|
|
VUSB_1_5,
|
|
VUSB_1_8,
|
|
VUSB_2_5,
|
|
VUSB_2_8,
|
|
VUSB_3_0,
|
|
VUSB_3_3,
|
|
VUSB_1_2 /* TTTTTTTTTTTTTT */
|
|
} vusb_sel_enum;
|
|
typedef enum {
|
|
VUSB_BIAS_CURRENT_X_1_0 = 0,
|
|
VUSB_BIAS_CURRENT_X_0_5,
|
|
VUSB_BIAS_CURRENT_X_2_0,
|
|
VUSB_BIAS_CURRENT_X_3_0
|
|
} vusb_ical_en_enum;
|
|
|
|
/* (0x3B) LDO CTRL 34 VUSB */
|
|
typedef enum {
|
|
VUSB_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VUSB_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VUSB_MAX_SLEW_RATE,
|
|
VUSB_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vusb_calst_enum;
|
|
typedef enum {
|
|
VUSB_OC_THRESHOLD_200MA = 0,
|
|
VUSB_OC_THRESHOLD_218MA,
|
|
VUSB_OC_THRESHOLD_164MA,
|
|
VUSB_OC_THRESHOLD_182MA
|
|
} vusb_caloc_enum;
|
|
|
|
/* (0x3D) LDO CTRL 36 VBT */
|
|
typedef enum {
|
|
VBT_1_3 = 0,
|
|
VBT_1_5,
|
|
VBT_1_8,
|
|
VBT_2_5,
|
|
VBT_2_8,
|
|
VBT_3_0,
|
|
VBT_3_3,
|
|
VBT_1_2 /* TTTTTTTTTTTTTT */
|
|
} vbt_sel_enum;
|
|
|
|
typedef enum {
|
|
VBT_E3_1_5 = 0,
|
|
VBT_E3_1_3,
|
|
VBT_E3_2_5,
|
|
VBT_E3_1_8,
|
|
VBT_E3_3_0,
|
|
VBT_E3_2_8,
|
|
VBT_E3_3_3
|
|
/* VBT_E3_3_3 */
|
|
} vbt_e3_sel_enum;
|
|
|
|
typedef enum {
|
|
VBT_BIAS_CURRENT_X_1_0 = 0,
|
|
VBT_BIAS_CURRENT_X_0_5,
|
|
VBT_BIAS_CURRENT_X_2_0,
|
|
VBT_BIAS_CURRENT_X_3_0
|
|
} vbt_ical_en_enum;
|
|
|
|
/* (0x3E) LDO CTRL 37 VBT */
|
|
typedef enum {
|
|
VBT_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VBT_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VBT_MAX_SLEW_RATE,
|
|
VBT_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vbt_calst_enum;
|
|
typedef enum {
|
|
VBT_OC_THRESHOLD_200MA = 0,
|
|
VBT_OC_THRESHOLD_218MA,
|
|
VBT_OC_THRESHOLD_164MA,
|
|
VBT_OC_THRESHOLD_182MA
|
|
} vbt_caloc_enum;
|
|
|
|
/* (0x40) LDO CTRL 39 VCAMD */
|
|
typedef enum {
|
|
VCAMD_1_3 = 0,
|
|
VCAMD_1_5,
|
|
VCAMD_1_8,
|
|
VCAMD_2_5,
|
|
VCAMD_2_8,
|
|
VCAMD_3_0,
|
|
VCAMD_3_3,
|
|
VCAMD_1_2 /* TTTTTTTTTTTTTT */
|
|
} vcamd_sel_enum;
|
|
typedef enum {
|
|
VCAMD_BIAS_CURRENT_X_1_0 = 0,
|
|
VCAMD_BIAS_CURRENT_X_0_5,
|
|
VCAMD_BIAS_CURRENT_X_2_0,
|
|
VCAMD_BIAS_CURRENT_X_3_0
|
|
} vcamd_ical_en_enum;
|
|
|
|
/* (0x41) LDO CTRL 40 VCAMD */
|
|
typedef enum {
|
|
VCAMD_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VCAMD_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VCAMD_MAX_SLEW_RATE,
|
|
VCAMD_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vcamd_calst_enum;
|
|
typedef enum {
|
|
VCAMD_OC_THRESHOLD_200MA = 0,
|
|
VCAMD_OC_THRESHOLD_218MA,
|
|
VCAMD_OC_THRESHOLD_164MA,
|
|
VCAMD_OC_THRESHOLD_182MA
|
|
} vcamd_caloc_enum;
|
|
|
|
/* (0x43) LDO CTRL 42 VGP */
|
|
typedef enum {
|
|
VGP_1_3 = 0,
|
|
VGP_1_5,
|
|
VGP_1_8,
|
|
VGP_2_5,
|
|
VGP_2_8,
|
|
VGP_3_0,
|
|
VGP_3_3
|
|
} vgp_sel_enum;
|
|
|
|
/* (0x46) LDO CTRL 45 VSDIO */
|
|
typedef enum {
|
|
VSDIO_BIAS_CURRENT_X_1_0 = 0,
|
|
VSDIO_BIAS_CURRENT_X_0_5,
|
|
VSDIO_BIAS_CURRENT_X_2_0,
|
|
VSDIO_BIAS_CURRENT_X_3_0
|
|
} vsdio_ical_en_enum;
|
|
|
|
/* (0x47) LDO CTRL 46 VSDIO */
|
|
typedef enum {
|
|
VSDIO_MAX_SLEW_RATE_TIMES_1_OVER_17 = 0,
|
|
VSDIO_MAX_SLEW_RATE_TIMES_1_OVER_21,
|
|
VSDIO_MAX_SLEW_RATE,
|
|
VSDIO_MAX_SLEW_RATE_TIMES_1_OVER_5
|
|
} vsdio_calst_enum;
|
|
typedef enum {
|
|
VSDIO_OC_THRESHOLD_700MA = 0,
|
|
VSDIO_OC_THRESHOLD_767MA,
|
|
VSDIO_OC_THRESHOLD_567MA,
|
|
VSDIO_OC_THRESHOLD_633MA
|
|
} vsdio_caloc_enum;
|
|
typedef enum {
|
|
VSDIO_2_8 = 0,
|
|
VSDIO_3_0
|
|
} vsdio_sel_enum;
|
|
typedef enum {
|
|
VSDIO_DEFAULT_MILLER_CAPACITOR = 0,
|
|
VSDIO_INCREASE_MILLER_CAPACITOR
|
|
} vsdio_cm_enum;
|
|
|
|
|
|
/* (0x53) BUCK CTRL 11 VCORE2 */
|
|
typedef enum {
|
|
VCORE2_ENABLE_WITH_EN_PASS = 0,
|
|
VCORE2_ENABLE_WITH_VCORE2_EN
|
|
} vcore2_on_sel_enum;
|
|
|
|
/* (0x5C) BOOST CTRL 1 BOOST1 */
|
|
typedef enum {
|
|
VBOOST1_VOL_3_20_V = 0,
|
|
VBOOST1_VOL_3_35_V,
|
|
VBOOST1_VOL_3_50_V,
|
|
VBOOST1_VOL_3_65_V,
|
|
VBOOST1_VOL_3_80_V,
|
|
VBOOST1_VOL_3_95_V,
|
|
VBOOST1_VOL_4_10_V,
|
|
VBOOST1_VOL_4_25_V,
|
|
VBOOST1_VOL_4_40_V,
|
|
VBOOST1_VOL_4_55_V,
|
|
VBOOST1_VOL_4_70_V,
|
|
VBOOST1_VOL_4_85_V,
|
|
VBOOST1_VOL_5_00_V,
|
|
VBOOST1_VOL_5_15_V,
|
|
VBOOST1_VOL_5_30_V,
|
|
VBOOST1_VOL_5_45_V
|
|
} vboost1_tune_enum;
|
|
|
|
/* (0x5D) BOOST CTRL 2 BOOST1 */
|
|
typedef enum {
|
|
BOOST1_SOFT_START_SPEED = 0,
|
|
BOOST1_SOFT_START_SPEED_TIMES_2_OVER_3
|
|
} boost1_soft_st_speed_enum;
|
|
|
|
/* (0x5F) BOOST CTRL 4 BOOST2 */
|
|
typedef enum {
|
|
VBOOST2_VOL_6_00_V = 0,
|
|
VBOOST2_VOL_6_75_V,
|
|
VBOOST2_VOL_7_50_V,
|
|
VBOOST2_VOL_8_25_V,
|
|
VBOOST2_VOL_9_00_V,
|
|
VBOOST2_VOL_9_75_V,
|
|
VBOOST2_VOL_10_05_V,
|
|
VBOOST2_VOL_11_25_V,
|
|
VBOOST2_VOL_12_00_V,
|
|
VBOOST2_VOL_12_75_V,
|
|
VBOOST2_VOL_13_50_V,
|
|
VBOOST2_VOL_14_25_V,
|
|
VBOOST2_VOL_15_00_V,
|
|
VBOOST2_VOL_15_75_V,
|
|
VBOOST2_VOL_16_50_V,
|
|
VBOOST2_VOL_17_25_V
|
|
} vboost2_tune_enum;
|
|
|
|
typedef enum {
|
|
BOOST2_OC_THRESHOLD_5UA = 0,
|
|
BOOST2_OC_THRESHOLD_2UA,
|
|
BOOST2_OC_THRESHOLD_10UA,
|
|
BOOST2_OC_THRESHOLD_7UA
|
|
} boost2_oc_th_enum;
|
|
|
|
typedef enum {
|
|
BOOST2_DIGITAL_DIMING = 0,
|
|
BOOST2_ANALOG_DIMING
|
|
} boost2_dim_source_enum;
|
|
|
|
/* (0x61) BOOST CTRL 6 BOOST2 and BOOST */
|
|
typedef enum {
|
|
BOOST_MODE_TYPE_I = 0,
|
|
BOOST_MODE_TYPE_II,
|
|
BOOST_MODE_TYPE_III,
|
|
BOOST_MODE_TYPE_IV
|
|
} boost_mode_sel_enum;
|
|
|
|
/* (0x65) DRIVER CTRL 4 FLASH */
|
|
/* typedef enum */
|
|
/* { */
|
|
/* FLASH_CURRENT_0MA=0, */
|
|
/* FLASH_CURRENT_50MA, */
|
|
/* FLASH_CURRENT_100MA, */
|
|
/* FLASH_CURRENT_150MA, */
|
|
/* FLASH_CURRENT_200MA, */
|
|
/* FLASH_CURRENT_250MA, */
|
|
/* FLASH_CURRENT_300MA, */
|
|
/* FLASH_CURRENT_350MA, */
|
|
/* FLASH_CURRENT_400MA, */
|
|
/* FLASH_CURRENT_450MA, */
|
|
/* FLASH_CURRENT_500MA, */
|
|
/* FLASH_CURRENT_550MA */
|
|
/* }flash_i_tune_enum; */
|
|
|
|
/* (0x68) DRIVER CTRL 7 BL */
|
|
typedef enum {
|
|
BL_I_CORSE_TUNE_4MA = 0,
|
|
BL_I_CORSE_TUNE_8MA,
|
|
BL_I_CORSE_TUNE_12MA,
|
|
BL_I_CORSE_TUNE_16MA,
|
|
BL_I_CORSE_TUNE_20MA,
|
|
BL_I_CORSE_TUNE_24MA,
|
|
BL_I_CORSE_TUNE_28MA,
|
|
BL_I_CORSE_TUNE_32MA
|
|
} bl_i_corse_tune_enum;
|
|
|
|
typedef enum {
|
|
BL_I_FINE_TUNE_0MA = 0,
|
|
BL_I_FINE_TUNE_MINUS_1MA,
|
|
BL_I_FINE_TUNE_MINUS_2MA,
|
|
BL_I_FINE_TUNE_MINUS_3MA,
|
|
BL_I_FINE_TUNE_PLUS_4MA,
|
|
BL_I_FINE_TUNE_PLUS_3MA,
|
|
BL_I_FINE_TUNE_PLUS_2MA,
|
|
BL_I_FINE_TUNE_PLUS_1MA
|
|
} bl_i_fine_tune_enum;
|
|
|
|
/* (0x6D) DRIVER CTRL 12 BL */
|
|
typedef enum {
|
|
BL_NUM_1 = 0,
|
|
BL_NUM_2,
|
|
BL_NUM_3,
|
|
BL_NUM_4,
|
|
BL_NUM_5,
|
|
BL_NUM_6,
|
|
BL_NUM_7,
|
|
BL_NUM_8
|
|
} bl_number_enum;
|
|
|
|
/* (0x74) CLASS_D CTRL 4 SPKL */
|
|
typedef enum {
|
|
SPKL_FB_FORCED_DTIN_DTIP = 0,
|
|
SPKL_FF_FORCED_DTIN_DTIP,
|
|
SPKL_FB_AUTO_CAL_DTCN_DTCP,
|
|
SPKL_FF_AUTO_CAL_DTCN_DTCP
|
|
} spkl_dmode_enum;
|
|
|
|
typedef enum {
|
|
SPKL_DTCAL_ENABLE_CLASS_D_R_READ_TIME_CAL = 0,
|
|
SPKL_DTCAL_DISABLE_CLASS_D_R_READ_TIME_CAL
|
|
} spkl_dtcal_enum;
|
|
|
|
/* (0x79) CLASS_D CTRL 9 SPKR */
|
|
typedef enum {
|
|
SPKR_FB_FORCED_DTIN_DTIP = 0,
|
|
SPKR_FF_FORCED_DTIN_DTIP,
|
|
SPKR_FB_AUTO_CAL_DTCN_DTCP,
|
|
SPKR_FF_AUTO_CAL_DTCN_DTCP
|
|
} spkr_dmode_enum;
|
|
|
|
typedef enum {
|
|
SPKR_DTCAL_ENABLE_CLASS_D_R_READ_TIME_CAL = 0,
|
|
SPKR_DTCAL_DISABLE_CLASS_D_R_READ_TIME_CAL
|
|
} spkr_dtcal_enum;
|
|
|
|
/* (0x81) CHARGER CTRL 1 */
|
|
typedef enum {
|
|
CHR_CURRENT_OFFSET_NO = 0,
|
|
CHR_CURRENT_OFFSET_PLUS_1_STEP = 1,
|
|
CHR_CURRENT_OFFSET_PLUS_2_STEP = 2,
|
|
CHR_CURRENT_OFFSET_MINUS_2_STEP = 6,
|
|
CHR_CURRENT_OFFSET_MINUS_1_STEP = 7
|
|
} cht_chr_offset_enum;
|
|
|
|
typedef enum {
|
|
CHR_CURRENT_50MA = 0,
|
|
CHR_CURRENT_90MA,
|
|
CHR_CURRENT_150MA,
|
|
CHR_CURRENT_225MA,
|
|
CHR_CURRENT_300MA,
|
|
CHR_CURRENT_450MA,
|
|
CHR_CURRENT_650MA,
|
|
CHR_CURRENT_800MA
|
|
} chr_chr_current_enum;
|
|
|
|
/* (0x83) TESTMODE CTRL 3 Analog Switch */
|
|
/* typedef enum */
|
|
/* { */
|
|
/* ASW_ASEL_ASW_2_SETS = 0, */
|
|
/* ASW_ASEL_SIMLS, */
|
|
/* ASW_ASEL_ASW_1_SET, */
|
|
/* ASW_ASEL_BL_CURRENT_SOURCE */
|
|
/* }asw_asel_enum; */
|
|
typedef enum {
|
|
ASW_ASEL_ISINK_6_8_AS = 0, /* ISINK 6~8 used as Analog Switch, others for BL */
|
|
ASW_ASEL_ALL_ISINK_BL = 3 /* All ISINK used for BL */
|
|
} asw_asel_enum;
|
|
|
|
|
|
typedef enum {
|
|
HI_Z = 0,
|
|
RECEIVER,
|
|
TWO_OF_RGB_DRIVER
|
|
/* TODO, the last item value */
|
|
} asw_bsel_enum;
|
|
|
|
/* (0x84) TESTMODE CTRL 4 Testmode */
|
|
typedef enum {
|
|
VGP2_ENABLE_WITH_SRCLKEN = 0,
|
|
VGP2_ENABLE_WITH_VGP2_EN
|
|
} vgp2_on_sel_enum;
|
|
|
|
|
|
/* (0x89) INT CTRL 1 */
|
|
typedef enum {
|
|
INT_EN_VCORE2_OC = 0x01,
|
|
INT_EN_VPA_OC = 0x02,
|
|
INT_EN_BOOST1_OC = 0x04,
|
|
INT_EN_BOOST2_OC = 0x08,
|
|
INT_EN_SPKL_OC = 0x10,
|
|
INT_EN_SPKR_OC = 0x20,
|
|
INT_EN_V3GTX_OC = 0x40,
|
|
INT_EN_V3GRX_OC = 0x80,
|
|
INT_EN_0X89_ALL = 0xFF,
|
|
INT1_EN_ALL = 0xFF
|
|
} int_ctrl_1_enum;
|
|
|
|
/* (0x8A) INT CTRL 2 */
|
|
typedef enum {
|
|
INT_EN_RF_OC = 0x01,
|
|
INT_EN_VTCXO_OC = 0x02,
|
|
INT_EN_VCAMA_OC = 0x04,
|
|
INT_EN_VWIFI3V3_OC = 0x08,
|
|
INT_EN_VWIFI2V8_OC = 0x10,
|
|
INT_EN_VSIM_OC = 0x20,
|
|
INT_EN_VBT_OC = 0x40,
|
|
INT_EN_VCAMD_OC = 0x80,
|
|
INT_EN_0X8A_ALL = 0xFF,
|
|
INT2_EN_ALL = 0xFF
|
|
} int_ctrl_2_enum;
|
|
|
|
/* (0x8B) INT CTRL 3 */
|
|
typedef enum {
|
|
INT_EN_VSDIO_OC = 0x01,
|
|
INT_EN_VGP_OC = 0x02,
|
|
INT_EN_VUSB_OC = 0x04,
|
|
INT_EN_CHRDET = 0x08,
|
|
INT_EN_OVP = 0x10,
|
|
INT_EN_WATCHDOG = 0x20,
|
|
INT_EN_PWRKEY = 0x40,
|
|
INT_EN_0X8B_ALL = 0x7F,
|
|
INT3_EN_ALL = 0x7F
|
|
} int_ctrl_3_enum;
|
|
|
|
|
|
/* (0x96) WATCHDOG CTRL and INT CTRL 4 */
|
|
typedef enum {
|
|
WDT_TIMEOUT_4_SEC = 0,
|
|
WDT_TIMEOUT_8_SEC,
|
|
WDT_TIMEOUT_16_SEC,
|
|
WDT_TIMEOUT_32_SEC
|
|
} wdt_timout_enum;
|
|
|
|
|
|
/* Combinational functions structures */
|
|
typedef enum {
|
|
VGP2_1_3 = 0,
|
|
VGP2_1_5,
|
|
VGP2_1_8,
|
|
VGP2_2_5,
|
|
VGP2_2_8,
|
|
VGP2_3_0,
|
|
VGP2_3_3
|
|
} vgp2_sel_enum;
|
|
|
|
|
|
#if 0
|
|
void pmic_init(void);
|
|
|
|
|
|
/* (0x09) STATUS 6 (RO) */
|
|
extern kal_bool pmic_boost2_oc_status(void);
|
|
extern kal_bool pmic_spkr_oc_det_status(void);
|
|
extern kal_bool pmic_spkl_oc_det_status(void);
|
|
extern kal_bool pmic_pwrkey_deb_status(void);
|
|
extern kal_bool pmic_ovp_status(void);
|
|
extern kal_bool pmic_chrdet_status(void);
|
|
extern kal_bool pmic_bat_on_status(void);
|
|
extern kal_bool pmic_cv_status(void);
|
|
|
|
/* (0x0D) INT STATUS 3 (RO) */
|
|
extern kal_uint8 pmic_int_status_3(void);
|
|
extern kal_bool pmic_vsdio_oc_int_status(void);
|
|
extern kal_bool pmic_vgp_oc_int_status(void);
|
|
extern kal_bool pmic_vusb_oc_int_status(void);
|
|
extern kal_bool pmic_ovp_int_status(void);
|
|
extern kal_bool pmic_chrdet_int_status(void);
|
|
|
|
|
|
/* (0x0E) INT STATUS 4 (RO) */
|
|
extern kal_uint8 pmic_int_status_4(void);
|
|
extern kal_bool pmic_watchdog_int_status(void);
|
|
extern void pmic_watchdog_clear(void);
|
|
|
|
/* (0x1B) LDO CTRL 2 VRF */
|
|
extern void pmic_vrf_ical_en(vrf_ical_en_enum sel);
|
|
extern void pmic_vrf_oc_auto_off(kal_bool auto_off);
|
|
extern void pmic_vrf_enable(kal_bool enable);
|
|
extern void pmic_vrf_cal(kal_uint8 val);
|
|
|
|
/* (0x1C) LDO CTRL 3 VRF */
|
|
extern void pmic_vrf_calst(vrf_calst_enum sel);
|
|
extern void pmic_vrf_caloc(vrf_caloc_enum sel);
|
|
extern void pmic_vrf_on_sel(vrf_on_sel_enum sel);
|
|
extern void pmic_vrf_en_force(kal_bool enable);
|
|
extern void pmic_vrf_plnmos_dis(kal_bool disable);
|
|
extern void pmic_vrf_cm(vrf_cm_enum sel);
|
|
|
|
/* (0x1E) LDO CTRL 5 VTCXO */
|
|
extern void pmic_vtcxo_ical_en(vtcxo_ical_en_enum sel);
|
|
extern void pmic_vtcxo_oc_auto_off(kal_bool auto_off);
|
|
extern void pmic_vtcxo_enable(kal_bool enable);
|
|
extern void pmic_vtcxo_cal(kal_uint8 val);
|
|
|
|
/* (0x1F) LDO CTRL 6 VTCXO */
|
|
extern void pmic_vtcxo_calst(vtcxo_calst_enum sel);
|
|
extern void pmic_vtcxo_caloc(vtcxo_caloc_enum sel);
|
|
extern void pmic_vtcxo_on_sel(vtcxo_on_sel_enum sel);
|
|
extern void pmic_vtcxo_en_force(kal_bool enable);
|
|
extern void pmic_vtcxo_plnmos_dis(kal_bool disable);
|
|
extern void pmic_vtcxo_cm(vtcxo_cm_enum sel);
|
|
|
|
/* (0x21) LDO CTRL 8 V3GTX */
|
|
extern void pmic_v3gtx_sel(v3gtx_vol vol);
|
|
extern void pmic_v3gtx_ical_en(v3gtx_ical_en_enum sel);
|
|
extern void pmic_v3gtx_cal(kal_uint8 val);
|
|
|
|
/* (0x22) LDO CTRL 9 V3GTX */
|
|
extern void pmic_v3gtx_calst(v3gtx_calst_enum sel);
|
|
extern void pmic_v3gtx_caloc(v3gtx_caloc_enum sel);
|
|
extern void pmic_v3gtx_oc_auto_off(kal_bool auto_off);
|
|
extern void pmic_v3gtx_enable(kal_bool enable);
|
|
extern void pmic_v3gtx_on_sel(v3gtx_on_sel_enum sel);
|
|
extern void pmic_v3gtx_en_force(kal_bool enable);
|
|
|
|
/* (0x24) LDO CTRL 11 V3GRX */
|
|
extern void pmic_v3grx_sel(v3grx_vol vol);
|
|
extern void pmic_3grx_ical_en(v3grx_ical_en_enum sel);
|
|
extern void pmic_v3grx_cal(kal_uint8 val);
|
|
|
|
/* (0x25) LDO CTRL 12 V3GRX */
|
|
extern void pmic_v3grx_calst(v3grx_calst_enum sel);
|
|
extern void pmic_v3grx_caloc(v3grx_caloc_enum sel);
|
|
extern void pmic_v3grx_oc_auto_off(kal_bool auto_off);
|
|
extern void pmic_v3grx_enable(kal_bool enable);
|
|
extern void pmic_v3grx_on_sel(v3grx_on_sel_enum sel);
|
|
extern void pmic_v3grx_en_force(kal_bool enable);
|
|
|
|
/* (0x2E) LDO CTRL 21 VCAMA */
|
|
extern void pmic_vcama_sel(vcama_sel_enum sel);
|
|
extern void pmic_vcama_ical_en(vcama_ical_en_enum sel);
|
|
extern void pmic_vcama_cal(kal_uint8 val);
|
|
|
|
/* (0x2F) LDO CTRL 22 VCAMA */
|
|
extern void pmic_vcama_calst(vcama_calst_enum sel);
|
|
extern void pmic_vcama_caloc(vcama_caloc_enum sel);
|
|
extern void pmic_vcama_enable(kal_bool enable);
|
|
extern void pmic_vcama_en_force(kal_bool enable);
|
|
extern void pmic_vcama_plnmos_dis(kal_bool disable);
|
|
extern void pmic_vcama_cm(vcama_cm_enum sel);
|
|
|
|
/* (0x31) LDO CTRL 24 VWIFI3V3 */
|
|
extern void pmic_vwifi3v3_sel(vwifi3v3_sel_enum sel);
|
|
extern void pmic_vwifi3v3_ical_en(vwifi3v3_ical_en_enum sel);
|
|
extern void pmic_vwifi3v3_cal(kal_uint8 val);
|
|
|
|
/* (0x32) LDO CTRL 25 VWIFI3V3 */
|
|
extern void pmic_vwifi3v3_calst(vwifi3v3_calst_enum sel);
|
|
extern void pmic_vwifi3v3_caloc(vwifi3v3_caloc_enum sel);
|
|
extern void pmic_vwifi3v3_enable(kal_bool enable);
|
|
extern void pmic_vwifi3v3_en_force(kal_bool enable);
|
|
extern void pmic_vwifi3v3_plnmos_dis(kal_bool disable);
|
|
extern void pmic_vwifi3v3_cm(vwifi3v3_cm_enum sel);
|
|
|
|
/* (0x34) LDO CTRL 27 VWIFI2V8 */
|
|
extern void pmic_vwifi2v8_sel(vwifi2v8_sel_enum sel);
|
|
extern void pmic_vwifi2v8_ical_en(vwifi2v8_ical_en_enum sel);
|
|
extern void pmic_vwifi2v8_cal(kal_uint8 val);
|
|
|
|
/* (0x35) LDO CTRL 28 VWIFI2V8 */
|
|
extern void pmic_vwifi2v8_calst(vwifi2v8_calst_enum sel);
|
|
extern void pmic_vwifi2v8_caloc(vwifi2v8_caloc_enum sel);
|
|
extern void pmic_vwifi2v8_enable(kal_bool enable);
|
|
extern void pmic_vwifi2v8_en_force(kal_bool enable);
|
|
extern void pmic_vwifi2v8_plnmos_dis(kal_bool disable);
|
|
extern void pmic_vwifi2v8_cm(vwifi2v8_cm_enum sel);
|
|
|
|
/* (0x37) LDO CTRL 30 VSIM */
|
|
/* void pmic_vsim_sel(vsim_sel_enum sel); */
|
|
extern void pmic6326_vsim_sel(vsim_sel_enum sel);
|
|
extern void pmic6326_vsim_sel(vsim_sel_enum sel);
|
|
extern void pmic_vsim_enable(kal_bool enable);
|
|
extern void pmic_vsim_ical_en(vsim_ical_en_enum sel);
|
|
extern void pmic_vsim_en_force(kal_bool enable);
|
|
extern void pmic_vsim_plnmos_dis(kal_bool disable);
|
|
|
|
/* (0x38) LDO CTRL 31 VSIM */
|
|
extern void pmic_vsim_cal(kal_uint8 val);
|
|
|
|
/* (0x3A) LDO CTRL 33 VUSB */
|
|
/* USB voltage is NOT opened for change */
|
|
/* extern void pmic_vusb_sel(vusb_sel_enum sel); */
|
|
extern void pmic_vusb_enable(kal_bool enable);
|
|
extern void pmic_vusb_ical_en(vusb_ical_en_enum sel);
|
|
extern void pmic_vusb_en_force(kal_bool enable);
|
|
extern void pmic_vusb_plnmos_dis(kal_bool disable);
|
|
|
|
/* (0x3B) LDO CTRL 34 VUSB */
|
|
extern void pmic_vusb_cal(kal_uint8 val);
|
|
extern void pmic_vusb_calst(vusb_calst_enum sel);
|
|
extern void pmic_vusb_caloc(vusb_caloc_enum sel);
|
|
|
|
/* (0x3D) LDO CTRL 36 VBT */
|
|
extern void pmic_vbt_sel(vbt_sel_enum sel);
|
|
extern void pmic_vbt_enable(kal_bool enable);
|
|
extern void pmic_vbt_ical_en(vbt_ical_en_enum sel);
|
|
extern void pmic_vbt_en_force(kal_bool enable);
|
|
extern void pmic_vbt_plnmos_dis(kal_bool disable);
|
|
|
|
/* (0x3E) LDO CTRL 37 VBT */
|
|
extern void pmic_vbt_cal(kal_uint8 val);
|
|
extern void pmic_vbt_calst(vbt_calst_enum sel);
|
|
extern void pmic_vbt_caloc(vbt_caloc_enum sel);
|
|
|
|
/* (0x40) LDO CTRL 39 VCAMD */
|
|
extern void pmic_vcamd_sel(vcamd_sel_enum sel);
|
|
extern void pmic_vcamd_enable(kal_bool enable);
|
|
extern void pmic_vcamd_ical_en(vcamd_ical_en_enum sel);
|
|
extern void pmic_vcamd_en_force(kal_bool enable);
|
|
extern void pmic_vcamd_plnmos_dis(kal_bool disable);
|
|
|
|
/* (0x41) LDO CTRL 40 VCAMD */
|
|
extern void pmic_vcamd_cal(kal_uint8 val);
|
|
extern void pmic_vcamd_calst(vcamd_calst_enum sel);
|
|
extern void pmic_vcamd_caloc(vcamd_caloc_enum sel);
|
|
|
|
/* (0x43) LDO CTRL 42 VGP */
|
|
extern void pmic_vgp_sel(vgp_sel_enum sel);
|
|
extern void pmic_vgp_enable(kal_bool enable);
|
|
|
|
/* (0x44) LDO CTRL 43 VGP */
|
|
extern void pmic_vgp_cal(kal_uint8 val);
|
|
|
|
/* (0x46) LDO CTRL 45 VSDIO */
|
|
extern void pmic_vsdio_ical_en(vsdio_ical_en_enum sel);
|
|
extern void pmic_vsdio_enable(kal_bool enable);
|
|
extern void pmic_vsdio_en_force(kal_bool enable);
|
|
extern void pmic_vsdio_cal(kal_uint8 val);
|
|
|
|
/* (0x47) LDO CTRL 46 VSDIO */
|
|
extern void pmic_vsdio_calst(vsdio_calst_enum sel);
|
|
extern void pmic_vsdio_caloc(vsdio_caloc_enum sel);
|
|
extern void pmic_vsdio_plnmos_dis(kal_bool disable);
|
|
extern void pmic_vsdio_sel(vsdio_sel_enum sel);
|
|
extern void pmic_vsdio_cm(vsdio_cm_enum sel);
|
|
|
|
/* (0x48) LDO CTRL 47 VSDIO */
|
|
extern void pmic_vcore1_dvfs_step_inc(kal_uint8 val);
|
|
|
|
/* (0x4E) BUCK CTRL 6 VCORE1 */
|
|
extern void pmic_vcore1_dvfs_0_eco3(kal_uint8 val);
|
|
|
|
/* (0x4F) BUCK CTRL 7 VCORE1 */
|
|
extern void pmic_vcore1_sleep_0_eco3(kal_uint8 val);
|
|
extern void pmic_vcore1_dvfs_ramp_enable(kal_bool enable);
|
|
extern void pmic_vcore1_dvfs_target_update(kal_bool update);
|
|
|
|
/* (0x51) BUCK CTRL 9 VCORE2 */
|
|
extern void pmic_vcore2_dvfs_0_eco3(kal_uint8 val);
|
|
|
|
|
|
/* (0x52) BUCK CTRL 10 VCORE2 */
|
|
extern void pmic_vcore2_enable(kal_bool enable);
|
|
extern void pmic_vcore2_sleep_0_eco3(kal_uint8 val);
|
|
|
|
/* (0x53) BUCK CTRL 11 VCORE2 */
|
|
extern void pmic_vcore2_on_sel(vcore2_on_sel_enum sel);
|
|
|
|
/* (0x57) BUCK CTRL 15 VMEM */
|
|
extern void pmic_vcore1_sleep_1_eco3(kal_uint8 val);
|
|
extern void pmic_vcore1_dvfs_1_eco3(kal_uint8 val);
|
|
|
|
/* (0x58) BUCK CTRL 16 VPA */
|
|
extern void pmic_vpa_tuneh(kal_uint8 value);
|
|
extern void pmic_vpa_en_force(kal_bool enable);
|
|
extern void pmic_vpa_plnmos_dis(kal_bool disable);
|
|
extern void pmic_vpa_enable(kal_bool enable);
|
|
|
|
/* (0x59) BUCK CTRL 17 VPA */
|
|
extern void pmic_vpa_tunel(kal_uint8 value);
|
|
|
|
/* (0x5A) BUCK CTRL 18 VPA */
|
|
extern void pmic_vpa_oc_tune(kal_uint8 val);
|
|
|
|
/* (0x5C) BOOST CTRL 1 BOOST1 */
|
|
extern void pmic_vboost1_tune(vboost1_tune_enum sel);
|
|
extern void pmic_vboost1_tatt(kal_uint8 val);
|
|
|
|
/* (0x5D) BOOST CTRL 2 BOOST1 */
|
|
extern void pmic_boost1_oc_th(kal_uint8 val);
|
|
extern void pmic_boost1_enable(kal_bool enable);
|
|
extern void pmic_boost1_pre_sr_con(kal_uint8 val);
|
|
extern void pmic_boost1_soft_st_speed(boost1_soft_st_speed_enum sel);
|
|
|
|
/* (0x5E) BOOST CTRL 3 BOOST1 */
|
|
extern void pmic_boost1_dio_sr_con(kal_uint8 val);
|
|
extern void pmic_boost1_sync_enable(kal_bool enable);
|
|
|
|
|
|
/* (0x5F) BOOST CTRL 4 BOOST2 */
|
|
extern void pmic_boost2_tune(vboost2_tune_enum sel);
|
|
extern void pmic_boots2_oc_th(boost2_oc_th_enum sel);
|
|
extern void pmic_boost2_dim_source(boost2_dim_source_enum sel);
|
|
|
|
/* (0x60) BOOST CTRL 5 BOOST2 */
|
|
extern void pmic_boost2_pre_sr_con(kal_uint8 val);
|
|
extern void pmic_boost2_enable(kal_bool enable);
|
|
|
|
/* (0x61) BOOST CTRL 6 BOOST2 and BOOST */
|
|
extern void pmic_boost_mode(boost_mode_sel_enum sel);
|
|
|
|
/* (0x64) DRIVER CTRL 3 GEN */
|
|
extern void pmic_igen_drv_isel(kal_uint8 sel);
|
|
extern void pmic_igen_drv_force(kal_bool force);
|
|
extern void pmic_vgen_drv_bgsel(kal_uint8 sel);
|
|
|
|
/* (0x65) DRIVER CTRL 4 FLASH */
|
|
extern void pmic_flash_i_tune(kal_uint8 val);
|
|
extern void pmic_flash_dim_div(kal_uint8 val);
|
|
|
|
/* (0x66) DRIVER CTRL 5 FLASH */
|
|
extern void pmic_flash_dim_duty(kal_uint8 duty);
|
|
extern void pmic_flash_enable(kal_bool enable);
|
|
extern void pmic_flash_bypass(kal_bool bypass);
|
|
|
|
/* (0x67) DRIVER CTRL 6 BL */
|
|
extern void pmic_bl_dim_duty(kal_uint8 duty);
|
|
extern void pmic_bl_enable(kal_bool enable);
|
|
extern void pmic_bl_i_cal_enable(kal_bool enable);
|
|
extern void pmic_bl_bypass(kal_bool bypass);
|
|
|
|
/* (0x68) DRIVER CTRL 7 BL */
|
|
extern void pmic_bl_i_corse_tune(bl_i_corse_tune_enum sel);
|
|
extern void pmic_bl_i_fine_tune(bl_i_fine_tune_enum sel);
|
|
|
|
/* (0x6D) DRIVER CTRL 12 BL */
|
|
extern void pmic_bl_dim_div(kal_uint8 val);
|
|
extern void pmic_bl_number(bl_number_enum num);
|
|
|
|
/* (0x6E) DRIVER CTRL 13 KP */
|
|
extern void pmic_kp_dim_div(kal_uint8 val);
|
|
extern void pmic_kp_enable(kal_bool enable);
|
|
|
|
/* (0x6F) DRIVER CTRL 14 KP */
|
|
extern void pmic_kp_dim_duty(kal_uint8 duty);
|
|
|
|
/* (0x70) DRIVER CTRL 15 VIBR */
|
|
extern void pmic_vibr_dim_div(kal_uint8 val);
|
|
extern void pmic_vibr_enable(kal_bool enable);
|
|
|
|
/* (0x71) DRIVER CTRL 16 VIBR */
|
|
extern void pmic_vibr_dim_duty(kal_uint8 duty);
|
|
|
|
/* (0x73) CLASS_D CTRL 3 SPKL */
|
|
extern void pmic_spkl_dtin(kal_uint8 val);
|
|
extern void pmic_spkl_dtip(kal_uint8 val);
|
|
|
|
/* (0x74) CLASS_D CTRL 4 SPKL */
|
|
extern void pmic_spkl_dmode(spkl_dmode_enum sel);
|
|
extern void pmic_spkl_enable(kal_bool enable);
|
|
extern void pmic_spkl_dtcal(spkl_dtcal_enum sel);
|
|
|
|
/* (0x78) CLASS_D CTRL 8 SPKR */
|
|
extern void pmic_spkr_dtin(kal_uint8 val);
|
|
extern void pmic_spkr_dtip(kal_uint8 val);
|
|
|
|
/* (0x79) CLASS_D CTRL 9 SPKR */
|
|
extern void pmic_spkr_dmode(spkr_dmode_enum sel);
|
|
extern void pmic_spkr_enable(kal_bool enable);
|
|
extern void pmic_spkr_dtcal(spkr_dtcal_enum sel);
|
|
|
|
|
|
/* (0x81) CHARGER CTRL 1 */
|
|
extern void pmic_chr_offset(cht_chr_offset_enum sel);
|
|
extern void pmic_chr_ov_th_high(void);
|
|
extern void pmic_chr_current(chr_chr_current_enum current);
|
|
|
|
/* (0x82) CHARGER CTRL 2 */
|
|
extern void pmic_chr_cv_rt(void);
|
|
extern void pmic_chr_force(kal_bool force);
|
|
extern void pmic_chr_chr_enable(kal_bool enable);
|
|
extern void pmic_chr_cv_tune(void);
|
|
/* (0x83) TESTMODE CTRL 3 Analog Switch */
|
|
extern void pmic_asw_asel(asw_asel_enum sel);
|
|
extern void pmic_asw_bsel(asw_bsel_enum sel);
|
|
extern void pmic_asw_a1sel(kal_uint8 sel);
|
|
extern void pmic_asw_a2sel(kal_uint8 sel);
|
|
/* (0x86) TESTMODE CTRL 6 BB AUXADC Related */
|
|
extern void pmic_adc_isense_enable(kal_bool enable);
|
|
extern void pmic_adc_vbat_enable(kal_bool enable);
|
|
extern void pmic6326_adc_meas_on(kal_bool on); /* exported for controling vbat, isense adc measure at same time */
|
|
|
|
/* (0x89) INT CTRL 1 */
|
|
extern void pmic_int_ctrl_1_enable(int_ctrl_1_enum sel, kal_bool enable);
|
|
/* (0x8A) INT CTRL 2 */
|
|
extern void pmic_int_ctrl_2_enable(int_ctrl_2_enum sel, kal_bool enable);
|
|
/* (0x8B) INT CTRL 2 */
|
|
extern void pmic_int_ctrl_3_enable(int_ctrl_3_enum sel, kal_bool enable);
|
|
|
|
/* (0x96) WATCHDOG CTRL and INT CTRL 4 */
|
|
extern void pmic_wdt_timeout(wdt_timout_enum sel);
|
|
extern void pmic_intr_polarity(kal_bool assert);
|
|
extern void pmic_wdt_enable(kal_bool enable);
|
|
|
|
|
|
/* Combinational functions */
|
|
extern void pmic_vgp2_enable(kal_bool enable);
|
|
extern void pmic_vgp2_sel(vgp2_sel_enum sel);
|
|
extern void pmic_vgp2_on_sel(vgp2_on_sel_enum sel);
|
|
extern void pmic_vgp2_sell(kal_uint8 value);
|
|
extern void pmic_vgp2_selh(kal_uint8 value);
|
|
extern void pmic_vsim2_enable(kal_bool enable);
|
|
extern void pmic_vsim2_sel(vsim_sel_enum sel);
|
|
extern void pmic_spk_enable(kal_bool enable);
|
|
|
|
extern void pmic6326_EM_reg_write(kal_uint8 reg, kal_uint8 val);
|
|
extern kal_uint8 pmic6326_EM_reg_read(kal_uint8 reg);
|
|
|
|
#if defined(DRV_MISC_PMIC_ASSERT_KEEP_CHARGING)
|
|
extern void pmic6326_assert_chaging_kick(void);
|
|
#endif /* #if defined(DRV_MISC_PMIC_ASSERT_KEEP_CHARGING) */
|
|
|
|
/* The following are implemented in custom files */
|
|
/* MoDIS parser skip start */
|
|
extern void pmic6326_customization_init(void);
|
|
extern void pmic6326_cust_vspk_enable(kal_bool enable);
|
|
extern void pmic6326_csut_vsim_enable(kal_bool enable);
|
|
extern void pmic6326_csut_vsim_sel(pmic_adpt_vsim_volt volt);
|
|
extern void pmic6326_csut_vsim2_enable(kal_bool enable);
|
|
extern void pmic6326_csut_vsim2_sel(pmic_adpt_vsim_volt sel);
|
|
extern void pmic6326_csut_vusb_enable(kal_bool enable);
|
|
extern void pmic6326_csut_vcama_enable(kal_bool enable);
|
|
extern void pmic6326_csut_vcama_sel(pmic_adpt_vcama_volt vol);
|
|
extern void pmic6326_csut_vcamd_enable(kal_bool enable);
|
|
extern void pmic6326_csut_vcamd_sel(pmic_adpt_vcamd_volt volt);
|
|
/* MoDIS parser skip end */
|
|
|
|
#endif
|
|
|
|
/* ======================================================================================= */
|
|
|
|
#endif /* #ifndef __PMIC6326_SW_H__ */
|