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