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 | |