/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright (C) 2020 ROHM Semiconductors */
#ifndef BD99954_CHARGER_H
#define BD99954_CHARGER_H
#include <linux/regmap.h>
#define BD9995X_MANUFACTURER "Rohm Semiconductor"
#define BD9995X_IRQ_PIN "bd9995x_irq"
#define BD9995X_VSYS_PRECHARGE_OFFSET_MV 200
#define BD99954_ID 0 x346
#define BD99955_ID 0 x221
#define BD99956_ID 0 x331
/* Battery Charger Commands */
#define CHARGING_CURRENT 0 x14
#define CHARGING_VOLTAGE 0 x15
#define PROTECT_SET 0 x3E
#define MAP_SET 0 x3F
/* Extended commands */
#define CHGSTM_STATUS 0 x100
#define VBAT_VSYS_STATUS 0 x101
#define VBUS_VCC_STATUS 0 x102
#define CHGOP_STATUS 0 x103
#define WDT_STATUS 0 x104
#define CUR_ILIM_VAL 0 x105
#define SEL_ILIM_VAL 0 x106
#define IBUS_LIM_SET 0 x107
#define ICC_LIM_SET 0 x108
#define IOTG_LIM_SET 0 x109
#define VIN_CTRL_SET 0 x10A
#define CHGOP_SET1 0 x10B
#define CHGOP_SET2 0 x10C
#define VBUSCLPS_TH_SET 0 x10D
#define VCCCLPS_TH_SET 0 x10E
#define CHGWDT_SET 0 x10F
#define BATTWDT_SET 0 x110
#define VSYSREG_SET 0 x111
#define VSYSVAL_THH_SET 0 x112
#define VSYSVAL_THL_SET 0 x113
#define ITRICH_SET 0 x114
#define IPRECH_SET 0 x115
#define ICHG_SET 0 x116
#define ITERM_SET 0 x117
#define VPRECHG_TH_SET 0 x118
#define VRBOOST_SET 0 x119
#define VFASTCHG_REG_SET1 0 x11A
#define VFASTCHG_REG_SET2 0 x11B
#define VFASTCHG_REG_SET3 0 x11C
#define VRECHG_SET 0 x11D
#define VBATOVP_SET 0 x11E
#define IBATSHORT_SET 0 x11F
#define PROCHOT_CTRL_SET 0 x120
#define PROCHOT_ICRIT_SET 0 x121
#define PROCHOT_INORM_SET 0 x122
#define PROCHOT_IDCHG_SET 0 x123
#define PROCHOT_VSYS_SET 0 x124
#define PMON_IOUT_CTRL_SET 0 x125
#define PMON_DACIN_VAL 0 x126
#define IOUT_DACIN_VAL 0 x127
#define VCC_UCD_SET 0 x128
#define VCC_UCD_STATUS 0 x129
#define VCC_IDD_STATUS 0 x12A
#define VCC_UCD_FCTRL_SET 0 x12B
#define VCC_UCD_FCTRL_EN 0 x12C
#define VBUS_UCD_SET 0 x130
#define VBUS_UCD_STATUS 0 x131
#define VBUS_IDD_STATUS 0 x132
#define VBUS_UCD_FCTRL_SET 0 x133
#define VBUS_UCD_FCTRL_EN 0 x134
#define CHIP_ID 0 x138
#define CHIP_REV 0 x139
#define IC_SET1 0 x13A
#define IC_SET2 0 x13B
#define SYSTEM_STATUS 0 x13C
#define SYSTEM_CTRL_SET 0 x13D
#define VM_CTRL_SET 0 x140
#define THERM_WINDOW_SET1 0 x141
#define THERM_WINDOW_SET2 0 x142
#define THERM_WINDOW_SET3 0 x143
#define THERM_WINDOW_SET4 0 x144
#define THERM_WINDOW_SET5 0 x145
#define IBATP_TH_SET 0 x146
#define IBATM_TH_SET 0 x147
#define VBAT_TH_SET 0 x148
#define THERM_TH_SET 0 x149
#define IACP_TH_SET 0 x14A
#define VACP_TH_SET 0 x14B
#define VBUS_TH_SET 0 x14C
#define VCC_TH_SET 0 x14D
#define VSYS_TH_SET 0 x14E
#define EXTIADP_TH_SET 0 x14F
#define IBATP_VAL 0 x150
#define IBATP_AVE_VAL 0 x151
#define IBATM_VAL 0 x152
#define IBATM_AVE_VAL 0 x153
#define VBAT_VAL 0 x154
#define VBAT_AVE_VAL 0 x155
#define THERM_VAL 0 x156
#define VTH_VAL 0 x157
#define IACP_VAL 0 x158
#define IACP_AVE_VAL 0 x159
#define VACP_VAL 0 x15A
#define VACP_AVE_VAL 0 x15B
#define VBUS_VAL 0 x15C
#define VBUS_AVE_VAL 0 x15D
#define VCC_VAL 0 x15E
#define VCC_AVE_VAL 0 x15F
#define VSYS_VAL 0 x160
#define VSYS_AVE_VAL 0 x161
#define EXTIADP_VAL 0 x162
#define EXTIADP_AVE_VAL 0 x163
#define VACPCLPS_TH_SET 0 x164
#define INT0_SET 0 x168
#define INT1_SET 0 x169
#define INT2_SET 0 x16A
#define INT3_SET 0 x16B
#define INT4_SET 0 x16C
#define INT5_SET 0 x16D
#define INT6_SET 0 x16E
#define INT7_SET 0 x16F
#define INT0_STATUS 0 x170
#define INT1_STATUS 0 x171
#define INT2_STATUS 0 x172
#define INT3_STATUS 0 x173
#define INT4_STATUS 0 x174
#define INT5_STATUS 0 x175
#define INT6_STATUS 0 x176
#define INT7_STATUS 0 x177
#define OTPREG0 0 x17A
#define OTPREG1 0 x17B
#define SMBREG 0 x17C
#define DEBUG_MODE_SET 0 x17F
#define DEBUG0x14 0 x214
#define DEBUG0x1A 0 x21A
enum bd9995x_fields {
F_PREV_CHGSTM_STATE, F_CHGSTM_STATE,
F_VBAT_VSYS_STATUS,
F_VBUS_VCC_STATUS,
F_BATTEMP, F_VRECHG_DET, F_RBOOST_UV, F_RBOOSTS,
F_THERMWDT_VAL, F_CHGWDT_VAL,
F_CUR_ILIM_VAL,
F_SEL_ILIM_VAL,
F_IBUS_LIM_SET,
F_ICC_LIM_SET,
F_IOTG_LIM_SET,
F_OTG_BOTH_EN,
F_VRBOOST_TRIG,
F_VRBOOST_EN,
F_PP_BOTH_THRU,
F_VIN_ORD,
F_VBUS_EN,
F_VCC_EN,
F_VSYS_PRIORITY,
F_PPC_SUB_CAP,
F_PPC_CAP,
F_DCP_2500_SEL,
F_SDP_500_SEL,
F_ILIM_AUTO_DISEN,
F_VCC_BC_DISEN,
F_VBUS_BC_DISEN,
F_SDP_CHG_TRIG_EN,
F_SDP_CHG_TRIG,
F_AUTO_TOF,
F_AUTO_FST,
F_AUTO_RECH,
F_ILIM_RESET_EN,
F_DCDC_1MS_SEL,
F_SEL_ILIM_DIV,
F_BATT_LEARN,
F_CHG_EN,
F_USB_SUS,
F_CHOP_SS_INIT,
F_CHOP_ALL_INIT,
F_DCDC_CLK_SEL,
F_CHOP_SS,
F_CHOP_ALL,
F_VBUSCLPS_TH_SET,
F_VCCCLPS_TH_SET,
F_WDT_FST,
F_WDT_PRE,
F_WDT_IBAT_SHORT,
F_WDT_THERM,
F_VSYSREG_SET,
F_VSYSVAL_THH_SET,
F_VSYSVAL_THL_SET,
F_ITRICH_SET,
F_IPRECH_SET,
F_ICHG_SET,
F_ITERM_SET,
F_VPRECHG_TH_SET,
F_VRBOOST_SET,
F_VFASTCHG_REG_SET1,
F_VFASTCHG_REG_SET2,
F_VFASTCHG_REG_SET3,
F_VRECHG_SET,
F_VBATOVP_SET,
F_IBATM_SHORT_SET,
F_PROCHOT_DG_SET,
F_PROCHOT_ICRIT_DG_SET,
F_PROCHOT_IDCHG_DG_SET,
F_PROCHOT_EN,
F_PROCHOT_ICRIT_SET,
F_PROCHOT_INORM_SET,
F_PROCHOT_IDCHG_SET,
F_PROCHOT_VSYS_SET,
F_IMON_INSEL,
F_PMON_INSEL,
F_IOUT_OUT_EN,
F_IOUT_SOURCE_SEL,
F_IOUT_GAIN_SET,
F_PMON_OUT_EN,
F_PMON_GAIN_SET,
F_PMON_DACIN_VAL,
F_IOUT_DACIN_VAL,
F_VCC_BCSRETRY,
F_VCC_ADCRTRY,
F_VCC_USBDETEN,
F_VCC_IDRDETEN,
F_VCC_ENUMRDY,
F_VCC_ADCPOLEN,
F_VCC_DCDMODE,
F_VCC_USB_SW_EN,
F_VCC_USB_SW,
F_VCC_DCDFAIL,
F_VCC_CHGPORT,
F_VCC_PUPDET,
F_VCC_VBUS_VLD,
F_VCC_CHGDET,
F_VCC_OTGDET,
F_VCC_VBINOP,
F_VCC_EXTID,
F_VCC_IDRDET,
F_VCC_INDO,
F_VCC_UCDSWEN,
F_VCC_RREF_EN,
F_VCC_DPPU_EN,
F_VCC_DPREF_EN,
F_VCC_DMREF_EN,
F_VCC_DPDET_EN,
F_VCC_DMDET_EN,
F_VCC_DPSINK_EN,
F_VCC_DMSINK_EN,
F_VCC_DP_BUFF_EN,
F_VCC_DM_BUFF_EN,
F_VCC_EXTCLKENBL,
F_VCC_PLSTESTEN,
F_VCC_UCDSWEN_TSTENB,
F_VCC_RREF_EN_TSTENB,
F_VCC_DPPU_EN_TSTENB,
F_VCC_DPREF_EN_TSTENB,
F_VCC_DMREF_EN_TSTENB,
F_VCC_DPDET_EN_TSTENB,
F_VCC_DMDET_EN_TSTENB,
F_VCC_DPSINK_EN_TSTENB,
F_VCC_DMSINK_EN_TSTENB,
F_VCC_DP_BUFF_EN_TSTENB,
F_VCC_DM_BUFF_EN_TSTENB,
F_VBUS_BCSRETRY,
F_VBUS_ADCRTRY,
F_VBUS_USBDETEN,
F_VBUS_IDRDETEN,
F_VBUS_ENUMRDY,
F_VBUS_ADCPOLEN,
F_VBUS_DCDMODE,
F_VBUS_USB_SW_EN,
F_VBUS_USB_SW,
F_VBUS_DCDFAIL,
F_VBUS_CHGPORT,
F_VBUS_PUPDET,
F_VBUS_VBUS_VLD,
F_VBUS_CHGDET,
F_VBUS_OTGDET,
F_VBUS_VBINOP,
F_VBUS_EXTID,
F_VBUS_IDRDET,
F_VBUS_INDO,
F_VBUS_UCDSWEN,
F_VBUS_RREF_EN,
F_VBUS_DPPU_EN,
F_VBUS_DPREF_EN,
F_VBUS_DMREF_EN,
F_VBUS_DPDET_EN,
F_VBUS_DMDET_EN,
F_VBUS_DPSINK_EN,
F_VBUS_DMSINK_EN,
F_VBUS_DP_BUFF_EN,
F_VBUS_DM_BUFF_EN,
F_VBUS_EXTCLKENBL,
F_VBUS_PLSTESTEN,
F_VBUS_UCDSWEN_TSTENB,
F_VBUS_RREF_EN_TSTENB,
F_VBUS_DPPU_EN_TSTENB,
F_VBUS_DPREF_EN_TSTENB,
F_VBUS_DMREF_EN_TSTENB,
F_VBUS_DPDET_EN_TSTENB,
F_VBUS_DMDET_EN_TSTENB,
F_VBUS_DPSINK_EN_TSTENB,
F_VBUS_DMSINK_EN_TSTENB,
F_VBUS_DP_BUFF_EN_TSTENB,
F_VBUS_DM_BUFF_EN_TSTENB,
F_CHIP_ID,
F_CHIP_REV,
F_ONE_CELL_MODE,
F_cell,
F_VACP_AUTO_DISCHG,
F_VACP_LOAD,
F_ACOK_POL,
F_ACOK_DISEN,
F_DEBUG_SET1,
F_DEBUG_SET0,
F_MONRST_STATE,
F_ALMRST_STATE,
F_CHGRST_STATE,
F_OTPLD_STATE,
F_ALLRST_STATE,
F_PROTECT_SET,
F_MAP_SET,
F_ADCINTERVAL,
F_ADCMOD,
F_ADCTMOD,
F_EXTIADPEN,
F_VSYSENB,
F_VCCENB,
F_VBUSENB,
F_VACPENB,
F_IACPENB,
F_THERMENB,
F_VBATENB,
F_IBATMENB,
F_IBATPENB,
F_TMPTHR1B,
F_TMPTHR1A,
F_TMPTHR2B,
F_TMPTHR2A,
F_TMPTHR3B,
F_TMPTHR3A,
F_TMPTHR4B,
F_TMPTHR4A,
F_TMPTHR5B,
F_TMPTHR5A,
F_IBATP_TH_SET,
F_IBATM_TH_SET,
F_VBAT_TH_SET,
F_THERM_TH_SET,
F_IACP_TH_SET,
F_VACP_TH_SET,
F_VBUS_TH_SET,
F_VCC_TH_SET,
F_VSYS_TH_SET,
F_EXTIADP_TH_SET,
F_IBATP_VAL,
F_IBATP_AVE_VAL,
F_IBATM_VAL,
F_IBATM_AVE_VAL,
F_VBAT_VAL,
F_VBAT_AVE_VAL,
F_THERM_VAL,
F_VTH_VAL,
F_IACP_VAL,
F_IACP_AVE_VAL,
F_VACP_VAL,
F_VACP_AVE_VAL,
F_VBUS_VAL,
F_VBUS_AVE_VAL,
F_VCC_VAL,
F_VCC_AVE_VAL,
F_VSYS_VAL,
F_VSYS_AVE_VAL,
F_EXTIADP_VAL,
F_EXTIADP_AVE_VAL,
F_VACPCLPS_TH_SET,
F_INT7_SET,
F_INT6_SET,
F_INT5_SET,
F_INT4_SET,
F_INT3_SET,
F_INT2_SET,
F_INT1_SET,
F_INT0_SET,
F_VBUS_RBUV_DET,
F_VBUS_RBUV_RES,
F_VBUS_TH_DET,
F_VBUS_TH_RES,
F_VBUS_IIN_MOD,
F_VBUS_OV_DET,
F_VBUS_OV_RES,
F_VBUS_CLPS_DET,
F_VBUS_CLPS,
F_VBUS_DET,
F_VBUS_RES,
F_VCC_RBUV_DET,
F_VCC_RBUV_RES,
F_VCC_TH_DET,
F_VCC_TH_RES,
F_VCC_IIN_MOD,
F_VCC_OVP_DET,
F_VCC_OVP_RES,
F_VCC_CLPS_DET,
F_VCC_CLPS_RES,
F_VCC_DET,
F_VCC_RES,
F_TH_DET,
F_TH_RMV,
F_TMP_OUT_DET,
F_TMP_OUT_RES,
F_VBAT_TH_DET,
F_VBAT_TH_RES,
F_IBAT_SHORT_DET,
F_IBAT_SHORT_RES,
F_VBAT_OV_DET,
F_VBAT_OV_RES,
F_BAT_ASSIST_DET,
F_BAT_ASSIST_RES,
F_VSYS_TH_DET,
F_VSYS_TH_RES,
F_VSYS_OV_DET,
F_VSYS_OV_RES,
F_VSYS_SHT_DET,
F_VSYS_SHT_RES,
F_VSYS_UV_DET,
F_VSYS_UV_RES,
F_OTP_LOAD_DONE,
F_PWR_ON,
F_EXTIADP_TRNS,
F_EXTIADP_TH_DET,
F_EXIADP_TH_RES,
F_BAT_MNT_DET,
F_BAT_MNT_RES,
F_TSD_DET,
F_TSD_RES,
F_CHGWDT_EXP,
F_THERMWDT_EXP,
F_TMP_TRNS,
F_CHG_TRNS,
F_VBUS_UCD_PORT_DET,
F_VBUS_UCD_UCHG_DET,
F_VBUS_UCD_URID_RMV,
F_VBUS_UCD_OTG_DET,
F_VBUS_UCD_URID_MOD,
F_VCC_UCD_PORT_DET,
F_VCC_UCD_UCHG_DET,
F_VCC_UCD_URID_RMV,
F_VCC_UCD_OTG_DET,
F_VCC_UCD_URID_MOD,
F_PROCHOT_DET,
F_PROCHOT_RES,
F_VACP_DET,
F_VACP_RES,
F_VACP_TH_DET,
F_VACP_TH_RES,
F_IACP_TH_DET,
F_IACP_THE_RES,
F_THERM_TH_DET,
F_THERM_TH_RES,
F_IBATM_TH_DET,
F_IBATM_TH_RES,
F_IBATP_TH_DET,
F_IBATP_TH_RES,
F_INT7_STATUS,
F_INT6_STATUS,
F_INT5_STATUS,
F_INT4_STATUS,
F_INT3_STATUS,
F_INT2_STATUS,
F_INT1_STATUS,
F_INT0_STATUS,
F_ILIM_DECREASE,
F_RESERVE_OTPREG1,
F_POWER_SAVE_MODE,
F_DEBUG_MODE_SET,
F_DEBUG0x14,
F_DEBUG0x1A,
F_MAX_FIELDS
};
static const struct reg_field bd9995x_reg_fields[] = {
[F_PREV_CHGSTM_STATE] = REG_FIELD(CHGSTM_STATUS, 8 , 14 ),
[F_CHGSTM_STATE] = REG_FIELD(CHGSTM_STATUS, 0 , 6 ),
[F_VBAT_VSYS_STATUS] = REG_FIELD(VBAT_VSYS_STATUS, 0 , 15 ),
[F_VBUS_VCC_STATUS] = REG_FIELD(VBUS_VCC_STATUS, 0 , 12 ),
[F_BATTEMP] = REG_FIELD(CHGOP_STATUS, 8 , 10 ),
[F_VRECHG_DET] = REG_FIELD(CHGOP_STATUS, 6 , 6 ),
[F_RBOOST_UV] = REG_FIELD(CHGOP_STATUS, 1 , 1 ),
[F_RBOOSTS] = REG_FIELD(CHGOP_STATUS, 0 , 0 ),
[F_THERMWDT_VAL] = REG_FIELD(WDT_STATUS, 8 , 15 ),
[F_CHGWDT_VAL] = REG_FIELD(WDT_STATUS, 0 , 7 ),
[F_CUR_ILIM_VAL] = REG_FIELD(CUR_ILIM_VAL, 0 , 13 ),
[F_SEL_ILIM_VAL] = REG_FIELD(SEL_ILIM_VAL, 0 , 13 ),
[F_IBUS_LIM_SET] = REG_FIELD(IBUS_LIM_SET, 5 , 13 ),
[F_ICC_LIM_SET] = REG_FIELD(ICC_LIM_SET, 5 , 13 ),
[F_IOTG_LIM_SET] = REG_FIELD(IOTG_LIM_SET, 5 , 13 ),
[F_OTG_BOTH_EN] = REG_FIELD(VIN_CTRL_SET, 15 , 15 ),
[F_VRBOOST_TRIG] = REG_FIELD(VIN_CTRL_SET, 14 , 14 ),
[F_VRBOOST_EN] = REG_FIELD(VIN_CTRL_SET, 12 , 13 ),
[F_PP_BOTH_THRU] = REG_FIELD(VIN_CTRL_SET, 11 , 11 ),
[F_VIN_ORD] = REG_FIELD(VIN_CTRL_SET, 7 , 7 ),
[F_VBUS_EN] = REG_FIELD(VIN_CTRL_SET, 6 , 6 ),
[F_VCC_EN] = REG_FIELD(VIN_CTRL_SET, 5 , 5 ),
[F_VSYS_PRIORITY] = REG_FIELD(VIN_CTRL_SET, 4 , 4 ),
[F_PPC_SUB_CAP] = REG_FIELD(VIN_CTRL_SET, 2 , 3 ),
[F_PPC_CAP] = REG_FIELD(VIN_CTRL_SET, 0 , 1 ),
[F_DCP_2500_SEL] = REG_FIELD(CHGOP_SET1, 15 , 15 ),
[F_SDP_500_SEL] = REG_FIELD(CHGOP_SET1, 14 , 14 ),
[F_ILIM_AUTO_DISEN] = REG_FIELD(CHGOP_SET1, 13 , 13 ),
[F_VCC_BC_DISEN] = REG_FIELD(CHGOP_SET1, 11 , 11 ),
[F_VBUS_BC_DISEN] = REG_FIELD(CHGOP_SET1, 10 , 10 ),
[F_SDP_CHG_TRIG_EN] = REG_FIELD(CHGOP_SET1, 9 , 9 ),
[F_SDP_CHG_TRIG] = REG_FIELD(CHGOP_SET1, 8 , 8 ),
[F_AUTO_TOF] = REG_FIELD(CHGOP_SET1, 6 , 6 ),
[F_AUTO_FST] = REG_FIELD(CHGOP_SET1, 5 , 5 ),
[F_AUTO_RECH] = REG_FIELD(CHGOP_SET1, 3 , 3 ),
[F_ILIM_RESET_EN] = REG_FIELD(CHGOP_SET2, 14 , 14 ),
[F_DCDC_1MS_SEL] = REG_FIELD(CHGOP_SET2, 12 , 13 ),
[F_SEL_ILIM_DIV] = REG_FIELD(CHGOP_SET2, 10 , 10 ),
[F_BATT_LEARN] = REG_FIELD(CHGOP_SET2, 8 , 8 ),
[F_CHG_EN] = REG_FIELD(CHGOP_SET2, 7 , 7 ),
[F_USB_SUS] = REG_FIELD(CHGOP_SET2, 6 , 6 ),
[F_CHOP_SS_INIT] = REG_FIELD(CHGOP_SET2, 5 , 5 ),
[F_CHOP_ALL_INIT] = REG_FIELD(CHGOP_SET2, 4 , 4 ),
[F_DCDC_CLK_SEL] = REG_FIELD(CHGOP_SET2, 2 , 3 ),
[F_CHOP_SS] = REG_FIELD(CHGOP_SET2, 1 , 1 ),
[F_CHOP_ALL] = REG_FIELD(CHGOP_SET2, 0 , 0 ),
[F_VBUSCLPS_TH_SET] = REG_FIELD(VBUSCLPS_TH_SET, 7 , 14 ),
[F_VCCCLPS_TH_SET] = REG_FIELD(VCCCLPS_TH_SET, 7 , 14 ),
[F_WDT_FST] = REG_FIELD(CHGWDT_SET, 8 , 15 ),
[F_WDT_PRE] = REG_FIELD(CHGWDT_SET, 0 , 7 ),
[F_WDT_IBAT_SHORT] = REG_FIELD(BATTWDT_SET, 8 , 15 ),
[F_WDT_THERM] = REG_FIELD(BATTWDT_SET, 0 , 7 ),
[F_VSYSREG_SET] = REG_FIELD(VSYSREG_SET, 6 , 14 ),
[F_VSYSVAL_THH_SET] = REG_FIELD(VSYSVAL_THH_SET, 6 , 14 ),
[F_VSYSVAL_THL_SET] = REG_FIELD(VSYSVAL_THL_SET, 6 , 14 ),
[F_ITRICH_SET] = REG_FIELD(ITRICH_SET, 6 , 10 ),
[F_IPRECH_SET] = REG_FIELD(IPRECH_SET, 6 , 10 ),
[F_ICHG_SET] = REG_FIELD(ICHG_SET, 6 , 13 ),
[F_ITERM_SET] = REG_FIELD(ITERM_SET, 6 , 10 ),
[F_VPRECHG_TH_SET] = REG_FIELD(VPRECHG_TH_SET, 6 , 14 ),
[F_VRBOOST_SET] = REG_FIELD(VRBOOST_SET, 6 , 14 ),
[F_VFASTCHG_REG_SET1] = REG_FIELD(VFASTCHG_REG_SET1, 4 , 14 ),
[F_VFASTCHG_REG_SET2] = REG_FIELD(VFASTCHG_REG_SET2, 4 , 14 ),
[F_VFASTCHG_REG_SET3] = REG_FIELD(VFASTCHG_REG_SET3, 4 , 14 ),
[F_VRECHG_SET] = REG_FIELD(VRECHG_SET, 4 , 14 ),
[F_VBATOVP_SET] = REG_FIELD(VBATOVP_SET, 4 , 14 ),
[F_IBATM_SHORT_SET] = REG_FIELD(IBATSHORT_SET, 0 , 14 ),
[F_PROCHOT_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 14 , 15 ),
[F_PROCHOT_ICRIT_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 10 , 11 ),
[F_PROCHOT_IDCHG_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 8 , 9 ),
[F_PROCHOT_EN] = REG_FIELD(PROCHOT_CTRL_SET, 0 , 4 ),
[F_PROCHOT_ICRIT_SET] = REG_FIELD(PROCHOT_ICRIT_SET, 0 , 14 ),
[F_PROCHOT_INORM_SET] = REG_FIELD(PROCHOT_INORM_SET, 0 , 14 ),
[F_PROCHOT_IDCHG_SET] = REG_FIELD(PROCHOT_IDCHG_SET, 0 , 14 ),
[F_PROCHOT_VSYS_SET] = REG_FIELD(PROCHOT_VSYS_SET, 0 , 14 ),
[F_IMON_INSEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 9 , 9 ),
[F_PMON_INSEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 8 , 8 ),
[F_IOUT_OUT_EN] = REG_FIELD(PMON_IOUT_CTRL_SET, 7 , 7 ),
[F_IOUT_SOURCE_SEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 6 , 6 ),
[F_IOUT_GAIN_SET] = REG_FIELD(PMON_IOUT_CTRL_SET, 4 , 5 ),
[F_PMON_OUT_EN] = REG_FIELD(PMON_IOUT_CTRL_SET, 3 , 3 ),
[F_PMON_GAIN_SET] = REG_FIELD(PMON_IOUT_CTRL_SET, 0 , 2 ),
[F_PMON_DACIN_VAL] = REG_FIELD(PMON_DACIN_VAL, 0 , 9 ),
[F_IOUT_DACIN_VAL] = REG_FIELD(IOUT_DACIN_VAL, 0 , 11 ),
[F_VCC_BCSRETRY] = REG_FIELD(VCC_UCD_SET, 12 , 12 ),
[F_VCC_ADCRTRY] = REG_FIELD(VCC_UCD_SET, 8 , 8 ),
[F_VCC_USBDETEN] = REG_FIELD(VCC_UCD_SET, 7 , 7 ),
[F_VCC_IDRDETEN] = REG_FIELD(VCC_UCD_SET, 6 , 6 ),
[F_VCC_ENUMRDY] = REG_FIELD(VCC_UCD_SET, 5 , 5 ),
[F_VCC_ADCPOLEN] = REG_FIELD(VCC_UCD_SET, 4 , 4 ),
[F_VCC_DCDMODE] = REG_FIELD(VCC_UCD_SET, 3 , 3 ),
[F_VCC_USB_SW_EN] = REG_FIELD(VCC_UCD_SET, 1 , 1 ),
[F_VCC_USB_SW] = REG_FIELD(VCC_UCD_SET, 0 , 0 ),
[F_VCC_DCDFAIL] = REG_FIELD(VCC_UCD_STATUS, 15 , 15 ),
[F_VCC_CHGPORT] = REG_FIELD(VCC_UCD_STATUS, 12 , 13 ),
[F_VCC_PUPDET] = REG_FIELD(VCC_UCD_STATUS, 11 , 11 ),
[F_VCC_VBUS_VLD] = REG_FIELD(VCC_UCD_STATUS, 7 , 7 ),
[F_VCC_CHGDET] = REG_FIELD(VCC_UCD_STATUS, 6 , 6 ),
[F_VCC_OTGDET] = REG_FIELD(VCC_UCD_STATUS, 3 , 3 ),
[F_VCC_VBINOP] = REG_FIELD(VCC_IDD_STATUS, 6 , 6 ),
[F_VCC_EXTID] = REG_FIELD(VCC_IDD_STATUS, 5 , 5 ),
[F_VCC_IDRDET] = REG_FIELD(VCC_IDD_STATUS, 4 , 4 ),
[F_VCC_INDO] = REG_FIELD(VCC_IDD_STATUS, 0 , 3 ),
[F_VCC_UCDSWEN] = REG_FIELD(VCC_UCD_FCTRL_SET, 10 , 10 ),
[F_VCC_RREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 9 , 9 ),
[F_VCC_DPPU_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 8 , 8 ),
[F_VCC_DPREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 7 , 7 ),
[F_VCC_DMREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 6 , 6 ),
[F_VCC_DPDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 5 , 5 ),
[F_VCC_DMDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 4 , 4 ),
[F_VCC_DPSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 3 , 3 ),
[F_VCC_DMSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 2 , 2 ),
[F_VCC_DP_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 1 , 1 ),
[F_VCC_DM_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 0 , 0 ),
[F_VCC_EXTCLKENBL] = REG_FIELD(VCC_UCD_FCTRL_EN, 15 , 15 ),
[F_VCC_PLSTESTEN] = REG_FIELD(VCC_UCD_FCTRL_EN, 14 , 14 ),
[F_VCC_UCDSWEN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 10 , 10 ),
[F_VCC_RREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 9 , 9 ),
[F_VCC_DPPU_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 8 , 8 ),
[F_VCC_DPREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 7 , 7 ),
[F_VCC_DMREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 6 , 6 ),
[F_VCC_DPDET_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 5 , 5 ),
[F_VCC_DMDET_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 4 , 4 ),
[F_VCC_DPSINK_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 3 , 3 ),
[F_VCC_DMSINK_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 2 , 2 ),
[F_VCC_DP_BUFF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 1 , 1 ),
[F_VCC_DM_BUFF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 0 , 0 ),
[F_VBUS_BCSRETRY] = REG_FIELD(VBUS_UCD_SET, 12 , 12 ),
[F_VBUS_ADCRTRY] = REG_FIELD(VBUS_UCD_SET, 8 , 8 ),
[F_VBUS_USBDETEN] = REG_FIELD(VBUS_UCD_SET, 7 , 7 ),
[F_VBUS_IDRDETEN] = REG_FIELD(VBUS_UCD_SET, 6 , 6 ),
[F_VBUS_ENUMRDY] = REG_FIELD(VBUS_UCD_SET, 5 , 5 ),
[F_VBUS_ADCPOLEN] = REG_FIELD(VBUS_UCD_SET, 4 , 4 ),
[F_VBUS_DCDMODE] = REG_FIELD(VBUS_UCD_SET, 3 , 3 ),
[F_VBUS_USB_SW_EN] = REG_FIELD(VBUS_UCD_SET, 1 , 1 ),
[F_VBUS_USB_SW] = REG_FIELD(VBUS_UCD_SET, 0 , 0 ),
[F_VBUS_DCDFAIL] = REG_FIELD(VBUS_UCD_STATUS, 15 , 15 ),
[F_VBUS_CHGPORT] = REG_FIELD(VBUS_UCD_STATUS, 12 , 13 ),
[F_VBUS_PUPDET] = REG_FIELD(VBUS_UCD_STATUS, 11 , 11 ),
[F_VBUS_VBUS_VLD] = REG_FIELD(VBUS_UCD_STATUS, 7 , 7 ),
[F_VBUS_CHGDET] = REG_FIELD(VBUS_UCD_STATUS, 6 , 6 ),
[F_VBUS_OTGDET] = REG_FIELD(VBUS_UCD_STATUS, 3 , 3 ),
[F_VBUS_VBINOP] = REG_FIELD(VBUS_IDD_STATUS, 6 , 6 ),
[F_VBUS_EXTID] = REG_FIELD(VBUS_IDD_STATUS, 5 , 5 ),
[F_VBUS_IDRDET] = REG_FIELD(VBUS_IDD_STATUS, 4 , 4 ),
[F_VBUS_INDO] = REG_FIELD(VBUS_IDD_STATUS, 0 , 3 ),
[F_VBUS_UCDSWEN] = REG_FIELD(VCC_UCD_FCTRL_SET, 10 , 10 ),
[F_VBUS_RREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 9 , 9 ),
[F_VBUS_DPPU_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 8 , 8 ),
[F_VBUS_DPREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 7 , 7 ),
[F_VBUS_DMREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 6 , 6 ),
[F_VBUS_DPDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 5 , 5 ),
[F_VBUS_DMDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 4 , 4 ),
[F_VBUS_DPSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 3 , 3 ),
[F_VBUS_DMSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 2 , 2 ),
[F_VBUS_DP_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 1 , 1 ),
[F_VBUS_DM_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 0 , 0 ),
[F_VBUS_EXTCLKENBL] = REG_FIELD(VBUS_UCD_FCTRL_EN, 15 , 15 ),
[F_VBUS_PLSTESTEN] = REG_FIELD(VBUS_UCD_FCTRL_EN, 14 , 14 ),
[F_VBUS_UCDSWEN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 10 , 10 ),
[F_VBUS_RREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 9 , 9 ),
[F_VBUS_DPPU_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 8 , 8 ),
[F_VBUS_DPREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 7 , 7 ),
[F_VBUS_DMREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 6 , 6 ),
[F_VBUS_DPDET_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 5 , 5 ),
[F_VBUS_DMDET_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 4 , 4 ),
[F_VBUS_DPSINK_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 3 , 3 ),
[F_VBUS_DMSINK_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 2 , 2 ),
[F_VBUS_DP_BUFF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 1 , 1 ),
[F_VBUS_DM_BUFF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 0 , 0 ),
[F_CHIP_ID] = REG_FIELD(CHIP_ID, 0 , 15 ),
[F_CHIP_REV] = REG_FIELD(CHIP_REV, 0 , 15 ),
[F_ONE_CELL_MODE] = REG_FIELD(IC_SET1, 11 , 11 ),
[F_cell] = REG_FIELD(IC_SET1, 1 , 1 ),
[F_VACP_AUTO_DISCHG] = REG_FIELD(IC_SET1, 9 , 9 ),
[F_VACP_LOAD] = REG_FIELD(IC_SET1, 8 , 8 ),
[F_ACOK_POL] = REG_FIELD(IC_SET1, 1 , 1 ),
[F_ACOK_DISEN] = REG_FIELD(IC_SET1, 0 , 0 ),
[F_DEBUG_SET1] = REG_FIELD(IC_SET2, 4 , 8 ),
[F_DEBUG_SET0] = REG_FIELD(IC_SET2, 0 , 0 ),
[F_MONRST_STATE] = REG_FIELD(SYSTEM_STATUS, 6 , 6 ),
[F_ALMRST_STATE] = REG_FIELD(SYSTEM_STATUS, 5 , 5 ),
[F_CHGRST_STATE] = REG_FIELD(SYSTEM_STATUS, 4 , 4 ),
[F_OTPLD_STATE] = REG_FIELD(SYSTEM_STATUS, 1 , 1 ),
[F_ALLRST_STATE] = REG_FIELD(SYSTEM_STATUS, 0 , 0 ),
[F_PROTECT_SET] = REG_FIELD(PROTECT_SET, 0 , 15 ),
[F_MAP_SET] = REG_FIELD(MAP_SET, 0 , 15 ),
[F_ADCINTERVAL] = REG_FIELD(VM_CTRL_SET, 14 , 15 ),
[F_ADCMOD] = REG_FIELD(VM_CTRL_SET, 12 , 13 ),
[F_ADCTMOD] = REG_FIELD(VM_CTRL_SET, 10 , 11 ),
[F_EXTIADPEN] = REG_FIELD(VM_CTRL_SET, 9 , 9 ),
[F_VSYSENB] = REG_FIELD(VM_CTRL_SET, 8 , 8 ),
[F_VCCENB] = REG_FIELD(VM_CTRL_SET, 7 , 7 ),
[F_VBUSENB] = REG_FIELD(VM_CTRL_SET, 6 , 6 ),
[F_VACPENB] = REG_FIELD(VM_CTRL_SET, 5 , 5 ),
[F_IACPENB] = REG_FIELD(VM_CTRL_SET, 4 , 4 ),
[F_THERMENB] = REG_FIELD(VM_CTRL_SET, 3 , 3 ),
[F_VBATENB] = REG_FIELD(VM_CTRL_SET, 2 , 2 ),
[F_IBATMENB] = REG_FIELD(VM_CTRL_SET, 1 , 1 ),
[F_IBATPENB] = REG_FIELD(VM_CTRL_SET, 0 , 0 ),
[F_TMPTHR1B] = REG_FIELD(THERM_WINDOW_SET1, 8 , 15 ),
[F_TMPTHR1A] = REG_FIELD(THERM_WINDOW_SET1, 0 , 7 ),
[F_TMPTHR2B] = REG_FIELD(THERM_WINDOW_SET2, 8 , 15 ),
[F_TMPTHR2A] = REG_FIELD(THERM_WINDOW_SET2, 0 , 7 ),
[F_TMPTHR3B] = REG_FIELD(THERM_WINDOW_SET3, 8 , 15 ),
[F_TMPTHR3A] = REG_FIELD(THERM_WINDOW_SET3, 0 , 7 ),
[F_TMPTHR4B] = REG_FIELD(THERM_WINDOW_SET4, 8 , 15 ),
[F_TMPTHR4A] = REG_FIELD(THERM_WINDOW_SET4, 0 , 7 ),
[F_TMPTHR5B] = REG_FIELD(THERM_WINDOW_SET5, 8 , 15 ),
[F_TMPTHR5A] = REG_FIELD(THERM_WINDOW_SET5, 0 , 7 ),
[F_IBATP_TH_SET] = REG_FIELD(IBATP_TH_SET, 0 , 14 ),
[F_IBATM_TH_SET] = REG_FIELD(IBATM_TH_SET, 0 , 14 ),
[F_VBAT_TH_SET] = REG_FIELD(VBAT_TH_SET, 0 , 14 ),
[F_THERM_TH_SET] = REG_FIELD(THERM_TH_SET, 0 , 7 ),
[F_IACP_TH_SET] = REG_FIELD(IACP_TH_SET, 0 , 14 ),
[F_VACP_TH_SET] = REG_FIELD(VACP_TH_SET, 0 , 14 ),
[F_VBUS_TH_SET] = REG_FIELD(VBUS_TH_SET, 0 , 14 ),
[F_VCC_TH_SET] = REG_FIELD(VCC_TH_SET, 0 , 14 ),
[F_VSYS_TH_SET] = REG_FIELD(VSYS_TH_SET, 0 , 14 ),
[F_EXTIADP_TH_SET] = REG_FIELD(EXTIADP_TH_SET, 0 , 11 ),
[F_IBATP_VAL] = REG_FIELD(IBATP_VAL, 0 , 14 ),
[F_IBATP_AVE_VAL] = REG_FIELD(IBATP_AVE_VAL, 0 , 14 ),
[F_IBATM_VAL] = REG_FIELD(IBATM_VAL, 0 , 14 ),
[F_IBATM_AVE_VAL] = REG_FIELD(IBATM_AVE_VAL, 0 , 14 ),
[F_VBAT_VAL] = REG_FIELD(VBAT_VAL, 0 , 14 ),
[F_VBAT_AVE_VAL] = REG_FIELD(VBAT_AVE_VAL, 0 , 14 ),
[F_THERM_VAL] = REG_FIELD(THERM_VAL, 0 , 7 ),
[F_VTH_VAL] = REG_FIELD(VTH_VAL, 0 , 11 ),
[F_IACP_VAL] = REG_FIELD(IACP_VAL, 0 , 14 ),
[F_IACP_AVE_VAL] = REG_FIELD(IACP_AVE_VAL, 0 , 14 ),
[F_VACP_VAL] = REG_FIELD(VACP_VAL, 0 , 14 ),
[F_VACP_AVE_VAL] = REG_FIELD(VACP_AVE_VAL, 0 , 14 ),
[F_VBUS_VAL] = REG_FIELD(VBUS_VAL, 0 , 14 ),
[F_VBUS_AVE_VAL] = REG_FIELD(VBUS_AVE_VAL, 0 , 14 ),
[F_VCC_VAL] = REG_FIELD(VCC_VAL, 0 , 14 ),
[F_VCC_AVE_VAL] = REG_FIELD(VCC_AVE_VAL, 0 , 14 ),
[F_VSYS_VAL] = REG_FIELD(VSYS_VAL, 0 , 14 ),
[F_VSYS_AVE_VAL] = REG_FIELD(VSYS_AVE_VAL, 0 , 14 ),
[F_EXTIADP_VAL] = REG_FIELD(EXTIADP_VAL, 0 , 11 ),
[F_EXTIADP_AVE_VAL] = REG_FIELD(EXTIADP_AVE_VAL, 0 , 11 ),
[F_VACPCLPS_TH_SET] = REG_FIELD(VACPCLPS_TH_SET, 7 , 14 ),
[F_INT7_SET] = REG_FIELD(INT7_SET, 0 , 15 ),
[F_INT6_SET] = REG_FIELD(INT6_SET, 0 , 13 ),
[F_INT5_SET] = REG_FIELD(INT5_SET, 0 , 13 ),
[F_INT4_SET] = REG_FIELD(INT4_SET, 0 , 9 ),
[F_INT3_SET] = REG_FIELD(INT3_SET, 0 , 15 ),
[F_INT2_SET] = REG_FIELD(INT2_SET, 0 , 15 ),
[F_INT1_SET] = REG_FIELD(INT1_SET, 0 , 15 ),
[F_INT0_SET] = REG_FIELD(INT0_SET, 0 , 7 ),
[F_VBUS_RBUV_DET] = REG_FIELD(INT1_SET, 15 , 15 ),
[F_VBUS_RBUV_RES] = REG_FIELD(INT1_SET, 14 , 14 ),
[F_VBUS_TH_DET] = REG_FIELD(INT1_SET, 9 , 9 ),
[F_VBUS_TH_RES] = REG_FIELD(INT1_SET, 8 , 8 ),
[F_VBUS_IIN_MOD] = REG_FIELD(INT1_SET, 6 , 6 ),
[F_VBUS_OV_DET] = REG_FIELD(INT1_SET, 5 , 5 ),
[F_VBUS_OV_RES] = REG_FIELD(INT1_SET, 4 , 4 ),
[F_VBUS_CLPS_DET] = REG_FIELD(INT1_SET, 3 , 3 ),
[F_VBUS_CLPS] = REG_FIELD(INT1_SET, 2 , 2 ),
[F_VBUS_DET] = REG_FIELD(INT1_SET, 1 , 1 ),
[F_VBUS_RES] = REG_FIELD(INT1_SET, 0 , 0 ),
[F_VCC_RBUV_DET] = REG_FIELD(INT2_SET, 15 , 15 ),
[F_VCC_RBUV_RES] = REG_FIELD(INT2_SET, 14 , 14 ),
[F_VCC_TH_DET] = REG_FIELD(INT2_SET, 9 , 9 ),
[F_VCC_TH_RES] = REG_FIELD(INT2_SET, 8 , 8 ),
[F_VCC_IIN_MOD] = REG_FIELD(INT2_SET, 6 , 6 ),
[F_VCC_OVP_DET] = REG_FIELD(INT2_SET, 5 , 5 ),
[F_VCC_OVP_RES] = REG_FIELD(INT2_SET, 4 , 4 ),
[F_VCC_CLPS_DET] = REG_FIELD(INT2_SET, 3 , 3 ),
[F_VCC_CLPS_RES] = REG_FIELD(INT2_SET, 2 , 2 ),
[F_VCC_DET] = REG_FIELD(INT2_SET, 1 , 1 ),
[F_VCC_RES] = REG_FIELD(INT2_SET, 0 , 0 ),
[F_TH_DET] = REG_FIELD(INT3_SET, 15 , 15 ),
[F_TH_RMV] = REG_FIELD(INT3_SET, 14 , 14 ),
[F_TMP_OUT_DET] = REG_FIELD(INT3_SET, 11 , 11 ),
[F_TMP_OUT_RES] = REG_FIELD(INT3_SET, 10 , 10 ),
[F_VBAT_TH_DET] = REG_FIELD(INT3_SET, 9 , 9 ),
[F_VBAT_TH_RES] = REG_FIELD(INT3_SET, 8 , 8 ),
[F_IBAT_SHORT_DET] = REG_FIELD(INT3_SET, 7 , 7 ),
[F_IBAT_SHORT_RES] = REG_FIELD(INT3_SET, 6 , 6 ),
[F_VBAT_OV_DET] = REG_FIELD(INT3_SET, 5 , 5 ),
[F_VBAT_OV_RES] = REG_FIELD(INT3_SET, 4 , 4 ),
[F_BAT_ASSIST_DET] = REG_FIELD(INT3_SET, 3 , 3 ),
[F_BAT_ASSIST_RES] = REG_FIELD(INT3_SET, 2 , 2 ),
[F_VSYS_TH_DET] = REG_FIELD(INT4_SET, 9 , 9 ),
[F_VSYS_TH_RES] = REG_FIELD(INT4_SET, 8 , 8 ),
[F_VSYS_OV_DET] = REG_FIELD(INT4_SET, 5 , 5 ),
[F_VSYS_OV_RES] = REG_FIELD(INT4_SET, 4 , 4 ),
[F_VSYS_SHT_DET] = REG_FIELD(INT4_SET, 3 , 3 ),
[F_VSYS_SHT_RES] = REG_FIELD(INT4_SET, 2 , 2 ),
[F_VSYS_UV_DET] = REG_FIELD(INT4_SET, 1 , 1 ),
[F_VSYS_UV_RES] = REG_FIELD(INT4_SET, 0 , 0 ),
[F_OTP_LOAD_DONE] = REG_FIELD(INT5_SET, 13 , 13 ),
[F_PWR_ON] = REG_FIELD(INT5_SET, 12 , 12 ),
[F_EXTIADP_TRNS] = REG_FIELD(INT5_SET, 11 , 11 ),
[F_EXTIADP_TH_DET] = REG_FIELD(INT5_SET, 9 , 9 ),
[F_EXIADP_TH_RES] = REG_FIELD(INT5_SET, 8 , 8 ),
[F_BAT_MNT_DET] = REG_FIELD(INT5_SET, 7 , 7 ),
[F_BAT_MNT_RES] = REG_FIELD(INT5_SET, 6 , 6 ),
[F_TSD_DET] = REG_FIELD(INT5_SET, 5 , 5 ),
[F_TSD_RES] = REG_FIELD(INT5_SET, 4 , 4 ),
[F_CHGWDT_EXP] = REG_FIELD(INT5_SET, 3 , 3 ),
[F_THERMWDT_EXP] = REG_FIELD(INT5_SET, 2 , 2 ),
[F_TMP_TRNS] = REG_FIELD(INT5_SET, 1 , 1 ),
[F_CHG_TRNS] = REG_FIELD(INT5_SET, 0 , 0 ),
[F_VBUS_UCD_PORT_DET] = REG_FIELD(INT6_SET, 13 , 13 ),
[F_VBUS_UCD_UCHG_DET] = REG_FIELD(INT6_SET, 12 , 12 ),
[F_VBUS_UCD_URID_RMV] = REG_FIELD(INT6_SET, 11 , 11 ),
[F_VBUS_UCD_OTG_DET] = REG_FIELD(INT6_SET, 10 , 10 ),
[F_VBUS_UCD_URID_MOD] = REG_FIELD(INT6_SET, 8 , 8 ),
[F_VCC_UCD_PORT_DET] = REG_FIELD(INT6_SET, 5 , 5 ),
[F_VCC_UCD_UCHG_DET] = REG_FIELD(INT6_SET, 4 , 4 ),
[F_VCC_UCD_URID_RMV] = REG_FIELD(INT6_SET, 3 , 3 ),
[F_VCC_UCD_OTG_DET] = REG_FIELD(INT6_SET, 2 , 2 ),
[F_VCC_UCD_URID_MOD] = REG_FIELD(INT6_SET, 0 , 0 ),
[F_PROCHOT_DET] = REG_FIELD(INT7_SET, 15 , 15 ),
[F_PROCHOT_RES] = REG_FIELD(INT7_SET, 14 , 14 ),
[F_VACP_DET] = REG_FIELD(INT7_SET, 11 , 11 ),
[F_VACP_RES] = REG_FIELD(INT7_SET, 10 , 10 ),
[F_VACP_TH_DET] = REG_FIELD(INT7_SET, 9 , 9 ),
[F_VACP_TH_RES] = REG_FIELD(INT7_SET, 8 , 8 ),
[F_IACP_TH_DET] = REG_FIELD(INT7_SET, 7 , 7 ),
[F_IACP_THE_RES] = REG_FIELD(INT7_SET, 6 , 6 ),
[F_THERM_TH_DET] = REG_FIELD(INT7_SET, 5 , 5 ),
[F_THERM_TH_RES] = REG_FIELD(INT7_SET, 4 , 4 ),
[F_IBATM_TH_DET] = REG_FIELD(INT7_SET, 3 , 3 ),
[F_IBATM_TH_RES] = REG_FIELD(INT7_SET, 2 , 2 ),
[F_IBATP_TH_DET] = REG_FIELD(INT7_SET, 1 , 1 ),
[F_IBATP_TH_RES] = REG_FIELD(INT7_SET, 0 , 0 ),
[F_INT7_STATUS] = REG_FIELD(INT7_STATUS, 0 , 15 ),
[F_INT6_STATUS] = REG_FIELD(INT6_STATUS, 0 , 13 ),
[F_INT5_STATUS] = REG_FIELD(INT5_STATUS, 0 , 13 ),
[F_INT4_STATUS] = REG_FIELD(INT4_STATUS, 0 , 9 ),
[F_INT3_STATUS] = REG_FIELD(INT3_STATUS, 0 , 15 ),
[F_INT2_STATUS] = REG_FIELD(INT2_STATUS, 0 , 15 ),
[F_INT1_STATUS] = REG_FIELD(INT1_STATUS, 0 , 15 ),
[F_INT0_STATUS] = REG_FIELD(INT0_STATUS, 0 , 7 ),
[F_ILIM_DECREASE] = REG_FIELD(OTPREG0, 0 , 15 ),
[F_RESERVE_OTPREG1] = REG_FIELD(OTPREG1, 0 , 15 ),
[F_POWER_SAVE_MODE] = REG_FIELD(SMBREG, 0 , 15 ),
[F_DEBUG_MODE_SET] = REG_FIELD(DEBUG_MODE_SET, 0 , 15 ),
[F_DEBUG0x14] = REG_FIELD(DEBUG0x14, 0 , 15 ),
[F_DEBUG0x1A] = REG_FIELD(DEBUG0x1A, 0 , 15 ),
};
/* CHGSTM_STATEs */
#define CHGSTM_SUSPEND 0 x00
#define CHGSTM_TRICKLE_CHARGE 0 x01
#define CHGSTM_PRE_CHARGE 0 x02
#define CHGSTM_FAST_CHARGE 0 x03
#define CHGSTM_TOP_OFF 0 x04
#define CHGSTM_DONE 0 x05
#define CHGSTM_OTG 0 x08
#define CHGSTM_OTG_DONE 0 x09
#define CHGSTM_TEMPERATURE_ERROR_1 0 x10
#define CHGSTM_TEMPERATURE_ERROR_2 0 x11
#define CHGSTM_TEMPERATURE_ERROR_3 0 x12
#define CHGSTM_TEMPERATURE_ERROR_4 0 x13
#define CHGSTM_TEMPERATURE_ERROR_5 0 x14
#define CHGSTM_TEMPERATURE_ERROR_6 0 x15
#define CHGSTM_TEMPERATURE_ERROR_7 0 x18
#define CHGSTM_THERMAL_SHUT_DOWN_1 0 x20
#define CHGSTM_THERMAL_SHUT_DOWN_2 0 x21
#define CHGSTM_THERMAL_SHUT_DOWN_3 0 x22
#define CHGSTM_THERMAL_SHUT_DOWN_4 0 x23
#define CHGSTM_THERMAL_SHUT_DOWN_5 0 x24
#define CHGSTM_THERMAL_SHUT_DOWN_6 0 x25
#define CHGSTM_THERMAL_SHUT_DOWN_7 0 x28
#define CHGSTM_BATTERY_ERROR 0 x40
/* VBAT_VSYS_STATUS */
#define STATUS_VSYS_OV BIT(15 )
#define STATUS_VSYS_SSD BIT(14 )
#define STATUS_VSYS_SCP BIT(13 )
#define STATUS_VSYS_UVN BIT(12 )
#define STATUS_IBAT_SHORT BIT(6 )
#define STATUS_VBAT_OV BIT(3 )
#define STATUS_DEAD_BAT BIT(0 )
/* VBUS_VCC_STATUS */
#define STATUS_VACP_DET BIT(12 )
#define STATUS_VCC_OVP BIT(11 )
#define STATUS_ILIM_VCC_MOD BIT(10 )
#define STATUS_VCC_CLPS BIT(9 )
#define STATUS_VCC_DET BIT(8 )
#define STATUS_VBUS_OVP BIT(3 )
#define STATUS_ILIM_VBUS_MOD BIT(2 )
#define STATUS_VBUS_CLPS BIT(1 )
#define STATUS_VBUS_DET BIT(0 )
/* Interrupt set/status definitions */
/* INT 0 */
#define INT0_INT7_STATUS BIT(7 )
#define INT0_INT6_STATUS BIT(6 )
#define INT0_INT5_STATUS BIT(5 )
#define INT0_INT4_STATUS BIT(4 )
#define INT0_INT3_STATUS BIT(3 )
#define INT0_INT2_STATUS BIT(2 )
#define INT0_INT1_STATUS BIT(1 )
#define INT0_INT0_STATUS BIT(0 )
#define INT0_ALL 0 xff
/* INT 1 */
#define VBUS_RBUV_DET BIT(15 )
#define VBUS_RBUV_RES BIT(14 )
#define VBUS_TH_DET BIT(9 )
#define VBUS_TH_RES BIT(8 )
#define VBUS_IIN_MOD BIT(6 )
#define VBUS_OV_DET BIT(5 )
#define VBUS_OV_RES BIT(4 )
#define VBUS_CLPS_DET BIT(3 )
#define VBUS_CLPS BIT(2 )
#define VBUS_DET BIT(1 )
#define VBUS_RES BIT(0 )
#define INT1_ALL (VBUS_RBUV_DET|\
VBUS_RBUV_RES|\
VBUS_TH_DET |\
VBUS_TH_RES |\
VBUS_IIN_MOD|\
VBUS_OV_DET |\
VBUS_OV_RES |\
VBUS_CLPS_DET |\
VBUS_CLPS |\
VBUS_DET |\
VBUS_RES)
/* INT 2 */
#define VCC_RBUV_DET BIT(15 )
#define VCC_RBUV_RES BIT(14 )
#define VCC_TH_DET BIT(9 )
#define VCC_TH_RES BIT(8 )
#define VCC_IIN_MOD BIT(6 )
#define VCC_OVP_DET BIT(5 )
#define VCC_OVP_RES BIT(4 )
#define VCC_CLPS_DET BIT(3 )
#define VCC_CLPS_RES BIT(2 )
#define VCC_DET BIT(1 )
#define VCC_RES BIT(0 )
#define INT2_ALL (VCC_RBUV_DET |\
VCC_RBUV_RES |\
VCC_TH_DET |\
VCC_TH_RES |\
VCC_IIN_MOD |\
VCC_OVP_DET |\
VCC_OVP_RES |\
VCC_CLPS_DET |\
VCC_CLPS_RES |\
VCC_DET |\
VCC_RES)
/* INT 3 */
#define TH_DET BIT(15 )
#define TH_RMV BIT(14 )
#define TMP_OUT_DET BIT(11 )
#define TMP_OUT_RES BIT(10 )
#define VBAT_TH_DET BIT(9 )
#define VBAT_TH_RES BIT(8 )
#define IBAT_SHORT_DET BIT(7 )
#define IBAT_SHORT_RES BIT(6 )
#define VBAT_OV_DET BIT(5 )
#define VBAT_OV_RES BIT(4 )
#define BAT_ASSIST_DET BIT(3 )
#define BAT_ASSIST_RES BIT(2 )
#define INT3_ALL (TH_DET |\
TH_RMV |\
TMP_OUT_DET |\
TMP_OUT_RES |\
VBAT_TH_DET |\
VBAT_TH_RES |\
IBAT_SHORT_DET |\
IBAT_SHORT_RES |\
VBAT_OV_DET |\
VBAT_OV_RES |\
BAT_ASSIST_DET |\
BAT_ASSIST_RES)
/* INT 4 */
#define VSYS_TH_DET BIT(9 )
#define VSYS_TH_RES BIT(8 )
#define VSYS_OV_DET BIT(5 )
#define VSYS_OV_RES BIT(4 )
#define VSYS_SHT_DET BIT(3 )
#define VSYS_SHT_RES BIT(2 )
#define VSYS_UV_DET BIT(1 )
#define VSYS_UV_RES BIT(0 )
#define INT4_ALL (VSYS_TH_DET |\
VSYS_TH_RES |\
VSYS_OV_DET |\
VSYS_OV_RES |\
VSYS_SHT_DET |\
VSYS_SHT_RES |\
VSYS_UV_DET |\
VSYS_UV_RES)
/* INT 5*/
#define OTP_LOAD_DONE BIT(13 )
#define PWR_ON BIT(12 )
#define EXTIADP_TRNS BIT(11 )
#define EXTIADP_TH_DET BIT(9 )
#define EXIADP_TH_RES BIT(8 )
#define BAT_MNT_DET BIT(7 )
#define BAT_MNT_RES BIT(6 )
#define TSD_DET BIT(5 )
#define TSD_RES BIT(4 )
#define CHGWDT_EXP BIT(3 )
#define THERMWDT_EXP BIT(2 )
#define TMP_TRNS BIT(1 )
#define CHG_TRNS BIT(0 )
#define INT5_ALL (OTP_LOAD_DONE |\
PWR_ON |\
EXTIADP_TRNS |\
EXTIADP_TH_DET |\
EXIADP_TH_RES |\
BAT_MNT_DET |\
BAT_MNT_RES |\
TSD_DET |\
TSD_RES |\
CHGWDT_EXP |\
THERMWDT_EXP |\
TMP_TRNS |\
CHG_TRNS)
/* INT 6*/
#define VBUS_UCD_PORT_DET BIT(13 )
#define VBUS_UCD_UCHG_DET BIT(12 )
#define VBUS_UCD_URID_RMV BIT(11 )
#define VBUS_UCD_OTG_DET BIT(10 )
#define VBUS_UCD_URID_MOD BIT(8 )
#define VCC_UCD_PORT_DET BIT(5 )
#define VCC_UCD_UCHG_DET BIT(4 )
#define VCC_UCD_URID_RMV BIT(3 )
#define VCC_UCD_OTG_DET BIT(2 )
#define VCC_UCD_URID_MOD BIT(0 )
#define INT6_ALL (VBUS_UCD_PORT_DET |\
VBUS_UCD_UCHG_DET |\
VBUS_UCD_URID_RMV |\
VBUS_UCD_OTG_DET |\
VBUS_UCD_URID_MOD |\
VCC_UCD_PORT_DET |\
VCC_UCD_UCHG_DET |\
VCC_UCD_URID_RMV |\
VCC_UCD_OTG_DET |\
VCC_UCD_URID_MOD)
/* INT 7 */
#define PROCHOT_DET BIT(15 )
#define PROCHOT_RES BIT(14 )
#define VACP_DET BIT(11 )
#define VACP_RES BIT(10 )
#define VACP_TH_DET BIT(9 )
#define VACP_TH_RES BIT(8 )
#define IACP_TH_DET BIT(7 )
#define IACP_THE_RES BIT(6 )
#define THERM_TH_DET BIT(5 )
#define THERM_TH_RES BIT(4 )
#define IBATM_TH_DET BIT(3 )
#define IBATM_TH_RES BIT(2 )
#define IBATP_TH_DET BIT(1 )
#define IBATP_TH_RES BIT(0 )
#define INT7_ALL (PROCHOT_DET |\
PROCHOT_RES |\
VACP_DET |\
VACP_RES |\
VACP_TH_DET |\
VACP_TH_RES |\
IACP_TH_DET |\
IACP_THE_RES |\
THERM_TH_DET |\
THERM_TH_RES |\
IBATM_TH_DET |\
IBATM_TH_RES |\
IBATP_TH_DET |\
IBATP_TH_RES)
/* SYSTEM_CTRL_SET*/
#define MONRST BIT(6 )
#define ALMRST BIT(5 )
#define CHGRST BIT(4 )
#define OTPLD BIT(1 )
#define ALLRST BIT(0 )
/* F_BATTEMP */
#define ROOM 0 x0
#define HOT1 0 x1
#define HOT2 0 x2
#define HOT3 0 x3
#define COLD1 0 x4
#define COLD2 0 x5
#define TEMP_DIS 0 x6
#define BATT_OPEN 0 x7
#endif
Messung V0.5 in Prozent C=96 H=96 G=95
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland