Commit | Line | Data |
---|---|---|
81eb669b DC |
1 | /* Cypress West Bridge API header file (cyasintr.h) |
2 | ## =========================== | |
3 | ## Copyright (C) 2010 Cypress Semiconductor | |
4 | ## | |
5 | ## This program is free software; you can redistribute it and/or | |
6 | ## modify it under the terms of the GNU General Public License | |
7 | ## as published by the Free Software Foundation; either version 2 | |
8 | ## of the License, or (at your option) any later version. | |
9 | ## | |
10 | ## This program is distributed in the hope that it will be useful, | |
11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | ## GNU General Public License for more details. | |
14 | ## | |
15 | ## You should have received a copy of the GNU General Public License | |
16 | ## along with this program; if not, write to the Free Software | |
17 | ## Foundation, Inc., 51 Franklin Street | |
18 | ## Fifth Floor, Boston, MA 02110-1301, USA. | |
19 | ## =========================== | |
20 | */ | |
21 | ||
22 | #ifndef _INCLUDED_CYASINTR_H_ | |
23 | #define _INCLUDED_CYASINTR_H_ | |
24 | ||
25 | #include "cyasdevice.h" | |
26 | ||
27 | #include "cyas_cplus_start.h" | |
28 | ||
29 | /* Summary | |
30 | Initialize the interrupt manager module | |
31 | ||
32 | Description | |
33 | This function is called to initialize the interrupt module. | |
34 | This module enables interrupts as well as servies West Bridge | |
35 | related interrupts by determining the source of the interrupt | |
36 | and calling the appropriate handler function. | |
37 | ||
38 | Notes | |
39 | If the dmaintr parameter is TRUE, the initialization code | |
40 | initializes the interrupt mask to have the DMA related interrupt | |
41 | enabled via the general purpose interrupt. However, the interrupt | |
42 | service function assumes that the DMA interrupt is handled by the | |
43 | HAL layer before the interrupt module handler function is called. | |
44 | ||
45 | Returns | |
46 | * CY_AS_ERROR_SUCCESS - the interrupt module was initialized | |
47 | * correctly | |
48 | * CY_AS_ERROR_ALREADY_RUNNING - the interrupt module was already | |
49 | * started | |
50 | ||
51 | See Also | |
52 | * CyAsIntrStop | |
53 | * CyAsServiceInterrupt | |
54 | */ | |
55 | cy_as_return_status_t | |
56 | cy_as_intr_start( | |
57 | /* Device being initialized */ | |
58 | cy_as_device *dev_p, | |
59 | /* If true, enable the DMA interrupt through the INT signal */ | |
60 | cy_bool dmaintr | |
0769c38d | 61 | ); |
81eb669b DC |
62 | |
63 | /* Summary | |
64 | Stop the interrupt manager module | |
65 | ||
66 | Description | |
67 | This function stops the interrupt module and masks all interrupts | |
68 | from the West Bridge device. | |
69 | ||
70 | Returns | |
71 | * CY_AS_ERROR_SUCCESS - the interrupt module was stopped | |
25985edc | 72 | * successfully |
81eb669b DC |
73 | * CY_AS_ERROR_NOT_RUNNING - the interrupt module was not |
74 | * running | |
75 | ||
76 | See Also | |
77 | * CyAsIntrStart | |
78 | * CyAsServiceInterrupt | |
79 | */ | |
80 | cy_as_return_status_t | |
81 | cy_as_intr_stop( | |
82 | /* Device bein stopped */ | |
83 | cy_as_device *dev_p | |
0769c38d | 84 | ); |
81eb669b DC |
85 | |
86 | ||
87 | /* Summary | |
88 | The interrupt service routine for West Bridge | |
89 | ||
90 | Description | |
91 | When an interrupt is detected, this function is called to | |
92 | service the West Bridge interrupt. It is safe and efficient | |
93 | for this function to be called when no West Bridge interrupt | |
94 | has occurred. This function will determine it is not an West | |
95 | Bridge interrupt quickly and return. | |
96 | */ | |
97 | void cy_as_intr_service_interrupt( | |
98 | /* The USER supplied tag for this device */ | |
99 | cy_as_hal_device_tag tag | |
0769c38d | 100 | ); |
81eb669b DC |
101 | |
102 | #include "cyas_cplus_end.h" | |
103 | ||
104 | #endif /* _INCLUDED_CYASINTR_H_ */ |