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