Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/drivers/extcon/extcon-sm5502.h
26378 views
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 */
355
356