1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075 |
- /* 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 0x346
- #define BD99955_ID 0x221
- #define BD99956_ID 0x331
- /* Battery Charger Commands */
- #define CHARGING_CURRENT 0x14
- #define CHARGING_VOLTAGE 0x15
- #define PROTECT_SET 0x3E
- #define MAP_SET 0x3F
- /* Extended commands */
- #define CHGSTM_STATUS 0x100
- #define VBAT_VSYS_STATUS 0x101
- #define VBUS_VCC_STATUS 0x102
- #define CHGOP_STATUS 0x103
- #define WDT_STATUS 0x104
- #define CUR_ILIM_VAL 0x105
- #define SEL_ILIM_VAL 0x106
- #define IBUS_LIM_SET 0x107
- #define ICC_LIM_SET 0x108
- #define IOTG_LIM_SET 0x109
- #define VIN_CTRL_SET 0x10A
- #define CHGOP_SET1 0x10B
- #define CHGOP_SET2 0x10C
- #define VBUSCLPS_TH_SET 0x10D
- #define VCCCLPS_TH_SET 0x10E
- #define CHGWDT_SET 0x10F
- #define BATTWDT_SET 0x110
- #define VSYSREG_SET 0x111
- #define VSYSVAL_THH_SET 0x112
- #define VSYSVAL_THL_SET 0x113
- #define ITRICH_SET 0x114
- #define IPRECH_SET 0x115
- #define ICHG_SET 0x116
- #define ITERM_SET 0x117
- #define VPRECHG_TH_SET 0x118
- #define VRBOOST_SET 0x119
- #define VFASTCHG_REG_SET1 0x11A
- #define VFASTCHG_REG_SET2 0x11B
- #define VFASTCHG_REG_SET3 0x11C
- #define VRECHG_SET 0x11D
- #define VBATOVP_SET 0x11E
- #define IBATSHORT_SET 0x11F
- #define PROCHOT_CTRL_SET 0x120
- #define PROCHOT_ICRIT_SET 0x121
- #define PROCHOT_INORM_SET 0x122
- #define PROCHOT_IDCHG_SET 0x123
- #define PROCHOT_VSYS_SET 0x124
- #define PMON_IOUT_CTRL_SET 0x125
- #define PMON_DACIN_VAL 0x126
- #define IOUT_DACIN_VAL 0x127
- #define VCC_UCD_SET 0x128
- #define VCC_UCD_STATUS 0x129
- #define VCC_IDD_STATUS 0x12A
- #define VCC_UCD_FCTRL_SET 0x12B
- #define VCC_UCD_FCTRL_EN 0x12C
- #define VBUS_UCD_SET 0x130
- #define VBUS_UCD_STATUS 0x131
- #define VBUS_IDD_STATUS 0x132
- #define VBUS_UCD_FCTRL_SET 0x133
- #define VBUS_UCD_FCTRL_EN 0x134
- #define CHIP_ID 0x138
- #define CHIP_REV 0x139
- #define IC_SET1 0x13A
- #define IC_SET2 0x13B
- #define SYSTEM_STATUS 0x13C
- #define SYSTEM_CTRL_SET 0x13D
- #define VM_CTRL_SET 0x140
- #define THERM_WINDOW_SET1 0x141
- #define THERM_WINDOW_SET2 0x142
- #define THERM_WINDOW_SET3 0x143
- #define THERM_WINDOW_SET4 0x144
- #define THERM_WINDOW_SET5 0x145
- #define IBATP_TH_SET 0x146
- #define IBATM_TH_SET 0x147
- #define VBAT_TH_SET 0x148
- #define THERM_TH_SET 0x149
- #define IACP_TH_SET 0x14A
- #define VACP_TH_SET 0x14B
- #define VBUS_TH_SET 0x14C
- #define VCC_TH_SET 0x14D
- #define VSYS_TH_SET 0x14E
- #define EXTIADP_TH_SET 0x14F
- #define IBATP_VAL 0x150
- #define IBATP_AVE_VAL 0x151
- #define IBATM_VAL 0x152
- #define IBATM_AVE_VAL 0x153
- #define VBAT_VAL 0x154
- #define VBAT_AVE_VAL 0x155
- #define THERM_VAL 0x156
- #define VTH_VAL 0x157
- #define IACP_VAL 0x158
- #define IACP_AVE_VAL 0x159
- #define VACP_VAL 0x15A
- #define VACP_AVE_VAL 0x15B
- #define VBUS_VAL 0x15C
- #define VBUS_AVE_VAL 0x15D
- #define VCC_VAL 0x15E
- #define VCC_AVE_VAL 0x15F
- #define VSYS_VAL 0x160
- #define VSYS_AVE_VAL 0x161
- #define EXTIADP_VAL 0x162
- #define EXTIADP_AVE_VAL 0x163
- #define VACPCLPS_TH_SET 0x164
- #define INT0_SET 0x168
- #define INT1_SET 0x169
- #define INT2_SET 0x16A
- #define INT3_SET 0x16B
- #define INT4_SET 0x16C
- #define INT5_SET 0x16D
- #define INT6_SET 0x16E
- #define INT7_SET 0x16F
- #define INT0_STATUS 0x170
- #define INT1_STATUS 0x171
- #define INT2_STATUS 0x172
- #define INT3_STATUS 0x173
- #define INT4_STATUS 0x174
- #define INT5_STATUS 0x175
- #define INT6_STATUS 0x176
- #define INT7_STATUS 0x177
- #define OTPREG0 0x17A
- #define OTPREG1 0x17B
- #define SMBREG 0x17C
- #define DEBUG_MODE_SET 0x17F
- #define DEBUG0x14 0x214
- #define DEBUG0x1A 0x21A
- 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 0x00
- #define CHGSTM_TRICKLE_CHARGE 0x01
- #define CHGSTM_PRE_CHARGE 0x02
- #define CHGSTM_FAST_CHARGE 0x03
- #define CHGSTM_TOP_OFF 0x04
- #define CHGSTM_DONE 0x05
- #define CHGSTM_OTG 0x08
- #define CHGSTM_OTG_DONE 0x09
- #define CHGSTM_TEMPERATURE_ERROR_1 0x10
- #define CHGSTM_TEMPERATURE_ERROR_2 0x11
- #define CHGSTM_TEMPERATURE_ERROR_3 0x12
- #define CHGSTM_TEMPERATURE_ERROR_4 0x13
- #define CHGSTM_TEMPERATURE_ERROR_5 0x14
- #define CHGSTM_TEMPERATURE_ERROR_6 0x15
- #define CHGSTM_TEMPERATURE_ERROR_7 0x18
- #define CHGSTM_THERMAL_SHUT_DOWN_1 0x20
- #define CHGSTM_THERMAL_SHUT_DOWN_2 0x21
- #define CHGSTM_THERMAL_SHUT_DOWN_3 0x22
- #define CHGSTM_THERMAL_SHUT_DOWN_4 0x23
- #define CHGSTM_THERMAL_SHUT_DOWN_5 0x24
- #define CHGSTM_THERMAL_SHUT_DOWN_6 0x25
- #define CHGSTM_THERMAL_SHUT_DOWN_7 0x28
- #define CHGSTM_BATTERY_ERROR 0x40
- /* 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 0xff
- /* 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 0x0
- #define HOT1 0x1
- #define HOT2 0x2
- #define HOT3 0x3
- #define COLD1 0x4
- #define COLD2 0x5
- #define TEMP_DIS 0x6
- #define BATT_OPEN 0x7
- #endif
|