Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /* Copyright (C) 2020 ROHM Semiconductors */
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 /* Battery Charger Commands */
0018 #define    CHARGING_CURRENT   0x14
0019 #define    CHARGING_VOLTAGE   0x15
0020 #define    PROTECT_SET        0x3E
0021 #define    MAP_SET            0x3F
0022 
0023 /* Extended commands */
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 /* CHGSTM_STATEs */
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 /* VBAT_VSYS_STATUS */
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 /* VBUS_VCC_STATUS */
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 /* Interrupt set/status definitions */
0875 
0876 /* INT 0 */
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 /* INT 1 */
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 /* INT 2 */
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 /* INT 3 */
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 /* INT 4 */
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 /* INT 5*/
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 /* INT 6*/
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 /* INT 7 */
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 /* SYSTEM_CTRL_SET*/
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 /* F_BATTEMP */
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