Files
2018-03-13 20:29:02 +01:00

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__ */