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
1076

source code of linux/drivers/power/supply/bd99954-charger.h