xref: /OK3568_Linux_fs/kernel/include/linux/mfd/rohm-bd71828.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /* Copyright (C) 2019 ROHM Semiconductors */
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #ifndef __LINUX_MFD_BD71828_H__
5*4882a593Smuzhiyun #define __LINUX_MFD_BD71828_H__
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #include <linux/mfd/rohm-generic.h>
8*4882a593Smuzhiyun #include <linux/mfd/rohm-shared.h>
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun /* Regulator IDs */
11*4882a593Smuzhiyun enum {
12*4882a593Smuzhiyun 	BD71828_BUCK1,
13*4882a593Smuzhiyun 	BD71828_BUCK2,
14*4882a593Smuzhiyun 	BD71828_BUCK3,
15*4882a593Smuzhiyun 	BD71828_BUCK4,
16*4882a593Smuzhiyun 	BD71828_BUCK5,
17*4882a593Smuzhiyun 	BD71828_BUCK6,
18*4882a593Smuzhiyun 	BD71828_BUCK7,
19*4882a593Smuzhiyun 	BD71828_LDO1,
20*4882a593Smuzhiyun 	BD71828_LDO2,
21*4882a593Smuzhiyun 	BD71828_LDO3,
22*4882a593Smuzhiyun 	BD71828_LDO4,
23*4882a593Smuzhiyun 	BD71828_LDO5,
24*4882a593Smuzhiyun 	BD71828_LDO6,
25*4882a593Smuzhiyun 	BD71828_LDO_SNVS,
26*4882a593Smuzhiyun 	BD71828_REGULATOR_AMOUNT,
27*4882a593Smuzhiyun };
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun #define BD71828_BUCK1267_VOLTS		0x100
30*4882a593Smuzhiyun #define BD71828_BUCK3_VOLTS		0x20
31*4882a593Smuzhiyun #define BD71828_BUCK4_VOLTS		0x40
32*4882a593Smuzhiyun #define BD71828_BUCK5_VOLTS		0x20
33*4882a593Smuzhiyun #define BD71828_LDO_VOLTS		0x40
34*4882a593Smuzhiyun /* LDO6 is fixed 1.8V voltage */
35*4882a593Smuzhiyun #define BD71828_LDO_6_VOLTAGE		1800000
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun /* Registers and masks*/
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun /* MODE control */
40*4882a593Smuzhiyun #define BD71828_REG_PS_CTRL_1		0x04
41*4882a593Smuzhiyun #define BD71828_REG_PS_CTRL_2		0x05
42*4882a593Smuzhiyun #define BD71828_REG_PS_CTRL_3		0x06
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun //#define BD71828_REG_SWRESET		0x06
45*4882a593Smuzhiyun #define BD71828_MASK_RUN_LVL_CTRL	0x30
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun /* Regulator control masks */
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun #define BD71828_MASK_RAMP_DELAY		0x6
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun #define BD71828_MASK_RUN_EN		0x08
52*4882a593Smuzhiyun #define BD71828_MASK_SUSP_EN		0x04
53*4882a593Smuzhiyun #define BD71828_MASK_IDLE_EN		0x02
54*4882a593Smuzhiyun #define BD71828_MASK_LPSR_EN		0x01
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun #define BD71828_MASK_RUN0_EN		0x01
57*4882a593Smuzhiyun #define BD71828_MASK_RUN1_EN		0x02
58*4882a593Smuzhiyun #define BD71828_MASK_RUN2_EN		0x04
59*4882a593Smuzhiyun #define BD71828_MASK_RUN3_EN		0x08
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun #define BD71828_MASK_DVS_BUCK1_CTRL	0x10
62*4882a593Smuzhiyun #define BD71828_DVS_BUCK1_CTRL_I2C	0
63*4882a593Smuzhiyun #define BD71828_DVS_BUCK1_USE_RUNLVL	0x10
64*4882a593Smuzhiyun 
65*4882a593Smuzhiyun #define BD71828_MASK_DVS_BUCK2_CTRL	0x20
66*4882a593Smuzhiyun #define BD71828_DVS_BUCK2_CTRL_I2C	0
67*4882a593Smuzhiyun #define BD71828_DVS_BUCK2_USE_RUNLVL	0x20
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun #define BD71828_MASK_DVS_BUCK6_CTRL	0x40
70*4882a593Smuzhiyun #define BD71828_DVS_BUCK6_CTRL_I2C	0
71*4882a593Smuzhiyun #define BD71828_DVS_BUCK6_USE_RUNLVL	0x40
72*4882a593Smuzhiyun 
73*4882a593Smuzhiyun #define BD71828_MASK_DVS_BUCK7_CTRL	0x80
74*4882a593Smuzhiyun #define BD71828_DVS_BUCK7_CTRL_I2C	0
75*4882a593Smuzhiyun #define BD71828_DVS_BUCK7_USE_RUNLVL	0x80
76*4882a593Smuzhiyun 
77*4882a593Smuzhiyun #define BD71828_MASK_BUCK1267_VOLT	0xff
78*4882a593Smuzhiyun #define BD71828_MASK_BUCK3_VOLT		0x1f
79*4882a593Smuzhiyun #define BD71828_MASK_BUCK4_VOLT		0x3f
80*4882a593Smuzhiyun #define BD71828_MASK_BUCK5_VOLT		0x1f
81*4882a593Smuzhiyun #define BD71828_MASK_LDO_VOLT		0x3f
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun /* Regulator control regs */
84*4882a593Smuzhiyun #define BD71828_REG_BUCK1_EN		0x08
85*4882a593Smuzhiyun #define BD71828_REG_BUCK1_CTRL		0x09
86*4882a593Smuzhiyun #define BD71828_REG_BUCK1_MODE		0x0a
87*4882a593Smuzhiyun #define BD71828_REG_BUCK1_IDLE_VOLT	0x0b
88*4882a593Smuzhiyun #define BD71828_REG_BUCK1_SUSP_VOLT	0x0c
89*4882a593Smuzhiyun #define BD71828_REG_BUCK1_VOLT		0x0d
90*4882a593Smuzhiyun 
91*4882a593Smuzhiyun #define BD71828_REG_BUCK2_EN		0x12
92*4882a593Smuzhiyun #define BD71828_REG_BUCK2_CTRL		0x13
93*4882a593Smuzhiyun #define BD71828_REG_BUCK2_MODE		0x14
94*4882a593Smuzhiyun #define BD71828_REG_BUCK2_IDLE_VOLT	0x15
95*4882a593Smuzhiyun #define BD71828_REG_BUCK2_SUSP_VOLT	0x16
96*4882a593Smuzhiyun #define BD71828_REG_BUCK2_VOLT		0x17
97*4882a593Smuzhiyun 
98*4882a593Smuzhiyun #define BD71828_REG_BUCK3_EN		0x1c
99*4882a593Smuzhiyun #define BD71828_REG_BUCK3_MODE		0x1d
100*4882a593Smuzhiyun #define BD71828_REG_BUCK3_VOLT		0x1e
101*4882a593Smuzhiyun 
102*4882a593Smuzhiyun #define BD71828_REG_BUCK4_EN		0x1f
103*4882a593Smuzhiyun #define BD71828_REG_BUCK4_MODE		0x20
104*4882a593Smuzhiyun #define BD71828_REG_BUCK4_VOLT		0x21
105*4882a593Smuzhiyun 
106*4882a593Smuzhiyun #define BD71828_REG_BUCK5_EN		0x22
107*4882a593Smuzhiyun #define BD71828_REG_BUCK5_MODE		0x23
108*4882a593Smuzhiyun #define BD71828_REG_BUCK5_VOLT		0x24
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun #define BD71828_REG_BUCK6_EN		0x25
111*4882a593Smuzhiyun #define BD71828_REG_BUCK6_CTRL		0x26
112*4882a593Smuzhiyun #define BD71828_REG_BUCK6_MODE		0x27
113*4882a593Smuzhiyun #define BD71828_REG_BUCK6_IDLE_VOLT	0x28
114*4882a593Smuzhiyun #define BD71828_REG_BUCK6_SUSP_VOLT	0x29
115*4882a593Smuzhiyun #define BD71828_REG_BUCK6_VOLT		0x2a
116*4882a593Smuzhiyun 
117*4882a593Smuzhiyun #define BD71828_REG_BUCK7_EN		0x2f
118*4882a593Smuzhiyun #define BD71828_REG_BUCK7_CTRL		0x30
119*4882a593Smuzhiyun #define BD71828_REG_BUCK7_MODE		0x31
120*4882a593Smuzhiyun #define BD71828_REG_BUCK7_IDLE_VOLT	0x32
121*4882a593Smuzhiyun #define BD71828_REG_BUCK7_SUSP_VOLT	0x33
122*4882a593Smuzhiyun #define BD71828_REG_BUCK7_VOLT		0x34
123*4882a593Smuzhiyun 
124*4882a593Smuzhiyun #define BD71828_REG_LDO1_EN		0x39
125*4882a593Smuzhiyun #define BD71828_REG_LDO1_VOLT		0x3a
126*4882a593Smuzhiyun #define BD71828_REG_LDO2_EN		0x3b
127*4882a593Smuzhiyun #define BD71828_REG_LDO2_VOLT		0x3c
128*4882a593Smuzhiyun #define BD71828_REG_LDO3_EN		0x3d
129*4882a593Smuzhiyun #define BD71828_REG_LDO3_VOLT		0x3e
130*4882a593Smuzhiyun #define BD71828_REG_LDO4_EN		0x3f
131*4882a593Smuzhiyun #define BD71828_REG_LDO4_VOLT		0x40
132*4882a593Smuzhiyun #define BD71828_REG_LDO5_EN		0x41
133*4882a593Smuzhiyun #define BD71828_REG_LDO5_VOLT		0x43
134*4882a593Smuzhiyun #define BD71828_REG_LDO5_VOLT_OPT	0x42
135*4882a593Smuzhiyun #define BD71828_REG_LDO6_EN		0x44
136*4882a593Smuzhiyun //#define BD71828_REG_LDO6_VOLT		0x4
137*4882a593Smuzhiyun #define BD71828_REG_LDO7_EN		0x45
138*4882a593Smuzhiyun #define BD71828_REG_LDO7_VOLT		0x46
139*4882a593Smuzhiyun 
140*4882a593Smuzhiyun /* GPIO */
141*4882a593Smuzhiyun 
142*4882a593Smuzhiyun #define BD71828_GPIO_DRIVE_MASK		0x2
143*4882a593Smuzhiyun #define BD71828_GPIO_OPEN_DRAIN		0x0
144*4882a593Smuzhiyun #define BD71828_GPIO_PUSH_PULL		0x2
145*4882a593Smuzhiyun #define BD71828_GPIO_OUT_HI		0x1
146*4882a593Smuzhiyun #define BD71828_GPIO_OUT_LO		0x0
147*4882a593Smuzhiyun #define BD71828_GPIO_OUT_MASK		0x1
148*4882a593Smuzhiyun 
149*4882a593Smuzhiyun #define BD71828_REG_GPIO_CTRL1		0x47
150*4882a593Smuzhiyun #define BD71828_REG_GPIO_CTRL2		0x48
151*4882a593Smuzhiyun #define BD71828_REG_GPIO_CTRL3		0x49
152*4882a593Smuzhiyun #define BD71828_REG_IO_STAT		0xed
153*4882a593Smuzhiyun 
154*4882a593Smuzhiyun /* RTC */
155*4882a593Smuzhiyun #define BD71828_REG_RTC_SEC		0x4c
156*4882a593Smuzhiyun #define BD71828_REG_RTC_MINUTE		0x4d
157*4882a593Smuzhiyun #define BD71828_REG_RTC_HOUR		0x4e
158*4882a593Smuzhiyun #define BD71828_REG_RTC_WEEK		0x4f
159*4882a593Smuzhiyun #define BD71828_REG_RTC_DAY		0x50
160*4882a593Smuzhiyun #define BD71828_REG_RTC_MONTH		0x51
161*4882a593Smuzhiyun #define BD71828_REG_RTC_YEAR		0x52
162*4882a593Smuzhiyun 
163*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM0_SEC	0x53
164*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM_START	BD71828_REG_RTC_ALM0_SEC
165*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM0_MINUTE	0x54
166*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM0_HOUR	0x55
167*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM0_WEEK	0x56
168*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM0_DAY	0x57
169*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM0_MONTH	0x58
170*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM0_YEAR	0x59
171*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM0_MASK	0x61
172*4882a593Smuzhiyun 
173*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM1_SEC	0x5a
174*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM1_MINUTE	0x5b
175*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM1_HOUR	0x5c
176*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM1_WEEK	0x5d
177*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM1_DAY	0x5e
178*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM1_MONTH	0x5f
179*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM1_YEAR	0x60
180*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM1_MASK	0x62
181*4882a593Smuzhiyun 
182*4882a593Smuzhiyun #define BD71828_REG_RTC_ALM2		0x63
183*4882a593Smuzhiyun #define BD71828_REG_RTC_START		BD71828_REG_RTC_SEC
184*4882a593Smuzhiyun 
185*4882a593Smuzhiyun /* Charger/Battey */
186*4882a593Smuzhiyun #define BD71828_REG_CHG_STATE		0x65
187*4882a593Smuzhiyun #define BD71828_REG_CHG_FULL		0xd2
188*4882a593Smuzhiyun 
189*4882a593Smuzhiyun /* LEDs */
190*4882a593Smuzhiyun #define BD71828_REG_LED_CTRL		0x4A
191*4882a593Smuzhiyun #define BD71828_MASK_LED_AMBER		0x80
192*4882a593Smuzhiyun #define BD71828_MASK_LED_GREEN		0x40
193*4882a593Smuzhiyun #define BD71828_LED_ON			0xff
194*4882a593Smuzhiyun #define BD71828_LED_OFF			0x0
195*4882a593Smuzhiyun 
196*4882a593Smuzhiyun /* IRQ registers */
197*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_BUCK	0xd3
198*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_DCIN1	0xd4
199*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_DCIN2	0xd5
200*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_VSYS	0xd6
201*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_CHG	0xd7
202*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_BAT	0xd8
203*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_BAT_MON1	0xd9
204*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_BAT_MON2	0xda
205*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_BAT_MON3	0xdb
206*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_BAT_MON4	0xdc
207*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_TEMP	0xdd
208*4882a593Smuzhiyun #define BD71828_REG_INT_MASK_RTC	0xde
209*4882a593Smuzhiyun 
210*4882a593Smuzhiyun #define BD71828_REG_INT_MAIN		0xdf
211*4882a593Smuzhiyun #define BD71828_REG_INT_BUCK		0xe0
212*4882a593Smuzhiyun #define BD71828_REG_INT_DCIN1		0xe1
213*4882a593Smuzhiyun #define BD71828_REG_INT_DCIN2		0xe2
214*4882a593Smuzhiyun #define BD71828_REG_INT_VSYS		0xe3
215*4882a593Smuzhiyun #define BD71828_REG_INT_CHG		0xe4
216*4882a593Smuzhiyun #define BD71828_REG_INT_BAT		0xe5
217*4882a593Smuzhiyun #define BD71828_REG_INT_BAT_MON1	0xe6
218*4882a593Smuzhiyun #define BD71828_REG_INT_BAT_MON2	0xe7
219*4882a593Smuzhiyun #define BD71828_REG_INT_BAT_MON3	0xe8
220*4882a593Smuzhiyun #define BD71828_REG_INT_BAT_MON4	0xe9
221*4882a593Smuzhiyun #define BD71828_REG_INT_TEMP		0xea
222*4882a593Smuzhiyun #define BD71828_REG_INT_RTC		0xeb
223*4882a593Smuzhiyun #define BD71828_REG_INT_UPDATE		0xec
224*4882a593Smuzhiyun 
225*4882a593Smuzhiyun #define BD71828_MAX_REGISTER BD71828_REG_IO_STAT
226*4882a593Smuzhiyun 
227*4882a593Smuzhiyun /* Masks for main IRQ register bits */
228*4882a593Smuzhiyun enum {
229*4882a593Smuzhiyun 	BD71828_INT_BUCK,
230*4882a593Smuzhiyun #define BD71828_INT_BUCK_MASK BIT(BD71828_INT_BUCK)
231*4882a593Smuzhiyun 	BD71828_INT_DCIN,
232*4882a593Smuzhiyun #define BD71828_INT_DCIN_MASK BIT(BD71828_INT_DCIN)
233*4882a593Smuzhiyun 	BD71828_INT_VSYS,
234*4882a593Smuzhiyun #define BD71828_INT_VSYS_MASK BIT(BD71828_INT_VSYS)
235*4882a593Smuzhiyun 	BD71828_INT_CHG,
236*4882a593Smuzhiyun #define BD71828_INT_CHG_MASK BIT(BD71828_INT_CHG)
237*4882a593Smuzhiyun 	BD71828_INT_BAT,
238*4882a593Smuzhiyun #define BD71828_INT_BAT_MASK BIT(BD71828_INT_BAT)
239*4882a593Smuzhiyun 	BD71828_INT_BAT_MON,
240*4882a593Smuzhiyun #define BD71828_INT_BAT_MON_MASK BIT(BD71828_INT_BAT_MON)
241*4882a593Smuzhiyun 	BD71828_INT_TEMP,
242*4882a593Smuzhiyun #define BD71828_INT_TEMP_MASK BIT(BD71828_INT_TEMP)
243*4882a593Smuzhiyun 	BD71828_INT_RTC,
244*4882a593Smuzhiyun #define BD71828_INT_RTC_MASK BIT(BD71828_INT_RTC)
245*4882a593Smuzhiyun };
246*4882a593Smuzhiyun 
247*4882a593Smuzhiyun /* Interrupts */
248*4882a593Smuzhiyun enum {
249*4882a593Smuzhiyun 	/* BUCK reg interrupts */
250*4882a593Smuzhiyun 	BD71828_INT_BUCK1_OCP,
251*4882a593Smuzhiyun 	BD71828_INT_BUCK2_OCP,
252*4882a593Smuzhiyun 	BD71828_INT_BUCK3_OCP,
253*4882a593Smuzhiyun 	BD71828_INT_BUCK4_OCP,
254*4882a593Smuzhiyun 	BD71828_INT_BUCK5_OCP,
255*4882a593Smuzhiyun 	BD71828_INT_BUCK6_OCP,
256*4882a593Smuzhiyun 	BD71828_INT_BUCK7_OCP,
257*4882a593Smuzhiyun 	BD71828_INT_PGFAULT,
258*4882a593Smuzhiyun 	/* DCIN1 interrupts */
259*4882a593Smuzhiyun 	BD71828_INT_DCIN_DET,
260*4882a593Smuzhiyun 	BD71828_INT_DCIN_RMV,
261*4882a593Smuzhiyun 	BD71828_INT_CLPS_OUT,
262*4882a593Smuzhiyun 	BD71828_INT_CLPS_IN,
263*4882a593Smuzhiyun 	/* DCIN2 interrupts */
264*4882a593Smuzhiyun 	BD71828_INT_DCIN_MON_RES,
265*4882a593Smuzhiyun 	BD71828_INT_DCIN_MON_DET,
266*4882a593Smuzhiyun 	BD71828_INT_LONGPUSH,
267*4882a593Smuzhiyun 	BD71828_INT_MIDPUSH,
268*4882a593Smuzhiyun 	BD71828_INT_SHORTPUSH,
269*4882a593Smuzhiyun 	BD71828_INT_PUSH,
270*4882a593Smuzhiyun 	BD71828_INT_WDOG,
271*4882a593Smuzhiyun 	BD71828_INT_SWRESET,
272*4882a593Smuzhiyun 	/* Vsys */
273*4882a593Smuzhiyun 	BD71828_INT_VSYS_UV_RES,
274*4882a593Smuzhiyun 	BD71828_INT_VSYS_UV_DET,
275*4882a593Smuzhiyun 	BD71828_INT_VSYS_LOW_RES,
276*4882a593Smuzhiyun 	BD71828_INT_VSYS_LOW_DET,
277*4882a593Smuzhiyun 	BD71828_INT_VSYS_HALL_IN,
278*4882a593Smuzhiyun 	BD71828_INT_VSYS_HALL_TOGGLE,
279*4882a593Smuzhiyun 	BD71828_INT_VSYS_MON_RES,
280*4882a593Smuzhiyun 	BD71828_INT_VSYS_MON_DET,
281*4882a593Smuzhiyun 	/* Charger */
282*4882a593Smuzhiyun 	BD71828_INT_CHG_DCIN_ILIM,
283*4882a593Smuzhiyun 	BD71828_INT_CHG_TOPOFF_TO_DONE,
284*4882a593Smuzhiyun 	BD71828_INT_CHG_WDG_TEMP,
285*4882a593Smuzhiyun 	BD71828_INT_CHG_WDG_TIME,
286*4882a593Smuzhiyun 	BD71828_INT_CHG_RECHARGE_RES,
287*4882a593Smuzhiyun 	BD71828_INT_CHG_RECHARGE_DET,
288*4882a593Smuzhiyun 	BD71828_INT_CHG_RANGED_TEMP_TRANSITION,
289*4882a593Smuzhiyun 	BD71828_INT_CHG_STATE_TRANSITION,
290*4882a593Smuzhiyun 	/* Battery */
291*4882a593Smuzhiyun 	BD71828_INT_BAT_TEMP_NORMAL,
292*4882a593Smuzhiyun 	BD71828_INT_BAT_TEMP_ERANGE,
293*4882a593Smuzhiyun 	BD71828_INT_BAT_TEMP_WARN,
294*4882a593Smuzhiyun 	BD71828_INT_BAT_REMOVED,
295*4882a593Smuzhiyun 	BD71828_INT_BAT_DETECTED,
296*4882a593Smuzhiyun 	BD71828_INT_THERM_REMOVED,
297*4882a593Smuzhiyun 	BD71828_INT_THERM_DETECTED,
298*4882a593Smuzhiyun 	/* Battery Mon 1 */
299*4882a593Smuzhiyun 	BD71828_INT_BAT_DEAD,
300*4882a593Smuzhiyun 	BD71828_INT_BAT_SHORTC_RES,
301*4882a593Smuzhiyun 	BD71828_INT_BAT_SHORTC_DET,
302*4882a593Smuzhiyun 	BD71828_INT_BAT_LOW_VOLT_RES,
303*4882a593Smuzhiyun 	BD71828_INT_BAT_LOW_VOLT_DET,
304*4882a593Smuzhiyun 	BD71828_INT_BAT_OVER_VOLT_RES,
305*4882a593Smuzhiyun 	BD71828_INT_BAT_OVER_VOLT_DET,
306*4882a593Smuzhiyun 	/* Battery Mon 2 */
307*4882a593Smuzhiyun 	BD71828_INT_BAT_MON_RES,
308*4882a593Smuzhiyun 	BD71828_INT_BAT_MON_DET,
309*4882a593Smuzhiyun 	/* Battery Mon 3 (Coulomb counter) */
310*4882a593Smuzhiyun 	BD71828_INT_BAT_CC_MON1,
311*4882a593Smuzhiyun 	BD71828_INT_BAT_CC_MON2,
312*4882a593Smuzhiyun 	BD71828_INT_BAT_CC_MON3,
313*4882a593Smuzhiyun 	/* Battery Mon 4 */
314*4882a593Smuzhiyun 	BD71828_INT_BAT_OVER_CURR_1_RES,
315*4882a593Smuzhiyun 	BD71828_INT_BAT_OVER_CURR_1_DET,
316*4882a593Smuzhiyun 	BD71828_INT_BAT_OVER_CURR_2_RES,
317*4882a593Smuzhiyun 	BD71828_INT_BAT_OVER_CURR_2_DET,
318*4882a593Smuzhiyun 	BD71828_INT_BAT_OVER_CURR_3_RES,
319*4882a593Smuzhiyun 	BD71828_INT_BAT_OVER_CURR_3_DET,
320*4882a593Smuzhiyun 	/* Temperature */
321*4882a593Smuzhiyun 	BD71828_INT_TEMP_BAT_LOW_RES,
322*4882a593Smuzhiyun 	BD71828_INT_TEMP_BAT_LOW_DET,
323*4882a593Smuzhiyun 	BD71828_INT_TEMP_BAT_HI_RES,
324*4882a593Smuzhiyun 	BD71828_INT_TEMP_BAT_HI_DET,
325*4882a593Smuzhiyun 	BD71828_INT_TEMP_CHIP_OVER_125_RES,
326*4882a593Smuzhiyun 	BD71828_INT_TEMP_CHIP_OVER_125_DET,
327*4882a593Smuzhiyun 	BD71828_INT_TEMP_CHIP_OVER_VF_DET,
328*4882a593Smuzhiyun 	BD71828_INT_TEMP_CHIP_OVER_VF_RES,
329*4882a593Smuzhiyun 	/* RTC Alarm */
330*4882a593Smuzhiyun 	BD71828_INT_RTC0,
331*4882a593Smuzhiyun 	BD71828_INT_RTC1,
332*4882a593Smuzhiyun 	BD71828_INT_RTC2,
333*4882a593Smuzhiyun };
334*4882a593Smuzhiyun 
335*4882a593Smuzhiyun #define BD71828_INT_BUCK1_OCP_MASK			0x1
336*4882a593Smuzhiyun #define BD71828_INT_BUCK2_OCP_MASK			0x2
337*4882a593Smuzhiyun #define BD71828_INT_BUCK3_OCP_MASK			0x4
338*4882a593Smuzhiyun #define BD71828_INT_BUCK4_OCP_MASK			0x8
339*4882a593Smuzhiyun #define BD71828_INT_BUCK5_OCP_MASK			0x10
340*4882a593Smuzhiyun #define BD71828_INT_BUCK6_OCP_MASK			0x20
341*4882a593Smuzhiyun #define BD71828_INT_BUCK7_OCP_MASK			0x40
342*4882a593Smuzhiyun #define BD71828_INT_PGFAULT_MASK			0x80
343*4882a593Smuzhiyun 
344*4882a593Smuzhiyun #define BD71828_INT_DCIN_DET_MASK			0x1
345*4882a593Smuzhiyun #define BD71828_INT_DCIN_RMV_MASK			0x2
346*4882a593Smuzhiyun #define BD71828_INT_CLPS_OUT_MASK			0x4
347*4882a593Smuzhiyun #define BD71828_INT_CLPS_IN_MASK			0x8
348*4882a593Smuzhiyun 	/* DCIN2 interrupts */
349*4882a593Smuzhiyun #define BD71828_INT_DCIN_MON_RES_MASK			0x1
350*4882a593Smuzhiyun #define BD71828_INT_DCIN_MON_DET_MASK			0x2
351*4882a593Smuzhiyun #define BD71828_INT_LONGPUSH_MASK			0x4
352*4882a593Smuzhiyun #define BD71828_INT_MIDPUSH_MASK			0x8
353*4882a593Smuzhiyun #define BD71828_INT_SHORTPUSH_MASK			0x10
354*4882a593Smuzhiyun #define BD71828_INT_PUSH_MASK				0x20
355*4882a593Smuzhiyun #define BD71828_INT_WDOG_MASK				0x40
356*4882a593Smuzhiyun #define BD71828_INT_SWRESET_MASK			0x80
357*4882a593Smuzhiyun 	/* Vsys */
358*4882a593Smuzhiyun #define BD71828_INT_VSYS_UV_RES_MASK			0x1
359*4882a593Smuzhiyun #define BD71828_INT_VSYS_UV_DET_MASK			0x2
360*4882a593Smuzhiyun #define BD71828_INT_VSYS_LOW_RES_MASK			0x4
361*4882a593Smuzhiyun #define BD71828_INT_VSYS_LOW_DET_MASK			0x8
362*4882a593Smuzhiyun #define BD71828_INT_VSYS_HALL_IN_MASK			0x10
363*4882a593Smuzhiyun #define BD71828_INT_VSYS_HALL_TOGGLE_MASK		0x20
364*4882a593Smuzhiyun #define BD71828_INT_VSYS_MON_RES_MASK			0x40
365*4882a593Smuzhiyun #define BD71828_INT_VSYS_MON_DET_MASK			0x80
366*4882a593Smuzhiyun 	/* Charger */
367*4882a593Smuzhiyun #define BD71828_INT_CHG_DCIN_ILIM_MASK			0x1
368*4882a593Smuzhiyun #define BD71828_INT_CHG_TOPOFF_TO_DONE_MASK		0x2
369*4882a593Smuzhiyun #define BD71828_INT_CHG_WDG_TEMP_MASK			0x4
370*4882a593Smuzhiyun #define BD71828_INT_CHG_WDG_TIME_MASK			0x8
371*4882a593Smuzhiyun #define BD71828_INT_CHG_RECHARGE_RES_MASK		0x10
372*4882a593Smuzhiyun #define BD71828_INT_CHG_RECHARGE_DET_MASK		0x20
373*4882a593Smuzhiyun #define BD71828_INT_CHG_RANGED_TEMP_TRANSITION_MASK	0x40
374*4882a593Smuzhiyun #define BD71828_INT_CHG_STATE_TRANSITION_MASK		0x80
375*4882a593Smuzhiyun 	/* Battery */
376*4882a593Smuzhiyun #define BD71828_INT_BAT_TEMP_NORMAL_MASK		0x1
377*4882a593Smuzhiyun #define BD71828_INT_BAT_TEMP_ERANGE_MASK		0x2
378*4882a593Smuzhiyun #define BD71828_INT_BAT_TEMP_WARN_MASK			0x4
379*4882a593Smuzhiyun #define BD71828_INT_BAT_REMOVED_MASK			0x10
380*4882a593Smuzhiyun #define BD71828_INT_BAT_DETECTED_MASK			0x20
381*4882a593Smuzhiyun #define BD71828_INT_THERM_REMOVED_MASK			0x40
382*4882a593Smuzhiyun #define BD71828_INT_THERM_DETECTED_MASK			0x80
383*4882a593Smuzhiyun 	/* Battery Mon 1 */
384*4882a593Smuzhiyun #define BD71828_INT_BAT_DEAD_MASK			0x2
385*4882a593Smuzhiyun #define BD71828_INT_BAT_SHORTC_RES_MASK			0x4
386*4882a593Smuzhiyun #define BD71828_INT_BAT_SHORTC_DET_MASK			0x8
387*4882a593Smuzhiyun #define BD71828_INT_BAT_LOW_VOLT_RES_MASK		0x10
388*4882a593Smuzhiyun #define BD71828_INT_BAT_LOW_VOLT_DET_MASK		0x20
389*4882a593Smuzhiyun #define BD71828_INT_BAT_OVER_VOLT_RES_MASK		0x40
390*4882a593Smuzhiyun #define BD71828_INT_BAT_OVER_VOLT_DET_MASK		0x80
391*4882a593Smuzhiyun 	/* Battery Mon 2 */
392*4882a593Smuzhiyun #define BD71828_INT_BAT_MON_RES_MASK			0x1
393*4882a593Smuzhiyun #define BD71828_INT_BAT_MON_DET_MASK			0x2
394*4882a593Smuzhiyun 	/* Battery Mon 3 (Coulomb counter) */
395*4882a593Smuzhiyun #define BD71828_INT_BAT_CC_MON1_MASK			0x1
396*4882a593Smuzhiyun #define BD71828_INT_BAT_CC_MON2_MASK			0x2
397*4882a593Smuzhiyun #define BD71828_INT_BAT_CC_MON3_MASK			0x4
398*4882a593Smuzhiyun 	/* Battery Mon 4 */
399*4882a593Smuzhiyun #define BD71828_INT_BAT_OVER_CURR_1_RES_MASK		0x1
400*4882a593Smuzhiyun #define BD71828_INT_BAT_OVER_CURR_1_DET_MASK		0x2
401*4882a593Smuzhiyun #define BD71828_INT_BAT_OVER_CURR_2_RES_MASK		0x4
402*4882a593Smuzhiyun #define BD71828_INT_BAT_OVER_CURR_2_DET_MASK		0x8
403*4882a593Smuzhiyun #define BD71828_INT_BAT_OVER_CURR_3_RES_MASK		0x10
404*4882a593Smuzhiyun #define BD71828_INT_BAT_OVER_CURR_3_DET_MASK		0x20
405*4882a593Smuzhiyun 	/* Temperature */
406*4882a593Smuzhiyun #define BD71828_INT_TEMP_BAT_LOW_RES_MASK		0x1
407*4882a593Smuzhiyun #define BD71828_INT_TEMP_BAT_LOW_DET_MASK		0x2
408*4882a593Smuzhiyun #define BD71828_INT_TEMP_BAT_HI_RES_MASK		0x4
409*4882a593Smuzhiyun #define BD71828_INT_TEMP_BAT_HI_DET_MASK		0x8
410*4882a593Smuzhiyun #define BD71828_INT_TEMP_CHIP_OVER_125_RES_MASK		0x10
411*4882a593Smuzhiyun #define BD71828_INT_TEMP_CHIP_OVER_125_DET_MASK		0x20
412*4882a593Smuzhiyun #define BD71828_INT_TEMP_CHIP_OVER_VF_RES_MASK		0x40
413*4882a593Smuzhiyun #define BD71828_INT_TEMP_CHIP_OVER_VF_DET_MASK		0x80
414*4882a593Smuzhiyun 	/* RTC Alarm */
415*4882a593Smuzhiyun #define BD71828_INT_RTC0_MASK				0x1
416*4882a593Smuzhiyun #define BD71828_INT_RTC1_MASK				0x2
417*4882a593Smuzhiyun #define BD71828_INT_RTC2_MASK				0x4
418*4882a593Smuzhiyun 
419*4882a593Smuzhiyun #define BD71828_OUT_TYPE_MASK				0x2
420*4882a593Smuzhiyun #define BD71828_OUT_TYPE_OPEN_DRAIN			0x0
421*4882a593Smuzhiyun #define BD71828_OUT_TYPE_CMOS				0x2
422*4882a593Smuzhiyun 
423*4882a593Smuzhiyun #endif /* __LINUX_MFD_BD71828_H__ */
424