xref: /openbmc/linux/include/linux/mfd/rohm-bd71815.h (revision 4dcdcfd5)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright 2021 ROHM Semiconductors.
4  *
5  * Author: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
6  *
7  * Copyright 2014 Embest Technology Co. Ltd. Inc.
8  *
9  * Author: yanglsh@embest-tech.com
10  */
11 
12 #ifndef _MFD_BD71815_H
13 #define _MFD_BD71815_H
14 
15 #include <linux/regmap.h>
16 
17 enum {
18 	BD71815_BUCK1	=	0,
19 	BD71815_BUCK2,
20 	BD71815_BUCK3,
21 	BD71815_BUCK4,
22 	BD71815_BUCK5,
23 	/* General Purpose */
24 	BD71815_LDO1,
25 	BD71815_LDO2,
26 	BD71815_LDO3,
27 	/* LDOs for SD Card and SD Card Interface */
28 	BD71815_LDO4,
29 	BD71815_LDO5,
30 	/* LDO for DDR Reference Voltage */
31 	BD71815_LDODVREF,
32 	/* LDO for Low-Power State Retention */
33 	BD71815_LDOLPSR,
34 	BD71815_WLED,
35 	BD71815_REGULATOR_CNT,
36 };
37 
38 #define BD71815_SUPPLY_STATE_ENABLED    0x1
39 
40 enum {
41 	BD71815_REG_DEVICE		= 0,
42 	BD71815_REG_PWRCTRL,
43 	BD71815_REG_BUCK1_MODE,
44 	BD71815_REG_BUCK2_MODE,
45 	BD71815_REG_BUCK3_MODE,
46 	BD71815_REG_BUCK4_MODE,
47 	BD71815_REG_BUCK5_MODE,
48 	BD71815_REG_BUCK1_VOLT_H,
49 	BD71815_REG_BUCK1_VOLT_L,
50 	BD71815_REG_BUCK2_VOLT_H,
51 	BD71815_REG_BUCK2_VOLT_L,
52 	BD71815_REG_BUCK3_VOLT,
53 	BD71815_REG_BUCK4_VOLT,
54 	BD71815_REG_BUCK5_VOLT,
55 	BD71815_REG_LED_CTRL,
56 	BD71815_REG_LED_DIMM,
57 	BD71815_REG_LDO_MODE1,
58 	BD71815_REG_LDO_MODE2,
59 	BD71815_REG_LDO_MODE3,
60 	BD71815_REG_LDO_MODE4,
61 	BD71815_REG_LDO1_VOLT,
62 	BD71815_REG_LDO2_VOLT,
63 	BD71815_REG_LDO3_VOLT,
64 	BD71815_REG_LDO4_VOLT,
65 	BD71815_REG_LDO5_VOLT_H,
66 	BD71815_REG_LDO5_VOLT_L,
67 	BD71815_REG_BUCK_PD_DIS,
68 	BD71815_REG_LDO_PD_DIS,
69 	BD71815_REG_GPO,
70 	BD71815_REG_OUT32K,
71 	BD71815_REG_SEC,
72 	BD71815_REG_MIN,
73 	BD71815_REG_HOUR,
74 	BD71815_REG_WEEK,
75 	BD71815_REG_DAY,
76 	BD71815_REG_MONTH,
77 	BD71815_REG_YEAR,
78 	BD71815_REG_ALM0_SEC,
79 
80 	BD71815_REG_ALM1_SEC		= 0x2C,
81 
82 	BD71815_REG_ALM0_MASK		= 0x33,
83 	BD71815_REG_ALM1_MASK,
84 	BD71815_REG_ALM2,
85 	BD71815_REG_TRIM,
86 	BD71815_REG_CONF,
87 	BD71815_REG_SYS_INIT,
88 	BD71815_REG_CHG_STATE,
89 	BD71815_REG_CHG_LAST_STATE,
90 	BD71815_REG_BAT_STAT,
91 	BD71815_REG_DCIN_STAT,
92 	BD71815_REG_VSYS_STAT,
93 	BD71815_REG_CHG_STAT,
94 	BD71815_REG_CHG_WDT_STAT,
95 	BD71815_REG_BAT_TEMP,
96 	BD71815_REG_IGNORE_0,
97 	BD71815_REG_INHIBIT_0,
98 	BD71815_REG_DCIN_CLPS,
99 	BD71815_REG_VSYS_REG,
100 	BD71815_REG_VSYS_MAX,
101 	BD71815_REG_VSYS_MIN,
102 	BD71815_REG_CHG_SET1,
103 	BD71815_REG_CHG_SET2,
104 	BD71815_REG_CHG_WDT_PRE,
105 	BD71815_REG_CHG_WDT_FST,
106 	BD71815_REG_CHG_IPRE,
107 	BD71815_REG_CHG_IFST,
108 	BD71815_REG_CHG_IFST_TERM,
109 	BD71815_REG_CHG_VPRE,
110 	BD71815_REG_CHG_VBAT_1,
111 	BD71815_REG_CHG_VBAT_2,
112 	BD71815_REG_CHG_VBAT_3,
113 	BD71815_REG_CHG_LED_1,
114 	BD71815_REG_VF_TH,
115 	BD71815_REG_BAT_SET_1,
116 	BD71815_REG_BAT_SET_2,
117 	BD71815_REG_BAT_SET_3,
118 	BD71815_REG_ALM_VBAT_TH_U,
119 	BD71815_REG_ALM_VBAT_TH_L,
120 	BD71815_REG_ALM_DCIN_TH,
121 	BD71815_REG_ALM_VSYS_TH,
122 	BD71815_REG_VM_IBAT_U,
123 	BD71815_REG_VM_IBAT_L,
124 	BD71815_REG_VM_VBAT_U,
125 	BD71815_REG_VM_VBAT_L,
126 	BD71815_REG_VM_BTMP,
127 	BD71815_REG_VM_VTH,
128 	BD71815_REG_VM_DCIN_U,
129 	BD71815_REG_VM_DCIN_L,
130 	BD71815_REG_VM_VSYS,
131 	BD71815_REG_VM_VF,
132 	BD71815_REG_VM_OCI_PRE_U,
133 	BD71815_REG_VM_OCI_PRE_L,
134 	BD71815_REG_VM_OCV_PRE_U,
135 	BD71815_REG_VM_OCV_PRE_L,
136 	BD71815_REG_VM_OCI_PST_U,
137 	BD71815_REG_VM_OCI_PST_L,
138 	BD71815_REG_VM_OCV_PST_U,
139 	BD71815_REG_VM_OCV_PST_L,
140 	BD71815_REG_VM_SA_VBAT_U,
141 	BD71815_REG_VM_SA_VBAT_L,
142 	BD71815_REG_VM_SA_IBAT_U,
143 	BD71815_REG_VM_SA_IBAT_L,
144 	BD71815_REG_CC_CTRL,
145 	BD71815_REG_CC_BATCAP1_TH_U,
146 	BD71815_REG_CC_BATCAP1_TH_L,
147 	BD71815_REG_CC_BATCAP2_TH_U,
148 	BD71815_REG_CC_BATCAP2_TH_L,
149 	BD71815_REG_CC_BATCAP3_TH_U,
150 	BD71815_REG_CC_BATCAP3_TH_L,
151 	BD71815_REG_CC_STAT,
152 	BD71815_REG_CC_CCNTD_3,
153 	BD71815_REG_CC_CCNTD_2,
154 	BD71815_REG_CC_CCNTD_1,
155 	BD71815_REG_CC_CCNTD_0,
156 	BD71815_REG_CC_CURCD_U,
157 	BD71815_REG_CC_CURCD_L,
158 	BD71815_REG_VM_OCUR_THR_1,
159 	BD71815_REG_VM_OCUR_DUR_1,
160 	BD71815_REG_VM_OCUR_THR_2,
161 	BD71815_REG_VM_OCUR_DUR_2,
162 	BD71815_REG_VM_OCUR_THR_3,
163 	BD71815_REG_VM_OCUR_DUR_3,
164 	BD71815_REG_VM_OCUR_MON,
165 	BD71815_REG_VM_BTMP_OV_THR,
166 	BD71815_REG_VM_BTMP_OV_DUR,
167 	BD71815_REG_VM_BTMP_LO_THR,
168 	BD71815_REG_VM_BTMP_LO_DUR,
169 	BD71815_REG_VM_BTMP_MON,
170 	BD71815_REG_INT_EN_01,
171 
172 	BD71815_REG_INT_EN_11		= 0x95,
173 	BD71815_REG_INT_EN_12,
174 	BD71815_REG_INT_STAT,
175 	BD71815_REG_INT_STAT_01,
176 	BD71815_REG_INT_STAT_02,
177 	BD71815_REG_INT_STAT_03,
178 	BD71815_REG_INT_STAT_04,
179 	BD71815_REG_INT_STAT_05,
180 	BD71815_REG_INT_STAT_06,
181 	BD71815_REG_INT_STAT_07,
182 	BD71815_REG_INT_STAT_08,
183 	BD71815_REG_INT_STAT_09,
184 	BD71815_REG_INT_STAT_10,
185 	BD71815_REG_INT_STAT_11,
186 	BD71815_REG_INT_STAT_12,
187 	BD71815_REG_INT_UPDATE,
188 
189 	BD71815_REG_VM_VSYS_U		= 0xC0,
190 	BD71815_REG_VM_VSYS_L,
191 	BD71815_REG_VM_SA_VSYS_U,
192 	BD71815_REG_VM_SA_VSYS_L,
193 
194 	BD71815_REG_VM_SA_IBAT_MIN_U	= 0xD0,
195 	BD71815_REG_VM_SA_IBAT_MIN_L,
196 	BD71815_REG_VM_SA_IBAT_MAX_U,
197 	BD71815_REG_VM_SA_IBAT_MAX_L,
198 	BD71815_REG_VM_SA_VBAT_MIN_U,
199 	BD71815_REG_VM_SA_VBAT_MIN_L,
200 	BD71815_REG_VM_SA_VBAT_MAX_U,
201 	BD71815_REG_VM_SA_VBAT_MAX_L,
202 	BD71815_REG_VM_SA_VSYS_MIN_U,
203 	BD71815_REG_VM_SA_VSYS_MIN_L,
204 	BD71815_REG_VM_SA_VSYS_MAX_U,
205 	BD71815_REG_VM_SA_VSYS_MAX_L,
206 	BD71815_REG_VM_SA_MINMAX_CLR,
207 
208 	BD71815_REG_REX_CCNTD_3		= 0xE0,
209 	BD71815_REG_REX_CCNTD_2,
210 	BD71815_REG_REX_CCNTD_1,
211 	BD71815_REG_REX_CCNTD_0,
212 	BD71815_REG_REX_SA_VBAT_U,
213 	BD71815_REG_REX_SA_VBAT_L,
214 	BD71815_REG_REX_CTRL_1,
215 	BD71815_REG_REX_CTRL_2,
216 	BD71815_REG_FULL_CCNTD_3,
217 	BD71815_REG_FULL_CCNTD_2,
218 	BD71815_REG_FULL_CCNTD_1,
219 	BD71815_REG_FULL_CCNTD_0,
220 	BD71815_REG_FULL_CTRL,
221 
222 	BD71815_REG_CCNTD_CHG_3		= 0xF0,
223 	BD71815_REG_CCNTD_CHG_2,
224 
225 	BD71815_REG_TEST_MODE		= 0xFE,
226 	BD71815_MAX_REGISTER,
227 };
228 
229 /* BD71815_REG_BUCK1_MODE bits */
230 #define BD71815_BUCK_RAMPRATE_MASK		0xC0
231 #define BD71815_BUCK_RAMPRATE_10P00MV		0x0
232 #define BD71815_BUCK_RAMPRATE_5P00MV		0x01
233 #define BD71815_BUCK_RAMPRATE_2P50MV		0x02
234 #define BD71815_BUCK_RAMPRATE_1P25MV		0x03
235 
236 #define BD71815_BUCK_PWM_FIXED			BIT(4)
237 #define BD71815_BUCK_SNVS_ON			BIT(3)
238 #define BD71815_BUCK_RUN_ON			BIT(2)
239 #define BD71815_BUCK_LPSR_ON			BIT(1)
240 #define BD71815_BUCK_SUSP_ON			BIT(0)
241 
242 /* BD71815_REG_BUCK1_VOLT_H bits */
243 #define BD71815_BUCK_DVSSEL			BIT(7)
244 #define BD71815_BUCK_STBY_DVS			BIT(6)
245 #define BD71815_VOLT_MASK			0x3F
246 #define BD71815_BUCK1_H_DEFAULT			0x14
247 #define BD71815_BUCK1_L_DEFAULT			0x14
248 
249 /* BD71815_REG_BUCK2_VOLT_H bits */
250 #define BD71815_BUCK2_H_DEFAULT			0x14
251 #define BD71815_BUCK2_L_DEFAULT			0x14
252 
253 /* WLED output */
254 /* current register mask */
255 #define LED_DIMM_MASK				0x3f
256 /* LED enable bits at LED_CTRL reg */
257 #define LED_CHGDONE_EN				BIT(4)
258 #define LED_RUN_ON				BIT(2)
259 #define LED_LPSR_ON				BIT(1)
260 #define LED_SUSP_ON				BIT(0)
261 
262 /* BD71815_REG_LDO1_CTRL bits */
263 #define LDO1_EN					BIT(0)
264 #define LDO2_EN					BIT(1)
265 #define LDO3_EN					BIT(2)
266 #define DVREF_EN				BIT(3)
267 #define VOSNVS_SW_EN				BIT(4)
268 
269 /* LDO_MODE1_register */
270 #define LDO1_SNVS_ON				BIT(7)
271 #define LDO1_RUN_ON				BIT(6)
272 #define LDO1_LPSR_ON				BIT(5)
273 #define LDO1_SUSP_ON				BIT(4)
274 /* set => register control, unset => GPIO control */
275 #define LDO4_MODE_MASK				BIT(3)
276 #define LDO4_MODE_I2C				BIT(3)
277 #define LDO4_MODE_GPIO				0
278 /* set => register control, unset => start when DCIN connected */
279 #define LDO3_MODE_MASK				BIT(2)
280 #define LDO3_MODE_I2C				BIT(2)
281 #define LDO3_MODE_DCIN				0
282 
283 /* LDO_MODE2 register */
284 #define LDO3_SNVS_ON				BIT(7)
285 #define LDO3_RUN_ON				BIT(6)
286 #define LDO3_LPSR_ON				BIT(5)
287 #define LDO3_SUSP_ON				BIT(4)
288 #define LDO2_SNVS_ON				BIT(3)
289 #define LDO2_RUN_ON				BIT(2)
290 #define LDO2_LPSR_ON				BIT(1)
291 #define LDO2_SUSP_ON				BIT(0)
292 
293 
294 /* LDO_MODE3 register */
295 #define LDO5_SNVS_ON				BIT(7)
296 #define LDO5_RUN_ON				BIT(6)
297 #define LDO5_LPSR_ON				BIT(5)
298 #define LDO5_SUSP_ON				BIT(4)
299 #define LDO4_SNVS_ON				BIT(3)
300 #define LDO4_RUN_ON				BIT(2)
301 #define LDO4_LPSR_ON				BIT(1)
302 #define LDO4_SUSP_ON				BIT(0)
303 
304 /* LDO_MODE4 register */
305 #define DVREF_SNVS_ON				BIT(7)
306 #define DVREF_RUN_ON				BIT(6)
307 #define DVREF_LPSR_ON				BIT(5)
308 #define DVREF_SUSP_ON				BIT(4)
309 #define LDO_LPSR_SNVS_ON			BIT(3)
310 #define LDO_LPSR_RUN_ON				BIT(2)
311 #define LDO_LPSR_LPSR_ON			BIT(1)
312 #define LDO_LPSR_SUSP_ON			BIT(0)
313 
314 /* BD71815_REG_OUT32K bits */
315 #define OUT32K_EN				BIT(0)
316 #define OUT32K_MODE				BIT(1)
317 #define OUT32K_MODE_CMOS			BIT(1)
318 #define OUT32K_MODE_OPEN_DRAIN			0
319 
320 /* BD71815_REG_BAT_STAT bits */
321 #define BAT_DET					BIT(5)
322 #define BAT_DET_OFFSET				5
323 #define BAT_DET_DONE				BIT(4)
324 #define VBAT_OV					BIT(3)
325 #define DBAT_DET				BIT(0)
326 
327 /* BD71815_REG_VBUS_STAT bits */
328 #define VBUS_DET				BIT(0)
329 
330 #define BD71815_REG_RTC_START			BD71815_REG_SEC
331 #define BD71815_REG_RTC_ALM_START		BD71815_REG_ALM0_SEC
332 
333 /* BD71815_REG_ALM0_MASK bits */
334 #define A0_ONESEC				BIT(7)
335 
336 /* BD71815_REG_INT_EN_00 bits */
337 #define ALMALE					BIT(0)
338 
339 /* BD71815_REG_INT_STAT_03 bits */
340 #define DCIN_MON_DET				BIT(1)
341 #define DCIN_MON_RES				BIT(0)
342 #define POWERON_LONG				BIT(2)
343 #define POWERON_MID				BIT(3)
344 #define POWERON_SHORT				BIT(4)
345 #define POWERON_PRESS				BIT(5)
346 
347 /* BD71805_REG_INT_STAT_08 bits */
348 #define VBAT_MON_DET				BIT(1)
349 #define VBAT_MON_RES				BIT(0)
350 
351 /* BD71805_REG_INT_STAT_11 bits */
352 #define	INT_STAT_11_VF_DET			BIT(7)
353 #define	INT_STAT_11_VF_RES			BIT(6)
354 #define	INT_STAT_11_VF125_DET			BIT(5)
355 #define	INT_STAT_11_VF125_RES			BIT(4)
356 #define	INT_STAT_11_OVTMP_DET			BIT(3)
357 #define	INT_STAT_11_OVTMP_RES			BIT(2)
358 #define	INT_STAT_11_LOTMP_DET			BIT(1)
359 #define	INT_STAT_11_LOTMP_RES			BIT(0)
360 
361 #define VBAT_MON_DET				BIT(1)
362 #define VBAT_MON_RES				BIT(0)
363 
364 /* BD71815_REG_PWRCTRL bits */
365 #define RESTARTEN				BIT(0)
366 
367 /* BD71815_REG_GPO bits */
368 #define READY_FORCE_LOW				BIT(2)
369 #define BD71815_GPIO_DRIVE_MASK			BIT(4)
370 #define BD71815_GPIO_OPEN_DRAIN			0
371 #define BD71815_GPIO_CMOS			BIT(4)
372 
373 /* BD71815 interrupt masks */
374 enum {
375 	BD71815_INT_EN_01_BUCKAST_MASK	=	0x0F,
376 	BD71815_INT_EN_02_DCINAST_MASK	=	0x3E,
377 	BD71815_INT_EN_03_DCINAST_MASK	=	0x3F,
378 	BD71815_INT_EN_04_VSYSAST_MASK	=	0xCF,
379 	BD71815_INT_EN_05_CHGAST_MASK	=	0xFC,
380 	BD71815_INT_EN_06_BATAST_MASK	=	0xF3,
381 	BD71815_INT_EN_07_BMONAST_MASK	=	0xFE,
382 	BD71815_INT_EN_08_BMONAST_MASK	=	0x03,
383 	BD71815_INT_EN_09_BMONAST_MASK	=	0x07,
384 	BD71815_INT_EN_10_BMONAST_MASK	=	0x3F,
385 	BD71815_INT_EN_11_TMPAST_MASK	=	0xFF,
386 	BD71815_INT_EN_12_ALMAST_MASK	=	0x07,
387 };
388 /* BD71815 interrupt irqs */
389 enum {
390 	/* BUCK reg interrupts */
391 	BD71815_INT_BUCK1_OCP,
392 	BD71815_INT_BUCK2_OCP,
393 	BD71815_INT_BUCK3_OCP,
394 	BD71815_INT_BUCK4_OCP,
395 	BD71815_INT_BUCK5_OCP,
396 	BD71815_INT_LED_OVP,
397 	BD71815_INT_LED_OCP,
398 	BD71815_INT_LED_SCP,
399 	/* DCIN1 interrupts */
400 	BD71815_INT_DCIN_RMV,
401 	BD71815_INT_CLPS_OUT,
402 	BD71815_INT_CLPS_IN,
403 	BD71815_INT_DCIN_OVP_RES,
404 	BD71815_INT_DCIN_OVP_DET,
405 	/* DCIN2 interrupts */
406 	BD71815_INT_DCIN_MON_RES,
407 	BD71815_INT_DCIN_MON_DET,
408 	BD71815_INT_WDOG,
409 	/* Vsys INT_STAT_04 */
410 	BD71815_INT_VSYS_UV_RES,
411 	BD71815_INT_VSYS_UV_DET,
412 	BD71815_INT_VSYS_LOW_RES,
413 	BD71815_INT_VSYS_LOW_DET,
414 	BD71815_INT_VSYS_MON_RES,
415 	BD71815_INT_VSYS_MON_DET,
416 	/* Charger INT_STAT_05 */
417 	BD71815_INT_CHG_WDG_TEMP,
418 	BD71815_INT_CHG_WDG_TIME,
419 	BD71815_INT_CHG_RECHARGE_RES,
420 	BD71815_INT_CHG_RECHARGE_DET,
421 	BD71815_INT_CHG_RANGED_TEMP_TRANSITION,
422 	BD71815_INT_CHG_STATE_TRANSITION,
423 	/* Battery  INT_STAT_06 */
424 	BD71815_INT_BAT_TEMP_NORMAL,
425 	BD71815_INT_BAT_TEMP_ERANGE,
426 	BD71815_INT_BAT_REMOVED,
427 	BD71815_INT_BAT_DETECTED,
428 	BD71815_INT_THERM_REMOVED,
429 	BD71815_INT_THERM_DETECTED,
430 	/* Battery Mon 1 INT_STAT_07 */
431 	BD71815_INT_BAT_DEAD,
432 	BD71815_INT_BAT_SHORTC_RES,
433 	BD71815_INT_BAT_SHORTC_DET,
434 	BD71815_INT_BAT_LOW_VOLT_RES,
435 	BD71815_INT_BAT_LOW_VOLT_DET,
436 	BD71815_INT_BAT_OVER_VOLT_RES,
437 	BD71815_INT_BAT_OVER_VOLT_DET,
438 	/* Battery Mon 2 INT_STAT_08 */
439 	BD71815_INT_BAT_MON_RES,
440 	BD71815_INT_BAT_MON_DET,
441 	/* Battery Mon 3 (Coulomb counter) INT_STAT_09 */
442 	BD71815_INT_BAT_CC_MON1,
443 	BD71815_INT_BAT_CC_MON2,
444 	BD71815_INT_BAT_CC_MON3,
445 	/* Battery Mon 4 INT_STAT_10 */
446 	BD71815_INT_BAT_OVER_CURR_1_RES,
447 	BD71815_INT_BAT_OVER_CURR_1_DET,
448 	BD71815_INT_BAT_OVER_CURR_2_RES,
449 	BD71815_INT_BAT_OVER_CURR_2_DET,
450 	BD71815_INT_BAT_OVER_CURR_3_RES,
451 	BD71815_INT_BAT_OVER_CURR_3_DET,
452 	/* Temperature INT_STAT_11 */
453 	BD71815_INT_TEMP_BAT_LOW_RES,
454 	BD71815_INT_TEMP_BAT_LOW_DET,
455 	BD71815_INT_TEMP_BAT_HI_RES,
456 	BD71815_INT_TEMP_BAT_HI_DET,
457 	BD71815_INT_TEMP_CHIP_OVER_125_RES,
458 	BD71815_INT_TEMP_CHIP_OVER_125_DET,
459 	BD71815_INT_TEMP_CHIP_OVER_VF_RES,
460 	BD71815_INT_TEMP_CHIP_OVER_VF_DET,
461 	/* RTC Alarm INT_STAT_12 */
462 	BD71815_INT_RTC0,
463 	BD71815_INT_RTC1,
464 	BD71815_INT_RTC2,
465 };
466 
467 #define BD71815_INT_BUCK1_OCP_MASK			BIT(0)
468 #define BD71815_INT_BUCK2_OCP_MASK			BIT(1)
469 #define BD71815_INT_BUCK3_OCP_MASK			BIT(2)
470 #define BD71815_INT_BUCK4_OCP_MASK			BIT(3)
471 #define BD71815_INT_BUCK5_OCP_MASK			BIT(4)
472 #define BD71815_INT_LED_OVP_MASK			BIT(5)
473 #define BD71815_INT_LED_OCP_MASK			BIT(6)
474 #define BD71815_INT_LED_SCP_MASK			BIT(7)
475 
476 #define BD71815_INT_DCIN_RMV_MASK			BIT(1)
477 #define BD71815_INT_CLPS_OUT_MASK			BIT(2)
478 #define BD71815_INT_CLPS_IN_MASK			BIT(3)
479 #define BD71815_INT_DCIN_OVP_RES_MASK			BIT(4)
480 #define BD71815_INT_DCIN_OVP_DET_MASK			BIT(5)
481 
482 #define BD71815_INT_DCIN_MON_RES_MASK			BIT(0)
483 #define BD71815_INT_DCIN_MON_DET_MASK			BIT(1)
484 #define BD71815_INT_WDOG_MASK				BIT(6)
485 
486 #define BD71815_INT_VSYS_UV_RES_MASK			BIT(0)
487 #define BD71815_INT_VSYS_UV_DET_MASK			BIT(1)
488 #define BD71815_INT_VSYS_LOW_RES_MASK			BIT(2)
489 #define BD71815_INT_VSYS_LOW_DET_MASK			BIT(3)
490 #define BD71815_INT_VSYS_MON_RES_MASK			BIT(6)
491 #define BD71815_INT_VSYS_MON_DET_MASK			BIT(7)
492 
493 #define BD71815_INT_CHG_WDG_TEMP_MASK			BIT(2)
494 #define BD71815_INT_CHG_WDG_TIME_MASK			BIT(3)
495 #define BD71815_INT_CHG_RECHARGE_RES_MASK		BIT(4)
496 #define BD71815_INT_CHG_RECHARGE_DET_MASK		BIT(5)
497 #define BD71815_INT_CHG_RANGED_TEMP_TRANSITION_MASK	BIT(6)
498 #define BD71815_INT_CHG_STATE_TRANSITION_MASK		BIT(7)
499 
500 #define BD71815_INT_BAT_TEMP_NORMAL_MASK		BIT(0)
501 #define BD71815_INT_BAT_TEMP_ERANGE_MASK		BIT(1)
502 #define BD71815_INT_BAT_REMOVED_MASK			BIT(4)
503 #define BD71815_INT_BAT_DETECTED_MASK			BIT(5)
504 #define BD71815_INT_THERM_REMOVED_MASK			BIT(6)
505 #define BD71815_INT_THERM_DETECTED_MASK			BIT(7)
506 
507 #define BD71815_INT_BAT_DEAD_MASK			BIT(1)
508 #define BD71815_INT_BAT_SHORTC_RES_MASK			BIT(2)
509 #define BD71815_INT_BAT_SHORTC_DET_MASK			BIT(3)
510 #define BD71815_INT_BAT_LOW_VOLT_RES_MASK		BIT(4)
511 #define BD71815_INT_BAT_LOW_VOLT_DET_MASK		BIT(5)
512 #define BD71815_INT_BAT_OVER_VOLT_RES_MASK		BIT(6)
513 #define BD71815_INT_BAT_OVER_VOLT_DET_MASK		BIT(7)
514 
515 #define BD71815_INT_BAT_MON_RES_MASK			BIT(0)
516 #define BD71815_INT_BAT_MON_DET_MASK			BIT(1)
517 
518 #define BD71815_INT_BAT_CC_MON1_MASK			BIT(0)
519 #define BD71815_INT_BAT_CC_MON2_MASK			BIT(1)
520 #define BD71815_INT_BAT_CC_MON3_MASK			BIT(2)
521 
522 #define BD71815_INT_BAT_OVER_CURR_1_RES_MASK		BIT(0)
523 #define BD71815_INT_BAT_OVER_CURR_1_DET_MASK		BIT(1)
524 #define BD71815_INT_BAT_OVER_CURR_2_RES_MASK		BIT(2)
525 #define BD71815_INT_BAT_OVER_CURR_2_DET_MASK		BIT(3)
526 #define BD71815_INT_BAT_OVER_CURR_3_RES_MASK		BIT(4)
527 #define BD71815_INT_BAT_OVER_CURR_3_DET_MASK		BIT(5)
528 
529 #define BD71815_INT_TEMP_BAT_LOW_RES_MASK		BIT(0)
530 #define BD71815_INT_TEMP_BAT_LOW_DET_MASK		BIT(1)
531 #define BD71815_INT_TEMP_BAT_HI_RES_MASK		BIT(2)
532 #define BD71815_INT_TEMP_BAT_HI_DET_MASK		BIT(3)
533 #define BD71815_INT_TEMP_CHIP_OVER_125_RES_MASK		BIT(4)
534 #define BD71815_INT_TEMP_CHIP_OVER_125_DET_MASK		BIT(5)
535 #define BD71815_INT_TEMP_CHIP_OVER_VF_RES_MASK		BIT(6)
536 #define BD71815_INT_TEMP_CHIP_OVER_VF_DET_MASK		BIT(7)
537 
538 #define BD71815_INT_RTC0_MASK				BIT(0)
539 #define BD71815_INT_RTC1_MASK				BIT(1)
540 #define BD71815_INT_RTC2_MASK				BIT(2)
541 
542 /* BD71815_REG_CC_CTRL bits */
543 #define CCNTRST						0x80
544 #define CCNTENB						0x40
545 #define CCCALIB						0x20
546 
547 /* BD71815_REG_CC_CURCD */
548 #define CURDIR_Discharging				0x8000
549 
550 /* BD71815_REG_VM_SA_IBAT */
551 #define IBAT_SA_DIR_Discharging				0x8000
552 
553 /* BD71815_REG_REX_CTRL_1 bits */
554 #define REX_CLR						BIT(4)
555 
556 /* BD71815_REG_REX_CTRL_1 bits */
557 #define REX_PMU_STATE_MASK				BIT(2)
558 
559 /* BD71815_REG_LED_CTRL bits */
560 #define CHGDONE_LED_EN					BIT(4)
561 
562 #endif /* __LINUX_MFD_BD71815_H */
563