blob: 90955b22e9d74ce692c37f93d5bbdfc570e7add9 [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * eint.h
41 *
42 * Project:
43 * --------
44 * Maui_Software
45 *
46 * Description:
47 * ------------
48 * This files define external interrupt constants definition
49 *
50 * Author:
51 * -------
52 * -------
53 * -------
54 *
55 *============================================================================
56 * HISTORY
57 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
58 *------------------------------------------------------------------------------
59 * removed!
60 * removed!
61 * removed!
62 *
63 * removed!
64 * removed!
65 * removed!
66 * removed!
67 *
68 * removed!
69 * removed!
70 * removed!
71 * removed!
72 *
73 * removed!
74 * removed!
75 * removed!
76 * removed!
77 *
78 * removed!
79 * removed!
80 *
81 * removed!
82 * removed!
83 *
84 * removed!
85 * removed!
86 *
87 * removed!
88 * removed!
89 * removed!
90 * removed!
91 *
92 * removed!
93 * removed!
94 *
95 * removed!
96 * removed!
97 * removed!
98 *
99 * removed!
100 * removed!
101 * removed!
102 *
103 * removed!
104 * removed!
105 * removed!
106 *
107 * removed!
108 * removed!
109 * removed!
110 * removed!
111 * removed!
112 * removed!
113 * removed!
114 *
115 * removed!
116 * removed!
117 * removed!
118 * removed!
119 *
120 * removed!
121 * removed!
122 * removed!
123 *
124 * removed!
125 * removed!
126 * removed!
127 *
128 * removed!
129 * removed!
130 * removed!
131 *
132 * removed!
133 * removed!
134 * removed!
135 *
136 * removed!
137 * removed!
138 * removed!
139 *
140 * removed!
141 * removed!
142 * removed!
143 *
144 * removed!
145 * removed!
146 * removed!
147 *
148 * removed!
149 * removed!
150 * removed!
151 *
152 * removed!
153 * removed!
154 * removed!
155 *
156 * removed!
157 * removed!
158 * removed!
159 *
160 * removed!
161 * removed!
162 * removed!
163 *
164 * removed!
165 * removed!
166 * removed!
167 *
168 * removed!
169 * removed!
170 * removed!
171 *
172 * removed!
173 * removed!
174 * removed!
175 *
176 * removed!
177 * removed!
178 * removed!
179 *
180 * removed!
181 * removed!
182 * removed!
183 *
184 * removed!
185 * removed!
186 * removed!
187 *
188 * removed!
189 * removed!
190 * removed!
191 *
192 * removed!
193 * removed!
194 * removed!
195 *
196 * removed!
197 * removed!
198 * removed!
199 *
200 * removed!
201 * removed!
202 * removed!
203 *
204 * removed!
205 * removed!
206 * removed!
207 *
208 * removed!
209 * removed!
210 * removed!
211 *
212 * removed!
213 * removed!
214 * removed!
215 *
216 * removed!
217 * removed!
218 * removed!
219 *
220 * removed!
221 * removed!
222 * removed!
223 *
224 * removed!
225 * removed!
226 * removed!
227 *
228 * removed!
229 * removed!
230 * removed!
231 *
232 * removed!
233 * removed!
234 * removed!
235 *
236 * removed!
237 * removed!
238 * removed!
239 *
240 * removed!
241 * removed!
242 * removed!
243 *
244 * removed!
245 * removed!
246 * removed!
247 *
248 * removed!
249 * removed!
250 * removed!
251 *
252 * removed!
253 * removed!
254 * removed!
255 *
256 * removed!
257 * removed!
258 * removed!
259 *
260 * removed!
261 * removed!
262 * removed!
263 *
264 * removed!
265 * removed!
266 * removed!
267 *
268 * removed!
269 * removed!
270 * removed!
271 *
272 * removed!
273 * removed!
274 * removed!
275 *
276 * removed!
277 * removed!
278 * removed!
279 *
280 * removed!
281 * removed!
282 * removed!
283 *
284 * removed!
285 * removed!
286 * removed!
287 *
288 * removed!
289 * removed!
290 * removed!
291 *
292 * removed!
293 * removed!
294 * removed!
295 *
296 * removed!
297 * removed!
298 * removed!
299 *
300 * removed!
301 * removed!
302 * removed!
303 *
304 * removed!
305 * removed!
306 * removed!
307 *
308 * removed!
309 * removed!
310 * removed!
311 *
312 * removed!
313 * removed!
314 * removed!
315 * removed!
316 *
317 * removed!
318 * removed!
319 * removed!
320 *
321 * removed!
322 * removed!
323 * removed!
324 *
325 * removed!
326 * removed!
327 * removed!
328 *
329 * removed!
330 * removed!
331 * removed!
332 * removed!
333 * removed!
334 * removed!
335 * removed!
336 * removed!
337 * removed!
338 * removed!
339 * removed!
340 * removed!
341 * removed!
342 * removed!
343 * removed!
344 * removed!
345 * removed!
346 * removed!
347 * removed!
348 * removed!
349 * removed!
350 * removed!
351 * removed!
352 * removed!
353 * removed!
354 * removed!
355 * removed!
356 * removed!
357 * removed!
358 * removed!
359 * removed!
360 * removed!
361 * removed!
362 * removed!
363 * removed!
364 * removed!
365 * removed!
366 * removed!
367 * removed!
368 * removed!
369 * removed!
370 * removed!
371 * removed!
372 * removed!
373 * removed!
374 * removed!
375 * removed!
376 * removed!
377 * removed!
378 * removed!
379 * removed!
380 * removed!
381 * removed!
382 * removed!
383 * removed!
384 * removed!
385 * removed!
386 * removed!
387 * removed!
388 * removed!
389 * removed!
390 * removed!
391 * removed!
392 * removed!
393 * removed!
394 * removed!
395 * removed!
396 * removed!
397 * removed!
398 * removed!
399 * removed!
400 * removed!
401 * removed!
402 * removed!
403 * removed!
404 * removed!
405 * removed!
406 * removed!
407 * removed!
408 * removed!
409 * removed!
410 * removed!
411 * removed!
412 * removed!
413 * removed!
414 * removed!
415 * removed!
416 * removed!
417 * removed!
418 * removed!
419 * removed!
420 * removed!
421 * removed!
422 * removed!
423 * removed!
424 * removed!
425 * removed!
426 * removed!
427 * removed!
428 * removed!
429 * removed!
430 * removed!
431 * removed!
432 * removed!
433 * removed!
434 * removed!
435 * removed!
436 * removed!
437 * removed!
438 * removed!
439 * removed!
440 * removed!
441 * removed!
442 * removed!
443 * removed!
444 * removed!
445 * removed!
446 * removed!
447 * removed!
448 * removed!
449 * removed!
450 * removed!
451 * removed!
452 * removed!
453 * removed!
454 * removed!
455 * removed!
456 * removed!
457 *------------------------------------------------------------------------------
458 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
459 *============================================================================
460 ****************************************************************************/
461#ifndef __EINT_H__
462#define __EINT_H__
463
464#include "kal_general_types.h"
465#include "dcl.h"
466#include "intrCtrl.h"
467//#include "Eint_internal.h"
468#include "eint_sw.h"
469
470 /*************************************************************************
471 * EINT Configuration
472 *************************************************************************/
473#define LEVEL_HIGH KAL_TRUE
474#define LEVEL_LOW KAL_FALSE
475#define EINT_MASK_EINT0 0x00000001
476#define EINT_INTACK_EINT0 0x00000001
477#define EINT_STATUS_EINT0 0x00000001
478
479#if defined(__CIRQ_DESIGN_NEW__)
480 #define EINTaddr(_no) (*(volatile kal_uint16 *)(EINT0_CON+_no))
481#else
482 #define EINTaddr(_no) (*(volatile kal_uint16 *)(EINT0_CON+(0x4*_no)))
483#endif
484
485 #define EINT_MASK_EINT(_no) (EINT_MASK_EINT0 << (_no))
486 #define EINT_INTACK_EINT(_no) (EINT_INTACK_EINT0 << (_no))
487 #define EINT_STATUS_EINT(_no) (EINT_STATUS_EINT0 << (_no))
488
489 #define EINT_CON_HIGHLEVEL 0x0800
490 #define EINT_CON_LOWLEVEL 0x0000
491 #define EINT_CON_DEBOUNCE 0x07ff
492 #define EINT_CON_DEBOUNCE_EN 0x8000
493
494 #define EINT_CHANNEL_NOT_EXIST EINT_TOTAL_CHANNEL
495
496/*Engineering mode*/
497typedef enum
498{
499 aux_eint_chann,
500 chrdet_eint_chann,
501 melody_eint_chann,
502 clamdet_eint_chann,
503 touch_panel_eint_chann,
504 usb_eint_chann,
505 chr_usb_eint_chann,
506 bt_eint_chann,
507 swdbg_eint_chann,
508 motion_senosr_eint_chann,
509 tdmb_eint_chann,
510 cmmb_eint_chann,
511 wifi_eint_chann,
512 otg_idpin_eint_chann,
513 sync_lcm_chann,
514 extra_a_key_eint_chann,
515 extra_b_key_eint_chann,
516 gps_eint_chann,
517 dcam_vsync_eint_chann,
518 jogball_up_eint_chann,
519 jogball_down_eint_chann,
520 jogball_right_eint_chann,
521 jogball_left_eint_chann,
522 bt_co_clock_eint_chann,
523 wifi_co_clock_eint_chann
524} eint_channel_type;
525#if defined(__MD93__)
526typedef struct
527{
528 DCL_HANDLE eint_sw_debounce_handle;
529 kal_bool eint_intr_allow;
530 kal_uint8 eint_no;
531} EINT_SW_DEBOUNCE_STRUCT;
532#elif defined(__MD95__)
533#elif defined(__MD97__)
534#elif defined(__MD97P__)
535#else
536#error "no chip match"
537#endif
538typedef struct
539{
540 void (*eint_func[EINT_TOTAL_CHANNEL])(void);
541 kal_bool eint_active[EINT_TOTAL_CHANNEL];
542 kal_bool eint_auto_umask[EINT_TOTAL_CHANNEL];
543} eint_func;
544
545typedef struct
546{
547 void (*deint_func[DEDICATED_EINT_TOTAL_CHANNEL])(void);
548 kal_bool deint_active[DEDICATED_EINT_TOTAL_CHANNEL];
549 kal_bool deint_auto_umask[DEDICATED_EINT_TOTAL_CHANNEL];
550} dedicated_eint_func;
551
552extern void EINT_Registration(kal_uint8 eintno, kal_bool Dbounce_En, kal_bool ACT_Polarity, void (reg_hisr)(void), kal_bool auto_umask);
553extern void EXTRA_EINT_Registration(kal_uint8 eintno, kal_bool ACT_Polarity, void (reg_hisr)(void), kal_bool auto_umask);
554extern void DEINT_Registration(kal_uint8 deintno,void (reg_hisr)(void));
555extern kal_uint32 EINT_Query_HW_Debounce(void);
556extern void EINT_Set_HW_Debounce(kal_uint8 eintno, kal_uint32 ms);
557extern void EINT_Set_HW_Debounce_Enable(kal_uint8 eintno, kal_uint32 debounce_en);
558extern void EINT_Set_Polarity(kal_uint8 eintno, kal_bool ACT_Polarity);
559extern kal_uint32 EINT_Set_Sensitivity(kal_uint8 eintno, kal_bool sens);
560extern void EINT_LISR(kal_uint32 irq_id);
561extern void EINT_Mask(kal_uint8 eintno);
562extern void EINT_UnMask(kal_uint8 eintno);
563extern kal_uint32 EINT_SaveAndMask(kal_uint8 eintno);
564extern void EINT_RestoreMask(kal_uint8 eintno, kal_uint32 val);
565//extern void EINT_DISABLE(kal_uint8 eintno);
566#if defined(__MD93__)
567extern kal_int32 EINT_SW_Debounce_Modify(kal_uint8 eintno, kal_uint8 debounce_time);
568#elif defined(__MD95__)
569#elif defined(__MD97__)
570#elif defined(__MD97P__)
571#else
572#error "no chip match"
573#endif
574extern kal_uint32 EINT_SaveAndMaskAll(void);
575extern void EINT_RestoreMaskAll(kal_uint32 val);
576extern void EINT_SetSWRegister(kal_uint8 eintno);
577extern void EINT_ResetSWRegister(kal_uint8 eintno);
578
579extern void SWWAR_EINT_Registration(kal_uint8 eintno, kal_bool Dbounce_En, kal_bool ACT_Polarity);
580extern void SWWAR_EINT_LISR_Registration(kal_uint8 eintno, void (*reg_lisr)(void));
581extern void SWWAR_EINT_LISR(void);
582extern void SWWAR_EINT_First_UnMask(kal_uint8 eintno);
583//for MT6290 to set HW debounce 32k cycle, which is maximum persion
584extern void EINT_Set_HW_Debounce_32KCycle(kal_uint8 eintno, kal_uint32 count_of_32kcycle);
585
586/*************************************************************************
587 * Customized functions' prototype
588 *************************************************************************/
589extern kal_uint8 *custom_config_eint_sw_debounce_time_delay(void);
590extern kal_uint8 custom_eint_get_channel(eint_channel_type type);
591#endif /* __EINT_H__ */
592