0001
0002
0003 #ifndef BD99954_CHARGER_H
0004 #define BD99954_CHARGER_H
0005
0006 #include <linux/regmap.h>
0007
0008 #define BD9995X_MANUFACTURER "Rohm Semiconductor"
0009 #define BD9995X_IRQ_PIN "bd9995x_irq"
0010
0011 #define BD9995X_VSYS_PRECHARGE_OFFSET_MV 200
0012
0013 #define BD99954_ID 0x346
0014 #define BD99955_ID 0x221
0015 #define BD99956_ID 0x331
0016
0017
0018 #define CHARGING_CURRENT 0x14
0019 #define CHARGING_VOLTAGE 0x15
0020 #define PROTECT_SET 0x3E
0021 #define MAP_SET 0x3F
0022
0023
0024 #define CHGSTM_STATUS 0x100
0025 #define VBAT_VSYS_STATUS 0x101
0026 #define VBUS_VCC_STATUS 0x102
0027 #define CHGOP_STATUS 0x103
0028 #define WDT_STATUS 0x104
0029 #define CUR_ILIM_VAL 0x105
0030 #define SEL_ILIM_VAL 0x106
0031 #define IBUS_LIM_SET 0x107
0032 #define ICC_LIM_SET 0x108
0033 #define IOTG_LIM_SET 0x109
0034 #define VIN_CTRL_SET 0x10A
0035 #define CHGOP_SET1 0x10B
0036 #define CHGOP_SET2 0x10C
0037 #define VBUSCLPS_TH_SET 0x10D
0038 #define VCCCLPS_TH_SET 0x10E
0039 #define CHGWDT_SET 0x10F
0040 #define BATTWDT_SET 0x110
0041 #define VSYSREG_SET 0x111
0042 #define VSYSVAL_THH_SET 0x112
0043 #define VSYSVAL_THL_SET 0x113
0044 #define ITRICH_SET 0x114
0045 #define IPRECH_SET 0x115
0046 #define ICHG_SET 0x116
0047 #define ITERM_SET 0x117
0048 #define VPRECHG_TH_SET 0x118
0049 #define VRBOOST_SET 0x119
0050 #define VFASTCHG_REG_SET1 0x11A
0051 #define VFASTCHG_REG_SET2 0x11B
0052 #define VFASTCHG_REG_SET3 0x11C
0053 #define VRECHG_SET 0x11D
0054 #define VBATOVP_SET 0x11E
0055 #define IBATSHORT_SET 0x11F
0056 #define PROCHOT_CTRL_SET 0x120
0057 #define PROCHOT_ICRIT_SET 0x121
0058 #define PROCHOT_INORM_SET 0x122
0059 #define PROCHOT_IDCHG_SET 0x123
0060 #define PROCHOT_VSYS_SET 0x124
0061 #define PMON_IOUT_CTRL_SET 0x125
0062 #define PMON_DACIN_VAL 0x126
0063 #define IOUT_DACIN_VAL 0x127
0064 #define VCC_UCD_SET 0x128
0065 #define VCC_UCD_STATUS 0x129
0066 #define VCC_IDD_STATUS 0x12A
0067 #define VCC_UCD_FCTRL_SET 0x12B
0068 #define VCC_UCD_FCTRL_EN 0x12C
0069 #define VBUS_UCD_SET 0x130
0070 #define VBUS_UCD_STATUS 0x131
0071 #define VBUS_IDD_STATUS 0x132
0072 #define VBUS_UCD_FCTRL_SET 0x133
0073 #define VBUS_UCD_FCTRL_EN 0x134
0074 #define CHIP_ID 0x138
0075 #define CHIP_REV 0x139
0076 #define IC_SET1 0x13A
0077 #define IC_SET2 0x13B
0078 #define SYSTEM_STATUS 0x13C
0079 #define SYSTEM_CTRL_SET 0x13D
0080 #define VM_CTRL_SET 0x140
0081 #define THERM_WINDOW_SET1 0x141
0082 #define THERM_WINDOW_SET2 0x142
0083 #define THERM_WINDOW_SET3 0x143
0084 #define THERM_WINDOW_SET4 0x144
0085 #define THERM_WINDOW_SET5 0x145
0086 #define IBATP_TH_SET 0x146
0087 #define IBATM_TH_SET 0x147
0088 #define VBAT_TH_SET 0x148
0089 #define THERM_TH_SET 0x149
0090 #define IACP_TH_SET 0x14A
0091 #define VACP_TH_SET 0x14B
0092 #define VBUS_TH_SET 0x14C
0093 #define VCC_TH_SET 0x14D
0094 #define VSYS_TH_SET 0x14E
0095 #define EXTIADP_TH_SET 0x14F
0096 #define IBATP_VAL 0x150
0097 #define IBATP_AVE_VAL 0x151
0098 #define IBATM_VAL 0x152
0099 #define IBATM_AVE_VAL 0x153
0100 #define VBAT_VAL 0x154
0101 #define VBAT_AVE_VAL 0x155
0102 #define THERM_VAL 0x156
0103 #define VTH_VAL 0x157
0104 #define IACP_VAL 0x158
0105 #define IACP_AVE_VAL 0x159
0106 #define VACP_VAL 0x15A
0107 #define VACP_AVE_VAL 0x15B
0108 #define VBUS_VAL 0x15C
0109 #define VBUS_AVE_VAL 0x15D
0110 #define VCC_VAL 0x15E
0111 #define VCC_AVE_VAL 0x15F
0112 #define VSYS_VAL 0x160
0113 #define VSYS_AVE_VAL 0x161
0114 #define EXTIADP_VAL 0x162
0115 #define EXTIADP_AVE_VAL 0x163
0116 #define VACPCLPS_TH_SET 0x164
0117 #define INT0_SET 0x168
0118 #define INT1_SET 0x169
0119 #define INT2_SET 0x16A
0120 #define INT3_SET 0x16B
0121 #define INT4_SET 0x16C
0122 #define INT5_SET 0x16D
0123 #define INT6_SET 0x16E
0124 #define INT7_SET 0x16F
0125 #define INT0_STATUS 0x170
0126 #define INT1_STATUS 0x171
0127 #define INT2_STATUS 0x172
0128 #define INT3_STATUS 0x173
0129 #define INT4_STATUS 0x174
0130 #define INT5_STATUS 0x175
0131 #define INT6_STATUS 0x176
0132 #define INT7_STATUS 0x177
0133 #define OTPREG0 0x17A
0134 #define OTPREG1 0x17B
0135 #define SMBREG 0x17C
0136 #define DEBUG_MODE_SET 0x17F
0137 #define DEBUG0x14 0x214
0138 #define DEBUG0x1A 0x21A
0139
0140 enum bd9995x_fields {
0141 F_PREV_CHGSTM_STATE, F_CHGSTM_STATE,
0142 F_VBAT_VSYS_STATUS,
0143 F_VBUS_VCC_STATUS,
0144 F_BATTEMP, F_VRECHG_DET, F_RBOOST_UV, F_RBOOSTS,
0145 F_THERMWDT_VAL, F_CHGWDT_VAL,
0146 F_CUR_ILIM_VAL,
0147 F_SEL_ILIM_VAL,
0148 F_IBUS_LIM_SET,
0149 F_ICC_LIM_SET,
0150 F_IOTG_LIM_SET,
0151 F_OTG_BOTH_EN,
0152 F_VRBOOST_TRIG,
0153 F_VRBOOST_EN,
0154 F_PP_BOTH_THRU,
0155 F_VIN_ORD,
0156 F_VBUS_EN,
0157 F_VCC_EN,
0158 F_VSYS_PRIORITY,
0159 F_PPC_SUB_CAP,
0160 F_PPC_CAP,
0161 F_DCP_2500_SEL,
0162 F_SDP_500_SEL,
0163 F_ILIM_AUTO_DISEN,
0164 F_VCC_BC_DISEN,
0165 F_VBUS_BC_DISEN,
0166 F_SDP_CHG_TRIG_EN,
0167 F_SDP_CHG_TRIG,
0168 F_AUTO_TOF,
0169 F_AUTO_FST,
0170 F_AUTO_RECH,
0171 F_ILIM_RESET_EN,
0172 F_DCDC_1MS_SEL,
0173 F_SEL_ILIM_DIV,
0174 F_BATT_LEARN,
0175 F_CHG_EN,
0176 F_USB_SUS,
0177 F_CHOP_SS_INIT,
0178 F_CHOP_ALL_INIT,
0179 F_DCDC_CLK_SEL,
0180 F_CHOP_SS,
0181 F_CHOP_ALL,
0182 F_VBUSCLPS_TH_SET,
0183 F_VCCCLPS_TH_SET,
0184 F_WDT_FST,
0185 F_WDT_PRE,
0186 F_WDT_IBAT_SHORT,
0187 F_WDT_THERM,
0188 F_VSYSREG_SET,
0189 F_VSYSVAL_THH_SET,
0190 F_VSYSVAL_THL_SET,
0191 F_ITRICH_SET,
0192 F_IPRECH_SET,
0193 F_ICHG_SET,
0194 F_ITERM_SET,
0195 F_VPRECHG_TH_SET,
0196 F_VRBOOST_SET,
0197 F_VFASTCHG_REG_SET1,
0198 F_VFASTCHG_REG_SET2,
0199 F_VFASTCHG_REG_SET3,
0200 F_VRECHG_SET,
0201 F_VBATOVP_SET,
0202 F_IBATM_SHORT_SET,
0203 F_PROCHOT_DG_SET,
0204 F_PROCHOT_ICRIT_DG_SET,
0205 F_PROCHOT_IDCHG_DG_SET,
0206 F_PROCHOT_EN,
0207 F_PROCHOT_ICRIT_SET,
0208 F_PROCHOT_INORM_SET,
0209 F_PROCHOT_IDCHG_SET,
0210 F_PROCHOT_VSYS_SET,
0211 F_IMON_INSEL,
0212 F_PMON_INSEL,
0213 F_IOUT_OUT_EN,
0214 F_IOUT_SOURCE_SEL,
0215 F_IOUT_GAIN_SET,
0216 F_PMON_OUT_EN,
0217 F_PMON_GAIN_SET,
0218 F_PMON_DACIN_VAL,
0219 F_IOUT_DACIN_VAL,
0220 F_VCC_BCSRETRY,
0221 F_VCC_ADCRTRY,
0222 F_VCC_USBDETEN,
0223 F_VCC_IDRDETEN,
0224 F_VCC_ENUMRDY,
0225 F_VCC_ADCPOLEN,
0226 F_VCC_DCDMODE,
0227 F_VCC_USB_SW_EN,
0228 F_VCC_USB_SW,
0229 F_VCC_DCDFAIL,
0230 F_VCC_CHGPORT,
0231 F_VCC_PUPDET,
0232 F_VCC_VBUS_VLD,
0233 F_VCC_CHGDET,
0234 F_VCC_OTGDET,
0235 F_VCC_VBINOP,
0236 F_VCC_EXTID,
0237 F_VCC_IDRDET,
0238 F_VCC_INDO,
0239 F_VCC_UCDSWEN,
0240 F_VCC_RREF_EN,
0241 F_VCC_DPPU_EN,
0242 F_VCC_DPREF_EN,
0243 F_VCC_DMREF_EN,
0244 F_VCC_DPDET_EN,
0245 F_VCC_DMDET_EN,
0246 F_VCC_DPSINK_EN,
0247 F_VCC_DMSINK_EN,
0248 F_VCC_DP_BUFF_EN,
0249 F_VCC_DM_BUFF_EN,
0250 F_VCC_EXTCLKENBL,
0251 F_VCC_PLSTESTEN,
0252 F_VCC_UCDSWEN_TSTENB,
0253 F_VCC_RREF_EN_TSTENB,
0254 F_VCC_DPPU_EN_TSTENB,
0255 F_VCC_DPREF_EN_TSTENB,
0256 F_VCC_DMREF_EN_TSTENB,
0257 F_VCC_DPDET_EN_TSTENB,
0258 F_VCC_DMDET_EN_TSTENB,
0259 F_VCC_DPSINK_EN_TSTENB,
0260 F_VCC_DMSINK_EN_TSTENB,
0261 F_VCC_DP_BUFF_EN_TSTENB,
0262 F_VCC_DM_BUFF_EN_TSTENB,
0263 F_VBUS_BCSRETRY,
0264 F_VBUS_ADCRTRY,
0265 F_VBUS_USBDETEN,
0266 F_VBUS_IDRDETEN,
0267 F_VBUS_ENUMRDY,
0268 F_VBUS_ADCPOLEN,
0269 F_VBUS_DCDMODE,
0270 F_VBUS_USB_SW_EN,
0271 F_VBUS_USB_SW,
0272 F_VBUS_DCDFAIL,
0273 F_VBUS_CHGPORT,
0274 F_VBUS_PUPDET,
0275 F_VBUS_VBUS_VLD,
0276 F_VBUS_CHGDET,
0277 F_VBUS_OTGDET,
0278 F_VBUS_VBINOP,
0279 F_VBUS_EXTID,
0280 F_VBUS_IDRDET,
0281 F_VBUS_INDO,
0282 F_VBUS_UCDSWEN,
0283 F_VBUS_RREF_EN,
0284 F_VBUS_DPPU_EN,
0285 F_VBUS_DPREF_EN,
0286 F_VBUS_DMREF_EN,
0287 F_VBUS_DPDET_EN,
0288 F_VBUS_DMDET_EN,
0289 F_VBUS_DPSINK_EN,
0290 F_VBUS_DMSINK_EN,
0291 F_VBUS_DP_BUFF_EN,
0292 F_VBUS_DM_BUFF_EN,
0293 F_VBUS_EXTCLKENBL,
0294 F_VBUS_PLSTESTEN,
0295 F_VBUS_UCDSWEN_TSTENB,
0296 F_VBUS_RREF_EN_TSTENB,
0297 F_VBUS_DPPU_EN_TSTENB,
0298 F_VBUS_DPREF_EN_TSTENB,
0299 F_VBUS_DMREF_EN_TSTENB,
0300 F_VBUS_DPDET_EN_TSTENB,
0301 F_VBUS_DMDET_EN_TSTENB,
0302 F_VBUS_DPSINK_EN_TSTENB,
0303 F_VBUS_DMSINK_EN_TSTENB,
0304 F_VBUS_DP_BUFF_EN_TSTENB,
0305 F_VBUS_DM_BUFF_EN_TSTENB,
0306 F_CHIP_ID,
0307 F_CHIP_REV,
0308 F_ONE_CELL_MODE,
0309 F_cell,
0310 F_VACP_AUTO_DISCHG,
0311 F_VACP_LOAD,
0312 F_ACOK_POL,
0313 F_ACOK_DISEN,
0314 F_DEBUG_SET1,
0315 F_DEBUG_SET0,
0316 F_MONRST_STATE,
0317 F_ALMRST_STATE,
0318 F_CHGRST_STATE,
0319 F_OTPLD_STATE,
0320 F_ALLRST_STATE,
0321 F_PROTECT_SET,
0322 F_MAP_SET,
0323 F_ADCINTERVAL,
0324 F_ADCMOD,
0325 F_ADCTMOD,
0326 F_EXTIADPEN,
0327 F_VSYSENB,
0328 F_VCCENB,
0329 F_VBUSENB,
0330 F_VACPENB,
0331 F_IACPENB,
0332 F_THERMENB,
0333 F_VBATENB,
0334 F_IBATMENB,
0335 F_IBATPENB,
0336 F_TMPTHR1B,
0337 F_TMPTHR1A,
0338 F_TMPTHR2B,
0339 F_TMPTHR2A,
0340 F_TMPTHR3B,
0341 F_TMPTHR3A,
0342 F_TMPTHR4B,
0343 F_TMPTHR4A,
0344 F_TMPTHR5B,
0345 F_TMPTHR5A,
0346 F_IBATP_TH_SET,
0347 F_IBATM_TH_SET,
0348 F_VBAT_TH_SET,
0349 F_THERM_TH_SET,
0350 F_IACP_TH_SET,
0351 F_VACP_TH_SET,
0352 F_VBUS_TH_SET,
0353 F_VCC_TH_SET,
0354 F_VSYS_TH_SET,
0355 F_EXTIADP_TH_SET,
0356 F_IBATP_VAL,
0357 F_IBATP_AVE_VAL,
0358 F_IBATM_VAL,
0359 F_IBATM_AVE_VAL,
0360 F_VBAT_VAL,
0361 F_VBAT_AVE_VAL,
0362 F_THERM_VAL,
0363 F_VTH_VAL,
0364 F_IACP_VAL,
0365 F_IACP_AVE_VAL,
0366 F_VACP_VAL,
0367 F_VACP_AVE_VAL,
0368 F_VBUS_VAL,
0369 F_VBUS_AVE_VAL,
0370 F_VCC_VAL,
0371 F_VCC_AVE_VAL,
0372 F_VSYS_VAL,
0373 F_VSYS_AVE_VAL,
0374 F_EXTIADP_VAL,
0375 F_EXTIADP_AVE_VAL,
0376 F_VACPCLPS_TH_SET,
0377 F_INT7_SET,
0378 F_INT6_SET,
0379 F_INT5_SET,
0380 F_INT4_SET,
0381 F_INT3_SET,
0382 F_INT2_SET,
0383 F_INT1_SET,
0384 F_INT0_SET,
0385 F_VBUS_RBUV_DET,
0386 F_VBUS_RBUV_RES,
0387 F_VBUS_TH_DET,
0388 F_VBUS_TH_RES,
0389 F_VBUS_IIN_MOD,
0390 F_VBUS_OV_DET,
0391 F_VBUS_OV_RES,
0392 F_VBUS_CLPS_DET,
0393 F_VBUS_CLPS,
0394 F_VBUS_DET,
0395 F_VBUS_RES,
0396 F_VCC_RBUV_DET,
0397 F_VCC_RBUV_RES,
0398 F_VCC_TH_DET,
0399 F_VCC_TH_RES,
0400 F_VCC_IIN_MOD,
0401 F_VCC_OVP_DET,
0402 F_VCC_OVP_RES,
0403 F_VCC_CLPS_DET,
0404 F_VCC_CLPS_RES,
0405 F_VCC_DET,
0406 F_VCC_RES,
0407 F_TH_DET,
0408 F_TH_RMV,
0409 F_TMP_OUT_DET,
0410 F_TMP_OUT_RES,
0411 F_VBAT_TH_DET,
0412 F_VBAT_TH_RES,
0413 F_IBAT_SHORT_DET,
0414 F_IBAT_SHORT_RES,
0415 F_VBAT_OV_DET,
0416 F_VBAT_OV_RES,
0417 F_BAT_ASSIST_DET,
0418 F_BAT_ASSIST_RES,
0419 F_VSYS_TH_DET,
0420 F_VSYS_TH_RES,
0421 F_VSYS_OV_DET,
0422 F_VSYS_OV_RES,
0423 F_VSYS_SHT_DET,
0424 F_VSYS_SHT_RES,
0425 F_VSYS_UV_DET,
0426 F_VSYS_UV_RES,
0427 F_OTP_LOAD_DONE,
0428 F_PWR_ON,
0429 F_EXTIADP_TRNS,
0430 F_EXTIADP_TH_DET,
0431 F_EXIADP_TH_RES,
0432 F_BAT_MNT_DET,
0433 F_BAT_MNT_RES,
0434 F_TSD_DET,
0435 F_TSD_RES,
0436 F_CHGWDT_EXP,
0437 F_THERMWDT_EXP,
0438 F_TMP_TRNS,
0439 F_CHG_TRNS,
0440 F_VBUS_UCD_PORT_DET,
0441 F_VBUS_UCD_UCHG_DET,
0442 F_VBUS_UCD_URID_RMV,
0443 F_VBUS_UCD_OTG_DET,
0444 F_VBUS_UCD_URID_MOD,
0445 F_VCC_UCD_PORT_DET,
0446 F_VCC_UCD_UCHG_DET,
0447 F_VCC_UCD_URID_RMV,
0448 F_VCC_UCD_OTG_DET,
0449 F_VCC_UCD_URID_MOD,
0450 F_PROCHOT_DET,
0451 F_PROCHOT_RES,
0452 F_VACP_DET,
0453 F_VACP_RES,
0454 F_VACP_TH_DET,
0455 F_VACP_TH_RES,
0456 F_IACP_TH_DET,
0457 F_IACP_THE_RES,
0458 F_THERM_TH_DET,
0459 F_THERM_TH_RES,
0460 F_IBATM_TH_DET,
0461 F_IBATM_TH_RES,
0462 F_IBATP_TH_DET,
0463 F_IBATP_TH_RES,
0464 F_INT7_STATUS,
0465 F_INT6_STATUS,
0466 F_INT5_STATUS,
0467 F_INT4_STATUS,
0468 F_INT3_STATUS,
0469 F_INT2_STATUS,
0470 F_INT1_STATUS,
0471 F_INT0_STATUS,
0472 F_ILIM_DECREASE,
0473 F_RESERVE_OTPREG1,
0474 F_POWER_SAVE_MODE,
0475 F_DEBUG_MODE_SET,
0476 F_DEBUG0x14,
0477 F_DEBUG0x1A,
0478 F_MAX_FIELDS
0479 };
0480
0481 static const struct reg_field bd9995x_reg_fields[] = {
0482 [F_PREV_CHGSTM_STATE] = REG_FIELD(CHGSTM_STATUS, 8, 14),
0483 [F_CHGSTM_STATE] = REG_FIELD(CHGSTM_STATUS, 0, 6),
0484 [F_VBAT_VSYS_STATUS] = REG_FIELD(VBAT_VSYS_STATUS, 0, 15),
0485 [F_VBUS_VCC_STATUS] = REG_FIELD(VBUS_VCC_STATUS, 0, 12),
0486 [F_BATTEMP] = REG_FIELD(CHGOP_STATUS, 8, 10),
0487 [F_VRECHG_DET] = REG_FIELD(CHGOP_STATUS, 6, 6),
0488 [F_RBOOST_UV] = REG_FIELD(CHGOP_STATUS, 1, 1),
0489 [F_RBOOSTS] = REG_FIELD(CHGOP_STATUS, 0, 0),
0490 [F_THERMWDT_VAL] = REG_FIELD(WDT_STATUS, 8, 15),
0491 [F_CHGWDT_VAL] = REG_FIELD(WDT_STATUS, 0, 7),
0492 [F_CUR_ILIM_VAL] = REG_FIELD(CUR_ILIM_VAL, 0, 13),
0493 [F_SEL_ILIM_VAL] = REG_FIELD(SEL_ILIM_VAL, 0, 13),
0494 [F_IBUS_LIM_SET] = REG_FIELD(IBUS_LIM_SET, 5, 13),
0495 [F_ICC_LIM_SET] = REG_FIELD(ICC_LIM_SET, 5, 13),
0496 [F_IOTG_LIM_SET] = REG_FIELD(IOTG_LIM_SET, 5, 13),
0497 [F_OTG_BOTH_EN] = REG_FIELD(VIN_CTRL_SET, 15, 15),
0498 [F_VRBOOST_TRIG] = REG_FIELD(VIN_CTRL_SET, 14, 14),
0499 [F_VRBOOST_EN] = REG_FIELD(VIN_CTRL_SET, 12, 13),
0500 [F_PP_BOTH_THRU] = REG_FIELD(VIN_CTRL_SET, 11, 11),
0501 [F_VIN_ORD] = REG_FIELD(VIN_CTRL_SET, 7, 7),
0502 [F_VBUS_EN] = REG_FIELD(VIN_CTRL_SET, 6, 6),
0503 [F_VCC_EN] = REG_FIELD(VIN_CTRL_SET, 5, 5),
0504 [F_VSYS_PRIORITY] = REG_FIELD(VIN_CTRL_SET, 4, 4),
0505 [F_PPC_SUB_CAP] = REG_FIELD(VIN_CTRL_SET, 2, 3),
0506 [F_PPC_CAP] = REG_FIELD(VIN_CTRL_SET, 0, 1),
0507 [F_DCP_2500_SEL] = REG_FIELD(CHGOP_SET1, 15, 15),
0508 [F_SDP_500_SEL] = REG_FIELD(CHGOP_SET1, 14, 14),
0509 [F_ILIM_AUTO_DISEN] = REG_FIELD(CHGOP_SET1, 13, 13),
0510 [F_VCC_BC_DISEN] = REG_FIELD(CHGOP_SET1, 11, 11),
0511 [F_VBUS_BC_DISEN] = REG_FIELD(CHGOP_SET1, 10, 10),
0512 [F_SDP_CHG_TRIG_EN] = REG_FIELD(CHGOP_SET1, 9, 9),
0513 [F_SDP_CHG_TRIG] = REG_FIELD(CHGOP_SET1, 8, 8),
0514 [F_AUTO_TOF] = REG_FIELD(CHGOP_SET1, 6, 6),
0515 [F_AUTO_FST] = REG_FIELD(CHGOP_SET1, 5, 5),
0516 [F_AUTO_RECH] = REG_FIELD(CHGOP_SET1, 3, 3),
0517 [F_ILIM_RESET_EN] = REG_FIELD(CHGOP_SET2, 14, 14),
0518 [F_DCDC_1MS_SEL] = REG_FIELD(CHGOP_SET2, 12, 13),
0519 [F_SEL_ILIM_DIV] = REG_FIELD(CHGOP_SET2, 10, 10),
0520 [F_BATT_LEARN] = REG_FIELD(CHGOP_SET2, 8, 8),
0521 [F_CHG_EN] = REG_FIELD(CHGOP_SET2, 7, 7),
0522 [F_USB_SUS] = REG_FIELD(CHGOP_SET2, 6, 6),
0523 [F_CHOP_SS_INIT] = REG_FIELD(CHGOP_SET2, 5, 5),
0524 [F_CHOP_ALL_INIT] = REG_FIELD(CHGOP_SET2, 4, 4),
0525 [F_DCDC_CLK_SEL] = REG_FIELD(CHGOP_SET2, 2, 3),
0526 [F_CHOP_SS] = REG_FIELD(CHGOP_SET2, 1, 1),
0527 [F_CHOP_ALL] = REG_FIELD(CHGOP_SET2, 0, 0),
0528 [F_VBUSCLPS_TH_SET] = REG_FIELD(VBUSCLPS_TH_SET, 7, 14),
0529 [F_VCCCLPS_TH_SET] = REG_FIELD(VCCCLPS_TH_SET, 7, 14),
0530 [F_WDT_FST] = REG_FIELD(CHGWDT_SET, 8, 15),
0531 [F_WDT_PRE] = REG_FIELD(CHGWDT_SET, 0, 7),
0532 [F_WDT_IBAT_SHORT] = REG_FIELD(BATTWDT_SET, 8, 15),
0533 [F_WDT_THERM] = REG_FIELD(BATTWDT_SET, 0, 7),
0534 [F_VSYSREG_SET] = REG_FIELD(VSYSREG_SET, 6, 14),
0535 [F_VSYSVAL_THH_SET] = REG_FIELD(VSYSVAL_THH_SET, 6, 14),
0536 [F_VSYSVAL_THL_SET] = REG_FIELD(VSYSVAL_THL_SET, 6, 14),
0537 [F_ITRICH_SET] = REG_FIELD(ITRICH_SET, 6, 10),
0538 [F_IPRECH_SET] = REG_FIELD(IPRECH_SET, 6, 10),
0539 [F_ICHG_SET] = REG_FIELD(ICHG_SET, 6, 13),
0540 [F_ITERM_SET] = REG_FIELD(ITERM_SET, 6, 10),
0541 [F_VPRECHG_TH_SET] = REG_FIELD(VPRECHG_TH_SET, 6, 14),
0542 [F_VRBOOST_SET] = REG_FIELD(VRBOOST_SET, 6, 14),
0543 [F_VFASTCHG_REG_SET1] = REG_FIELD(VFASTCHG_REG_SET1, 4, 14),
0544 [F_VFASTCHG_REG_SET2] = REG_FIELD(VFASTCHG_REG_SET2, 4, 14),
0545 [F_VFASTCHG_REG_SET3] = REG_FIELD(VFASTCHG_REG_SET3, 4, 14),
0546 [F_VRECHG_SET] = REG_FIELD(VRECHG_SET, 4, 14),
0547 [F_VBATOVP_SET] = REG_FIELD(VBATOVP_SET, 4, 14),
0548 [F_IBATM_SHORT_SET] = REG_FIELD(IBATSHORT_SET, 0, 14),
0549 [F_PROCHOT_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 14, 15),
0550 [F_PROCHOT_ICRIT_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 10, 11),
0551 [F_PROCHOT_IDCHG_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 8, 9),
0552 [F_PROCHOT_EN] = REG_FIELD(PROCHOT_CTRL_SET, 0, 4),
0553 [F_PROCHOT_ICRIT_SET] = REG_FIELD(PROCHOT_ICRIT_SET, 0, 14),
0554 [F_PROCHOT_INORM_SET] = REG_FIELD(PROCHOT_INORM_SET, 0, 14),
0555 [F_PROCHOT_IDCHG_SET] = REG_FIELD(PROCHOT_IDCHG_SET, 0, 14),
0556 [F_PROCHOT_VSYS_SET] = REG_FIELD(PROCHOT_VSYS_SET, 0, 14),
0557 [F_IMON_INSEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 9, 9),
0558 [F_PMON_INSEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 8, 8),
0559 [F_IOUT_OUT_EN] = REG_FIELD(PMON_IOUT_CTRL_SET, 7, 7),
0560 [F_IOUT_SOURCE_SEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 6, 6),
0561 [F_IOUT_GAIN_SET] = REG_FIELD(PMON_IOUT_CTRL_SET, 4, 5),
0562 [F_PMON_OUT_EN] = REG_FIELD(PMON_IOUT_CTRL_SET, 3, 3),
0563 [F_PMON_GAIN_SET] = REG_FIELD(PMON_IOUT_CTRL_SET, 0, 2),
0564 [F_PMON_DACIN_VAL] = REG_FIELD(PMON_DACIN_VAL, 0, 9),
0565 [F_IOUT_DACIN_VAL] = REG_FIELD(IOUT_DACIN_VAL, 0, 11),
0566 [F_VCC_BCSRETRY] = REG_FIELD(VCC_UCD_SET, 12, 12),
0567 [F_VCC_ADCRTRY] = REG_FIELD(VCC_UCD_SET, 8, 8),
0568 [F_VCC_USBDETEN] = REG_FIELD(VCC_UCD_SET, 7, 7),
0569 [F_VCC_IDRDETEN] = REG_FIELD(VCC_UCD_SET, 6, 6),
0570 [F_VCC_ENUMRDY] = REG_FIELD(VCC_UCD_SET, 5, 5),
0571 [F_VCC_ADCPOLEN] = REG_FIELD(VCC_UCD_SET, 4, 4),
0572 [F_VCC_DCDMODE] = REG_FIELD(VCC_UCD_SET, 3, 3),
0573 [F_VCC_USB_SW_EN] = REG_FIELD(VCC_UCD_SET, 1, 1),
0574 [F_VCC_USB_SW] = REG_FIELD(VCC_UCD_SET, 0, 0),
0575 [F_VCC_DCDFAIL] = REG_FIELD(VCC_UCD_STATUS, 15, 15),
0576 [F_VCC_CHGPORT] = REG_FIELD(VCC_UCD_STATUS, 12, 13),
0577 [F_VCC_PUPDET] = REG_FIELD(VCC_UCD_STATUS, 11, 11),
0578 [F_VCC_VBUS_VLD] = REG_FIELD(VCC_UCD_STATUS, 7, 7),
0579 [F_VCC_CHGDET] = REG_FIELD(VCC_UCD_STATUS, 6, 6),
0580 [F_VCC_OTGDET] = REG_FIELD(VCC_UCD_STATUS, 3, 3),
0581 [F_VCC_VBINOP] = REG_FIELD(VCC_IDD_STATUS, 6, 6),
0582 [F_VCC_EXTID] = REG_FIELD(VCC_IDD_STATUS, 5, 5),
0583 [F_VCC_IDRDET] = REG_FIELD(VCC_IDD_STATUS, 4, 4),
0584 [F_VCC_INDO] = REG_FIELD(VCC_IDD_STATUS, 0, 3),
0585 [F_VCC_UCDSWEN] = REG_FIELD(VCC_UCD_FCTRL_SET, 10, 10),
0586 [F_VCC_RREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 9, 9),
0587 [F_VCC_DPPU_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 8, 8),
0588 [F_VCC_DPREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 7, 7),
0589 [F_VCC_DMREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 6, 6),
0590 [F_VCC_DPDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 5, 5),
0591 [F_VCC_DMDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 4, 4),
0592 [F_VCC_DPSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 3, 3),
0593 [F_VCC_DMSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 2, 2),
0594 [F_VCC_DP_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 1, 1),
0595 [F_VCC_DM_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 0, 0),
0596 [F_VCC_EXTCLKENBL] = REG_FIELD(VCC_UCD_FCTRL_EN, 15, 15),
0597 [F_VCC_PLSTESTEN] = REG_FIELD(VCC_UCD_FCTRL_EN, 14, 14),
0598 [F_VCC_UCDSWEN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 10, 10),
0599 [F_VCC_RREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 9, 9),
0600 [F_VCC_DPPU_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 8, 8),
0601 [F_VCC_DPREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 7, 7),
0602 [F_VCC_DMREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 6, 6),
0603 [F_VCC_DPDET_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 5, 5),
0604 [F_VCC_DMDET_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 4, 4),
0605 [F_VCC_DPSINK_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 3, 3),
0606 [F_VCC_DMSINK_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 2, 2),
0607 [F_VCC_DP_BUFF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 1, 1),
0608 [F_VCC_DM_BUFF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 0, 0),
0609
0610 [F_VBUS_BCSRETRY] = REG_FIELD(VBUS_UCD_SET, 12, 12),
0611 [F_VBUS_ADCRTRY] = REG_FIELD(VBUS_UCD_SET, 8, 8),
0612 [F_VBUS_USBDETEN] = REG_FIELD(VBUS_UCD_SET, 7, 7),
0613 [F_VBUS_IDRDETEN] = REG_FIELD(VBUS_UCD_SET, 6, 6),
0614 [F_VBUS_ENUMRDY] = REG_FIELD(VBUS_UCD_SET, 5, 5),
0615 [F_VBUS_ADCPOLEN] = REG_FIELD(VBUS_UCD_SET, 4, 4),
0616 [F_VBUS_DCDMODE] = REG_FIELD(VBUS_UCD_SET, 3, 3),
0617 [F_VBUS_USB_SW_EN] = REG_FIELD(VBUS_UCD_SET, 1, 1),
0618 [F_VBUS_USB_SW] = REG_FIELD(VBUS_UCD_SET, 0, 0),
0619 [F_VBUS_DCDFAIL] = REG_FIELD(VBUS_UCD_STATUS, 15, 15),
0620 [F_VBUS_CHGPORT] = REG_FIELD(VBUS_UCD_STATUS, 12, 13),
0621 [F_VBUS_PUPDET] = REG_FIELD(VBUS_UCD_STATUS, 11, 11),
0622 [F_VBUS_VBUS_VLD] = REG_FIELD(VBUS_UCD_STATUS, 7, 7),
0623 [F_VBUS_CHGDET] = REG_FIELD(VBUS_UCD_STATUS, 6, 6),
0624 [F_VBUS_OTGDET] = REG_FIELD(VBUS_UCD_STATUS, 3, 3),
0625 [F_VBUS_VBINOP] = REG_FIELD(VBUS_IDD_STATUS, 6, 6),
0626 [F_VBUS_EXTID] = REG_FIELD(VBUS_IDD_STATUS, 5, 5),
0627 [F_VBUS_IDRDET] = REG_FIELD(VBUS_IDD_STATUS, 4, 4),
0628 [F_VBUS_INDO] = REG_FIELD(VBUS_IDD_STATUS, 0, 3),
0629 [F_VBUS_UCDSWEN] = REG_FIELD(VCC_UCD_FCTRL_SET, 10, 10),
0630 [F_VBUS_RREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 9, 9),
0631 [F_VBUS_DPPU_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 8, 8),
0632 [F_VBUS_DPREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 7, 7),
0633 [F_VBUS_DMREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 6, 6),
0634 [F_VBUS_DPDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 5, 5),
0635 [F_VBUS_DMDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 4, 4),
0636 [F_VBUS_DPSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 3, 3),
0637 [F_VBUS_DMSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 2, 2),
0638 [F_VBUS_DP_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 1, 1),
0639 [F_VBUS_DM_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 0, 0),
0640
0641 [F_VBUS_EXTCLKENBL] = REG_FIELD(VBUS_UCD_FCTRL_EN, 15, 15),
0642 [F_VBUS_PLSTESTEN] = REG_FIELD(VBUS_UCD_FCTRL_EN, 14, 14),
0643 [F_VBUS_UCDSWEN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 10, 10),
0644 [F_VBUS_RREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 9, 9),
0645 [F_VBUS_DPPU_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 8, 8),
0646 [F_VBUS_DPREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 7, 7),
0647 [F_VBUS_DMREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 6, 6),
0648 [F_VBUS_DPDET_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 5, 5),
0649 [F_VBUS_DMDET_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 4, 4),
0650 [F_VBUS_DPSINK_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 3, 3),
0651 [F_VBUS_DMSINK_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 2, 2),
0652 [F_VBUS_DP_BUFF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 1, 1),
0653 [F_VBUS_DM_BUFF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 0, 0),
0654
0655 [F_CHIP_ID] = REG_FIELD(CHIP_ID, 0, 15),
0656 [F_CHIP_REV] = REG_FIELD(CHIP_REV, 0, 15),
0657 [F_ONE_CELL_MODE] = REG_FIELD(IC_SET1, 11, 11),
0658 [F_cell] = REG_FIELD(IC_SET1, 1, 1),
0659 [F_VACP_AUTO_DISCHG] = REG_FIELD(IC_SET1, 9, 9),
0660 [F_VACP_LOAD] = REG_FIELD(IC_SET1, 8, 8),
0661 [F_ACOK_POL] = REG_FIELD(IC_SET1, 1, 1),
0662 [F_ACOK_DISEN] = REG_FIELD(IC_SET1, 0, 0),
0663 [F_DEBUG_SET1] = REG_FIELD(IC_SET2, 4, 8),
0664 [F_DEBUG_SET0] = REG_FIELD(IC_SET2, 0, 0),
0665 [F_MONRST_STATE] = REG_FIELD(SYSTEM_STATUS, 6, 6),
0666 [F_ALMRST_STATE] = REG_FIELD(SYSTEM_STATUS, 5, 5),
0667 [F_CHGRST_STATE] = REG_FIELD(SYSTEM_STATUS, 4, 4),
0668 [F_OTPLD_STATE] = REG_FIELD(SYSTEM_STATUS, 1, 1),
0669 [F_ALLRST_STATE] = REG_FIELD(SYSTEM_STATUS, 0, 0),
0670 [F_PROTECT_SET] = REG_FIELD(PROTECT_SET, 0, 15),
0671 [F_MAP_SET] = REG_FIELD(MAP_SET, 0, 15),
0672 [F_ADCINTERVAL] = REG_FIELD(VM_CTRL_SET, 14, 15),
0673 [F_ADCMOD] = REG_FIELD(VM_CTRL_SET, 12, 13),
0674 [F_ADCTMOD] = REG_FIELD(VM_CTRL_SET, 10, 11),
0675 [F_EXTIADPEN] = REG_FIELD(VM_CTRL_SET, 9, 9),
0676 [F_VSYSENB] = REG_FIELD(VM_CTRL_SET, 8, 8),
0677 [F_VCCENB] = REG_FIELD(VM_CTRL_SET, 7, 7),
0678 [F_VBUSENB] = REG_FIELD(VM_CTRL_SET, 6, 6),
0679 [F_VACPENB] = REG_FIELD(VM_CTRL_SET, 5, 5),
0680 [F_IACPENB] = REG_FIELD(VM_CTRL_SET, 4, 4),
0681 [F_THERMENB] = REG_FIELD(VM_CTRL_SET, 3, 3),
0682 [F_VBATENB] = REG_FIELD(VM_CTRL_SET, 2, 2),
0683 [F_IBATMENB] = REG_FIELD(VM_CTRL_SET, 1, 1),
0684 [F_IBATPENB] = REG_FIELD(VM_CTRL_SET, 0, 0),
0685 [F_TMPTHR1B] = REG_FIELD(THERM_WINDOW_SET1, 8, 15),
0686 [F_TMPTHR1A] = REG_FIELD(THERM_WINDOW_SET1, 0, 7),
0687 [F_TMPTHR2B] = REG_FIELD(THERM_WINDOW_SET2, 8, 15),
0688 [F_TMPTHR2A] = REG_FIELD(THERM_WINDOW_SET2, 0, 7),
0689 [F_TMPTHR3B] = REG_FIELD(THERM_WINDOW_SET3, 8, 15),
0690 [F_TMPTHR3A] = REG_FIELD(THERM_WINDOW_SET3, 0, 7),
0691 [F_TMPTHR4B] = REG_FIELD(THERM_WINDOW_SET4, 8, 15),
0692 [F_TMPTHR4A] = REG_FIELD(THERM_WINDOW_SET4, 0, 7),
0693 [F_TMPTHR5B] = REG_FIELD(THERM_WINDOW_SET5, 8, 15),
0694 [F_TMPTHR5A] = REG_FIELD(THERM_WINDOW_SET5, 0, 7),
0695 [F_IBATP_TH_SET] = REG_FIELD(IBATP_TH_SET, 0, 14),
0696 [F_IBATM_TH_SET] = REG_FIELD(IBATM_TH_SET, 0, 14),
0697 [F_VBAT_TH_SET] = REG_FIELD(VBAT_TH_SET, 0, 14),
0698 [F_THERM_TH_SET] = REG_FIELD(THERM_TH_SET, 0, 7),
0699 [F_IACP_TH_SET] = REG_FIELD(IACP_TH_SET, 0, 14),
0700 [F_VACP_TH_SET] = REG_FIELD(VACP_TH_SET, 0, 14),
0701 [F_VBUS_TH_SET] = REG_FIELD(VBUS_TH_SET, 0, 14),
0702 [F_VCC_TH_SET] = REG_FIELD(VCC_TH_SET, 0, 14),
0703 [F_VSYS_TH_SET] = REG_FIELD(VSYS_TH_SET, 0, 14),
0704 [F_EXTIADP_TH_SET] = REG_FIELD(EXTIADP_TH_SET, 0, 11),
0705 [F_IBATP_VAL] = REG_FIELD(IBATP_VAL, 0, 14),
0706 [F_IBATP_AVE_VAL] = REG_FIELD(IBATP_AVE_VAL, 0, 14),
0707 [F_IBATM_VAL] = REG_FIELD(IBATM_VAL, 0, 14),
0708 [F_IBATM_AVE_VAL] = REG_FIELD(IBATM_AVE_VAL, 0, 14),
0709 [F_VBAT_VAL] = REG_FIELD(VBAT_VAL, 0, 14),
0710 [F_VBAT_AVE_VAL] = REG_FIELD(VBAT_AVE_VAL, 0, 14),
0711 [F_THERM_VAL] = REG_FIELD(THERM_VAL, 0, 7),
0712 [F_VTH_VAL] = REG_FIELD(VTH_VAL, 0, 11),
0713 [F_IACP_VAL] = REG_FIELD(IACP_VAL, 0, 14),
0714 [F_IACP_AVE_VAL] = REG_FIELD(IACP_AVE_VAL, 0, 14),
0715 [F_VACP_VAL] = REG_FIELD(VACP_VAL, 0, 14),
0716 [F_VACP_AVE_VAL] = REG_FIELD(VACP_AVE_VAL, 0, 14),
0717 [F_VBUS_VAL] = REG_FIELD(VBUS_VAL, 0, 14),
0718 [F_VBUS_AVE_VAL] = REG_FIELD(VBUS_AVE_VAL, 0, 14),
0719 [F_VCC_VAL] = REG_FIELD(VCC_VAL, 0, 14),
0720 [F_VCC_AVE_VAL] = REG_FIELD(VCC_AVE_VAL, 0, 14),
0721 [F_VSYS_VAL] = REG_FIELD(VSYS_VAL, 0, 14),
0722 [F_VSYS_AVE_VAL] = REG_FIELD(VSYS_AVE_VAL, 0, 14),
0723 [F_EXTIADP_VAL] = REG_FIELD(EXTIADP_VAL, 0, 11),
0724 [F_EXTIADP_AVE_VAL] = REG_FIELD(EXTIADP_AVE_VAL, 0, 11),
0725 [F_VACPCLPS_TH_SET] = REG_FIELD(VACPCLPS_TH_SET, 7, 14),
0726 [F_INT7_SET] = REG_FIELD(INT7_SET, 0, 15),
0727 [F_INT6_SET] = REG_FIELD(INT6_SET, 0, 13),
0728 [F_INT5_SET] = REG_FIELD(INT5_SET, 0, 13),
0729 [F_INT4_SET] = REG_FIELD(INT4_SET, 0, 9),
0730 [F_INT3_SET] = REG_FIELD(INT3_SET, 0, 15),
0731 [F_INT2_SET] = REG_FIELD(INT2_SET, 0, 15),
0732 [F_INT1_SET] = REG_FIELD(INT1_SET, 0, 15),
0733 [F_INT0_SET] = REG_FIELD(INT0_SET, 0, 7),
0734 [F_VBUS_RBUV_DET] = REG_FIELD(INT1_SET, 15, 15),
0735 [F_VBUS_RBUV_RES] = REG_FIELD(INT1_SET, 14, 14),
0736 [F_VBUS_TH_DET] = REG_FIELD(INT1_SET, 9, 9),
0737 [F_VBUS_TH_RES] = REG_FIELD(INT1_SET, 8, 8),
0738 [F_VBUS_IIN_MOD] = REG_FIELD(INT1_SET, 6, 6),
0739 [F_VBUS_OV_DET] = REG_FIELD(INT1_SET, 5, 5),
0740 [F_VBUS_OV_RES] = REG_FIELD(INT1_SET, 4, 4),
0741 [F_VBUS_CLPS_DET] = REG_FIELD(INT1_SET, 3, 3),
0742 [F_VBUS_CLPS] = REG_FIELD(INT1_SET, 2, 2),
0743 [F_VBUS_DET] = REG_FIELD(INT1_SET, 1, 1),
0744 [F_VBUS_RES] = REG_FIELD(INT1_SET, 0, 0),
0745 [F_VCC_RBUV_DET] = REG_FIELD(INT2_SET, 15, 15),
0746 [F_VCC_RBUV_RES] = REG_FIELD(INT2_SET, 14, 14),
0747 [F_VCC_TH_DET] = REG_FIELD(INT2_SET, 9, 9),
0748 [F_VCC_TH_RES] = REG_FIELD(INT2_SET, 8, 8),
0749 [F_VCC_IIN_MOD] = REG_FIELD(INT2_SET, 6, 6),
0750 [F_VCC_OVP_DET] = REG_FIELD(INT2_SET, 5, 5),
0751 [F_VCC_OVP_RES] = REG_FIELD(INT2_SET, 4, 4),
0752 [F_VCC_CLPS_DET] = REG_FIELD(INT2_SET, 3, 3),
0753 [F_VCC_CLPS_RES] = REG_FIELD(INT2_SET, 2, 2),
0754 [F_VCC_DET] = REG_FIELD(INT2_SET, 1, 1),
0755 [F_VCC_RES] = REG_FIELD(INT2_SET, 0, 0),
0756 [F_TH_DET] = REG_FIELD(INT3_SET, 15, 15),
0757 [F_TH_RMV] = REG_FIELD(INT3_SET, 14, 14),
0758 [F_TMP_OUT_DET] = REG_FIELD(INT3_SET, 11, 11),
0759 [F_TMP_OUT_RES] = REG_FIELD(INT3_SET, 10, 10),
0760 [F_VBAT_TH_DET] = REG_FIELD(INT3_SET, 9, 9),
0761 [F_VBAT_TH_RES] = REG_FIELD(INT3_SET, 8, 8),
0762 [F_IBAT_SHORT_DET] = REG_FIELD(INT3_SET, 7, 7),
0763 [F_IBAT_SHORT_RES] = REG_FIELD(INT3_SET, 6, 6),
0764 [F_VBAT_OV_DET] = REG_FIELD(INT3_SET, 5, 5),
0765 [F_VBAT_OV_RES] = REG_FIELD(INT3_SET, 4, 4),
0766 [F_BAT_ASSIST_DET] = REG_FIELD(INT3_SET, 3, 3),
0767 [F_BAT_ASSIST_RES] = REG_FIELD(INT3_SET, 2, 2),
0768 [F_VSYS_TH_DET] = REG_FIELD(INT4_SET, 9, 9),
0769 [F_VSYS_TH_RES] = REG_FIELD(INT4_SET, 8, 8),
0770 [F_VSYS_OV_DET] = REG_FIELD(INT4_SET, 5, 5),
0771 [F_VSYS_OV_RES] = REG_FIELD(INT4_SET, 4, 4),
0772 [F_VSYS_SHT_DET] = REG_FIELD(INT4_SET, 3, 3),
0773 [F_VSYS_SHT_RES] = REG_FIELD(INT4_SET, 2, 2),
0774 [F_VSYS_UV_DET] = REG_FIELD(INT4_SET, 1, 1),
0775 [F_VSYS_UV_RES] = REG_FIELD(INT4_SET, 0, 0),
0776 [F_OTP_LOAD_DONE] = REG_FIELD(INT5_SET, 13, 13),
0777 [F_PWR_ON] = REG_FIELD(INT5_SET, 12, 12),
0778 [F_EXTIADP_TRNS] = REG_FIELD(INT5_SET, 11, 11),
0779 [F_EXTIADP_TH_DET] = REG_FIELD(INT5_SET, 9, 9),
0780 [F_EXIADP_TH_RES] = REG_FIELD(INT5_SET, 8, 8),
0781 [F_BAT_MNT_DET] = REG_FIELD(INT5_SET, 7, 7),
0782 [F_BAT_MNT_RES] = REG_FIELD(INT5_SET, 6, 6),
0783 [F_TSD_DET] = REG_FIELD(INT5_SET, 5, 5),
0784 [F_TSD_RES] = REG_FIELD(INT5_SET, 4, 4),
0785 [F_CHGWDT_EXP] = REG_FIELD(INT5_SET, 3, 3),
0786 [F_THERMWDT_EXP] = REG_FIELD(INT5_SET, 2, 2),
0787 [F_TMP_TRNS] = REG_FIELD(INT5_SET, 1, 1),
0788 [F_CHG_TRNS] = REG_FIELD(INT5_SET, 0, 0),
0789 [F_VBUS_UCD_PORT_DET] = REG_FIELD(INT6_SET, 13, 13),
0790 [F_VBUS_UCD_UCHG_DET] = REG_FIELD(INT6_SET, 12, 12),
0791 [F_VBUS_UCD_URID_RMV] = REG_FIELD(INT6_SET, 11, 11),
0792 [F_VBUS_UCD_OTG_DET] = REG_FIELD(INT6_SET, 10, 10),
0793 [F_VBUS_UCD_URID_MOD] = REG_FIELD(INT6_SET, 8, 8),
0794 [F_VCC_UCD_PORT_DET] = REG_FIELD(INT6_SET, 5, 5),
0795 [F_VCC_UCD_UCHG_DET] = REG_FIELD(INT6_SET, 4, 4),
0796 [F_VCC_UCD_URID_RMV] = REG_FIELD(INT6_SET, 3, 3),
0797 [F_VCC_UCD_OTG_DET] = REG_FIELD(INT6_SET, 2, 2),
0798 [F_VCC_UCD_URID_MOD] = REG_FIELD(INT6_SET, 0, 0),
0799 [F_PROCHOT_DET] = REG_FIELD(INT7_SET, 15, 15),
0800 [F_PROCHOT_RES] = REG_FIELD(INT7_SET, 14, 14),
0801 [F_VACP_DET] = REG_FIELD(INT7_SET, 11, 11),
0802 [F_VACP_RES] = REG_FIELD(INT7_SET, 10, 10),
0803 [F_VACP_TH_DET] = REG_FIELD(INT7_SET, 9, 9),
0804 [F_VACP_TH_RES] = REG_FIELD(INT7_SET, 8, 8),
0805 [F_IACP_TH_DET] = REG_FIELD(INT7_SET, 7, 7),
0806 [F_IACP_THE_RES] = REG_FIELD(INT7_SET, 6, 6),
0807 [F_THERM_TH_DET] = REG_FIELD(INT7_SET, 5, 5),
0808 [F_THERM_TH_RES] = REG_FIELD(INT7_SET, 4, 4),
0809 [F_IBATM_TH_DET] = REG_FIELD(INT7_SET, 3, 3),
0810 [F_IBATM_TH_RES] = REG_FIELD(INT7_SET, 2, 2),
0811 [F_IBATP_TH_DET] = REG_FIELD(INT7_SET, 1, 1),
0812 [F_IBATP_TH_RES] = REG_FIELD(INT7_SET, 0, 0),
0813 [F_INT7_STATUS] = REG_FIELD(INT7_STATUS, 0, 15),
0814 [F_INT6_STATUS] = REG_FIELD(INT6_STATUS, 0, 13),
0815 [F_INT5_STATUS] = REG_FIELD(INT5_STATUS, 0, 13),
0816 [F_INT4_STATUS] = REG_FIELD(INT4_STATUS, 0, 9),
0817 [F_INT3_STATUS] = REG_FIELD(INT3_STATUS, 0, 15),
0818 [F_INT2_STATUS] = REG_FIELD(INT2_STATUS, 0, 15),
0819 [F_INT1_STATUS] = REG_FIELD(INT1_STATUS, 0, 15),
0820 [F_INT0_STATUS] = REG_FIELD(INT0_STATUS, 0, 7),
0821 [F_ILIM_DECREASE] = REG_FIELD(OTPREG0, 0, 15),
0822 [F_RESERVE_OTPREG1] = REG_FIELD(OTPREG1, 0, 15),
0823 [F_POWER_SAVE_MODE] = REG_FIELD(SMBREG, 0, 15),
0824 [F_DEBUG_MODE_SET] = REG_FIELD(DEBUG_MODE_SET, 0, 15),
0825 [F_DEBUG0x14] = REG_FIELD(DEBUG0x14, 0, 15),
0826 [F_DEBUG0x1A] = REG_FIELD(DEBUG0x1A, 0, 15),
0827 };
0828
0829
0830 #define CHGSTM_SUSPEND 0x00
0831 #define CHGSTM_TRICKLE_CHARGE 0x01
0832 #define CHGSTM_PRE_CHARGE 0x02
0833 #define CHGSTM_FAST_CHARGE 0x03
0834 #define CHGSTM_TOP_OFF 0x04
0835 #define CHGSTM_DONE 0x05
0836 #define CHGSTM_OTG 0x08
0837 #define CHGSTM_OTG_DONE 0x09
0838 #define CHGSTM_TEMPERATURE_ERROR_1 0x10
0839 #define CHGSTM_TEMPERATURE_ERROR_2 0x11
0840 #define CHGSTM_TEMPERATURE_ERROR_3 0x12
0841 #define CHGSTM_TEMPERATURE_ERROR_4 0x13
0842 #define CHGSTM_TEMPERATURE_ERROR_5 0x14
0843 #define CHGSTM_TEMPERATURE_ERROR_6 0x15
0844 #define CHGSTM_TEMPERATURE_ERROR_7 0x18
0845 #define CHGSTM_THERMAL_SHUT_DOWN_1 0x20
0846 #define CHGSTM_THERMAL_SHUT_DOWN_2 0x21
0847 #define CHGSTM_THERMAL_SHUT_DOWN_3 0x22
0848 #define CHGSTM_THERMAL_SHUT_DOWN_4 0x23
0849 #define CHGSTM_THERMAL_SHUT_DOWN_5 0x24
0850 #define CHGSTM_THERMAL_SHUT_DOWN_6 0x25
0851 #define CHGSTM_THERMAL_SHUT_DOWN_7 0x28
0852 #define CHGSTM_BATTERY_ERROR 0x40
0853
0854
0855 #define STATUS_VSYS_OV BIT(15)
0856 #define STATUS_VSYS_SSD BIT(14)
0857 #define STATUS_VSYS_SCP BIT(13)
0858 #define STATUS_VSYS_UVN BIT(12)
0859 #define STATUS_IBAT_SHORT BIT(6)
0860 #define STATUS_VBAT_OV BIT(3)
0861 #define STATUS_DEAD_BAT BIT(0)
0862
0863
0864 #define STATUS_VACP_DET BIT(12)
0865 #define STATUS_VCC_OVP BIT(11)
0866 #define STATUS_ILIM_VCC_MOD BIT(10)
0867 #define STATUS_VCC_CLPS BIT(9)
0868 #define STATUS_VCC_DET BIT(8)
0869 #define STATUS_VBUS_OVP BIT(3)
0870 #define STATUS_ILIM_VBUS_MOD BIT(2)
0871 #define STATUS_VBUS_CLPS BIT(1)
0872 #define STATUS_VBUS_DET BIT(0)
0873
0874
0875
0876
0877 #define INT0_INT7_STATUS BIT(7)
0878 #define INT0_INT6_STATUS BIT(6)
0879 #define INT0_INT5_STATUS BIT(5)
0880 #define INT0_INT4_STATUS BIT(4)
0881 #define INT0_INT3_STATUS BIT(3)
0882 #define INT0_INT2_STATUS BIT(2)
0883 #define INT0_INT1_STATUS BIT(1)
0884 #define INT0_INT0_STATUS BIT(0)
0885 #define INT0_ALL 0xff
0886
0887
0888 #define VBUS_RBUV_DET BIT(15)
0889 #define VBUS_RBUV_RES BIT(14)
0890 #define VBUS_TH_DET BIT(9)
0891 #define VBUS_TH_RES BIT(8)
0892 #define VBUS_IIN_MOD BIT(6)
0893 #define VBUS_OV_DET BIT(5)
0894 #define VBUS_OV_RES BIT(4)
0895 #define VBUS_CLPS_DET BIT(3)
0896 #define VBUS_CLPS BIT(2)
0897 #define VBUS_DET BIT(1)
0898 #define VBUS_RES BIT(0)
0899 #define INT1_ALL (VBUS_RBUV_DET|\
0900 VBUS_RBUV_RES|\
0901 VBUS_TH_DET |\
0902 VBUS_TH_RES |\
0903 VBUS_IIN_MOD|\
0904 VBUS_OV_DET |\
0905 VBUS_OV_RES |\
0906 VBUS_CLPS_DET |\
0907 VBUS_CLPS |\
0908 VBUS_DET |\
0909 VBUS_RES)
0910
0911
0912 #define VCC_RBUV_DET BIT(15)
0913 #define VCC_RBUV_RES BIT(14)
0914 #define VCC_TH_DET BIT(9)
0915 #define VCC_TH_RES BIT(8)
0916 #define VCC_IIN_MOD BIT(6)
0917 #define VCC_OVP_DET BIT(5)
0918 #define VCC_OVP_RES BIT(4)
0919 #define VCC_CLPS_DET BIT(3)
0920 #define VCC_CLPS_RES BIT(2)
0921 #define VCC_DET BIT(1)
0922 #define VCC_RES BIT(0)
0923 #define INT2_ALL (VCC_RBUV_DET |\
0924 VCC_RBUV_RES |\
0925 VCC_TH_DET |\
0926 VCC_TH_RES |\
0927 VCC_IIN_MOD |\
0928 VCC_OVP_DET |\
0929 VCC_OVP_RES |\
0930 VCC_CLPS_DET |\
0931 VCC_CLPS_RES |\
0932 VCC_DET |\
0933 VCC_RES)
0934
0935 #define TH_DET BIT(15)
0936 #define TH_RMV BIT(14)
0937 #define TMP_OUT_DET BIT(11)
0938 #define TMP_OUT_RES BIT(10)
0939 #define VBAT_TH_DET BIT(9)
0940 #define VBAT_TH_RES BIT(8)
0941 #define IBAT_SHORT_DET BIT(7)
0942 #define IBAT_SHORT_RES BIT(6)
0943 #define VBAT_OV_DET BIT(5)
0944 #define VBAT_OV_RES BIT(4)
0945 #define BAT_ASSIST_DET BIT(3)
0946 #define BAT_ASSIST_RES BIT(2)
0947 #define INT3_ALL (TH_DET |\
0948 TH_RMV |\
0949 TMP_OUT_DET |\
0950 TMP_OUT_RES |\
0951 VBAT_TH_DET |\
0952 VBAT_TH_RES |\
0953 IBAT_SHORT_DET |\
0954 IBAT_SHORT_RES |\
0955 VBAT_OV_DET |\
0956 VBAT_OV_RES |\
0957 BAT_ASSIST_DET |\
0958 BAT_ASSIST_RES)
0959
0960
0961 #define VSYS_TH_DET BIT(9)
0962 #define VSYS_TH_RES BIT(8)
0963 #define VSYS_OV_DET BIT(5)
0964 #define VSYS_OV_RES BIT(4)
0965 #define VSYS_SHT_DET BIT(3)
0966 #define VSYS_SHT_RES BIT(2)
0967 #define VSYS_UV_DET BIT(1)
0968 #define VSYS_UV_RES BIT(0)
0969 #define INT4_ALL (VSYS_TH_DET |\
0970 VSYS_TH_RES |\
0971 VSYS_OV_DET |\
0972 VSYS_OV_RES |\
0973 VSYS_SHT_DET |\
0974 VSYS_SHT_RES |\
0975 VSYS_UV_DET |\
0976 VSYS_UV_RES)
0977
0978
0979 #define OTP_LOAD_DONE BIT(13)
0980 #define PWR_ON BIT(12)
0981 #define EXTIADP_TRNS BIT(11)
0982 #define EXTIADP_TH_DET BIT(9)
0983 #define EXIADP_TH_RES BIT(8)
0984 #define BAT_MNT_DET BIT(7)
0985 #define BAT_MNT_RES BIT(6)
0986 #define TSD_DET BIT(5)
0987 #define TSD_RES BIT(4)
0988 #define CHGWDT_EXP BIT(3)
0989 #define THERMWDT_EXP BIT(2)
0990 #define TMP_TRNS BIT(1)
0991 #define CHG_TRNS BIT(0)
0992 #define INT5_ALL (OTP_LOAD_DONE |\
0993 PWR_ON |\
0994 EXTIADP_TRNS |\
0995 EXTIADP_TH_DET |\
0996 EXIADP_TH_RES |\
0997 BAT_MNT_DET |\
0998 BAT_MNT_RES |\
0999 TSD_DET |\
1000 TSD_RES |\
1001 CHGWDT_EXP |\
1002 THERMWDT_EXP |\
1003 TMP_TRNS |\
1004 CHG_TRNS)
1005
1006
1007 #define VBUS_UCD_PORT_DET BIT(13)
1008 #define VBUS_UCD_UCHG_DET BIT(12)
1009 #define VBUS_UCD_URID_RMV BIT(11)
1010 #define VBUS_UCD_OTG_DET BIT(10)
1011 #define VBUS_UCD_URID_MOD BIT(8)
1012 #define VCC_UCD_PORT_DET BIT(5)
1013 #define VCC_UCD_UCHG_DET BIT(4)
1014 #define VCC_UCD_URID_RMV BIT(3)
1015 #define VCC_UCD_OTG_DET BIT(2)
1016 #define VCC_UCD_URID_MOD BIT(0)
1017 #define INT6_ALL (VBUS_UCD_PORT_DET |\
1018 VBUS_UCD_UCHG_DET |\
1019 VBUS_UCD_URID_RMV |\
1020 VBUS_UCD_OTG_DET |\
1021 VBUS_UCD_URID_MOD |\
1022 VCC_UCD_PORT_DET |\
1023 VCC_UCD_UCHG_DET |\
1024 VCC_UCD_URID_RMV |\
1025 VCC_UCD_OTG_DET |\
1026 VCC_UCD_URID_MOD)
1027
1028
1029 #define PROCHOT_DET BIT(15)
1030 #define PROCHOT_RES BIT(14)
1031 #define VACP_DET BIT(11)
1032 #define VACP_RES BIT(10)
1033 #define VACP_TH_DET BIT(9)
1034 #define VACP_TH_RES BIT(8)
1035 #define IACP_TH_DET BIT(7)
1036 #define IACP_THE_RES BIT(6)
1037 #define THERM_TH_DET BIT(5)
1038 #define THERM_TH_RES BIT(4)
1039 #define IBATM_TH_DET BIT(3)
1040 #define IBATM_TH_RES BIT(2)
1041 #define IBATP_TH_DET BIT(1)
1042 #define IBATP_TH_RES BIT(0)
1043 #define INT7_ALL (PROCHOT_DET |\
1044 PROCHOT_RES |\
1045 VACP_DET |\
1046 VACP_RES |\
1047 VACP_TH_DET |\
1048 VACP_TH_RES |\
1049 IACP_TH_DET |\
1050 IACP_THE_RES |\
1051 THERM_TH_DET |\
1052 THERM_TH_RES |\
1053 IBATM_TH_DET |\
1054 IBATM_TH_RES |\
1055 IBATP_TH_DET |\
1056 IBATP_TH_RES)
1057
1058
1059 #define MONRST BIT(6)
1060 #define ALMRST BIT(5)
1061 #define CHGRST BIT(4)
1062 #define OTPLD BIT(1)
1063 #define ALLRST BIT(0)
1064
1065
1066 #define ROOM 0x0
1067 #define HOT1 0x1
1068 #define HOT2 0x2
1069 #define HOT3 0x3
1070 #define COLD1 0x4
1071 #define COLD2 0x5
1072 #define TEMP_DIS 0x6
1073 #define BATT_OPEN 0x7
1074
1075 #endif