Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[pandora-kernel.git] / include / linux / mfd / wm831x / irq.h
1 /*
2  * include/linux/mfd/wm831x/irq.h -- Interrupt controller for WM831x
3  *
4  * Copyright 2009 Wolfson Microelectronics PLC.
5  *
6  * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
7  *
8  *  This program is free software; you can redistribute  it and/or modify it
9  *  under  the terms of  the GNU General  Public License as published by the
10  *  Free Software Foundation;  either version 2 of the  License, or (at your
11  *  option) any later version.
12  *
13  */
14
15 #ifndef __MFD_WM831X_IRQ_H__
16 #define __MFD_WM831X_IRQ_H__
17
18 /* Interrupt number assignments within Linux */
19 #define WM831X_IRQ_TEMP_THW 0
20 #define WM831X_IRQ_GPIO_1   1
21 #define WM831X_IRQ_GPIO_2   2
22 #define WM831X_IRQ_GPIO_3   3
23 #define WM831X_IRQ_GPIO_4   4
24 #define WM831X_IRQ_GPIO_5   5
25 #define WM831X_IRQ_GPIO_6   6
26 #define WM831X_IRQ_GPIO_7   7
27 #define WM831X_IRQ_GPIO_8   8
28 #define WM831X_IRQ_GPIO_9   9
29 #define WM831X_IRQ_GPIO_10  10
30 #define WM831X_IRQ_GPIO_11  11
31 #define WM831X_IRQ_GPIO_12  12
32 #define WM831X_IRQ_GPIO_13  13
33 #define WM831X_IRQ_GPIO_14  14
34 #define WM831X_IRQ_GPIO_15  15
35 #define WM831X_IRQ_GPIO_16  16
36 #define WM831X_IRQ_ON           17
37 #define WM831X_IRQ_PPM_SYSLO    18
38 #define WM831X_IRQ_PPM_PWR_SRC  19
39 #define WM831X_IRQ_PPM_USB_CURR 20
40 #define WM831X_IRQ_WDOG_TO      21
41 #define WM831X_IRQ_RTC_PER      22
42 #define WM831X_IRQ_RTC_ALM      23
43 #define WM831X_IRQ_CHG_BATT_HOT  24
44 #define WM831X_IRQ_CHG_BATT_COLD 25
45 #define WM831X_IRQ_CHG_BATT_FAIL 26
46 #define WM831X_IRQ_CHG_OV        27
47 #define WM831X_IRQ_CHG_END       29
48 #define WM831X_IRQ_CHG_TO        30
49 #define WM831X_IRQ_CHG_MODE      31
50 #define WM831X_IRQ_CHG_START     32
51 #define WM831X_IRQ_TCHDATA       33
52 #define WM831X_IRQ_TCHPD         34
53 #define WM831X_IRQ_AUXADC_DATA   35
54 #define WM831X_IRQ_AUXADC_DCOMP1 36
55 #define WM831X_IRQ_AUXADC_DCOMP2 37
56 #define WM831X_IRQ_AUXADC_DCOMP3 38
57 #define WM831X_IRQ_AUXADC_DCOMP4 39
58 #define WM831X_IRQ_CS1           40
59 #define WM831X_IRQ_CS2           41
60 #define WM831X_IRQ_HC_DC1        42
61 #define WM831X_IRQ_HC_DC2        43
62 #define WM831X_IRQ_UV_LDO1       44
63 #define WM831X_IRQ_UV_LDO2       45
64 #define WM831X_IRQ_UV_LDO3       46
65 #define WM831X_IRQ_UV_LDO4       47
66 #define WM831X_IRQ_UV_LDO5       48
67 #define WM831X_IRQ_UV_LDO6       49
68 #define WM831X_IRQ_UV_LDO7       50
69 #define WM831X_IRQ_UV_LDO8       51
70 #define WM831X_IRQ_UV_LDO9       52
71 #define WM831X_IRQ_UV_LDO10      53
72 #define WM831X_IRQ_UV_DC1        54
73 #define WM831X_IRQ_UV_DC2        55
74 #define WM831X_IRQ_UV_DC3        56
75 #define WM831X_IRQ_UV_DC4        57
76
77 #define WM831X_NUM_IRQS     58
78
79 /*
80  * R16400 (0x4010) - System Interrupts
81  */
82 #define WM831X_PS_INT                           0x8000  /* PS_INT */
83 #define WM831X_PS_INT_MASK                      0x8000  /* PS_INT */
84 #define WM831X_PS_INT_SHIFT                         15  /* PS_INT */
85 #define WM831X_PS_INT_WIDTH                          1  /* PS_INT */
86 #define WM831X_TEMP_INT                         0x4000  /* TEMP_INT */
87 #define WM831X_TEMP_INT_MASK                    0x4000  /* TEMP_INT */
88 #define WM831X_TEMP_INT_SHIFT                       14  /* TEMP_INT */
89 #define WM831X_TEMP_INT_WIDTH                        1  /* TEMP_INT */
90 #define WM831X_GP_INT                           0x2000  /* GP_INT */
91 #define WM831X_GP_INT_MASK                      0x2000  /* GP_INT */
92 #define WM831X_GP_INT_SHIFT                         13  /* GP_INT */
93 #define WM831X_GP_INT_WIDTH                          1  /* GP_INT */
94 #define WM831X_ON_PIN_INT                       0x1000  /* ON_PIN_INT */
95 #define WM831X_ON_PIN_INT_MASK                  0x1000  /* ON_PIN_INT */
96 #define WM831X_ON_PIN_INT_SHIFT                     12  /* ON_PIN_INT */
97 #define WM831X_ON_PIN_INT_WIDTH                      1  /* ON_PIN_INT */
98 #define WM831X_WDOG_INT                         0x0800  /* WDOG_INT */
99 #define WM831X_WDOG_INT_MASK                    0x0800  /* WDOG_INT */
100 #define WM831X_WDOG_INT_SHIFT                       11  /* WDOG_INT */
101 #define WM831X_WDOG_INT_WIDTH                        1  /* WDOG_INT */
102 #define WM831X_TCHDATA_INT                      0x0400  /* TCHDATA_INT */
103 #define WM831X_TCHDATA_INT_MASK                 0x0400  /* TCHDATA_INT */
104 #define WM831X_TCHDATA_INT_SHIFT                    10  /* TCHDATA_INT */
105 #define WM831X_TCHDATA_INT_WIDTH                     1  /* TCHDATA_INT */
106 #define WM831X_TCHPD_INT                        0x0200  /* TCHPD_INT */
107 #define WM831X_TCHPD_INT_MASK                   0x0200  /* TCHPD_INT */
108 #define WM831X_TCHPD_INT_SHIFT                       9  /* TCHPD_INT */
109 #define WM831X_TCHPD_INT_WIDTH                       1  /* TCHPD_INT */
110 #define WM831X_AUXADC_INT                       0x0100  /* AUXADC_INT */
111 #define WM831X_AUXADC_INT_MASK                  0x0100  /* AUXADC_INT */
112 #define WM831X_AUXADC_INT_SHIFT                      8  /* AUXADC_INT */
113 #define WM831X_AUXADC_INT_WIDTH                      1  /* AUXADC_INT */
114 #define WM831X_PPM_INT                          0x0080  /* PPM_INT */
115 #define WM831X_PPM_INT_MASK                     0x0080  /* PPM_INT */
116 #define WM831X_PPM_INT_SHIFT                         7  /* PPM_INT */
117 #define WM831X_PPM_INT_WIDTH                         1  /* PPM_INT */
118 #define WM831X_CS_INT                           0x0040  /* CS_INT */
119 #define WM831X_CS_INT_MASK                      0x0040  /* CS_INT */
120 #define WM831X_CS_INT_SHIFT                          6  /* CS_INT */
121 #define WM831X_CS_INT_WIDTH                          1  /* CS_INT */
122 #define WM831X_RTC_INT                          0x0020  /* RTC_INT */
123 #define WM831X_RTC_INT_MASK                     0x0020  /* RTC_INT */
124 #define WM831X_RTC_INT_SHIFT                         5  /* RTC_INT */
125 #define WM831X_RTC_INT_WIDTH                         1  /* RTC_INT */
126 #define WM831X_OTP_INT                          0x0010  /* OTP_INT */
127 #define WM831X_OTP_INT_MASK                     0x0010  /* OTP_INT */
128 #define WM831X_OTP_INT_SHIFT                         4  /* OTP_INT */
129 #define WM831X_OTP_INT_WIDTH                         1  /* OTP_INT */
130 #define WM831X_CHILD_INT                        0x0008  /* CHILD_INT */
131 #define WM831X_CHILD_INT_MASK                   0x0008  /* CHILD_INT */
132 #define WM831X_CHILD_INT_SHIFT                       3  /* CHILD_INT */
133 #define WM831X_CHILD_INT_WIDTH                       1  /* CHILD_INT */
134 #define WM831X_CHG_INT                          0x0004  /* CHG_INT */
135 #define WM831X_CHG_INT_MASK                     0x0004  /* CHG_INT */
136 #define WM831X_CHG_INT_SHIFT                         2  /* CHG_INT */
137 #define WM831X_CHG_INT_WIDTH                         1  /* CHG_INT */
138 #define WM831X_HC_INT                           0x0002  /* HC_INT */
139 #define WM831X_HC_INT_MASK                      0x0002  /* HC_INT */
140 #define WM831X_HC_INT_SHIFT                          1  /* HC_INT */
141 #define WM831X_HC_INT_WIDTH                          1  /* HC_INT */
142 #define WM831X_UV_INT                           0x0001  /* UV_INT */
143 #define WM831X_UV_INT_MASK                      0x0001  /* UV_INT */
144 #define WM831X_UV_INT_SHIFT                          0  /* UV_INT */
145 #define WM831X_UV_INT_WIDTH                          1  /* UV_INT */
146
147 /*
148  * R16401 (0x4011) - Interrupt Status 1
149  */
150 #define WM831X_PPM_SYSLO_EINT                   0x8000  /* PPM_SYSLO_EINT */
151 #define WM831X_PPM_SYSLO_EINT_MASK              0x8000  /* PPM_SYSLO_EINT */
152 #define WM831X_PPM_SYSLO_EINT_SHIFT                 15  /* PPM_SYSLO_EINT */
153 #define WM831X_PPM_SYSLO_EINT_WIDTH                  1  /* PPM_SYSLO_EINT */
154 #define WM831X_PPM_PWR_SRC_EINT                 0x4000  /* PPM_PWR_SRC_EINT */
155 #define WM831X_PPM_PWR_SRC_EINT_MASK            0x4000  /* PPM_PWR_SRC_EINT */
156 #define WM831X_PPM_PWR_SRC_EINT_SHIFT               14  /* PPM_PWR_SRC_EINT */
157 #define WM831X_PPM_PWR_SRC_EINT_WIDTH                1  /* PPM_PWR_SRC_EINT */
158 #define WM831X_PPM_USB_CURR_EINT                0x2000  /* PPM_USB_CURR_EINT */
159 #define WM831X_PPM_USB_CURR_EINT_MASK           0x2000  /* PPM_USB_CURR_EINT */
160 #define WM831X_PPM_USB_CURR_EINT_SHIFT              13  /* PPM_USB_CURR_EINT */
161 #define WM831X_PPM_USB_CURR_EINT_WIDTH               1  /* PPM_USB_CURR_EINT */
162 #define WM831X_ON_PIN_EINT                      0x1000  /* ON_PIN_EINT */
163 #define WM831X_ON_PIN_EINT_MASK                 0x1000  /* ON_PIN_EINT */
164 #define WM831X_ON_PIN_EINT_SHIFT                    12  /* ON_PIN_EINT */
165 #define WM831X_ON_PIN_EINT_WIDTH                     1  /* ON_PIN_EINT */
166 #define WM831X_WDOG_TO_EINT                     0x0800  /* WDOG_TO_EINT */
167 #define WM831X_WDOG_TO_EINT_MASK                0x0800  /* WDOG_TO_EINT */
168 #define WM831X_WDOG_TO_EINT_SHIFT                   11  /* WDOG_TO_EINT */
169 #define WM831X_WDOG_TO_EINT_WIDTH                    1  /* WDOG_TO_EINT */
170 #define WM831X_TCHDATA_EINT                     0x0400  /* TCHDATA_EINT */
171 #define WM831X_TCHDATA_EINT_MASK                0x0400  /* TCHDATA_EINT */
172 #define WM831X_TCHDATA_EINT_SHIFT                   10  /* TCHDATA_EINT */
173 #define WM831X_TCHDATA_EINT_WIDTH                    1  /* TCHDATA_EINT */
174 #define WM831X_TCHPD_EINT                       0x0200  /* TCHPD_EINT */
175 #define WM831X_TCHPD_EINT_MASK                  0x0200  /* TCHPD_EINT */
176 #define WM831X_TCHPD_EINT_SHIFT                      9  /* TCHPD_EINT */
177 #define WM831X_TCHPD_EINT_WIDTH                      1  /* TCHPD_EINT */
178 #define WM831X_AUXADC_DATA_EINT                 0x0100  /* AUXADC_DATA_EINT */
179 #define WM831X_AUXADC_DATA_EINT_MASK            0x0100  /* AUXADC_DATA_EINT */
180 #define WM831X_AUXADC_DATA_EINT_SHIFT                8  /* AUXADC_DATA_EINT */
181 #define WM831X_AUXADC_DATA_EINT_WIDTH                1  /* AUXADC_DATA_EINT */
182 #define WM831X_AUXADC_DCOMP4_EINT               0x0080  /* AUXADC_DCOMP4_EINT */
183 #define WM831X_AUXADC_DCOMP4_EINT_MASK          0x0080  /* AUXADC_DCOMP4_EINT */
184 #define WM831X_AUXADC_DCOMP4_EINT_SHIFT              7  /* AUXADC_DCOMP4_EINT */
185 #define WM831X_AUXADC_DCOMP4_EINT_WIDTH              1  /* AUXADC_DCOMP4_EINT */
186 #define WM831X_AUXADC_DCOMP3_EINT               0x0040  /* AUXADC_DCOMP3_EINT */
187 #define WM831X_AUXADC_DCOMP3_EINT_MASK          0x0040  /* AUXADC_DCOMP3_EINT */
188 #define WM831X_AUXADC_DCOMP3_EINT_SHIFT              6  /* AUXADC_DCOMP3_EINT */
189 #define WM831X_AUXADC_DCOMP3_EINT_WIDTH              1  /* AUXADC_DCOMP3_EINT */
190 #define WM831X_AUXADC_DCOMP2_EINT               0x0020  /* AUXADC_DCOMP2_EINT */
191 #define WM831X_AUXADC_DCOMP2_EINT_MASK          0x0020  /* AUXADC_DCOMP2_EINT */
192 #define WM831X_AUXADC_DCOMP2_EINT_SHIFT              5  /* AUXADC_DCOMP2_EINT */
193 #define WM831X_AUXADC_DCOMP2_EINT_WIDTH              1  /* AUXADC_DCOMP2_EINT */
194 #define WM831X_AUXADC_DCOMP1_EINT               0x0010  /* AUXADC_DCOMP1_EINT */
195 #define WM831X_AUXADC_DCOMP1_EINT_MASK          0x0010  /* AUXADC_DCOMP1_EINT */
196 #define WM831X_AUXADC_DCOMP1_EINT_SHIFT              4  /* AUXADC_DCOMP1_EINT */
197 #define WM831X_AUXADC_DCOMP1_EINT_WIDTH              1  /* AUXADC_DCOMP1_EINT */
198 #define WM831X_RTC_PER_EINT                     0x0008  /* RTC_PER_EINT */
199 #define WM831X_RTC_PER_EINT_MASK                0x0008  /* RTC_PER_EINT */
200 #define WM831X_RTC_PER_EINT_SHIFT                    3  /* RTC_PER_EINT */
201 #define WM831X_RTC_PER_EINT_WIDTH                    1  /* RTC_PER_EINT */
202 #define WM831X_RTC_ALM_EINT                     0x0004  /* RTC_ALM_EINT */
203 #define WM831X_RTC_ALM_EINT_MASK                0x0004  /* RTC_ALM_EINT */
204 #define WM831X_RTC_ALM_EINT_SHIFT                    2  /* RTC_ALM_EINT */
205 #define WM831X_RTC_ALM_EINT_WIDTH                    1  /* RTC_ALM_EINT */
206 #define WM831X_TEMP_THW_EINT                    0x0002  /* TEMP_THW_EINT */
207 #define WM831X_TEMP_THW_EINT_MASK               0x0002  /* TEMP_THW_EINT */
208 #define WM831X_TEMP_THW_EINT_SHIFT                   1  /* TEMP_THW_EINT */
209 #define WM831X_TEMP_THW_EINT_WIDTH                   1  /* TEMP_THW_EINT */
210
211 /*
212  * R16402 (0x4012) - Interrupt Status 2
213  */
214 #define WM831X_CHG_BATT_HOT_EINT                0x8000  /* CHG_BATT_HOT_EINT */
215 #define WM831X_CHG_BATT_HOT_EINT_MASK           0x8000  /* CHG_BATT_HOT_EINT */
216 #define WM831X_CHG_BATT_HOT_EINT_SHIFT              15  /* CHG_BATT_HOT_EINT */
217 #define WM831X_CHG_BATT_HOT_EINT_WIDTH               1  /* CHG_BATT_HOT_EINT */
218 #define WM831X_CHG_BATT_COLD_EINT               0x4000  /* CHG_BATT_COLD_EINT */
219 #define WM831X_CHG_BATT_COLD_EINT_MASK          0x4000  /* CHG_BATT_COLD_EINT */
220 #define WM831X_CHG_BATT_COLD_EINT_SHIFT             14  /* CHG_BATT_COLD_EINT */
221 #define WM831X_CHG_BATT_COLD_EINT_WIDTH              1  /* CHG_BATT_COLD_EINT */
222 #define WM831X_CHG_BATT_FAIL_EINT               0x2000  /* CHG_BATT_FAIL_EINT */
223 #define WM831X_CHG_BATT_FAIL_EINT_MASK          0x2000  /* CHG_BATT_FAIL_EINT */
224 #define WM831X_CHG_BATT_FAIL_EINT_SHIFT             13  /* CHG_BATT_FAIL_EINT */
225 #define WM831X_CHG_BATT_FAIL_EINT_WIDTH              1  /* CHG_BATT_FAIL_EINT */
226 #define WM831X_CHG_OV_EINT                      0x1000  /* CHG_OV_EINT */
227 #define WM831X_CHG_OV_EINT_MASK                 0x1000  /* CHG_OV_EINT */
228 #define WM831X_CHG_OV_EINT_SHIFT                    12  /* CHG_OV_EINT */
229 #define WM831X_CHG_OV_EINT_WIDTH                     1  /* CHG_OV_EINT */
230 #define WM831X_CHG_END_EINT                     0x0800  /* CHG_END_EINT */
231 #define WM831X_CHG_END_EINT_MASK                0x0800  /* CHG_END_EINT */
232 #define WM831X_CHG_END_EINT_SHIFT                   11  /* CHG_END_EINT */
233 #define WM831X_CHG_END_EINT_WIDTH                    1  /* CHG_END_EINT */
234 #define WM831X_CHG_TO_EINT                      0x0400  /* CHG_TO_EINT */
235 #define WM831X_CHG_TO_EINT_MASK                 0x0400  /* CHG_TO_EINT */
236 #define WM831X_CHG_TO_EINT_SHIFT                    10  /* CHG_TO_EINT */
237 #define WM831X_CHG_TO_EINT_WIDTH                     1  /* CHG_TO_EINT */
238 #define WM831X_CHG_MODE_EINT                    0x0200  /* CHG_MODE_EINT */
239 #define WM831X_CHG_MODE_EINT_MASK               0x0200  /* CHG_MODE_EINT */
240 #define WM831X_CHG_MODE_EINT_SHIFT                   9  /* CHG_MODE_EINT */
241 #define WM831X_CHG_MODE_EINT_WIDTH                   1  /* CHG_MODE_EINT */
242 #define WM831X_CHG_START_EINT                   0x0100  /* CHG_START_EINT */
243 #define WM831X_CHG_START_EINT_MASK              0x0100  /* CHG_START_EINT */
244 #define WM831X_CHG_START_EINT_SHIFT                  8  /* CHG_START_EINT */
245 #define WM831X_CHG_START_EINT_WIDTH                  1  /* CHG_START_EINT */
246 #define WM831X_CS2_EINT                         0x0080  /* CS2_EINT */
247 #define WM831X_CS2_EINT_MASK                    0x0080  /* CS2_EINT */
248 #define WM831X_CS2_EINT_SHIFT                        7  /* CS2_EINT */
249 #define WM831X_CS2_EINT_WIDTH                        1  /* CS2_EINT */
250 #define WM831X_CS1_EINT                         0x0040  /* CS1_EINT */
251 #define WM831X_CS1_EINT_MASK                    0x0040  /* CS1_EINT */
252 #define WM831X_CS1_EINT_SHIFT                        6  /* CS1_EINT */
253 #define WM831X_CS1_EINT_WIDTH                        1  /* CS1_EINT */
254 #define WM831X_OTP_CMD_END_EINT                 0x0020  /* OTP_CMD_END_EINT */
255 #define WM831X_OTP_CMD_END_EINT_MASK            0x0020  /* OTP_CMD_END_EINT */
256 #define WM831X_OTP_CMD_END_EINT_SHIFT                5  /* OTP_CMD_END_EINT */
257 #define WM831X_OTP_CMD_END_EINT_WIDTH                1  /* OTP_CMD_END_EINT */
258 #define WM831X_OTP_ERR_EINT                     0x0010  /* OTP_ERR_EINT */
259 #define WM831X_OTP_ERR_EINT_MASK                0x0010  /* OTP_ERR_EINT */
260 #define WM831X_OTP_ERR_EINT_SHIFT                    4  /* OTP_ERR_EINT */
261 #define WM831X_OTP_ERR_EINT_WIDTH                    1  /* OTP_ERR_EINT */
262 #define WM831X_PS_POR_EINT                      0x0004  /* PS_POR_EINT */
263 #define WM831X_PS_POR_EINT_MASK                 0x0004  /* PS_POR_EINT */
264 #define WM831X_PS_POR_EINT_SHIFT                     2  /* PS_POR_EINT */
265 #define WM831X_PS_POR_EINT_WIDTH                     1  /* PS_POR_EINT */
266 #define WM831X_PS_SLEEP_OFF_EINT                0x0002  /* PS_SLEEP_OFF_EINT */
267 #define WM831X_PS_SLEEP_OFF_EINT_MASK           0x0002  /* PS_SLEEP_OFF_EINT */
268 #define WM831X_PS_SLEEP_OFF_EINT_SHIFT               1  /* PS_SLEEP_OFF_EINT */
269 #define WM831X_PS_SLEEP_OFF_EINT_WIDTH               1  /* PS_SLEEP_OFF_EINT */
270 #define WM831X_PS_ON_WAKE_EINT                  0x0001  /* PS_ON_WAKE_EINT */
271 #define WM831X_PS_ON_WAKE_EINT_MASK             0x0001  /* PS_ON_WAKE_EINT */
272 #define WM831X_PS_ON_WAKE_EINT_SHIFT                 0  /* PS_ON_WAKE_EINT */
273 #define WM831X_PS_ON_WAKE_EINT_WIDTH                 1  /* PS_ON_WAKE_EINT */
274
275 /*
276  * R16403 (0x4013) - Interrupt Status 3
277  */
278 #define WM831X_UV_LDO10_EINT                    0x0200  /* UV_LDO10_EINT */
279 #define WM831X_UV_LDO10_EINT_MASK               0x0200  /* UV_LDO10_EINT */
280 #define WM831X_UV_LDO10_EINT_SHIFT                   9  /* UV_LDO10_EINT */
281 #define WM831X_UV_LDO10_EINT_WIDTH                   1  /* UV_LDO10_EINT */
282 #define WM831X_UV_LDO9_EINT                     0x0100  /* UV_LDO9_EINT */
283 #define WM831X_UV_LDO9_EINT_MASK                0x0100  /* UV_LDO9_EINT */
284 #define WM831X_UV_LDO9_EINT_SHIFT                    8  /* UV_LDO9_EINT */
285 #define WM831X_UV_LDO9_EINT_WIDTH                    1  /* UV_LDO9_EINT */
286 #define WM831X_UV_LDO8_EINT                     0x0080  /* UV_LDO8_EINT */
287 #define WM831X_UV_LDO8_EINT_MASK                0x0080  /* UV_LDO8_EINT */
288 #define WM831X_UV_LDO8_EINT_SHIFT                    7  /* UV_LDO8_EINT */
289 #define WM831X_UV_LDO8_EINT_WIDTH                    1  /* UV_LDO8_EINT */
290 #define WM831X_UV_LDO7_EINT                     0x0040  /* UV_LDO7_EINT */
291 #define WM831X_UV_LDO7_EINT_MASK                0x0040  /* UV_LDO7_EINT */
292 #define WM831X_UV_LDO7_EINT_SHIFT                    6  /* UV_LDO7_EINT */
293 #define WM831X_UV_LDO7_EINT_WIDTH                    1  /* UV_LDO7_EINT */
294 #define WM831X_UV_LDO6_EINT                     0x0020  /* UV_LDO6_EINT */
295 #define WM831X_UV_LDO6_EINT_MASK                0x0020  /* UV_LDO6_EINT */
296 #define WM831X_UV_LDO6_EINT_SHIFT                    5  /* UV_LDO6_EINT */
297 #define WM831X_UV_LDO6_EINT_WIDTH                    1  /* UV_LDO6_EINT */
298 #define WM831X_UV_LDO5_EINT                     0x0010  /* UV_LDO5_EINT */
299 #define WM831X_UV_LDO5_EINT_MASK                0x0010  /* UV_LDO5_EINT */
300 #define WM831X_UV_LDO5_EINT_SHIFT                    4  /* UV_LDO5_EINT */
301 #define WM831X_UV_LDO5_EINT_WIDTH                    1  /* UV_LDO5_EINT */
302 #define WM831X_UV_LDO4_EINT                     0x0008  /* UV_LDO4_EINT */
303 #define WM831X_UV_LDO4_EINT_MASK                0x0008  /* UV_LDO4_EINT */
304 #define WM831X_UV_LDO4_EINT_SHIFT                    3  /* UV_LDO4_EINT */
305 #define WM831X_UV_LDO4_EINT_WIDTH                    1  /* UV_LDO4_EINT */
306 #define WM831X_UV_LDO3_EINT                     0x0004  /* UV_LDO3_EINT */
307 #define WM831X_UV_LDO3_EINT_MASK                0x0004  /* UV_LDO3_EINT */
308 #define WM831X_UV_LDO3_EINT_SHIFT                    2  /* UV_LDO3_EINT */
309 #define WM831X_UV_LDO3_EINT_WIDTH                    1  /* UV_LDO3_EINT */
310 #define WM831X_UV_LDO2_EINT                     0x0002  /* UV_LDO2_EINT */
311 #define WM831X_UV_LDO2_EINT_MASK                0x0002  /* UV_LDO2_EINT */
312 #define WM831X_UV_LDO2_EINT_SHIFT                    1  /* UV_LDO2_EINT */
313 #define WM831X_UV_LDO2_EINT_WIDTH                    1  /* UV_LDO2_EINT */
314 #define WM831X_UV_LDO1_EINT                     0x0001  /* UV_LDO1_EINT */
315 #define WM831X_UV_LDO1_EINT_MASK                0x0001  /* UV_LDO1_EINT */
316 #define WM831X_UV_LDO1_EINT_SHIFT                    0  /* UV_LDO1_EINT */
317 #define WM831X_UV_LDO1_EINT_WIDTH                    1  /* UV_LDO1_EINT */
318
319 /*
320  * R16404 (0x4014) - Interrupt Status 4
321  */
322 #define WM831X_HC_DC2_EINT                      0x0200  /* HC_DC2_EINT */
323 #define WM831X_HC_DC2_EINT_MASK                 0x0200  /* HC_DC2_EINT */
324 #define WM831X_HC_DC2_EINT_SHIFT                     9  /* HC_DC2_EINT */
325 #define WM831X_HC_DC2_EINT_WIDTH                     1  /* HC_DC2_EINT */
326 #define WM831X_HC_DC1_EINT                      0x0100  /* HC_DC1_EINT */
327 #define WM831X_HC_DC1_EINT_MASK                 0x0100  /* HC_DC1_EINT */
328 #define WM831X_HC_DC1_EINT_SHIFT                     8  /* HC_DC1_EINT */
329 #define WM831X_HC_DC1_EINT_WIDTH                     1  /* HC_DC1_EINT */
330 #define WM831X_UV_DC4_EINT                      0x0008  /* UV_DC4_EINT */
331 #define WM831X_UV_DC4_EINT_MASK                 0x0008  /* UV_DC4_EINT */
332 #define WM831X_UV_DC4_EINT_SHIFT                     3  /* UV_DC4_EINT */
333 #define WM831X_UV_DC4_EINT_WIDTH                     1  /* UV_DC4_EINT */
334 #define WM831X_UV_DC3_EINT                      0x0004  /* UV_DC3_EINT */
335 #define WM831X_UV_DC3_EINT_MASK                 0x0004  /* UV_DC3_EINT */
336 #define WM831X_UV_DC3_EINT_SHIFT                     2  /* UV_DC3_EINT */
337 #define WM831X_UV_DC3_EINT_WIDTH                     1  /* UV_DC3_EINT */
338 #define WM831X_UV_DC2_EINT                      0x0002  /* UV_DC2_EINT */
339 #define WM831X_UV_DC2_EINT_MASK                 0x0002  /* UV_DC2_EINT */
340 #define WM831X_UV_DC2_EINT_SHIFT                     1  /* UV_DC2_EINT */
341 #define WM831X_UV_DC2_EINT_WIDTH                     1  /* UV_DC2_EINT */
342 #define WM831X_UV_DC1_EINT                      0x0001  /* UV_DC1_EINT */
343 #define WM831X_UV_DC1_EINT_MASK                 0x0001  /* UV_DC1_EINT */
344 #define WM831X_UV_DC1_EINT_SHIFT                     0  /* UV_DC1_EINT */
345 #define WM831X_UV_DC1_EINT_WIDTH                     1  /* UV_DC1_EINT */
346
347 /*
348  * R16405 (0x4015) - Interrupt Status 5
349  */
350 #define WM831X_GP16_EINT                        0x8000  /* GP16_EINT */
351 #define WM831X_GP16_EINT_MASK                   0x8000  /* GP16_EINT */
352 #define WM831X_GP16_EINT_SHIFT                      15  /* GP16_EINT */
353 #define WM831X_GP16_EINT_WIDTH                       1  /* GP16_EINT */
354 #define WM831X_GP15_EINT                        0x4000  /* GP15_EINT */
355 #define WM831X_GP15_EINT_MASK                   0x4000  /* GP15_EINT */
356 #define WM831X_GP15_EINT_SHIFT                      14  /* GP15_EINT */
357 #define WM831X_GP15_EINT_WIDTH                       1  /* GP15_EINT */
358 #define WM831X_GP14_EINT                        0x2000  /* GP14_EINT */
359 #define WM831X_GP14_EINT_MASK                   0x2000  /* GP14_EINT */
360 #define WM831X_GP14_EINT_SHIFT                      13  /* GP14_EINT */
361 #define WM831X_GP14_EINT_WIDTH                       1  /* GP14_EINT */
362 #define WM831X_GP13_EINT                        0x1000  /* GP13_EINT */
363 #define WM831X_GP13_EINT_MASK                   0x1000  /* GP13_EINT */
364 #define WM831X_GP13_EINT_SHIFT                      12  /* GP13_EINT */
365 #define WM831X_GP13_EINT_WIDTH                       1  /* GP13_EINT */
366 #define WM831X_GP12_EINT                        0x0800  /* GP12_EINT */
367 #define WM831X_GP12_EINT_MASK                   0x0800  /* GP12_EINT */
368 #define WM831X_GP12_EINT_SHIFT                      11  /* GP12_EINT */
369 #define WM831X_GP12_EINT_WIDTH                       1  /* GP12_EINT */
370 #define WM831X_GP11_EINT                        0x0400  /* GP11_EINT */
371 #define WM831X_GP11_EINT_MASK                   0x0400  /* GP11_EINT */
372 #define WM831X_GP11_EINT_SHIFT                      10  /* GP11_EINT */
373 #define WM831X_GP11_EINT_WIDTH                       1  /* GP11_EINT */
374 #define WM831X_GP10_EINT                        0x0200  /* GP10_EINT */
375 #define WM831X_GP10_EINT_MASK                   0x0200  /* GP10_EINT */
376 #define WM831X_GP10_EINT_SHIFT                       9  /* GP10_EINT */
377 #define WM831X_GP10_EINT_WIDTH                       1  /* GP10_EINT */
378 #define WM831X_GP9_EINT                         0x0100  /* GP9_EINT */
379 #define WM831X_GP9_EINT_MASK                    0x0100  /* GP9_EINT */
380 #define WM831X_GP9_EINT_SHIFT                        8  /* GP9_EINT */
381 #define WM831X_GP9_EINT_WIDTH                        1  /* GP9_EINT */
382 #define WM831X_GP8_EINT                         0x0080  /* GP8_EINT */
383 #define WM831X_GP8_EINT_MASK                    0x0080  /* GP8_EINT */
384 #define WM831X_GP8_EINT_SHIFT                        7  /* GP8_EINT */
385 #define WM831X_GP8_EINT_WIDTH                        1  /* GP8_EINT */
386 #define WM831X_GP7_EINT                         0x0040  /* GP7_EINT */
387 #define WM831X_GP7_EINT_MASK                    0x0040  /* GP7_EINT */
388 #define WM831X_GP7_EINT_SHIFT                        6  /* GP7_EINT */
389 #define WM831X_GP7_EINT_WIDTH                        1  /* GP7_EINT */
390 #define WM831X_GP6_EINT                         0x0020  /* GP6_EINT */
391 #define WM831X_GP6_EINT_MASK                    0x0020  /* GP6_EINT */
392 #define WM831X_GP6_EINT_SHIFT                        5  /* GP6_EINT */
393 #define WM831X_GP6_EINT_WIDTH                        1  /* GP6_EINT */
394 #define WM831X_GP5_EINT                         0x0010  /* GP5_EINT */
395 #define WM831X_GP5_EINT_MASK                    0x0010  /* GP5_EINT */
396 #define WM831X_GP5_EINT_SHIFT                        4  /* GP5_EINT */
397 #define WM831X_GP5_EINT_WIDTH                        1  /* GP5_EINT */
398 #define WM831X_GP4_EINT                         0x0008  /* GP4_EINT */
399 #define WM831X_GP4_EINT_MASK                    0x0008  /* GP4_EINT */
400 #define WM831X_GP4_EINT_SHIFT                        3  /* GP4_EINT */
401 #define WM831X_GP4_EINT_WIDTH                        1  /* GP4_EINT */
402 #define WM831X_GP3_EINT                         0x0004  /* GP3_EINT */
403 #define WM831X_GP3_EINT_MASK                    0x0004  /* GP3_EINT */
404 #define WM831X_GP3_EINT_SHIFT                        2  /* GP3_EINT */
405 #define WM831X_GP3_EINT_WIDTH                        1  /* GP3_EINT */
406 #define WM831X_GP2_EINT                         0x0002  /* GP2_EINT */
407 #define WM831X_GP2_EINT_MASK                    0x0002  /* GP2_EINT */
408 #define WM831X_GP2_EINT_SHIFT                        1  /* GP2_EINT */
409 #define WM831X_GP2_EINT_WIDTH                        1  /* GP2_EINT */
410 #define WM831X_GP1_EINT                         0x0001  /* GP1_EINT */
411 #define WM831X_GP1_EINT_MASK                    0x0001  /* GP1_EINT */
412 #define WM831X_GP1_EINT_SHIFT                        0  /* GP1_EINT */
413 #define WM831X_GP1_EINT_WIDTH                        1  /* GP1_EINT */
414
415 /*
416  * R16407 (0x4017) - IRQ Config
417  */
418 #define WM831X_IRQ_OD                           0x0002  /* IRQ_OD */
419 #define WM831X_IRQ_OD_MASK                      0x0002  /* IRQ_OD */
420 #define WM831X_IRQ_OD_SHIFT                          1  /* IRQ_OD */
421 #define WM831X_IRQ_OD_WIDTH                          1  /* IRQ_OD */
422 #define WM831X_IM_IRQ                           0x0001  /* IM_IRQ */
423 #define WM831X_IM_IRQ_MASK                      0x0001  /* IM_IRQ */
424 #define WM831X_IM_IRQ_SHIFT                          0  /* IM_IRQ */
425 #define WM831X_IM_IRQ_WIDTH                          1  /* IM_IRQ */
426
427 /*
428  * R16408 (0x4018) - System Interrupts Mask
429  */
430 #define WM831X_IM_PS_INT                        0x8000  /* IM_PS_INT */
431 #define WM831X_IM_PS_INT_MASK                   0x8000  /* IM_PS_INT */
432 #define WM831X_IM_PS_INT_SHIFT                      15  /* IM_PS_INT */
433 #define WM831X_IM_PS_INT_WIDTH                       1  /* IM_PS_INT */
434 #define WM831X_IM_TEMP_INT                      0x4000  /* IM_TEMP_INT */
435 #define WM831X_IM_TEMP_INT_MASK                 0x4000  /* IM_TEMP_INT */
436 #define WM831X_IM_TEMP_INT_SHIFT                    14  /* IM_TEMP_INT */
437 #define WM831X_IM_TEMP_INT_WIDTH                     1  /* IM_TEMP_INT */
438 #define WM831X_IM_GP_INT                        0x2000  /* IM_GP_INT */
439 #define WM831X_IM_GP_INT_MASK                   0x2000  /* IM_GP_INT */
440 #define WM831X_IM_GP_INT_SHIFT                      13  /* IM_GP_INT */
441 #define WM831X_IM_GP_INT_WIDTH                       1  /* IM_GP_INT */
442 #define WM831X_IM_ON_PIN_INT                    0x1000  /* IM_ON_PIN_INT */
443 #define WM831X_IM_ON_PIN_INT_MASK               0x1000  /* IM_ON_PIN_INT */
444 #define WM831X_IM_ON_PIN_INT_SHIFT                  12  /* IM_ON_PIN_INT */
445 #define WM831X_IM_ON_PIN_INT_WIDTH                   1  /* IM_ON_PIN_INT */
446 #define WM831X_IM_WDOG_INT                      0x0800  /* IM_WDOG_INT */
447 #define WM831X_IM_WDOG_INT_MASK                 0x0800  /* IM_WDOG_INT */
448 #define WM831X_IM_WDOG_INT_SHIFT                    11  /* IM_WDOG_INT */
449 #define WM831X_IM_WDOG_INT_WIDTH                     1  /* IM_WDOG_INT */
450 #define WM831X_IM_TCHDATA_INT                   0x0400  /* IM_TCHDATA_INT */
451 #define WM831X_IM_TCHDATA_INT_MASK              0x0400  /* IM_TCHDATA_INT */
452 #define WM831X_IM_TCHDATA_INT_SHIFT                 10  /* IM_TCHDATA_INT */
453 #define WM831X_IM_TCHDATA_INT_WIDTH                  1  /* IM_TCHDATA_INT */
454 #define WM831X_IM_TCHPD_INT                     0x0200  /* IM_TCHPD_INT */
455 #define WM831X_IM_TCHPD_INT_MASK                0x0200  /* IM_TCHPD_INT */
456 #define WM831X_IM_TCHPD_INT_SHIFT                    9  /* IM_TCHPD_INT */
457 #define WM831X_IM_TCHPD_INT_WIDTH                    1  /* IM_TCHPD_INT */
458 #define WM831X_IM_AUXADC_INT                    0x0100  /* IM_AUXADC_INT */
459 #define WM831X_IM_AUXADC_INT_MASK               0x0100  /* IM_AUXADC_INT */
460 #define WM831X_IM_AUXADC_INT_SHIFT                   8  /* IM_AUXADC_INT */
461 #define WM831X_IM_AUXADC_INT_WIDTH                   1  /* IM_AUXADC_INT */
462 #define WM831X_IM_PPM_INT                       0x0080  /* IM_PPM_INT */
463 #define WM831X_IM_PPM_INT_MASK                  0x0080  /* IM_PPM_INT */
464 #define WM831X_IM_PPM_INT_SHIFT                      7  /* IM_PPM_INT */
465 #define WM831X_IM_PPM_INT_WIDTH                      1  /* IM_PPM_INT */
466 #define WM831X_IM_CS_INT                        0x0040  /* IM_CS_INT */
467 #define WM831X_IM_CS_INT_MASK                   0x0040  /* IM_CS_INT */
468 #define WM831X_IM_CS_INT_SHIFT                       6  /* IM_CS_INT */
469 #define WM831X_IM_CS_INT_WIDTH                       1  /* IM_CS_INT */
470 #define WM831X_IM_RTC_INT                       0x0020  /* IM_RTC_INT */
471 #define WM831X_IM_RTC_INT_MASK                  0x0020  /* IM_RTC_INT */
472 #define WM831X_IM_RTC_INT_SHIFT                      5  /* IM_RTC_INT */
473 #define WM831X_IM_RTC_INT_WIDTH                      1  /* IM_RTC_INT */
474 #define WM831X_IM_OTP_INT                       0x0010  /* IM_OTP_INT */
475 #define WM831X_IM_OTP_INT_MASK                  0x0010  /* IM_OTP_INT */
476 #define WM831X_IM_OTP_INT_SHIFT                      4  /* IM_OTP_INT */
477 #define WM831X_IM_OTP_INT_WIDTH                      1  /* IM_OTP_INT */
478 #define WM831X_IM_CHILD_INT                     0x0008  /* IM_CHILD_INT */
479 #define WM831X_IM_CHILD_INT_MASK                0x0008  /* IM_CHILD_INT */
480 #define WM831X_IM_CHILD_INT_SHIFT                    3  /* IM_CHILD_INT */
481 #define WM831X_IM_CHILD_INT_WIDTH                    1  /* IM_CHILD_INT */
482 #define WM831X_IM_CHG_INT                       0x0004  /* IM_CHG_INT */
483 #define WM831X_IM_CHG_INT_MASK                  0x0004  /* IM_CHG_INT */
484 #define WM831X_IM_CHG_INT_SHIFT                      2  /* IM_CHG_INT */
485 #define WM831X_IM_CHG_INT_WIDTH                      1  /* IM_CHG_INT */
486 #define WM831X_IM_HC_INT                        0x0002  /* IM_HC_INT */
487 #define WM831X_IM_HC_INT_MASK                   0x0002  /* IM_HC_INT */
488 #define WM831X_IM_HC_INT_SHIFT                       1  /* IM_HC_INT */
489 #define WM831X_IM_HC_INT_WIDTH                       1  /* IM_HC_INT */
490 #define WM831X_IM_UV_INT                        0x0001  /* IM_UV_INT */
491 #define WM831X_IM_UV_INT_MASK                   0x0001  /* IM_UV_INT */
492 #define WM831X_IM_UV_INT_SHIFT                       0  /* IM_UV_INT */
493 #define WM831X_IM_UV_INT_WIDTH                       1  /* IM_UV_INT */
494
495 /*
496  * R16409 (0x4019) - Interrupt Status 1 Mask
497  */
498 #define WM831X_IM_PPM_SYSLO_EINT                0x8000  /* IM_PPM_SYSLO_EINT */
499 #define WM831X_IM_PPM_SYSLO_EINT_MASK           0x8000  /* IM_PPM_SYSLO_EINT */
500 #define WM831X_IM_PPM_SYSLO_EINT_SHIFT              15  /* IM_PPM_SYSLO_EINT */
501 #define WM831X_IM_PPM_SYSLO_EINT_WIDTH               1  /* IM_PPM_SYSLO_EINT */
502 #define WM831X_IM_PPM_PWR_SRC_EINT              0x4000  /* IM_PPM_PWR_SRC_EINT */
503 #define WM831X_IM_PPM_PWR_SRC_EINT_MASK         0x4000  /* IM_PPM_PWR_SRC_EINT */
504 #define WM831X_IM_PPM_PWR_SRC_EINT_SHIFT            14  /* IM_PPM_PWR_SRC_EINT */
505 #define WM831X_IM_PPM_PWR_SRC_EINT_WIDTH             1  /* IM_PPM_PWR_SRC_EINT */
506 #define WM831X_IM_PPM_USB_CURR_EINT             0x2000  /* IM_PPM_USB_CURR_EINT */
507 #define WM831X_IM_PPM_USB_CURR_EINT_MASK        0x2000  /* IM_PPM_USB_CURR_EINT */
508 #define WM831X_IM_PPM_USB_CURR_EINT_SHIFT           13  /* IM_PPM_USB_CURR_EINT */
509 #define WM831X_IM_PPM_USB_CURR_EINT_WIDTH            1  /* IM_PPM_USB_CURR_EINT */
510 #define WM831X_IM_ON_PIN_EINT                   0x1000  /* IM_ON_PIN_EINT */
511 #define WM831X_IM_ON_PIN_EINT_MASK              0x1000  /* IM_ON_PIN_EINT */
512 #define WM831X_IM_ON_PIN_EINT_SHIFT                 12  /* IM_ON_PIN_EINT */
513 #define WM831X_IM_ON_PIN_EINT_WIDTH                  1  /* IM_ON_PIN_EINT */
514 #define WM831X_IM_WDOG_TO_EINT                  0x0800  /* IM_WDOG_TO_EINT */
515 #define WM831X_IM_WDOG_TO_EINT_MASK             0x0800  /* IM_WDOG_TO_EINT */
516 #define WM831X_IM_WDOG_TO_EINT_SHIFT                11  /* IM_WDOG_TO_EINT */
517 #define WM831X_IM_WDOG_TO_EINT_WIDTH                 1  /* IM_WDOG_TO_EINT */
518 #define WM831X_IM_TCHDATA_EINT                  0x0400  /* IM_TCHDATA_EINT */
519 #define WM831X_IM_TCHDATA_EINT_MASK             0x0400  /* IM_TCHDATA_EINT */
520 #define WM831X_IM_TCHDATA_EINT_SHIFT                10  /* IM_TCHDATA_EINT */
521 #define WM831X_IM_TCHDATA_EINT_WIDTH                 1  /* IM_TCHDATA_EINT */
522 #define WM831X_IM_TCHPD_EINT                    0x0200  /* IM_TCHPD_EINT */
523 #define WM831X_IM_TCHPD_EINT_MASK               0x0200  /* IM_TCHPD_EINT */
524 #define WM831X_IM_TCHPD_EINT_SHIFT                   9  /* IM_TCHPD_EINT */
525 #define WM831X_IM_TCHPD_EINT_WIDTH                   1  /* IM_TCHPD_EINT */
526 #define WM831X_IM_AUXADC_DATA_EINT              0x0100  /* IM_AUXADC_DATA_EINT */
527 #define WM831X_IM_AUXADC_DATA_EINT_MASK         0x0100  /* IM_AUXADC_DATA_EINT */
528 #define WM831X_IM_AUXADC_DATA_EINT_SHIFT             8  /* IM_AUXADC_DATA_EINT */
529 #define WM831X_IM_AUXADC_DATA_EINT_WIDTH             1  /* IM_AUXADC_DATA_EINT */
530 #define WM831X_IM_AUXADC_DCOMP4_EINT            0x0080  /* IM_AUXADC_DCOMP4_EINT */
531 #define WM831X_IM_AUXADC_DCOMP4_EINT_MASK       0x0080  /* IM_AUXADC_DCOMP4_EINT */
532 #define WM831X_IM_AUXADC_DCOMP4_EINT_SHIFT           7  /* IM_AUXADC_DCOMP4_EINT */
533 #define WM831X_IM_AUXADC_DCOMP4_EINT_WIDTH           1  /* IM_AUXADC_DCOMP4_EINT */
534 #define WM831X_IM_AUXADC_DCOMP3_EINT            0x0040  /* IM_AUXADC_DCOMP3_EINT */
535 #define WM831X_IM_AUXADC_DCOMP3_EINT_MASK       0x0040  /* IM_AUXADC_DCOMP3_EINT */
536 #define WM831X_IM_AUXADC_DCOMP3_EINT_SHIFT           6  /* IM_AUXADC_DCOMP3_EINT */
537 #define WM831X_IM_AUXADC_DCOMP3_EINT_WIDTH           1  /* IM_AUXADC_DCOMP3_EINT */
538 #define WM831X_IM_AUXADC_DCOMP2_EINT            0x0020  /* IM_AUXADC_DCOMP2_EINT */
539 #define WM831X_IM_AUXADC_DCOMP2_EINT_MASK       0x0020  /* IM_AUXADC_DCOMP2_EINT */
540 #define WM831X_IM_AUXADC_DCOMP2_EINT_SHIFT           5  /* IM_AUXADC_DCOMP2_EINT */
541 #define WM831X_IM_AUXADC_DCOMP2_EINT_WIDTH           1  /* IM_AUXADC_DCOMP2_EINT */
542 #define WM831X_IM_AUXADC_DCOMP1_EINT            0x0010  /* IM_AUXADC_DCOMP1_EINT */
543 #define WM831X_IM_AUXADC_DCOMP1_EINT_MASK       0x0010  /* IM_AUXADC_DCOMP1_EINT */
544 #define WM831X_IM_AUXADC_DCOMP1_EINT_SHIFT           4  /* IM_AUXADC_DCOMP1_EINT */
545 #define WM831X_IM_AUXADC_DCOMP1_EINT_WIDTH           1  /* IM_AUXADC_DCOMP1_EINT */
546 #define WM831X_IM_RTC_PER_EINT                  0x0008  /* IM_RTC_PER_EINT */
547 #define WM831X_IM_RTC_PER_EINT_MASK             0x0008  /* IM_RTC_PER_EINT */
548 #define WM831X_IM_RTC_PER_EINT_SHIFT                 3  /* IM_RTC_PER_EINT */
549 #define WM831X_IM_RTC_PER_EINT_WIDTH                 1  /* IM_RTC_PER_EINT */
550 #define WM831X_IM_RTC_ALM_EINT                  0x0004  /* IM_RTC_ALM_EINT */
551 #define WM831X_IM_RTC_ALM_EINT_MASK             0x0004  /* IM_RTC_ALM_EINT */
552 #define WM831X_IM_RTC_ALM_EINT_SHIFT                 2  /* IM_RTC_ALM_EINT */
553 #define WM831X_IM_RTC_ALM_EINT_WIDTH                 1  /* IM_RTC_ALM_EINT */
554 #define WM831X_IM_TEMP_THW_EINT                 0x0002  /* IM_TEMP_THW_EINT */
555 #define WM831X_IM_TEMP_THW_EINT_MASK            0x0002  /* IM_TEMP_THW_EINT */
556 #define WM831X_IM_TEMP_THW_EINT_SHIFT                1  /* IM_TEMP_THW_EINT */
557 #define WM831X_IM_TEMP_THW_EINT_WIDTH                1  /* IM_TEMP_THW_EINT */
558
559 /*
560  * R16410 (0x401A) - Interrupt Status 2 Mask
561  */
562 #define WM831X_IM_CHG_BATT_HOT_EINT             0x8000  /* IM_CHG_BATT_HOT_EINT */
563 #define WM831X_IM_CHG_BATT_HOT_EINT_MASK        0x8000  /* IM_CHG_BATT_HOT_EINT */
564 #define WM831X_IM_CHG_BATT_HOT_EINT_SHIFT           15  /* IM_CHG_BATT_HOT_EINT */
565 #define WM831X_IM_CHG_BATT_HOT_EINT_WIDTH            1  /* IM_CHG_BATT_HOT_EINT */
566 #define WM831X_IM_CHG_BATT_COLD_EINT            0x4000  /* IM_CHG_BATT_COLD_EINT */
567 #define WM831X_IM_CHG_BATT_COLD_EINT_MASK       0x4000  /* IM_CHG_BATT_COLD_EINT */
568 #define WM831X_IM_CHG_BATT_COLD_EINT_SHIFT          14  /* IM_CHG_BATT_COLD_EINT */
569 #define WM831X_IM_CHG_BATT_COLD_EINT_WIDTH           1  /* IM_CHG_BATT_COLD_EINT */
570 #define WM831X_IM_CHG_BATT_FAIL_EINT            0x2000  /* IM_CHG_BATT_FAIL_EINT */
571 #define WM831X_IM_CHG_BATT_FAIL_EINT_MASK       0x2000  /* IM_CHG_BATT_FAIL_EINT */
572 #define WM831X_IM_CHG_BATT_FAIL_EINT_SHIFT          13  /* IM_CHG_BATT_FAIL_EINT */
573 #define WM831X_IM_CHG_BATT_FAIL_EINT_WIDTH           1  /* IM_CHG_BATT_FAIL_EINT */
574 #define WM831X_IM_CHG_OV_EINT                   0x1000  /* IM_CHG_OV_EINT */
575 #define WM831X_IM_CHG_OV_EINT_MASK              0x1000  /* IM_CHG_OV_EINT */
576 #define WM831X_IM_CHG_OV_EINT_SHIFT                 12  /* IM_CHG_OV_EINT */
577 #define WM831X_IM_CHG_OV_EINT_WIDTH                  1  /* IM_CHG_OV_EINT */
578 #define WM831X_IM_CHG_END_EINT                  0x0800  /* IM_CHG_END_EINT */
579 #define WM831X_IM_CHG_END_EINT_MASK             0x0800  /* IM_CHG_END_EINT */
580 #define WM831X_IM_CHG_END_EINT_SHIFT                11  /* IM_CHG_END_EINT */
581 #define WM831X_IM_CHG_END_EINT_WIDTH                 1  /* IM_CHG_END_EINT */
582 #define WM831X_IM_CHG_TO_EINT                   0x0400  /* IM_CHG_TO_EINT */
583 #define WM831X_IM_CHG_TO_EINT_MASK              0x0400  /* IM_CHG_TO_EINT */
584 #define WM831X_IM_CHG_TO_EINT_SHIFT                 10  /* IM_CHG_TO_EINT */
585 #define WM831X_IM_CHG_TO_EINT_WIDTH                  1  /* IM_CHG_TO_EINT */
586 #define WM831X_IM_CHG_MODE_EINT                 0x0200  /* IM_CHG_MODE_EINT */
587 #define WM831X_IM_CHG_MODE_EINT_MASK            0x0200  /* IM_CHG_MODE_EINT */
588 #define WM831X_IM_CHG_MODE_EINT_SHIFT                9  /* IM_CHG_MODE_EINT */
589 #define WM831X_IM_CHG_MODE_EINT_WIDTH                1  /* IM_CHG_MODE_EINT */
590 #define WM831X_IM_CHG_START_EINT                0x0100  /* IM_CHG_START_EINT */
591 #define WM831X_IM_CHG_START_EINT_MASK           0x0100  /* IM_CHG_START_EINT */
592 #define WM831X_IM_CHG_START_EINT_SHIFT               8  /* IM_CHG_START_EINT */
593 #define WM831X_IM_CHG_START_EINT_WIDTH               1  /* IM_CHG_START_EINT */
594 #define WM831X_IM_CS2_EINT                      0x0080  /* IM_CS2_EINT */
595 #define WM831X_IM_CS2_EINT_MASK                 0x0080  /* IM_CS2_EINT */
596 #define WM831X_IM_CS2_EINT_SHIFT                     7  /* IM_CS2_EINT */
597 #define WM831X_IM_CS2_EINT_WIDTH                     1  /* IM_CS2_EINT */
598 #define WM831X_IM_CS1_EINT                      0x0040  /* IM_CS1_EINT */
599 #define WM831X_IM_CS1_EINT_MASK                 0x0040  /* IM_CS1_EINT */
600 #define WM831X_IM_CS1_EINT_SHIFT                     6  /* IM_CS1_EINT */
601 #define WM831X_IM_CS1_EINT_WIDTH                     1  /* IM_CS1_EINT */
602 #define WM831X_IM_OTP_CMD_END_EINT              0x0020  /* IM_OTP_CMD_END_EINT */
603 #define WM831X_IM_OTP_CMD_END_EINT_MASK         0x0020  /* IM_OTP_CMD_END_EINT */
604 #define WM831X_IM_OTP_CMD_END_EINT_SHIFT             5  /* IM_OTP_CMD_END_EINT */
605 #define WM831X_IM_OTP_CMD_END_EINT_WIDTH             1  /* IM_OTP_CMD_END_EINT */
606 #define WM831X_IM_OTP_ERR_EINT                  0x0010  /* IM_OTP_ERR_EINT */
607 #define WM831X_IM_OTP_ERR_EINT_MASK             0x0010  /* IM_OTP_ERR_EINT */
608 #define WM831X_IM_OTP_ERR_EINT_SHIFT                 4  /* IM_OTP_ERR_EINT */
609 #define WM831X_IM_OTP_ERR_EINT_WIDTH                 1  /* IM_OTP_ERR_EINT */
610 #define WM831X_IM_PS_POR_EINT                   0x0004  /* IM_PS_POR_EINT */
611 #define WM831X_IM_PS_POR_EINT_MASK              0x0004  /* IM_PS_POR_EINT */
612 #define WM831X_IM_PS_POR_EINT_SHIFT                  2  /* IM_PS_POR_EINT */
613 #define WM831X_IM_PS_POR_EINT_WIDTH                  1  /* IM_PS_POR_EINT */
614 #define WM831X_IM_PS_SLEEP_OFF_EINT             0x0002  /* IM_PS_SLEEP_OFF_EINT */
615 #define WM831X_IM_PS_SLEEP_OFF_EINT_MASK        0x0002  /* IM_PS_SLEEP_OFF_EINT */
616 #define WM831X_IM_PS_SLEEP_OFF_EINT_SHIFT            1  /* IM_PS_SLEEP_OFF_EINT */
617 #define WM831X_IM_PS_SLEEP_OFF_EINT_WIDTH            1  /* IM_PS_SLEEP_OFF_EINT */
618 #define WM831X_IM_PS_ON_WAKE_EINT               0x0001  /* IM_PS_ON_WAKE_EINT */
619 #define WM831X_IM_PS_ON_WAKE_EINT_MASK          0x0001  /* IM_PS_ON_WAKE_EINT */
620 #define WM831X_IM_PS_ON_WAKE_EINT_SHIFT              0  /* IM_PS_ON_WAKE_EINT */
621 #define WM831X_IM_PS_ON_WAKE_EINT_WIDTH              1  /* IM_PS_ON_WAKE_EINT */
622
623 /*
624  * R16411 (0x401B) - Interrupt Status 3 Mask
625  */
626 #define WM831X_IM_UV_LDO10_EINT                 0x0200  /* IM_UV_LDO10_EINT */
627 #define WM831X_IM_UV_LDO10_EINT_MASK            0x0200  /* IM_UV_LDO10_EINT */
628 #define WM831X_IM_UV_LDO10_EINT_SHIFT                9  /* IM_UV_LDO10_EINT */
629 #define WM831X_IM_UV_LDO10_EINT_WIDTH                1  /* IM_UV_LDO10_EINT */
630 #define WM831X_IM_UV_LDO9_EINT                  0x0100  /* IM_UV_LDO9_EINT */
631 #define WM831X_IM_UV_LDO9_EINT_MASK             0x0100  /* IM_UV_LDO9_EINT */
632 #define WM831X_IM_UV_LDO9_EINT_SHIFT                 8  /* IM_UV_LDO9_EINT */
633 #define WM831X_IM_UV_LDO9_EINT_WIDTH                 1  /* IM_UV_LDO9_EINT */
634 #define WM831X_IM_UV_LDO8_EINT                  0x0080  /* IM_UV_LDO8_EINT */
635 #define WM831X_IM_UV_LDO8_EINT_MASK             0x0080  /* IM_UV_LDO8_EINT */
636 #define WM831X_IM_UV_LDO8_EINT_SHIFT                 7  /* IM_UV_LDO8_EINT */
637 #define WM831X_IM_UV_LDO8_EINT_WIDTH                 1  /* IM_UV_LDO8_EINT */
638 #define WM831X_IM_UV_LDO7_EINT                  0x0040  /* IM_UV_LDO7_EINT */
639 #define WM831X_IM_UV_LDO7_EINT_MASK             0x0040  /* IM_UV_LDO7_EINT */
640 #define WM831X_IM_UV_LDO7_EINT_SHIFT                 6  /* IM_UV_LDO7_EINT */
641 #define WM831X_IM_UV_LDO7_EINT_WIDTH                 1  /* IM_UV_LDO7_EINT */
642 #define WM831X_IM_UV_LDO6_EINT                  0x0020  /* IM_UV_LDO6_EINT */
643 #define WM831X_IM_UV_LDO6_EINT_MASK             0x0020  /* IM_UV_LDO6_EINT */
644 #define WM831X_IM_UV_LDO6_EINT_SHIFT                 5  /* IM_UV_LDO6_EINT */
645 #define WM831X_IM_UV_LDO6_EINT_WIDTH                 1  /* IM_UV_LDO6_EINT */
646 #define WM831X_IM_UV_LDO5_EINT                  0x0010  /* IM_UV_LDO5_EINT */
647 #define WM831X_IM_UV_LDO5_EINT_MASK             0x0010  /* IM_UV_LDO5_EINT */
648 #define WM831X_IM_UV_LDO5_EINT_SHIFT                 4  /* IM_UV_LDO5_EINT */
649 #define WM831X_IM_UV_LDO5_EINT_WIDTH                 1  /* IM_UV_LDO5_EINT */
650 #define WM831X_IM_UV_LDO4_EINT                  0x0008  /* IM_UV_LDO4_EINT */
651 #define WM831X_IM_UV_LDO4_EINT_MASK             0x0008  /* IM_UV_LDO4_EINT */
652 #define WM831X_IM_UV_LDO4_EINT_SHIFT                 3  /* IM_UV_LDO4_EINT */
653 #define WM831X_IM_UV_LDO4_EINT_WIDTH                 1  /* IM_UV_LDO4_EINT */
654 #define WM831X_IM_UV_LDO3_EINT                  0x0004  /* IM_UV_LDO3_EINT */
655 #define WM831X_IM_UV_LDO3_EINT_MASK             0x0004  /* IM_UV_LDO3_EINT */
656 #define WM831X_IM_UV_LDO3_EINT_SHIFT                 2  /* IM_UV_LDO3_EINT */
657 #define WM831X_IM_UV_LDO3_EINT_WIDTH                 1  /* IM_UV_LDO3_EINT */
658 #define WM831X_IM_UV_LDO2_EINT                  0x0002  /* IM_UV_LDO2_EINT */
659 #define WM831X_IM_UV_LDO2_EINT_MASK             0x0002  /* IM_UV_LDO2_EINT */
660 #define WM831X_IM_UV_LDO2_EINT_SHIFT                 1  /* IM_UV_LDO2_EINT */
661 #define WM831X_IM_UV_LDO2_EINT_WIDTH                 1  /* IM_UV_LDO2_EINT */
662 #define WM831X_IM_UV_LDO1_EINT                  0x0001  /* IM_UV_LDO1_EINT */
663 #define WM831X_IM_UV_LDO1_EINT_MASK             0x0001  /* IM_UV_LDO1_EINT */
664 #define WM831X_IM_UV_LDO1_EINT_SHIFT                 0  /* IM_UV_LDO1_EINT */
665 #define WM831X_IM_UV_LDO1_EINT_WIDTH                 1  /* IM_UV_LDO1_EINT */
666
667 /*
668  * R16412 (0x401C) - Interrupt Status 4 Mask
669  */
670 #define WM831X_IM_HC_DC2_EINT                   0x0200  /* IM_HC_DC2_EINT */
671 #define WM831X_IM_HC_DC2_EINT_MASK              0x0200  /* IM_HC_DC2_EINT */
672 #define WM831X_IM_HC_DC2_EINT_SHIFT                  9  /* IM_HC_DC2_EINT */
673 #define WM831X_IM_HC_DC2_EINT_WIDTH                  1  /* IM_HC_DC2_EINT */
674 #define WM831X_IM_HC_DC1_EINT                   0x0100  /* IM_HC_DC1_EINT */
675 #define WM831X_IM_HC_DC1_EINT_MASK              0x0100  /* IM_HC_DC1_EINT */
676 #define WM831X_IM_HC_DC1_EINT_SHIFT                  8  /* IM_HC_DC1_EINT */
677 #define WM831X_IM_HC_DC1_EINT_WIDTH                  1  /* IM_HC_DC1_EINT */
678 #define WM831X_IM_UV_DC4_EINT                   0x0008  /* IM_UV_DC4_EINT */
679 #define WM831X_IM_UV_DC4_EINT_MASK              0x0008  /* IM_UV_DC4_EINT */
680 #define WM831X_IM_UV_DC4_EINT_SHIFT                  3  /* IM_UV_DC4_EINT */
681 #define WM831X_IM_UV_DC4_EINT_WIDTH                  1  /* IM_UV_DC4_EINT */
682 #define WM831X_IM_UV_DC3_EINT                   0x0004  /* IM_UV_DC3_EINT */
683 #define WM831X_IM_UV_DC3_EINT_MASK              0x0004  /* IM_UV_DC3_EINT */
684 #define WM831X_IM_UV_DC3_EINT_SHIFT                  2  /* IM_UV_DC3_EINT */
685 #define WM831X_IM_UV_DC3_EINT_WIDTH                  1  /* IM_UV_DC3_EINT */
686 #define WM831X_IM_UV_DC2_EINT                   0x0002  /* IM_UV_DC2_EINT */
687 #define WM831X_IM_UV_DC2_EINT_MASK              0x0002  /* IM_UV_DC2_EINT */
688 #define WM831X_IM_UV_DC2_EINT_SHIFT                  1  /* IM_UV_DC2_EINT */
689 #define WM831X_IM_UV_DC2_EINT_WIDTH                  1  /* IM_UV_DC2_EINT */
690 #define WM831X_IM_UV_DC1_EINT                   0x0001  /* IM_UV_DC1_EINT */
691 #define WM831X_IM_UV_DC1_EINT_MASK              0x0001  /* IM_UV_DC1_EINT */
692 #define WM831X_IM_UV_DC1_EINT_SHIFT                  0  /* IM_UV_DC1_EINT */
693 #define WM831X_IM_UV_DC1_EINT_WIDTH                  1  /* IM_UV_DC1_EINT */
694
695 /*
696  * R16413 (0x401D) - Interrupt Status 5 Mask
697  */
698 #define WM831X_IM_GP16_EINT                     0x8000  /* IM_GP16_EINT */
699 #define WM831X_IM_GP16_EINT_MASK                0x8000  /* IM_GP16_EINT */
700 #define WM831X_IM_GP16_EINT_SHIFT                   15  /* IM_GP16_EINT */
701 #define WM831X_IM_GP16_EINT_WIDTH                    1  /* IM_GP16_EINT */
702 #define WM831X_IM_GP15_EINT                     0x4000  /* IM_GP15_EINT */
703 #define WM831X_IM_GP15_EINT_MASK                0x4000  /* IM_GP15_EINT */
704 #define WM831X_IM_GP15_EINT_SHIFT                   14  /* IM_GP15_EINT */
705 #define WM831X_IM_GP15_EINT_WIDTH                    1  /* IM_GP15_EINT */
706 #define WM831X_IM_GP14_EINT                     0x2000  /* IM_GP14_EINT */
707 #define WM831X_IM_GP14_EINT_MASK                0x2000  /* IM_GP14_EINT */
708 #define WM831X_IM_GP14_EINT_SHIFT                   13  /* IM_GP14_EINT */
709 #define WM831X_IM_GP14_EINT_WIDTH                    1  /* IM_GP14_EINT */
710 #define WM831X_IM_GP13_EINT                     0x1000  /* IM_GP13_EINT */
711 #define WM831X_IM_GP13_EINT_MASK                0x1000  /* IM_GP13_EINT */
712 #define WM831X_IM_GP13_EINT_SHIFT                   12  /* IM_GP13_EINT */
713 #define WM831X_IM_GP13_EINT_WIDTH                    1  /* IM_GP13_EINT */
714 #define WM831X_IM_GP12_EINT                     0x0800  /* IM_GP12_EINT */
715 #define WM831X_IM_GP12_EINT_MASK                0x0800  /* IM_GP12_EINT */
716 #define WM831X_IM_GP12_EINT_SHIFT                   11  /* IM_GP12_EINT */
717 #define WM831X_IM_GP12_EINT_WIDTH                    1  /* IM_GP12_EINT */
718 #define WM831X_IM_GP11_EINT                     0x0400  /* IM_GP11_EINT */
719 #define WM831X_IM_GP11_EINT_MASK                0x0400  /* IM_GP11_EINT */
720 #define WM831X_IM_GP11_EINT_SHIFT                   10  /* IM_GP11_EINT */
721 #define WM831X_IM_GP11_EINT_WIDTH                    1  /* IM_GP11_EINT */
722 #define WM831X_IM_GP10_EINT                     0x0200  /* IM_GP10_EINT */
723 #define WM831X_IM_GP10_EINT_MASK                0x0200  /* IM_GP10_EINT */
724 #define WM831X_IM_GP10_EINT_SHIFT                    9  /* IM_GP10_EINT */
725 #define WM831X_IM_GP10_EINT_WIDTH                    1  /* IM_GP10_EINT */
726 #define WM831X_IM_GP9_EINT                      0x0100  /* IM_GP9_EINT */
727 #define WM831X_IM_GP9_EINT_MASK                 0x0100  /* IM_GP9_EINT */
728 #define WM831X_IM_GP9_EINT_SHIFT                     8  /* IM_GP9_EINT */
729 #define WM831X_IM_GP9_EINT_WIDTH                     1  /* IM_GP9_EINT */
730 #define WM831X_IM_GP8_EINT                      0x0080  /* IM_GP8_EINT */
731 #define WM831X_IM_GP8_EINT_MASK                 0x0080  /* IM_GP8_EINT */
732 #define WM831X_IM_GP8_EINT_SHIFT                     7  /* IM_GP8_EINT */
733 #define WM831X_IM_GP8_EINT_WIDTH                     1  /* IM_GP8_EINT */
734 #define WM831X_IM_GP7_EINT                      0x0040  /* IM_GP7_EINT */
735 #define WM831X_IM_GP7_EINT_MASK                 0x0040  /* IM_GP7_EINT */
736 #define WM831X_IM_GP7_EINT_SHIFT                     6  /* IM_GP7_EINT */
737 #define WM831X_IM_GP7_EINT_WIDTH                     1  /* IM_GP7_EINT */
738 #define WM831X_IM_GP6_EINT                      0x0020  /* IM_GP6_EINT */
739 #define WM831X_IM_GP6_EINT_MASK                 0x0020  /* IM_GP6_EINT */
740 #define WM831X_IM_GP6_EINT_SHIFT                     5  /* IM_GP6_EINT */
741 #define WM831X_IM_GP6_EINT_WIDTH                     1  /* IM_GP6_EINT */
742 #define WM831X_IM_GP5_EINT                      0x0010  /* IM_GP5_EINT */
743 #define WM831X_IM_GP5_EINT_MASK                 0x0010  /* IM_GP5_EINT */
744 #define WM831X_IM_GP5_EINT_SHIFT                     4  /* IM_GP5_EINT */
745 #define WM831X_IM_GP5_EINT_WIDTH                     1  /* IM_GP5_EINT */
746 #define WM831X_IM_GP4_EINT                      0x0008  /* IM_GP4_EINT */
747 #define WM831X_IM_GP4_EINT_MASK                 0x0008  /* IM_GP4_EINT */
748 #define WM831X_IM_GP4_EINT_SHIFT                     3  /* IM_GP4_EINT */
749 #define WM831X_IM_GP4_EINT_WIDTH                     1  /* IM_GP4_EINT */
750 #define WM831X_IM_GP3_EINT                      0x0004  /* IM_GP3_EINT */
751 #define WM831X_IM_GP3_EINT_MASK                 0x0004  /* IM_GP3_EINT */
752 #define WM831X_IM_GP3_EINT_SHIFT                     2  /* IM_GP3_EINT */
753 #define WM831X_IM_GP3_EINT_WIDTH                     1  /* IM_GP3_EINT */
754 #define WM831X_IM_GP2_EINT                      0x0002  /* IM_GP2_EINT */
755 #define WM831X_IM_GP2_EINT_MASK                 0x0002  /* IM_GP2_EINT */
756 #define WM831X_IM_GP2_EINT_SHIFT                     1  /* IM_GP2_EINT */
757 #define WM831X_IM_GP2_EINT_WIDTH                     1  /* IM_GP2_EINT */
758 #define WM831X_IM_GP1_EINT                      0x0001  /* IM_GP1_EINT */
759 #define WM831X_IM_GP1_EINT_MASK                 0x0001  /* IM_GP1_EINT */
760 #define WM831X_IM_GP1_EINT_SHIFT                     0  /* IM_GP1_EINT */
761 #define WM831X_IM_GP1_EINT_WIDTH                     1  /* IM_GP1_EINT */
762
763
764 #endif