cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

bd99954-charger.h (35377B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/* Copyright (C) 2020 ROHM Semiconductors */
      3#ifndef BD99954_CHARGER_H
      4#define BD99954_CHARGER_H
      5
      6#include <linux/regmap.h>
      7
      8#define BD9995X_MANUFACTURER "Rohm Semiconductor"
      9#define BD9995X_IRQ_PIN      "bd9995x_irq"
     10
     11#define BD9995X_VSYS_PRECHARGE_OFFSET_MV 200
     12
     13#define BD99954_ID            0x346
     14#define BD99955_ID            0x221
     15#define BD99956_ID            0x331
     16
     17/* Battery Charger Commands */
     18#define    CHARGING_CURRENT   0x14
     19#define    CHARGING_VOLTAGE   0x15
     20#define    PROTECT_SET        0x3E
     21#define    MAP_SET            0x3F
     22
     23/* Extended commands */
     24#define    CHGSTM_STATUS       0x100
     25#define    VBAT_VSYS_STATUS    0x101
     26#define    VBUS_VCC_STATUS     0x102
     27#define    CHGOP_STATUS        0x103
     28#define    WDT_STATUS          0x104
     29#define    CUR_ILIM_VAL        0x105
     30#define    SEL_ILIM_VAL        0x106
     31#define    IBUS_LIM_SET        0x107
     32#define    ICC_LIM_SET         0x108
     33#define    IOTG_LIM_SET        0x109
     34#define    VIN_CTRL_SET        0x10A
     35#define    CHGOP_SET1          0x10B
     36#define    CHGOP_SET2          0x10C
     37#define    VBUSCLPS_TH_SET     0x10D
     38#define    VCCCLPS_TH_SET      0x10E
     39#define    CHGWDT_SET          0x10F
     40#define    BATTWDT_SET         0x110
     41#define    VSYSREG_SET         0x111
     42#define    VSYSVAL_THH_SET     0x112
     43#define    VSYSVAL_THL_SET     0x113
     44#define    ITRICH_SET          0x114
     45#define    IPRECH_SET          0x115
     46#define    ICHG_SET            0x116
     47#define    ITERM_SET           0x117
     48#define    VPRECHG_TH_SET      0x118
     49#define    VRBOOST_SET         0x119
     50#define    VFASTCHG_REG_SET1   0x11A
     51#define    VFASTCHG_REG_SET2   0x11B
     52#define    VFASTCHG_REG_SET3   0x11C
     53#define    VRECHG_SET          0x11D
     54#define    VBATOVP_SET         0x11E
     55#define    IBATSHORT_SET       0x11F
     56#define    PROCHOT_CTRL_SET    0x120
     57#define    PROCHOT_ICRIT_SET   0x121
     58#define    PROCHOT_INORM_SET   0x122
     59#define    PROCHOT_IDCHG_SET   0x123
     60#define    PROCHOT_VSYS_SET    0x124
     61#define    PMON_IOUT_CTRL_SET  0x125
     62#define    PMON_DACIN_VAL      0x126
     63#define    IOUT_DACIN_VAL      0x127
     64#define    VCC_UCD_SET         0x128
     65#define    VCC_UCD_STATUS      0x129
     66#define    VCC_IDD_STATUS      0x12A
     67#define    VCC_UCD_FCTRL_SET   0x12B
     68#define    VCC_UCD_FCTRL_EN    0x12C
     69#define    VBUS_UCD_SET        0x130
     70#define    VBUS_UCD_STATUS     0x131
     71#define    VBUS_IDD_STATUS     0x132
     72#define    VBUS_UCD_FCTRL_SET  0x133
     73#define    VBUS_UCD_FCTRL_EN   0x134
     74#define    CHIP_ID             0x138
     75#define    CHIP_REV            0x139
     76#define    IC_SET1             0x13A
     77#define    IC_SET2             0x13B
     78#define    SYSTEM_STATUS       0x13C
     79#define    SYSTEM_CTRL_SET     0x13D
     80#define    VM_CTRL_SET         0x140
     81#define    THERM_WINDOW_SET1   0x141
     82#define    THERM_WINDOW_SET2   0x142
     83#define    THERM_WINDOW_SET3   0x143
     84#define    THERM_WINDOW_SET4   0x144
     85#define    THERM_WINDOW_SET5   0x145
     86#define    IBATP_TH_SET        0x146
     87#define    IBATM_TH_SET        0x147
     88#define    VBAT_TH_SET         0x148
     89#define    THERM_TH_SET        0x149
     90#define    IACP_TH_SET         0x14A
     91#define    VACP_TH_SET         0x14B
     92#define    VBUS_TH_SET         0x14C
     93#define    VCC_TH_SET          0x14D
     94#define    VSYS_TH_SET         0x14E
     95#define    EXTIADP_TH_SET      0x14F
     96#define    IBATP_VAL           0x150
     97#define    IBATP_AVE_VAL       0x151
     98#define    IBATM_VAL           0x152
     99#define    IBATM_AVE_VAL       0x153
    100#define    VBAT_VAL            0x154
    101#define    VBAT_AVE_VAL        0x155
    102#define    THERM_VAL           0x156
    103#define    VTH_VAL             0x157
    104#define    IACP_VAL            0x158
    105#define    IACP_AVE_VAL        0x159
    106#define    VACP_VAL            0x15A
    107#define    VACP_AVE_VAL        0x15B
    108#define    VBUS_VAL            0x15C
    109#define    VBUS_AVE_VAL        0x15D
    110#define    VCC_VAL             0x15E
    111#define    VCC_AVE_VAL         0x15F
    112#define    VSYS_VAL            0x160
    113#define    VSYS_AVE_VAL        0x161
    114#define    EXTIADP_VAL         0x162
    115#define    EXTIADP_AVE_VAL     0x163
    116#define    VACPCLPS_TH_SET     0x164
    117#define    INT0_SET            0x168
    118#define    INT1_SET            0x169
    119#define    INT2_SET            0x16A
    120#define    INT3_SET            0x16B
    121#define    INT4_SET            0x16C
    122#define    INT5_SET            0x16D
    123#define    INT6_SET            0x16E
    124#define    INT7_SET            0x16F
    125#define    INT0_STATUS         0x170
    126#define    INT1_STATUS         0x171
    127#define    INT2_STATUS         0x172
    128#define    INT3_STATUS         0x173
    129#define    INT4_STATUS         0x174
    130#define    INT5_STATUS         0x175
    131#define    INT6_STATUS         0x176
    132#define    INT7_STATUS         0x177
    133#define    OTPREG0             0x17A
    134#define    OTPREG1             0x17B
    135#define    SMBREG              0x17C
    136#define    DEBUG_MODE_SET      0x17F
    137#define    DEBUG0x14           0x214
    138#define    DEBUG0x1A           0x21A
    139
    140enum bd9995x_fields {
    141	F_PREV_CHGSTM_STATE, F_CHGSTM_STATE,
    142	F_VBAT_VSYS_STATUS,
    143	F_VBUS_VCC_STATUS,
    144	F_BATTEMP, F_VRECHG_DET, F_RBOOST_UV, F_RBOOSTS,
    145	F_THERMWDT_VAL, F_CHGWDT_VAL,
    146	F_CUR_ILIM_VAL,
    147	F_SEL_ILIM_VAL,
    148	F_IBUS_LIM_SET,
    149	F_ICC_LIM_SET,
    150	F_IOTG_LIM_SET,
    151	F_OTG_BOTH_EN,
    152	F_VRBOOST_TRIG,
    153	F_VRBOOST_EN,
    154	F_PP_BOTH_THRU,
    155	F_VIN_ORD,
    156	F_VBUS_EN,
    157	F_VCC_EN,
    158	F_VSYS_PRIORITY,
    159	F_PPC_SUB_CAP,
    160	F_PPC_CAP,
    161	F_DCP_2500_SEL,
    162	F_SDP_500_SEL,
    163	F_ILIM_AUTO_DISEN,
    164	F_VCC_BC_DISEN,
    165	F_VBUS_BC_DISEN,
    166	F_SDP_CHG_TRIG_EN,
    167	F_SDP_CHG_TRIG,
    168	F_AUTO_TOF,
    169	F_AUTO_FST,
    170	F_AUTO_RECH,
    171	F_ILIM_RESET_EN,
    172	F_DCDC_1MS_SEL,
    173	F_SEL_ILIM_DIV,
    174	F_BATT_LEARN,
    175	F_CHG_EN,
    176	F_USB_SUS,
    177	F_CHOP_SS_INIT,
    178	F_CHOP_ALL_INIT,
    179	F_DCDC_CLK_SEL,
    180	F_CHOP_SS,
    181	F_CHOP_ALL,
    182	F_VBUSCLPS_TH_SET,
    183	F_VCCCLPS_TH_SET,
    184	F_WDT_FST,
    185	F_WDT_PRE,
    186	F_WDT_IBAT_SHORT,
    187	F_WDT_THERM,
    188	F_VSYSREG_SET,
    189	F_VSYSVAL_THH_SET,
    190	F_VSYSVAL_THL_SET,
    191	F_ITRICH_SET,
    192	F_IPRECH_SET,
    193	F_ICHG_SET,
    194	F_ITERM_SET,
    195	F_VPRECHG_TH_SET,
    196	F_VRBOOST_SET,
    197	F_VFASTCHG_REG_SET1,
    198	F_VFASTCHG_REG_SET2,
    199	F_VFASTCHG_REG_SET3,
    200	F_VRECHG_SET,
    201	F_VBATOVP_SET,
    202	F_IBATM_SHORT_SET,
    203	F_PROCHOT_DG_SET,
    204	F_PROCHOT_ICRIT_DG_SET,
    205	F_PROCHOT_IDCHG_DG_SET,
    206	F_PROCHOT_EN,
    207	F_PROCHOT_ICRIT_SET,
    208	F_PROCHOT_INORM_SET,
    209	F_PROCHOT_IDCHG_SET,
    210	F_PROCHOT_VSYS_SET,
    211	F_IMON_INSEL,
    212	F_PMON_INSEL,
    213	F_IOUT_OUT_EN,
    214	F_IOUT_SOURCE_SEL,
    215	F_IOUT_GAIN_SET,
    216	F_PMON_OUT_EN,
    217	F_PMON_GAIN_SET,
    218	F_PMON_DACIN_VAL,
    219	F_IOUT_DACIN_VAL,
    220	F_VCC_BCSRETRY,
    221	F_VCC_ADCRTRY,
    222	F_VCC_USBDETEN,
    223	F_VCC_IDRDETEN,
    224	F_VCC_ENUMRDY,
    225	F_VCC_ADCPOLEN,
    226	F_VCC_DCDMODE,
    227	F_VCC_USB_SW_EN,
    228	F_VCC_USB_SW,
    229	F_VCC_DCDFAIL,
    230	F_VCC_CHGPORT,
    231	F_VCC_PUPDET,
    232	F_VCC_VBUS_VLD,
    233	F_VCC_CHGDET,
    234	F_VCC_OTGDET,
    235	F_VCC_VBINOP,
    236	F_VCC_EXTID,
    237	F_VCC_IDRDET,
    238	F_VCC_INDO,
    239	F_VCC_UCDSWEN,
    240	F_VCC_RREF_EN,
    241	F_VCC_DPPU_EN,
    242	F_VCC_DPREF_EN,
    243	F_VCC_DMREF_EN,
    244	F_VCC_DPDET_EN,
    245	F_VCC_DMDET_EN,
    246	F_VCC_DPSINK_EN,
    247	F_VCC_DMSINK_EN,
    248	F_VCC_DP_BUFF_EN,
    249	F_VCC_DM_BUFF_EN,
    250	F_VCC_EXTCLKENBL,
    251	F_VCC_PLSTESTEN,
    252	F_VCC_UCDSWEN_TSTENB,
    253	F_VCC_RREF_EN_TSTENB,
    254	F_VCC_DPPU_EN_TSTENB,
    255	F_VCC_DPREF_EN_TSTENB,
    256	F_VCC_DMREF_EN_TSTENB,
    257	F_VCC_DPDET_EN_TSTENB,
    258	F_VCC_DMDET_EN_TSTENB,
    259	F_VCC_DPSINK_EN_TSTENB,
    260	F_VCC_DMSINK_EN_TSTENB,
    261	F_VCC_DP_BUFF_EN_TSTENB,
    262	F_VCC_DM_BUFF_EN_TSTENB,
    263	F_VBUS_BCSRETRY,
    264	F_VBUS_ADCRTRY,
    265	F_VBUS_USBDETEN,
    266	F_VBUS_IDRDETEN,
    267	F_VBUS_ENUMRDY,
    268	F_VBUS_ADCPOLEN,
    269	F_VBUS_DCDMODE,
    270	F_VBUS_USB_SW_EN,
    271	F_VBUS_USB_SW,
    272	F_VBUS_DCDFAIL,
    273	F_VBUS_CHGPORT,
    274	F_VBUS_PUPDET,
    275	F_VBUS_VBUS_VLD,
    276	F_VBUS_CHGDET,
    277	F_VBUS_OTGDET,
    278	F_VBUS_VBINOP,
    279	F_VBUS_EXTID,
    280	F_VBUS_IDRDET,
    281	F_VBUS_INDO,
    282	F_VBUS_UCDSWEN,
    283	F_VBUS_RREF_EN,
    284	F_VBUS_DPPU_EN,
    285	F_VBUS_DPREF_EN,
    286	F_VBUS_DMREF_EN,
    287	F_VBUS_DPDET_EN,
    288	F_VBUS_DMDET_EN,
    289	F_VBUS_DPSINK_EN,
    290	F_VBUS_DMSINK_EN,
    291	F_VBUS_DP_BUFF_EN,
    292	F_VBUS_DM_BUFF_EN,
    293	F_VBUS_EXTCLKENBL,
    294	F_VBUS_PLSTESTEN,
    295	F_VBUS_UCDSWEN_TSTENB,
    296	F_VBUS_RREF_EN_TSTENB,
    297	F_VBUS_DPPU_EN_TSTENB,
    298	F_VBUS_DPREF_EN_TSTENB,
    299	F_VBUS_DMREF_EN_TSTENB,
    300	F_VBUS_DPDET_EN_TSTENB,
    301	F_VBUS_DMDET_EN_TSTENB,
    302	F_VBUS_DPSINK_EN_TSTENB,
    303	F_VBUS_DMSINK_EN_TSTENB,
    304	F_VBUS_DP_BUFF_EN_TSTENB,
    305	F_VBUS_DM_BUFF_EN_TSTENB,
    306	F_CHIP_ID,
    307	F_CHIP_REV,
    308	F_ONE_CELL_MODE,
    309	F_cell,
    310	F_VACP_AUTO_DISCHG,
    311	F_VACP_LOAD,
    312	F_ACOK_POL,
    313	F_ACOK_DISEN,
    314	F_DEBUG_SET1,
    315	F_DEBUG_SET0,
    316	F_MONRST_STATE,
    317	F_ALMRST_STATE,
    318	F_CHGRST_STATE,
    319	F_OTPLD_STATE,
    320	F_ALLRST_STATE,
    321	F_PROTECT_SET,
    322	F_MAP_SET,
    323	F_ADCINTERVAL,
    324	F_ADCMOD,
    325	F_ADCTMOD,
    326	F_EXTIADPEN,
    327	F_VSYSENB,
    328	F_VCCENB,
    329	F_VBUSENB,
    330	F_VACPENB,
    331	F_IACPENB,
    332	F_THERMENB,
    333	F_VBATENB,
    334	F_IBATMENB,
    335	F_IBATPENB,
    336	F_TMPTHR1B,
    337	F_TMPTHR1A,
    338	F_TMPTHR2B,
    339	F_TMPTHR2A,
    340	F_TMPTHR3B,
    341	F_TMPTHR3A,
    342	F_TMPTHR4B,
    343	F_TMPTHR4A,
    344	F_TMPTHR5B,
    345	F_TMPTHR5A,
    346	F_IBATP_TH_SET,
    347	F_IBATM_TH_SET,
    348	F_VBAT_TH_SET,
    349	F_THERM_TH_SET,
    350	F_IACP_TH_SET,
    351	F_VACP_TH_SET,
    352	F_VBUS_TH_SET,
    353	F_VCC_TH_SET,
    354	F_VSYS_TH_SET,
    355	F_EXTIADP_TH_SET,
    356	F_IBATP_VAL,
    357	F_IBATP_AVE_VAL,
    358	F_IBATM_VAL,
    359	F_IBATM_AVE_VAL,
    360	F_VBAT_VAL,
    361	F_VBAT_AVE_VAL,
    362	F_THERM_VAL,
    363	F_VTH_VAL,
    364	F_IACP_VAL,
    365	F_IACP_AVE_VAL,
    366	F_VACP_VAL,
    367	F_VACP_AVE_VAL,
    368	F_VBUS_VAL,
    369	F_VBUS_AVE_VAL,
    370	F_VCC_VAL,
    371	F_VCC_AVE_VAL,
    372	F_VSYS_VAL,
    373	F_VSYS_AVE_VAL,
    374	F_EXTIADP_VAL,
    375	F_EXTIADP_AVE_VAL,
    376	F_VACPCLPS_TH_SET,
    377	F_INT7_SET,
    378	F_INT6_SET,
    379	F_INT5_SET,
    380	F_INT4_SET,
    381	F_INT3_SET,
    382	F_INT2_SET,
    383	F_INT1_SET,
    384	F_INT0_SET,
    385	F_VBUS_RBUV_DET,
    386	F_VBUS_RBUV_RES,
    387	F_VBUS_TH_DET,
    388	F_VBUS_TH_RES,
    389	F_VBUS_IIN_MOD,
    390	F_VBUS_OV_DET,
    391	F_VBUS_OV_RES,
    392	F_VBUS_CLPS_DET,
    393	F_VBUS_CLPS,
    394	F_VBUS_DET,
    395	F_VBUS_RES,
    396	F_VCC_RBUV_DET,
    397	F_VCC_RBUV_RES,
    398	F_VCC_TH_DET,
    399	F_VCC_TH_RES,
    400	F_VCC_IIN_MOD,
    401	F_VCC_OVP_DET,
    402	F_VCC_OVP_RES,
    403	F_VCC_CLPS_DET,
    404	F_VCC_CLPS_RES,
    405	F_VCC_DET,
    406	F_VCC_RES,
    407	F_TH_DET,
    408	F_TH_RMV,
    409	F_TMP_OUT_DET,
    410	F_TMP_OUT_RES,
    411	F_VBAT_TH_DET,
    412	F_VBAT_TH_RES,
    413	F_IBAT_SHORT_DET,
    414	F_IBAT_SHORT_RES,
    415	F_VBAT_OV_DET,
    416	F_VBAT_OV_RES,
    417	F_BAT_ASSIST_DET,
    418	F_BAT_ASSIST_RES,
    419	F_VSYS_TH_DET,
    420	F_VSYS_TH_RES,
    421	F_VSYS_OV_DET,
    422	F_VSYS_OV_RES,
    423	F_VSYS_SHT_DET,
    424	F_VSYS_SHT_RES,
    425	F_VSYS_UV_DET,
    426	F_VSYS_UV_RES,
    427	F_OTP_LOAD_DONE,
    428	F_PWR_ON,
    429	F_EXTIADP_TRNS,
    430	F_EXTIADP_TH_DET,
    431	F_EXIADP_TH_RES,
    432	F_BAT_MNT_DET,
    433	F_BAT_MNT_RES,
    434	F_TSD_DET,
    435	F_TSD_RES,
    436	F_CHGWDT_EXP,
    437	F_THERMWDT_EXP,
    438	F_TMP_TRNS,
    439	F_CHG_TRNS,
    440	F_VBUS_UCD_PORT_DET,
    441	F_VBUS_UCD_UCHG_DET,
    442	F_VBUS_UCD_URID_RMV,
    443	F_VBUS_UCD_OTG_DET,
    444	F_VBUS_UCD_URID_MOD,
    445	F_VCC_UCD_PORT_DET,
    446	F_VCC_UCD_UCHG_DET,
    447	F_VCC_UCD_URID_RMV,
    448	F_VCC_UCD_OTG_DET,
    449	F_VCC_UCD_URID_MOD,
    450	F_PROCHOT_DET,
    451	F_PROCHOT_RES,
    452	F_VACP_DET,
    453	F_VACP_RES,
    454	F_VACP_TH_DET,
    455	F_VACP_TH_RES,
    456	F_IACP_TH_DET,
    457	F_IACP_THE_RES,
    458	F_THERM_TH_DET,
    459	F_THERM_TH_RES,
    460	F_IBATM_TH_DET,
    461	F_IBATM_TH_RES,
    462	F_IBATP_TH_DET,
    463	F_IBATP_TH_RES,
    464	F_INT7_STATUS,
    465	F_INT6_STATUS,
    466	F_INT5_STATUS,
    467	F_INT4_STATUS,
    468	F_INT3_STATUS,
    469	F_INT2_STATUS,
    470	F_INT1_STATUS,
    471	F_INT0_STATUS,
    472	F_ILIM_DECREASE,
    473	F_RESERVE_OTPREG1,
    474	F_POWER_SAVE_MODE,
    475	F_DEBUG_MODE_SET,
    476	F_DEBUG0x14,
    477	F_DEBUG0x1A,
    478	F_MAX_FIELDS
    479};
    480
    481static const struct reg_field bd9995x_reg_fields[] = {
    482	    [F_PREV_CHGSTM_STATE] = REG_FIELD(CHGSTM_STATUS, 8, 14),
    483	    [F_CHGSTM_STATE] = REG_FIELD(CHGSTM_STATUS, 0, 6),
    484	    [F_VBAT_VSYS_STATUS] = REG_FIELD(VBAT_VSYS_STATUS, 0, 15),
    485	    [F_VBUS_VCC_STATUS] = REG_FIELD(VBUS_VCC_STATUS, 0, 12),
    486	    [F_BATTEMP] = REG_FIELD(CHGOP_STATUS, 8, 10),
    487	    [F_VRECHG_DET] = REG_FIELD(CHGOP_STATUS, 6, 6),
    488	    [F_RBOOST_UV] = REG_FIELD(CHGOP_STATUS, 1, 1),
    489	    [F_RBOOSTS] = REG_FIELD(CHGOP_STATUS, 0, 0),
    490	    [F_THERMWDT_VAL] = REG_FIELD(WDT_STATUS, 8, 15),
    491	    [F_CHGWDT_VAL] = REG_FIELD(WDT_STATUS, 0, 7),
    492	    [F_CUR_ILIM_VAL] = REG_FIELD(CUR_ILIM_VAL, 0, 13),
    493	    [F_SEL_ILIM_VAL] = REG_FIELD(SEL_ILIM_VAL, 0, 13),
    494	    [F_IBUS_LIM_SET] = REG_FIELD(IBUS_LIM_SET, 5, 13),
    495	    [F_ICC_LIM_SET] = REG_FIELD(ICC_LIM_SET, 5, 13),
    496	    [F_IOTG_LIM_SET] = REG_FIELD(IOTG_LIM_SET, 5, 13),
    497	    [F_OTG_BOTH_EN] = REG_FIELD(VIN_CTRL_SET, 15, 15),
    498	    [F_VRBOOST_TRIG] = REG_FIELD(VIN_CTRL_SET, 14, 14),
    499	    [F_VRBOOST_EN] = REG_FIELD(VIN_CTRL_SET, 12, 13),
    500	    [F_PP_BOTH_THRU] = REG_FIELD(VIN_CTRL_SET, 11, 11),
    501	    [F_VIN_ORD] = REG_FIELD(VIN_CTRL_SET, 7, 7),
    502	    [F_VBUS_EN] = REG_FIELD(VIN_CTRL_SET, 6, 6),
    503	    [F_VCC_EN] = REG_FIELD(VIN_CTRL_SET, 5, 5),
    504	    [F_VSYS_PRIORITY] = REG_FIELD(VIN_CTRL_SET, 4, 4),
    505	    [F_PPC_SUB_CAP] = REG_FIELD(VIN_CTRL_SET, 2, 3),
    506	    [F_PPC_CAP] = REG_FIELD(VIN_CTRL_SET, 0, 1),
    507	    [F_DCP_2500_SEL] = REG_FIELD(CHGOP_SET1, 15, 15),
    508	    [F_SDP_500_SEL] = REG_FIELD(CHGOP_SET1, 14, 14),
    509	    [F_ILIM_AUTO_DISEN] = REG_FIELD(CHGOP_SET1, 13, 13),
    510	    [F_VCC_BC_DISEN] = REG_FIELD(CHGOP_SET1, 11, 11),
    511	    [F_VBUS_BC_DISEN] = REG_FIELD(CHGOP_SET1, 10, 10),
    512	    [F_SDP_CHG_TRIG_EN] = REG_FIELD(CHGOP_SET1, 9, 9),
    513	    [F_SDP_CHG_TRIG] = REG_FIELD(CHGOP_SET1, 8, 8),
    514	    [F_AUTO_TOF] = REG_FIELD(CHGOP_SET1, 6, 6),
    515	    [F_AUTO_FST] = REG_FIELD(CHGOP_SET1, 5, 5),
    516	    [F_AUTO_RECH] = REG_FIELD(CHGOP_SET1, 3, 3),
    517	    [F_ILIM_RESET_EN] = REG_FIELD(CHGOP_SET2, 14, 14),
    518	    [F_DCDC_1MS_SEL] = REG_FIELD(CHGOP_SET2, 12, 13),
    519	    [F_SEL_ILIM_DIV] = REG_FIELD(CHGOP_SET2, 10, 10),
    520	    [F_BATT_LEARN] = REG_FIELD(CHGOP_SET2, 8, 8),
    521	    [F_CHG_EN] = REG_FIELD(CHGOP_SET2, 7, 7),
    522	    [F_USB_SUS] = REG_FIELD(CHGOP_SET2, 6, 6),
    523	    [F_CHOP_SS_INIT] = REG_FIELD(CHGOP_SET2, 5, 5),
    524	    [F_CHOP_ALL_INIT] = REG_FIELD(CHGOP_SET2, 4, 4),
    525	    [F_DCDC_CLK_SEL] = REG_FIELD(CHGOP_SET2, 2, 3),
    526	    [F_CHOP_SS] = REG_FIELD(CHGOP_SET2, 1, 1),
    527	    [F_CHOP_ALL] = REG_FIELD(CHGOP_SET2, 0, 0),
    528	    [F_VBUSCLPS_TH_SET] = REG_FIELD(VBUSCLPS_TH_SET, 7, 14),
    529	    [F_VCCCLPS_TH_SET] = REG_FIELD(VCCCLPS_TH_SET, 7, 14),
    530	    [F_WDT_FST] = REG_FIELD(CHGWDT_SET, 8, 15),
    531	    [F_WDT_PRE] = REG_FIELD(CHGWDT_SET, 0, 7),
    532	    [F_WDT_IBAT_SHORT] = REG_FIELD(BATTWDT_SET, 8, 15),
    533	    [F_WDT_THERM] = REG_FIELD(BATTWDT_SET, 0, 7),
    534	    [F_VSYSREG_SET] = REG_FIELD(VSYSREG_SET, 6, 14),
    535	    [F_VSYSVAL_THH_SET] = REG_FIELD(VSYSVAL_THH_SET, 6, 14),
    536	    [F_VSYSVAL_THL_SET] = REG_FIELD(VSYSVAL_THL_SET, 6, 14),
    537	    [F_ITRICH_SET] = REG_FIELD(ITRICH_SET, 6, 10),
    538	    [F_IPRECH_SET] = REG_FIELD(IPRECH_SET, 6, 10),
    539	    [F_ICHG_SET] = REG_FIELD(ICHG_SET, 6, 13),
    540	    [F_ITERM_SET] = REG_FIELD(ITERM_SET, 6, 10),
    541	    [F_VPRECHG_TH_SET] = REG_FIELD(VPRECHG_TH_SET, 6, 14),
    542	    [F_VRBOOST_SET] = REG_FIELD(VRBOOST_SET, 6, 14),
    543	    [F_VFASTCHG_REG_SET1] = REG_FIELD(VFASTCHG_REG_SET1, 4, 14),
    544	    [F_VFASTCHG_REG_SET2] = REG_FIELD(VFASTCHG_REG_SET2, 4, 14),
    545	    [F_VFASTCHG_REG_SET3] = REG_FIELD(VFASTCHG_REG_SET3, 4, 14),
    546	    [F_VRECHG_SET] = REG_FIELD(VRECHG_SET, 4, 14),
    547	    [F_VBATOVP_SET] = REG_FIELD(VBATOVP_SET, 4, 14),
    548	    [F_IBATM_SHORT_SET] = REG_FIELD(IBATSHORT_SET, 0, 14),
    549	    [F_PROCHOT_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 14, 15),
    550	    [F_PROCHOT_ICRIT_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 10, 11),
    551	    [F_PROCHOT_IDCHG_DG_SET] = REG_FIELD(PROCHOT_CTRL_SET, 8, 9),
    552	    [F_PROCHOT_EN] = REG_FIELD(PROCHOT_CTRL_SET, 0, 4),
    553	    [F_PROCHOT_ICRIT_SET] = REG_FIELD(PROCHOT_ICRIT_SET, 0, 14),
    554	    [F_PROCHOT_INORM_SET] = REG_FIELD(PROCHOT_INORM_SET, 0, 14),
    555	    [F_PROCHOT_IDCHG_SET] = REG_FIELD(PROCHOT_IDCHG_SET, 0, 14),
    556	    [F_PROCHOT_VSYS_SET] = REG_FIELD(PROCHOT_VSYS_SET, 0, 14),
    557	    [F_IMON_INSEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 9, 9),
    558	    [F_PMON_INSEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 8, 8),
    559	    [F_IOUT_OUT_EN] = REG_FIELD(PMON_IOUT_CTRL_SET, 7, 7),
    560	    [F_IOUT_SOURCE_SEL] = REG_FIELD(PMON_IOUT_CTRL_SET, 6, 6),
    561	    [F_IOUT_GAIN_SET] = REG_FIELD(PMON_IOUT_CTRL_SET, 4, 5),
    562	    [F_PMON_OUT_EN] = REG_FIELD(PMON_IOUT_CTRL_SET, 3, 3),
    563	    [F_PMON_GAIN_SET] = REG_FIELD(PMON_IOUT_CTRL_SET, 0, 2),
    564	    [F_PMON_DACIN_VAL] = REG_FIELD(PMON_DACIN_VAL, 0, 9),
    565	    [F_IOUT_DACIN_VAL] = REG_FIELD(IOUT_DACIN_VAL, 0, 11),
    566	    [F_VCC_BCSRETRY] = REG_FIELD(VCC_UCD_SET, 12, 12),
    567	    [F_VCC_ADCRTRY] = REG_FIELD(VCC_UCD_SET, 8, 8),
    568	    [F_VCC_USBDETEN] = REG_FIELD(VCC_UCD_SET, 7, 7),
    569	    [F_VCC_IDRDETEN] = REG_FIELD(VCC_UCD_SET, 6, 6),
    570	    [F_VCC_ENUMRDY] = REG_FIELD(VCC_UCD_SET, 5, 5),
    571	    [F_VCC_ADCPOLEN] = REG_FIELD(VCC_UCD_SET, 4, 4),
    572	    [F_VCC_DCDMODE] = REG_FIELD(VCC_UCD_SET, 3, 3),
    573	    [F_VCC_USB_SW_EN] = REG_FIELD(VCC_UCD_SET, 1, 1),
    574	    [F_VCC_USB_SW] = REG_FIELD(VCC_UCD_SET, 0, 0),
    575	    [F_VCC_DCDFAIL] = REG_FIELD(VCC_UCD_STATUS, 15, 15),
    576	    [F_VCC_CHGPORT] = REG_FIELD(VCC_UCD_STATUS, 12, 13),
    577	    [F_VCC_PUPDET] = REG_FIELD(VCC_UCD_STATUS, 11, 11),
    578	    [F_VCC_VBUS_VLD] = REG_FIELD(VCC_UCD_STATUS, 7, 7),
    579	    [F_VCC_CHGDET] = REG_FIELD(VCC_UCD_STATUS, 6, 6),
    580	    [F_VCC_OTGDET] = REG_FIELD(VCC_UCD_STATUS, 3, 3),
    581	    [F_VCC_VBINOP] = REG_FIELD(VCC_IDD_STATUS, 6, 6),
    582	    [F_VCC_EXTID] = REG_FIELD(VCC_IDD_STATUS, 5, 5),
    583	    [F_VCC_IDRDET] = REG_FIELD(VCC_IDD_STATUS, 4, 4),
    584	    [F_VCC_INDO] = REG_FIELD(VCC_IDD_STATUS, 0, 3),
    585	    [F_VCC_UCDSWEN] = REG_FIELD(VCC_UCD_FCTRL_SET, 10, 10),
    586	    [F_VCC_RREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 9, 9),
    587	    [F_VCC_DPPU_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 8, 8),
    588	    [F_VCC_DPREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 7, 7),
    589	    [F_VCC_DMREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 6, 6),
    590	    [F_VCC_DPDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 5, 5),
    591	    [F_VCC_DMDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 4, 4),
    592	    [F_VCC_DPSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 3, 3),
    593	    [F_VCC_DMSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 2, 2),
    594	    [F_VCC_DP_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 1, 1),
    595	    [F_VCC_DM_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 0, 0),
    596	    [F_VCC_EXTCLKENBL] = REG_FIELD(VCC_UCD_FCTRL_EN, 15, 15),
    597	    [F_VCC_PLSTESTEN] = REG_FIELD(VCC_UCD_FCTRL_EN, 14, 14),
    598	    [F_VCC_UCDSWEN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 10, 10),
    599	    [F_VCC_RREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 9, 9),
    600	    [F_VCC_DPPU_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 8, 8),
    601	    [F_VCC_DPREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 7, 7),
    602	    [F_VCC_DMREF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 6, 6),
    603	    [F_VCC_DPDET_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 5, 5),
    604	    [F_VCC_DMDET_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 4, 4),
    605	    [F_VCC_DPSINK_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 3, 3),
    606	    [F_VCC_DMSINK_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 2, 2),
    607	    [F_VCC_DP_BUFF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 1, 1),
    608	    [F_VCC_DM_BUFF_EN_TSTENB] = REG_FIELD(VCC_UCD_FCTRL_EN, 0, 0),
    609
    610	    [F_VBUS_BCSRETRY] = REG_FIELD(VBUS_UCD_SET, 12, 12),
    611	    [F_VBUS_ADCRTRY] = REG_FIELD(VBUS_UCD_SET, 8, 8),
    612	    [F_VBUS_USBDETEN] = REG_FIELD(VBUS_UCD_SET, 7, 7),
    613	    [F_VBUS_IDRDETEN] = REG_FIELD(VBUS_UCD_SET, 6, 6),
    614	    [F_VBUS_ENUMRDY] = REG_FIELD(VBUS_UCD_SET, 5, 5),
    615	    [F_VBUS_ADCPOLEN] = REG_FIELD(VBUS_UCD_SET, 4, 4),
    616	    [F_VBUS_DCDMODE] = REG_FIELD(VBUS_UCD_SET, 3, 3),
    617	    [F_VBUS_USB_SW_EN] = REG_FIELD(VBUS_UCD_SET, 1, 1),
    618	    [F_VBUS_USB_SW] = REG_FIELD(VBUS_UCD_SET, 0, 0),
    619	    [F_VBUS_DCDFAIL] = REG_FIELD(VBUS_UCD_STATUS, 15, 15),
    620	    [F_VBUS_CHGPORT] = REG_FIELD(VBUS_UCD_STATUS, 12, 13),
    621	    [F_VBUS_PUPDET] = REG_FIELD(VBUS_UCD_STATUS, 11, 11),
    622	    [F_VBUS_VBUS_VLD] = REG_FIELD(VBUS_UCD_STATUS, 7, 7),
    623	    [F_VBUS_CHGDET] = REG_FIELD(VBUS_UCD_STATUS, 6, 6),
    624	    [F_VBUS_OTGDET] = REG_FIELD(VBUS_UCD_STATUS, 3, 3),
    625	    [F_VBUS_VBINOP] = REG_FIELD(VBUS_IDD_STATUS, 6, 6),
    626	    [F_VBUS_EXTID] = REG_FIELD(VBUS_IDD_STATUS, 5, 5),
    627	    [F_VBUS_IDRDET] = REG_FIELD(VBUS_IDD_STATUS, 4, 4),
    628	    [F_VBUS_INDO] = REG_FIELD(VBUS_IDD_STATUS, 0, 3),
    629	    [F_VBUS_UCDSWEN] = REG_FIELD(VCC_UCD_FCTRL_SET, 10, 10),
    630	    [F_VBUS_RREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 9, 9),
    631	    [F_VBUS_DPPU_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 8, 8),
    632	    [F_VBUS_DPREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 7, 7),
    633	    [F_VBUS_DMREF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 6, 6),
    634	    [F_VBUS_DPDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 5, 5),
    635	    [F_VBUS_DMDET_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 4, 4),
    636	    [F_VBUS_DPSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 3, 3),
    637	    [F_VBUS_DMSINK_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 2, 2),
    638	    [F_VBUS_DP_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 1, 1),
    639	    [F_VBUS_DM_BUFF_EN] = REG_FIELD(VCC_UCD_FCTRL_SET, 0, 0),
    640
    641	    [F_VBUS_EXTCLKENBL] = REG_FIELD(VBUS_UCD_FCTRL_EN, 15, 15),
    642	    [F_VBUS_PLSTESTEN] = REG_FIELD(VBUS_UCD_FCTRL_EN, 14, 14),
    643	    [F_VBUS_UCDSWEN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 10, 10),
    644	    [F_VBUS_RREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 9, 9),
    645	    [F_VBUS_DPPU_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 8, 8),
    646	    [F_VBUS_DPREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 7, 7),
    647	    [F_VBUS_DMREF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 6, 6),
    648	    [F_VBUS_DPDET_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 5, 5),
    649	    [F_VBUS_DMDET_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 4, 4),
    650	    [F_VBUS_DPSINK_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 3, 3),
    651	    [F_VBUS_DMSINK_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 2, 2),
    652	    [F_VBUS_DP_BUFF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 1, 1),
    653	    [F_VBUS_DM_BUFF_EN_TSTENB] = REG_FIELD(VBUS_UCD_FCTRL_EN, 0, 0),
    654
    655	    [F_CHIP_ID] = REG_FIELD(CHIP_ID, 0, 15),
    656	    [F_CHIP_REV] = REG_FIELD(CHIP_REV, 0, 15),
    657	    [F_ONE_CELL_MODE] = REG_FIELD(IC_SET1, 11, 11),
    658	    [F_cell] = REG_FIELD(IC_SET1, 1, 1),
    659	    [F_VACP_AUTO_DISCHG] = REG_FIELD(IC_SET1, 9, 9),
    660	    [F_VACP_LOAD] = REG_FIELD(IC_SET1, 8, 8),
    661	    [F_ACOK_POL] = REG_FIELD(IC_SET1, 1, 1),
    662	    [F_ACOK_DISEN] = REG_FIELD(IC_SET1, 0, 0),
    663	    [F_DEBUG_SET1] = REG_FIELD(IC_SET2, 4, 8),
    664	    [F_DEBUG_SET0] = REG_FIELD(IC_SET2, 0, 0),
    665	    [F_MONRST_STATE] = REG_FIELD(SYSTEM_STATUS, 6, 6),
    666	    [F_ALMRST_STATE] = REG_FIELD(SYSTEM_STATUS, 5, 5),
    667	    [F_CHGRST_STATE] = REG_FIELD(SYSTEM_STATUS, 4, 4),
    668	    [F_OTPLD_STATE] = REG_FIELD(SYSTEM_STATUS, 1, 1),
    669	    [F_ALLRST_STATE] = REG_FIELD(SYSTEM_STATUS, 0, 0),
    670	    [F_PROTECT_SET] = REG_FIELD(PROTECT_SET, 0, 15),
    671	    [F_MAP_SET] = REG_FIELD(MAP_SET, 0, 15),
    672	    [F_ADCINTERVAL] = REG_FIELD(VM_CTRL_SET, 14, 15),
    673	    [F_ADCMOD] = REG_FIELD(VM_CTRL_SET, 12, 13),
    674	    [F_ADCTMOD] = REG_FIELD(VM_CTRL_SET, 10, 11),
    675	    [F_EXTIADPEN] = REG_FIELD(VM_CTRL_SET, 9, 9),
    676	    [F_VSYSENB] = REG_FIELD(VM_CTRL_SET, 8, 8),
    677	    [F_VCCENB] = REG_FIELD(VM_CTRL_SET, 7, 7),
    678	    [F_VBUSENB] = REG_FIELD(VM_CTRL_SET, 6, 6),
    679	    [F_VACPENB] = REG_FIELD(VM_CTRL_SET, 5, 5),
    680	    [F_IACPENB] = REG_FIELD(VM_CTRL_SET, 4, 4),
    681	    [F_THERMENB] = REG_FIELD(VM_CTRL_SET, 3, 3),
    682	    [F_VBATENB] = REG_FIELD(VM_CTRL_SET, 2, 2),
    683	    [F_IBATMENB] = REG_FIELD(VM_CTRL_SET, 1, 1),
    684	    [F_IBATPENB] = REG_FIELD(VM_CTRL_SET, 0, 0),
    685	    [F_TMPTHR1B] = REG_FIELD(THERM_WINDOW_SET1, 8, 15),
    686	    [F_TMPTHR1A] = REG_FIELD(THERM_WINDOW_SET1, 0, 7),
    687	    [F_TMPTHR2B] = REG_FIELD(THERM_WINDOW_SET2, 8, 15),
    688	    [F_TMPTHR2A] = REG_FIELD(THERM_WINDOW_SET2, 0, 7),
    689	    [F_TMPTHR3B] = REG_FIELD(THERM_WINDOW_SET3, 8, 15),
    690	    [F_TMPTHR3A] = REG_FIELD(THERM_WINDOW_SET3, 0, 7),
    691	    [F_TMPTHR4B] = REG_FIELD(THERM_WINDOW_SET4, 8, 15),
    692	    [F_TMPTHR4A] = REG_FIELD(THERM_WINDOW_SET4, 0, 7),
    693	    [F_TMPTHR5B] = REG_FIELD(THERM_WINDOW_SET5, 8, 15),
    694	    [F_TMPTHR5A] = REG_FIELD(THERM_WINDOW_SET5, 0, 7),
    695	    [F_IBATP_TH_SET] = REG_FIELD(IBATP_TH_SET, 0, 14),
    696	    [F_IBATM_TH_SET] = REG_FIELD(IBATM_TH_SET, 0, 14),
    697	    [F_VBAT_TH_SET] = REG_FIELD(VBAT_TH_SET, 0, 14),
    698	    [F_THERM_TH_SET] = REG_FIELD(THERM_TH_SET, 0, 7),
    699	    [F_IACP_TH_SET] = REG_FIELD(IACP_TH_SET, 0, 14),
    700	    [F_VACP_TH_SET] = REG_FIELD(VACP_TH_SET, 0, 14),
    701	    [F_VBUS_TH_SET] = REG_FIELD(VBUS_TH_SET, 0, 14),
    702	    [F_VCC_TH_SET] = REG_FIELD(VCC_TH_SET, 0, 14),
    703	    [F_VSYS_TH_SET] = REG_FIELD(VSYS_TH_SET, 0, 14),
    704	    [F_EXTIADP_TH_SET] = REG_FIELD(EXTIADP_TH_SET, 0, 11),
    705	    [F_IBATP_VAL] = REG_FIELD(IBATP_VAL, 0, 14),
    706	    [F_IBATP_AVE_VAL] = REG_FIELD(IBATP_AVE_VAL, 0, 14),
    707	    [F_IBATM_VAL] = REG_FIELD(IBATM_VAL, 0, 14),
    708	    [F_IBATM_AVE_VAL] = REG_FIELD(IBATM_AVE_VAL, 0, 14),
    709	    [F_VBAT_VAL] = REG_FIELD(VBAT_VAL, 0, 14),
    710	    [F_VBAT_AVE_VAL] = REG_FIELD(VBAT_AVE_VAL, 0, 14),
    711	    [F_THERM_VAL] = REG_FIELD(THERM_VAL, 0, 7),
    712	    [F_VTH_VAL] = REG_FIELD(VTH_VAL, 0, 11),
    713	    [F_IACP_VAL] = REG_FIELD(IACP_VAL, 0, 14),
    714	    [F_IACP_AVE_VAL] = REG_FIELD(IACP_AVE_VAL, 0, 14),
    715	    [F_VACP_VAL] = REG_FIELD(VACP_VAL, 0, 14),
    716	    [F_VACP_AVE_VAL] = REG_FIELD(VACP_AVE_VAL, 0, 14),
    717	    [F_VBUS_VAL] = REG_FIELD(VBUS_VAL, 0, 14),
    718	    [F_VBUS_AVE_VAL] = REG_FIELD(VBUS_AVE_VAL, 0, 14),
    719	    [F_VCC_VAL] = REG_FIELD(VCC_VAL, 0, 14),
    720	    [F_VCC_AVE_VAL] = REG_FIELD(VCC_AVE_VAL, 0, 14),
    721	    [F_VSYS_VAL] = REG_FIELD(VSYS_VAL, 0, 14),
    722	    [F_VSYS_AVE_VAL] = REG_FIELD(VSYS_AVE_VAL, 0, 14),
    723	    [F_EXTIADP_VAL] = REG_FIELD(EXTIADP_VAL, 0, 11),
    724	    [F_EXTIADP_AVE_VAL] = REG_FIELD(EXTIADP_AVE_VAL, 0, 11),
    725	    [F_VACPCLPS_TH_SET] = REG_FIELD(VACPCLPS_TH_SET, 7, 14),
    726	    [F_INT7_SET] = REG_FIELD(INT7_SET, 0, 15),
    727	    [F_INT6_SET] = REG_FIELD(INT6_SET, 0, 13),
    728	    [F_INT5_SET] = REG_FIELD(INT5_SET, 0, 13),
    729	    [F_INT4_SET] = REG_FIELD(INT4_SET, 0, 9),
    730	    [F_INT3_SET] = REG_FIELD(INT3_SET, 0, 15),
    731	    [F_INT2_SET] = REG_FIELD(INT2_SET, 0, 15),
    732	    [F_INT1_SET] = REG_FIELD(INT1_SET, 0, 15),
    733	    [F_INT0_SET] = REG_FIELD(INT0_SET, 0, 7),
    734	    [F_VBUS_RBUV_DET] = REG_FIELD(INT1_SET, 15, 15),
    735	    [F_VBUS_RBUV_RES] = REG_FIELD(INT1_SET, 14, 14),
    736	    [F_VBUS_TH_DET] = REG_FIELD(INT1_SET, 9, 9),
    737	    [F_VBUS_TH_RES] = REG_FIELD(INT1_SET, 8, 8),
    738	    [F_VBUS_IIN_MOD] = REG_FIELD(INT1_SET, 6, 6),
    739	    [F_VBUS_OV_DET] = REG_FIELD(INT1_SET, 5, 5),
    740	    [F_VBUS_OV_RES] = REG_FIELD(INT1_SET, 4, 4),
    741	    [F_VBUS_CLPS_DET] = REG_FIELD(INT1_SET, 3, 3),
    742	    [F_VBUS_CLPS] = REG_FIELD(INT1_SET, 2, 2),
    743	    [F_VBUS_DET] = REG_FIELD(INT1_SET, 1, 1),
    744	    [F_VBUS_RES] = REG_FIELD(INT1_SET, 0, 0),
    745	    [F_VCC_RBUV_DET] = REG_FIELD(INT2_SET, 15, 15),
    746	    [F_VCC_RBUV_RES] = REG_FIELD(INT2_SET, 14, 14),
    747	    [F_VCC_TH_DET] = REG_FIELD(INT2_SET, 9, 9),
    748	    [F_VCC_TH_RES] = REG_FIELD(INT2_SET, 8, 8),
    749	    [F_VCC_IIN_MOD] = REG_FIELD(INT2_SET, 6, 6),
    750	    [F_VCC_OVP_DET] = REG_FIELD(INT2_SET, 5, 5),
    751	    [F_VCC_OVP_RES] = REG_FIELD(INT2_SET, 4, 4),
    752	    [F_VCC_CLPS_DET] = REG_FIELD(INT2_SET, 3, 3),
    753	    [F_VCC_CLPS_RES] = REG_FIELD(INT2_SET, 2, 2),
    754	    [F_VCC_DET] = REG_FIELD(INT2_SET, 1, 1),
    755	    [F_VCC_RES] = REG_FIELD(INT2_SET, 0, 0),
    756	    [F_TH_DET] = REG_FIELD(INT3_SET, 15, 15),
    757	    [F_TH_RMV] = REG_FIELD(INT3_SET, 14, 14),
    758	    [F_TMP_OUT_DET] = REG_FIELD(INT3_SET, 11, 11),
    759	    [F_TMP_OUT_RES] = REG_FIELD(INT3_SET, 10, 10),
    760	    [F_VBAT_TH_DET] = REG_FIELD(INT3_SET, 9, 9),
    761	    [F_VBAT_TH_RES] = REG_FIELD(INT3_SET, 8, 8),
    762	    [F_IBAT_SHORT_DET] = REG_FIELD(INT3_SET, 7, 7),
    763	    [F_IBAT_SHORT_RES] = REG_FIELD(INT3_SET, 6, 6),
    764	    [F_VBAT_OV_DET] = REG_FIELD(INT3_SET, 5, 5),
    765	    [F_VBAT_OV_RES] = REG_FIELD(INT3_SET, 4, 4),
    766	    [F_BAT_ASSIST_DET] = REG_FIELD(INT3_SET, 3, 3),
    767	    [F_BAT_ASSIST_RES] = REG_FIELD(INT3_SET, 2, 2),
    768	    [F_VSYS_TH_DET] = REG_FIELD(INT4_SET, 9, 9),
    769	    [F_VSYS_TH_RES] = REG_FIELD(INT4_SET, 8, 8),
    770	    [F_VSYS_OV_DET] = REG_FIELD(INT4_SET, 5, 5),
    771	    [F_VSYS_OV_RES] = REG_FIELD(INT4_SET, 4, 4),
    772	    [F_VSYS_SHT_DET] = REG_FIELD(INT4_SET, 3, 3),
    773	    [F_VSYS_SHT_RES] = REG_FIELD(INT4_SET, 2, 2),
    774	    [F_VSYS_UV_DET] = REG_FIELD(INT4_SET, 1, 1),
    775	    [F_VSYS_UV_RES] = REG_FIELD(INT4_SET, 0, 0),
    776	    [F_OTP_LOAD_DONE] = REG_FIELD(INT5_SET, 13, 13),
    777	    [F_PWR_ON] = REG_FIELD(INT5_SET, 12, 12),
    778	    [F_EXTIADP_TRNS] = REG_FIELD(INT5_SET, 11, 11),
    779	    [F_EXTIADP_TH_DET] = REG_FIELD(INT5_SET, 9, 9),
    780	    [F_EXIADP_TH_RES] = REG_FIELD(INT5_SET, 8, 8),
    781	    [F_BAT_MNT_DET] = REG_FIELD(INT5_SET, 7, 7),
    782	    [F_BAT_MNT_RES] = REG_FIELD(INT5_SET, 6, 6),
    783	    [F_TSD_DET] = REG_FIELD(INT5_SET, 5, 5),
    784	    [F_TSD_RES] = REG_FIELD(INT5_SET, 4, 4),
    785	    [F_CHGWDT_EXP] = REG_FIELD(INT5_SET, 3, 3),
    786	    [F_THERMWDT_EXP] = REG_FIELD(INT5_SET, 2, 2),
    787	    [F_TMP_TRNS] = REG_FIELD(INT5_SET, 1, 1),
    788	    [F_CHG_TRNS] = REG_FIELD(INT5_SET, 0, 0),
    789	    [F_VBUS_UCD_PORT_DET] = REG_FIELD(INT6_SET, 13, 13),
    790	    [F_VBUS_UCD_UCHG_DET] = REG_FIELD(INT6_SET, 12, 12),
    791	    [F_VBUS_UCD_URID_RMV] = REG_FIELD(INT6_SET, 11, 11),
    792	    [F_VBUS_UCD_OTG_DET] = REG_FIELD(INT6_SET, 10, 10),
    793	    [F_VBUS_UCD_URID_MOD] = REG_FIELD(INT6_SET, 8, 8),
    794	    [F_VCC_UCD_PORT_DET] = REG_FIELD(INT6_SET, 5, 5),
    795	    [F_VCC_UCD_UCHG_DET] = REG_FIELD(INT6_SET, 4, 4),
    796	    [F_VCC_UCD_URID_RMV] = REG_FIELD(INT6_SET, 3, 3),
    797	    [F_VCC_UCD_OTG_DET] = REG_FIELD(INT6_SET, 2, 2),
    798	    [F_VCC_UCD_URID_MOD] = REG_FIELD(INT6_SET, 0, 0),
    799	    [F_PROCHOT_DET] = REG_FIELD(INT7_SET, 15, 15),
    800	    [F_PROCHOT_RES] = REG_FIELD(INT7_SET, 14, 14),
    801	    [F_VACP_DET] = REG_FIELD(INT7_SET, 11, 11),
    802	    [F_VACP_RES] = REG_FIELD(INT7_SET, 10, 10),
    803	    [F_VACP_TH_DET] = REG_FIELD(INT7_SET, 9, 9),
    804	    [F_VACP_TH_RES] = REG_FIELD(INT7_SET, 8, 8),
    805	    [F_IACP_TH_DET] = REG_FIELD(INT7_SET, 7, 7),
    806	    [F_IACP_THE_RES] = REG_FIELD(INT7_SET, 6, 6),
    807	    [F_THERM_TH_DET] = REG_FIELD(INT7_SET, 5, 5),
    808	    [F_THERM_TH_RES] = REG_FIELD(INT7_SET, 4, 4),
    809	    [F_IBATM_TH_DET] = REG_FIELD(INT7_SET, 3, 3),
    810	    [F_IBATM_TH_RES] = REG_FIELD(INT7_SET, 2, 2),
    811	    [F_IBATP_TH_DET] = REG_FIELD(INT7_SET, 1, 1),
    812	    [F_IBATP_TH_RES] = REG_FIELD(INT7_SET, 0, 0),
    813	    [F_INT7_STATUS] = REG_FIELD(INT7_STATUS, 0, 15),
    814	    [F_INT6_STATUS] = REG_FIELD(INT6_STATUS, 0, 13),
    815	    [F_INT5_STATUS] = REG_FIELD(INT5_STATUS, 0, 13),
    816	    [F_INT4_STATUS] = REG_FIELD(INT4_STATUS, 0, 9),
    817	    [F_INT3_STATUS] = REG_FIELD(INT3_STATUS, 0, 15),
    818	    [F_INT2_STATUS] = REG_FIELD(INT2_STATUS, 0, 15),
    819	    [F_INT1_STATUS] = REG_FIELD(INT1_STATUS, 0, 15),
    820	    [F_INT0_STATUS] = REG_FIELD(INT0_STATUS, 0, 7),
    821	    [F_ILIM_DECREASE] = REG_FIELD(OTPREG0, 0, 15),
    822	    [F_RESERVE_OTPREG1] = REG_FIELD(OTPREG1, 0, 15),
    823	    [F_POWER_SAVE_MODE] = REG_FIELD(SMBREG, 0, 15),
    824	    [F_DEBUG_MODE_SET] = REG_FIELD(DEBUG_MODE_SET, 0, 15),
    825	    [F_DEBUG0x14] = REG_FIELD(DEBUG0x14, 0, 15),
    826	    [F_DEBUG0x1A] = REG_FIELD(DEBUG0x1A, 0, 15),
    827};
    828
    829/* CHGSTM_STATEs */
    830#define CHGSTM_SUSPEND 0x00
    831#define CHGSTM_TRICKLE_CHARGE 0x01
    832#define CHGSTM_PRE_CHARGE 0x02
    833#define CHGSTM_FAST_CHARGE 0x03
    834#define CHGSTM_TOP_OFF 0x04
    835#define CHGSTM_DONE 0x05
    836#define CHGSTM_OTG 0x08
    837#define CHGSTM_OTG_DONE 0x09
    838#define CHGSTM_TEMPERATURE_ERROR_1 0x10
    839#define CHGSTM_TEMPERATURE_ERROR_2 0x11
    840#define CHGSTM_TEMPERATURE_ERROR_3 0x12
    841#define CHGSTM_TEMPERATURE_ERROR_4 0x13
    842#define CHGSTM_TEMPERATURE_ERROR_5 0x14
    843#define CHGSTM_TEMPERATURE_ERROR_6 0x15
    844#define CHGSTM_TEMPERATURE_ERROR_7 0x18
    845#define CHGSTM_THERMAL_SHUT_DOWN_1 0x20
    846#define CHGSTM_THERMAL_SHUT_DOWN_2 0x21
    847#define CHGSTM_THERMAL_SHUT_DOWN_3 0x22
    848#define CHGSTM_THERMAL_SHUT_DOWN_4 0x23
    849#define CHGSTM_THERMAL_SHUT_DOWN_5 0x24
    850#define CHGSTM_THERMAL_SHUT_DOWN_6 0x25
    851#define CHGSTM_THERMAL_SHUT_DOWN_7 0x28
    852#define CHGSTM_BATTERY_ERROR 0x40
    853
    854/* VBAT_VSYS_STATUS */
    855#define STATUS_VSYS_OV BIT(15)
    856#define STATUS_VSYS_SSD BIT(14)
    857#define STATUS_VSYS_SCP BIT(13)
    858#define STATUS_VSYS_UVN BIT(12)
    859#define STATUS_IBAT_SHORT BIT(6)
    860#define STATUS_VBAT_OV BIT(3)
    861#define STATUS_DEAD_BAT BIT(0)
    862
    863/* VBUS_VCC_STATUS */
    864#define STATUS_VACP_DET BIT(12)
    865#define STATUS_VCC_OVP BIT(11)
    866#define STATUS_ILIM_VCC_MOD BIT(10)
    867#define STATUS_VCC_CLPS BIT(9)
    868#define STATUS_VCC_DET BIT(8)
    869#define STATUS_VBUS_OVP BIT(3)
    870#define STATUS_ILIM_VBUS_MOD BIT(2)
    871#define STATUS_VBUS_CLPS BIT(1)
    872#define STATUS_VBUS_DET BIT(0)
    873
    874/* Interrupt set/status definitions */
    875
    876/* INT 0 */
    877#define INT0_INT7_STATUS BIT(7)
    878#define INT0_INT6_STATUS BIT(6)
    879#define INT0_INT5_STATUS BIT(5)
    880#define INT0_INT4_STATUS BIT(4)
    881#define INT0_INT3_STATUS BIT(3)
    882#define INT0_INT2_STATUS BIT(2)
    883#define INT0_INT1_STATUS BIT(1)
    884#define INT0_INT0_STATUS BIT(0)
    885#define INT0_ALL 0xff
    886
    887/* INT 1 */
    888#define VBUS_RBUV_DET BIT(15)
    889#define VBUS_RBUV_RES BIT(14)
    890#define VBUS_TH_DET BIT(9)
    891#define VBUS_TH_RES BIT(8)
    892#define VBUS_IIN_MOD BIT(6)
    893#define VBUS_OV_DET BIT(5)
    894#define VBUS_OV_RES BIT(4)
    895#define VBUS_CLPS_DET BIT(3)
    896#define VBUS_CLPS BIT(2)
    897#define VBUS_DET BIT(1)
    898#define VBUS_RES BIT(0)
    899#define INT1_ALL (VBUS_RBUV_DET|\
    900		 VBUS_RBUV_RES|\
    901		 VBUS_TH_DET |\
    902		 VBUS_TH_RES |\
    903		 VBUS_IIN_MOD|\
    904		 VBUS_OV_DET |\
    905		 VBUS_OV_RES |\
    906		 VBUS_CLPS_DET |\
    907		 VBUS_CLPS |\
    908		 VBUS_DET |\
    909		 VBUS_RES)
    910
    911/* INT 2 */
    912#define VCC_RBUV_DET BIT(15)
    913#define VCC_RBUV_RES BIT(14)
    914#define VCC_TH_DET BIT(9)
    915#define VCC_TH_RES BIT(8)
    916#define VCC_IIN_MOD BIT(6)
    917#define VCC_OVP_DET BIT(5)
    918#define VCC_OVP_RES BIT(4)
    919#define VCC_CLPS_DET BIT(3)
    920#define VCC_CLPS_RES BIT(2)
    921#define VCC_DET BIT(1)
    922#define VCC_RES BIT(0)
    923#define INT2_ALL (VCC_RBUV_DET |\
    924		 VCC_RBUV_RES |\
    925		 VCC_TH_DET |\
    926		 VCC_TH_RES |\
    927		 VCC_IIN_MOD |\
    928		 VCC_OVP_DET |\
    929		 VCC_OVP_RES |\
    930		 VCC_CLPS_DET |\
    931		 VCC_CLPS_RES |\
    932		 VCC_DET |\
    933		 VCC_RES)
    934/* INT 3 */
    935#define TH_DET BIT(15)
    936#define TH_RMV BIT(14)
    937#define TMP_OUT_DET BIT(11)
    938#define TMP_OUT_RES BIT(10)
    939#define VBAT_TH_DET BIT(9)
    940#define VBAT_TH_RES BIT(8)
    941#define IBAT_SHORT_DET BIT(7)
    942#define IBAT_SHORT_RES BIT(6)
    943#define VBAT_OV_DET BIT(5)
    944#define VBAT_OV_RES BIT(4)
    945#define BAT_ASSIST_DET BIT(3)
    946#define BAT_ASSIST_RES BIT(2)
    947#define INT3_ALL (TH_DET |\
    948		 TH_RMV |\
    949		 TMP_OUT_DET |\
    950		 TMP_OUT_RES |\
    951		 VBAT_TH_DET |\
    952		 VBAT_TH_RES |\
    953		 IBAT_SHORT_DET |\
    954		 IBAT_SHORT_RES |\
    955		 VBAT_OV_DET |\
    956		 VBAT_OV_RES |\
    957		 BAT_ASSIST_DET |\
    958		 BAT_ASSIST_RES)
    959
    960/* INT 4 */
    961#define VSYS_TH_DET BIT(9)
    962#define VSYS_TH_RES BIT(8)
    963#define VSYS_OV_DET BIT(5)
    964#define VSYS_OV_RES BIT(4)
    965#define VSYS_SHT_DET BIT(3)
    966#define VSYS_SHT_RES BIT(2)
    967#define VSYS_UV_DET BIT(1)
    968#define VSYS_UV_RES BIT(0)
    969#define INT4_ALL (VSYS_TH_DET |\
    970		 VSYS_TH_RES |\
    971		 VSYS_OV_DET |\
    972		 VSYS_OV_RES |\
    973		 VSYS_SHT_DET |\
    974		 VSYS_SHT_RES |\
    975		 VSYS_UV_DET |\
    976		 VSYS_UV_RES)
    977
    978/* INT 5*/
    979#define OTP_LOAD_DONE BIT(13)
    980#define PWR_ON BIT(12)
    981#define EXTIADP_TRNS BIT(11)
    982#define EXTIADP_TH_DET BIT(9)
    983#define EXIADP_TH_RES BIT(8)
    984#define BAT_MNT_DET BIT(7)
    985#define BAT_MNT_RES BIT(6)
    986#define TSD_DET BIT(5)
    987#define TSD_RES BIT(4)
    988#define CHGWDT_EXP BIT(3)
    989#define THERMWDT_EXP BIT(2)
    990#define TMP_TRNS BIT(1)
    991#define CHG_TRNS BIT(0)
    992#define INT5_ALL (OTP_LOAD_DONE |\
    993		 PWR_ON |\
    994		 EXTIADP_TRNS |\
    995		 EXTIADP_TH_DET |\
    996		 EXIADP_TH_RES |\
    997		 BAT_MNT_DET |\
    998		 BAT_MNT_RES |\
    999		 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