Merge tag 'mtd/for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
[linux-2.6-microblaze.git] / drivers / extcon / extcon-sm5502.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * sm5502.h
4  *
5  * Copyright (c) 2014 Samsung Electronics Co., Ltd
6  */
7
8 #ifndef __LINUX_EXTCON_SM5502_H
9 #define __LINUX_EXTCON_SM5502_H
10
11 /* SM5502 registers */
12 enum sm5502_reg {
13         SM5502_REG_DEVICE_ID = 0x01,
14         SM5502_REG_CONTROL,
15         SM5502_REG_INT1,
16         SM5502_REG_INT2,
17         SM5502_REG_INTMASK1,
18         SM5502_REG_INTMASK2,
19         SM5502_REG_ADC,
20         SM5502_REG_TIMING_SET1,
21         SM5502_REG_TIMING_SET2,
22         SM5502_REG_DEV_TYPE1,
23         SM5502_REG_DEV_TYPE2,
24         SM5502_REG_BUTTON1,
25         SM5502_REG_BUTTON2,
26         SM5502_REG_CAR_KIT_STATUS,
27         SM5502_REG_RSVD1,
28         SM5502_REG_RSVD2,
29         SM5502_REG_RSVD3,
30         SM5502_REG_RSVD4,
31         SM5502_REG_MANUAL_SW1,
32         SM5502_REG_MANUAL_SW2,
33         SM5502_REG_DEV_TYPE3,
34         SM5502_REG_RSVD5,
35         SM5502_REG_RSVD6,
36         SM5502_REG_RSVD7,
37         SM5502_REG_RSVD8,
38         SM5502_REG_RSVD9,
39         SM5502_REG_RESET,
40         SM5502_REG_RSVD10,
41         SM5502_REG_RESERVED_ID1,
42         SM5502_REG_RSVD11,
43         SM5502_REG_RSVD12,
44         SM5502_REG_RESERVED_ID2,
45         SM5502_REG_RSVD13,
46         SM5502_REG_OCP,
47         SM5502_REG_RSVD14,
48         SM5502_REG_RSVD15,
49         SM5502_REG_RSVD16,
50         SM5502_REG_RSVD17,
51         SM5502_REG_RSVD18,
52         SM5502_REG_RSVD19,
53         SM5502_REG_RSVD20,
54         SM5502_REG_RSVD21,
55         SM5502_REG_RSVD22,
56         SM5502_REG_RSVD23,
57         SM5502_REG_RSVD24,
58         SM5502_REG_RSVD25,
59         SM5502_REG_RSVD26,
60         SM5502_REG_RSVD27,
61         SM5502_REG_RSVD28,
62         SM5502_REG_RSVD29,
63         SM5502_REG_RSVD30,
64         SM5502_REG_RSVD31,
65         SM5502_REG_RSVD32,
66         SM5502_REG_RSVD33,
67         SM5502_REG_RSVD34,
68         SM5502_REG_RSVD35,
69         SM5502_REG_RSVD36,
70         SM5502_REG_RESERVED_ID3,
71
72         SM5502_REG_END,
73 };
74
75 /* Define SM5502 MASK/SHIFT constant */
76 #define SM5502_REG_DEVICE_ID_VENDOR_SHIFT       0
77 #define SM5502_REG_DEVICE_ID_VERSION_SHIFT      3
78 #define SM5502_REG_DEVICE_ID_VENDOR_MASK        (0x3 << SM5502_REG_DEVICE_ID_VENDOR_SHIFT)
79 #define SM5502_REG_DEVICE_ID_VERSION_MASK       (0x1f << SM5502_REG_DEVICE_ID_VERSION_SHIFT)
80
81 #define SM5502_REG_CONTROL_MASK_INT_SHIFT       0
82 #define SM5502_REG_CONTROL_WAIT_SHIFT           1
83 #define SM5502_REG_CONTROL_MANUAL_SW_SHIFT      2
84 #define SM5502_REG_CONTROL_RAW_DATA_SHIFT       3
85 #define SM5502_REG_CONTROL_SW_OPEN_SHIFT        4
86 #define SM5502_REG_CONTROL_MASK_INT_MASK        (0x1 << SM5502_REG_CONTROL_MASK_INT_SHIFT)
87 #define SM5502_REG_CONTROL_WAIT_MASK            (0x1 << SM5502_REG_CONTROL_WAIT_SHIFT)
88 #define SM5502_REG_CONTROL_MANUAL_SW_MASK       (0x1 << SM5502_REG_CONTROL_MANUAL_SW_SHIFT)
89 #define SM5502_REG_CONTROL_RAW_DATA_MASK        (0x1 << SM5502_REG_CONTROL_RAW_DATA_SHIFT)
90 #define SM5502_REG_CONTROL_SW_OPEN_MASK         (0x1 << SM5502_REG_CONTROL_SW_OPEN_SHIFT)
91
92 #define SM5504_REG_CONTROL_CHGTYP_SHIFT         5
93 #define SM5504_REG_CONTROL_USBCHDEN_SHIFT       6
94 #define SM5504_REG_CONTROL_ADC_EN_SHIFT         7
95 #define SM5504_REG_CONTROL_CHGTYP_MASK          (0x1 << SM5504_REG_CONTROL_CHGTYP_SHIFT)
96 #define SM5504_REG_CONTROL_USBCHDEN_MASK        (0x1 << SM5504_REG_CONTROL_USBCHDEN_SHIFT)
97 #define SM5504_REG_CONTROL_ADC_EN_MASK          (0x1 << SM5504_REG_CONTROL_ADC_EN_SHIFT)
98
99 #define SM5502_REG_INTM1_ATTACH_SHIFT           0
100 #define SM5502_REG_INTM1_DETACH_SHIFT           1
101 #define SM5502_REG_INTM1_KP_SHIFT               2
102 #define SM5502_REG_INTM1_LKP_SHIFT              3
103 #define SM5502_REG_INTM1_LKR_SHIFT              4
104 #define SM5502_REG_INTM1_OVP_EVENT_SHIFT        5
105 #define SM5502_REG_INTM1_OCP_EVENT_SHIFT        6
106 #define SM5502_REG_INTM1_OVP_OCP_DIS_SHIFT      7
107 #define SM5502_REG_INTM1_ATTACH_MASK            (0x1 << SM5502_REG_INTM1_ATTACH_SHIFT)
108 #define SM5502_REG_INTM1_DETACH_MASK            (0x1 << SM5502_REG_INTM1_DETACH_SHIFT)
109 #define SM5502_REG_INTM1_KP_MASK                (0x1 << SM5502_REG_INTM1_KP_SHIFT)
110 #define SM5502_REG_INTM1_LKP_MASK               (0x1 << SM5502_REG_INTM1_LKP_SHIFT)
111 #define SM5502_REG_INTM1_LKR_MASK               (0x1 << SM5502_REG_INTM1_LKR_SHIFT)
112 #define SM5502_REG_INTM1_OVP_EVENT_MASK         (0x1 << SM5502_REG_INTM1_OVP_EVENT_SHIFT)
113 #define SM5502_REG_INTM1_OCP_EVENT_MASK         (0x1 << SM5502_REG_INTM1_OCP_EVENT_SHIFT)
114 #define SM5502_REG_INTM1_OVP_OCP_DIS_MASK       (0x1 << SM5502_REG_INTM1_OVP_OCP_DIS_SHIFT)
115
116 #define SM5502_REG_INTM2_VBUS_DET_SHIFT         0
117 #define SM5502_REG_INTM2_REV_ACCE_SHIFT         1
118 #define SM5502_REG_INTM2_ADC_CHG_SHIFT          2
119 #define SM5502_REG_INTM2_STUCK_KEY_SHIFT        3
120 #define SM5502_REG_INTM2_STUCK_KEY_RCV_SHIFT    4
121 #define SM5502_REG_INTM2_MHL_SHIFT              5
122 #define SM5502_REG_INTM2_VBUS_DET_MASK          (0x1 << SM5502_REG_INTM2_VBUS_DET_SHIFT)
123 #define SM5502_REG_INTM2_REV_ACCE_MASK          (0x1 << SM5502_REG_INTM2_REV_ACCE_SHIFT)
124 #define SM5502_REG_INTM2_ADC_CHG_MASK           (0x1 << SM5502_REG_INTM2_ADC_CHG_SHIFT)
125 #define SM5502_REG_INTM2_STUCK_KEY_MASK         (0x1 << SM5502_REG_INTM2_STUCK_KEY_SHIFT)
126 #define SM5502_REG_INTM2_STUCK_KEY_RCV_MASK     (0x1 << SM5502_REG_INTM2_STUCK_KEY_RCV_SHIFT)
127 #define SM5502_REG_INTM2_MHL_MASK               (0x1 << SM5502_REG_INTM2_MHL_SHIFT)
128
129 #define SM5504_REG_INTM1_ATTACH_SHIFT           0
130 #define SM5504_REG_INTM1_DETACH_SHIFT           1
131 #define SM5504_REG_INTM1_CHG_DET_SHIFT          2
132 #define SM5504_REG_INTM1_DCD_OUT_SHIFT          3
133 #define SM5504_REG_INTM1_OVP_EVENT_SHIFT        4
134 #define SM5504_REG_INTM1_CONNECT_SHIFT          5
135 #define SM5504_REG_INTM1_ADC_CHG_SHIFT          6
136 #define SM5504_REG_INTM1_ATTACH_MASK            (0x1 << SM5504_REG_INTM1_ATTACH_SHIFT)
137 #define SM5504_REG_INTM1_DETACH_MASK            (0x1 << SM5504_REG_INTM1_DETACH_SHIFT)
138 #define SM5504_REG_INTM1_CHG_DET_MASK           (0x1 << SM5504_REG_INTM1_CHG_DET_SHIFT)
139 #define SM5504_REG_INTM1_DCD_OUT_MASK           (0x1 << SM5504_REG_INTM1_DCD_OUT_SHIFT)
140 #define SM5504_REG_INTM1_OVP_EVENT_MASK         (0x1 << SM5504_REG_INTM1_OVP_EVENT_SHIFT)
141 #define SM5504_REG_INTM1_CONNECT_MASK           (0x1 << SM5504_REG_INTM1_CONNECT_SHIFT)
142 #define SM5504_REG_INTM1_ADC_CHG_MASK           (0x1 << SM5504_REG_INTM1_ADC_CHG_SHIFT)
143
144 #define SM5504_REG_INTM2_RID_CHG_SHIFT          0
145 #define SM5504_REG_INTM2_UVLO_SHIFT             1
146 #define SM5504_REG_INTM2_POR_SHIFT              2
147 #define SM5504_REG_INTM2_OVP_FET_SHIFT          4
148 #define SM5504_REG_INTM2_OCP_LATCH_SHIFT        5
149 #define SM5504_REG_INTM2_OCP_EVENT_SHIFT        6
150 #define SM5504_REG_INTM2_OVP_OCP_EVENT_SHIFT    7
151 #define SM5504_REG_INTM2_RID_CHG_MASK           (0x1 << SM5504_REG_INTM2_RID_CHG_SHIFT)
152 #define SM5504_REG_INTM2_UVLO_MASK              (0x1 << SM5504_REG_INTM2_UVLO_SHIFT)
153 #define SM5504_REG_INTM2_POR_MASK               (0x1 << SM5504_REG_INTM2_POR_SHIFT)
154 #define SM5504_REG_INTM2_OVP_FET_MASK           (0x1 << SM5504_REG_INTM2_OVP_FET_SHIFT)
155 #define SM5504_REG_INTM2_OCP_LATCH_MASK         (0x1 << SM5504_REG_INTM2_OCP_LATCH_SHIFT)
156 #define SM5504_REG_INTM2_OCP_EVENT_MASK         (0x1 << SM5504_REG_INTM2_OCP_EVENT_SHIFT)
157 #define SM5504_REG_INTM2_OVP_OCP_EVENT_MASK     (0x1 << SM5504_REG_INTM2_OVP_OCP_EVENT_SHIFT)
158
159 #define SM5502_REG_ADC_SHIFT                    0
160 #define SM5502_REG_ADC_MASK                     (0x1f << SM5502_REG_ADC_SHIFT)
161
162 #define SM5502_REG_TIMING_SET1_KEY_PRESS_SHIFT  4
163 #define SM5502_REG_TIMING_SET1_KEY_PRESS_MASK   (0xf << SM5502_REG_TIMING_SET1_KEY_PRESS_SHIFT)
164 #define TIMING_KEY_PRESS_100MS                  0x0
165 #define TIMING_KEY_PRESS_200MS                  0x1
166 #define TIMING_KEY_PRESS_300MS                  0x2
167 #define TIMING_KEY_PRESS_400MS                  0x3
168 #define TIMING_KEY_PRESS_500MS                  0x4
169 #define TIMING_KEY_PRESS_600MS                  0x5
170 #define TIMING_KEY_PRESS_700MS                  0x6
171 #define TIMING_KEY_PRESS_800MS                  0x7
172 #define TIMING_KEY_PRESS_900MS                  0x8
173 #define TIMING_KEY_PRESS_1000MS                 0x9
174 #define SM5502_REG_TIMING_SET1_ADC_DET_SHIFT    0
175 #define SM5502_REG_TIMING_SET1_ADC_DET_MASK     (0xf << SM5502_REG_TIMING_SET1_ADC_DET_SHIFT)
176 #define TIMING_ADC_DET_50MS                     0x0
177 #define TIMING_ADC_DET_100MS                    0x1
178 #define TIMING_ADC_DET_150MS                    0x2
179 #define TIMING_ADC_DET_200MS                    0x3
180 #define TIMING_ADC_DET_300MS                    0x4
181 #define TIMING_ADC_DET_400MS                    0x5
182 #define TIMING_ADC_DET_500MS                    0x6
183 #define TIMING_ADC_DET_600MS                    0x7
184 #define TIMING_ADC_DET_700MS                    0x8
185 #define TIMING_ADC_DET_800MS                    0x9
186 #define TIMING_ADC_DET_900MS                    0xA
187 #define TIMING_ADC_DET_1000MS                   0xB
188
189 #define SM5502_REG_TIMING_SET2_SW_WAIT_SHIFT    4
190 #define SM5502_REG_TIMING_SET2_SW_WAIT_MASK     (0xf << SM5502_REG_TIMING_SET2_SW_WAIT_SHIFT)
191 #define TIMING_SW_WAIT_10MS                     0x0
192 #define TIMING_SW_WAIT_30MS                     0x1
193 #define TIMING_SW_WAIT_50MS                     0x2
194 #define TIMING_SW_WAIT_70MS                     0x3
195 #define TIMING_SW_WAIT_90MS                     0x4
196 #define TIMING_SW_WAIT_110MS                    0x5
197 #define TIMING_SW_WAIT_130MS                    0x6
198 #define TIMING_SW_WAIT_150MS                    0x7
199 #define TIMING_SW_WAIT_170MS                    0x8
200 #define TIMING_SW_WAIT_190MS                    0x9
201 #define TIMING_SW_WAIT_210MS                    0xA
202 #define SM5502_REG_TIMING_SET2_LONG_KEY_SHIFT   0
203 #define SM5502_REG_TIMING_SET2_LONG_KEY_MASK    (0xf << SM5502_REG_TIMING_SET2_LONG_KEY_SHIFT)
204 #define TIMING_LONG_KEY_300MS                   0x0
205 #define TIMING_LONG_KEY_400MS                   0x1
206 #define TIMING_LONG_KEY_500MS                   0x2
207 #define TIMING_LONG_KEY_600MS                   0x3
208 #define TIMING_LONG_KEY_700MS                   0x4
209 #define TIMING_LONG_KEY_800MS                   0x5
210 #define TIMING_LONG_KEY_900MS                   0x6
211 #define TIMING_LONG_KEY_1000MS                  0x7
212 #define TIMING_LONG_KEY_1100MS                  0x8
213 #define TIMING_LONG_KEY_1200MS                  0x9
214 #define TIMING_LONG_KEY_1300MS                  0xA
215 #define TIMING_LONG_KEY_1400MS                  0xB
216 #define TIMING_LONG_KEY_1500MS                  0xC
217
218 #define SM5502_REG_DEV_TYPE1_AUDIO_TYPE1_SHIFT          0
219 #define SM5502_REG_DEV_TYPE1_AUDIO_TYPE2_SHIFT          1
220 #define SM5502_REG_DEV_TYPE1_USB_SDP_SHIFT              2
221 #define SM5502_REG_DEV_TYPE1_UART_SHIFT                 3
222 #define SM5502_REG_DEV_TYPE1_CAR_KIT_CHARGER_SHIFT      4
223 #define SM5502_REG_DEV_TYPE1_USB_CHG_SHIFT              5
224 #define SM5502_REG_DEV_TYPE1_DEDICATED_CHG_SHIFT        6
225 #define SM5502_REG_DEV_TYPE1_USB_OTG_SHIFT              7
226 #define SM5502_REG_DEV_TYPE1_AUDIO_TYPE1_MASK           (0x1 << SM5502_REG_DEV_TYPE1_AUDIO_TYPE1_SHIFT)
227 #define SM5502_REG_DEV_TYPE1_AUDIO_TYPE1__MASK          (0x1 << SM5502_REG_DEV_TYPE1_AUDIO_TYPE2_SHIFT)
228 #define SM5502_REG_DEV_TYPE1_USB_SDP_MASK               (0x1 << SM5502_REG_DEV_TYPE1_USB_SDP_SHIFT)
229 #define SM5502_REG_DEV_TYPE1_UART_MASK                  (0x1 << SM5502_REG_DEV_TYPE1_UART_SHIFT)
230 #define SM5502_REG_DEV_TYPE1_CAR_KIT_CHARGER_MASK       (0x1 << SM5502_REG_DEV_TYPE1_CAR_KIT_CHARGER_SHIFT)
231 #define SM5502_REG_DEV_TYPE1_USB_CHG_MASK               (0x1 << SM5502_REG_DEV_TYPE1_USB_CHG_SHIFT)
232 #define SM5502_REG_DEV_TYPE1_DEDICATED_CHG_MASK         (0x1 << SM5502_REG_DEV_TYPE1_DEDICATED_CHG_SHIFT)
233 #define SM5502_REG_DEV_TYPE1_USB_OTG_MASK               (0x1 << SM5502_REG_DEV_TYPE1_USB_OTG_SHIFT)
234
235 #define SM5504_REG_DEV_TYPE1_USB_OTG_SHIFT              0
236 #define SM5504_REG_DEV_TYPE1_USB_OTG_MASK               (0x1 << SM5504_REG_DEV_TYPE1_USB_OTG_SHIFT)
237
238 #define SM5502_REG_DEV_TYPE2_JIG_USB_ON_SHIFT           0
239 #define SM5502_REG_DEV_TYPE2_JIG_USB_OFF_SHIFT          1
240 #define SM5502_REG_DEV_TYPE2_JIG_UART_ON_SHIFT          2
241 #define SM5502_REG_DEV_TYPE2_JIG_UART_OFF_SHIFT         3
242 #define SM5502_REG_DEV_TYPE2_PPD_SHIFT                  4
243 #define SM5502_REG_DEV_TYPE2_TTY_SHIFT                  5
244 #define SM5502_REG_DEV_TYPE2_AV_CABLE_SHIFT             6
245 #define SM5502_REG_DEV_TYPE2_JIG_USB_ON_MASK            (0x1 << SM5502_REG_DEV_TYPE2_JIG_USB_ON_SHIFT)
246 #define SM5502_REG_DEV_TYPE2_JIG_USB_OFF_MASK           (0x1 << SM5502_REG_DEV_TYPE2_JIG_USB_OFF_SHIFT)
247 #define SM5502_REG_DEV_TYPE2_JIG_UART_ON_MASK           (0x1 << SM5502_REG_DEV_TYPE2_JIG_UART_ON_SHIFT)
248 #define SM5502_REG_DEV_TYPE2_JIG_UART_OFF_MASK          (0x1 << SM5502_REG_DEV_TYPE2_JIG_UART_OFF_SHIFT)
249 #define SM5502_REG_DEV_TYPE2_PPD_MASK                   (0x1 << SM5502_REG_DEV_TYPE2_PPD_SHIFT)
250 #define SM5502_REG_DEV_TYPE2_TTY_MASK                   (0x1 << SM5502_REG_DEV_TYPE2_TTY_SHIFT)
251 #define SM5502_REG_DEV_TYPE2_AV_CABLE_MASK              (0x1 << SM5502_REG_DEV_TYPE2_AV_CABLE_SHIFT)
252
253 #define SM5502_REG_MANUAL_SW1_VBUSIN_SHIFT      0
254 #define SM5502_REG_MANUAL_SW1_DP_SHIFT          2
255 #define SM5502_REG_MANUAL_SW1_DM_SHIFT          5
256 #define SM5502_REG_MANUAL_SW1_VBUSIN_MASK       (0x3 << SM5502_REG_MANUAL_SW1_VBUSIN_SHIFT)
257 #define SM5502_REG_MANUAL_SW1_DP_MASK           (0x7 << SM5502_REG_MANUAL_SW1_DP_SHIFT)
258 #define SM5502_REG_MANUAL_SW1_DM_MASK           (0x7 << SM5502_REG_MANUAL_SW1_DM_SHIFT)
259 #define VBUSIN_SWITCH_OPEN                      0x0
260 #define VBUSIN_SWITCH_VBUSOUT                   0x1
261 #define VBUSIN_SWITCH_MIC                       0x2
262 #define VBUSIN_SWITCH_VBUSOUT_WITH_USB          0x3
263 #define DM_DP_CON_SWITCH_OPEN                   0x0
264 #define DM_DP_CON_SWITCH_USB                    0x1
265 #define DM_DP_CON_SWITCH_AUDIO                  0x2
266 #define DM_DP_CON_SWITCH_UART                   0x3
267 #define DM_DP_SWITCH_OPEN                       ((DM_DP_CON_SWITCH_OPEN <<SM5502_REG_MANUAL_SW1_DP_SHIFT) \
268                                                 | (DM_DP_CON_SWITCH_OPEN <<SM5502_REG_MANUAL_SW1_DM_SHIFT))
269 #define DM_DP_SWITCH_USB                        ((DM_DP_CON_SWITCH_USB <<SM5502_REG_MANUAL_SW1_DP_SHIFT) \
270                                                 | (DM_DP_CON_SWITCH_USB <<SM5502_REG_MANUAL_SW1_DM_SHIFT))
271 #define DM_DP_SWITCH_AUDIO                      ((DM_DP_CON_SWITCH_AUDIO <<SM5502_REG_MANUAL_SW1_DP_SHIFT) \
272                                                 | (DM_DP_CON_SWITCH_AUDIO <<SM5502_REG_MANUAL_SW1_DM_SHIFT))
273 #define DM_DP_SWITCH_UART                       ((DM_DP_CON_SWITCH_UART <<SM5502_REG_MANUAL_SW1_DP_SHIFT) \
274                                                 | (DM_DP_CON_SWITCH_UART <<SM5502_REG_MANUAL_SW1_DM_SHIFT))
275
276 #define SM5502_REG_RESET_MASK                   (0x1)
277
278 /* SM5502 Interrupts */
279 enum sm5502_irq {
280         /* INT1 */
281         SM5502_IRQ_INT1_ATTACH,
282         SM5502_IRQ_INT1_DETACH,
283         SM5502_IRQ_INT1_KP,
284         SM5502_IRQ_INT1_LKP,
285         SM5502_IRQ_INT1_LKR,
286         SM5502_IRQ_INT1_OVP_EVENT,
287         SM5502_IRQ_INT1_OCP_EVENT,
288         SM5502_IRQ_INT1_OVP_OCP_DIS,
289
290         /* INT2 */
291         SM5502_IRQ_INT2_VBUS_DET,
292         SM5502_IRQ_INT2_REV_ACCE,
293         SM5502_IRQ_INT2_ADC_CHG,
294         SM5502_IRQ_INT2_STUCK_KEY,
295         SM5502_IRQ_INT2_STUCK_KEY_RCV,
296         SM5502_IRQ_INT2_MHL,
297
298         SM5502_IRQ_NUM,
299 };
300
301 #define SM5502_IRQ_INT1_ATTACH_MASK             BIT(0)
302 #define SM5502_IRQ_INT1_DETACH_MASK             BIT(1)
303 #define SM5502_IRQ_INT1_KP_MASK                 BIT(2)
304 #define SM5502_IRQ_INT1_LKP_MASK                BIT(3)
305 #define SM5502_IRQ_INT1_LKR_MASK                BIT(4)
306 #define SM5502_IRQ_INT1_OVP_EVENT_MASK          BIT(5)
307 #define SM5502_IRQ_INT1_OCP_EVENT_MASK          BIT(6)
308 #define SM5502_IRQ_INT1_OVP_OCP_DIS_MASK        BIT(7)
309 #define SM5502_IRQ_INT2_VBUS_DET_MASK           BIT(0)
310 #define SM5502_IRQ_INT2_REV_ACCE_MASK           BIT(1)
311 #define SM5502_IRQ_INT2_ADC_CHG_MASK            BIT(2)
312 #define SM5502_IRQ_INT2_STUCK_KEY_MASK          BIT(3)
313 #define SM5502_IRQ_INT2_STUCK_KEY_RCV_MASK      BIT(4)
314 #define SM5502_IRQ_INT2_MHL_MASK                BIT(5)
315
316 /* SM5504 Interrupts */
317 enum sm5504_irq {
318         /* INT1 */
319         SM5504_IRQ_INT1_ATTACH,
320         SM5504_IRQ_INT1_DETACH,
321         SM5504_IRQ_INT1_CHG_DET,
322         SM5504_IRQ_INT1_DCD_OUT,
323         SM5504_IRQ_INT1_OVP_EVENT,
324         SM5504_IRQ_INT1_CONNECT,
325         SM5504_IRQ_INT1_ADC_CHG,
326
327         /* INT2 */
328         SM5504_IRQ_INT2_RID_CHG,
329         SM5504_IRQ_INT2_UVLO,
330         SM5504_IRQ_INT2_POR,
331         SM5504_IRQ_INT2_OVP_FET,
332         SM5504_IRQ_INT2_OCP_LATCH,
333         SM5504_IRQ_INT2_OCP_EVENT,
334         SM5504_IRQ_INT2_OVP_OCP_EVENT,
335
336         SM5504_IRQ_NUM,
337 };
338
339 #define SM5504_IRQ_INT1_ATTACH_MASK             BIT(0)
340 #define SM5504_IRQ_INT1_DETACH_MASK             BIT(1)
341 #define SM5504_IRQ_INT1_CHG_DET_MASK            BIT(2)
342 #define SM5504_IRQ_INT1_DCD_OUT_MASK            BIT(3)
343 #define SM5504_IRQ_INT1_OVP_MASK                BIT(4)
344 #define SM5504_IRQ_INT1_CONNECT_MASK            BIT(5)
345 #define SM5504_IRQ_INT1_ADC_CHG_MASK            BIT(6)
346 #define SM5504_IRQ_INT2_RID_CHG_MASK            BIT(0)
347 #define SM5504_IRQ_INT2_UVLO_MASK               BIT(1)
348 #define SM5504_IRQ_INT2_POR_MASK                BIT(2)
349 #define SM5504_IRQ_INT2_OVP_FET_MASK            BIT(4)
350 #define SM5504_IRQ_INT2_OCP_LATCH_MASK          BIT(5)
351 #define SM5504_IRQ_INT2_OCP_EVENT_MASK          BIT(6)
352 #define SM5504_IRQ_INT2_OVP_OCP_EVENT_MASK      BIT(7)
353
354 #endif /*  __LINUX_EXTCON_SM5502_H */