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