]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M4F_CEC_MEC_17xx_Keil_GCC/peripheral_library/interrupt/interrupt.h
Change name of the CEC and MEC directory to CORTEX_MPU_CEC_MEC_17xx_51xx_Keil_GCC...
[freertos] / FreeRTOS / Demo / CORTEX_M4F_CEC_MEC_17xx_Keil_GCC / peripheral_library / interrupt / interrupt.h
1 /*****************************************************************************\r
2 * © 2015 Microchip Technology Inc. and its subsidiaries.\r
3 * You may use this software and any derivatives exclusively with\r
4 * Microchip products.\r
5 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS".\r
6 * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,\r
7 * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,\r
8 * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP\r
9 * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.\r
10 * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,\r
11 * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND\r
12 * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS\r
13 * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.\r
14 * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL\r
15 * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF\r
16 * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.\r
17 * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE\r
18 * OF THESE TERMS.\r
19 ******************************************************************************\r
20 \r
21 Version Control Information (Perforce)\r
22 ******************************************************************************\r
23 $Revision: #1 $ \r
24 $DateTime: 2016/09/22 08:03:49 $ \r
25 $Author: pramans $\r
26 Last Change: Renamed ecia_init to interrupt_init\r
27 ******************************************************************************/\r
28 /** @file interrupt.h\r
29 * \brief Interrupt Header File\r
30 * \author jvasanth\r
31\r
32 * This file implements the Interrupt Module Header file  \r
33 ******************************************************************************/\r
34 \r
35 /** @defgroup Interrupt\r
36  *  @{\r
37  */\r
38 \r
39 #ifndef _INTERRUPT_H\r
40 #define _INTERRUPT_H\r
41 \r
42 // GIRQ IDs for EC Interrupt Aggregator\r
43 enum MEC_GIRQ_IDS\r
44 {\r
45     MEC_GIRQ08_ID = 0,\r
46     MEC_GIRQ09_ID,                  \r
47     MEC_GIRQ10_ID,                  \r
48     MEC_GIRQ11_ID,                  \r
49     MEC_GIRQ12_ID,                  \r
50     MEC_GIRQ13_ID,                  \r
51     MEC_GIRQ14_ID,                  \r
52     MEC_GIRQ15_ID,                  \r
53     MEC_GIRQ16_ID,                  \r
54     MEC_GIRQ17_ID,                  \r
55     MEC_GIRQ18_ID,                  \r
56     MEC_GIRQ19_ID,                  \r
57     MEC_GIRQ20_ID,                  \r
58     MEC_GIRQ21_ID,                  \r
59     MEC_GIRQ22_ID,                  \r
60     MEC_GIRQ23_ID,                                   \r
61     MEC_GIRQ_ID_MAX\r
62 };\r
63 \r
64 //Bitmask of GIRQ in ECIA Block Registers\r
65 #define MEC_GIRQ08_BITMASK          (1UL << (MEC_GIRQ08_ID + 8))\r
66 #define MEC_GIRQ09_BITMASK          (1UL << (MEC_GIRQ09_ID + 8))  \r
67 #define MEC_GIRQ10_BITMASK          (1UL << (MEC_GIRQ10_ID + 8))  \r
68 #define MEC_GIRQ11_BITMASK          (1UL << (MEC_GIRQ11_ID + 8)) \r
69 #define MEC_GIRQ12_BITMASK          (1UL << (MEC_GIRQ12_ID + 8)) \r
70 #define MEC_GIRQ13_BITMASK          (1UL << (MEC_GIRQ13_ID + 8)) \r
71 #define MEC_GIRQ14_BITMASK          (1UL << (MEC_GIRQ14_ID + 8)) \r
72 #define MEC_GIRQ15_BITMASK          (1UL << (MEC_GIRQ15_ID + 8)) \r
73 #define MEC_GIRQ16_BITMASK          (1UL << (MEC_GIRQ16_ID + 8)) \r
74 #define MEC_GIRQ17_BITMASK          (1UL << (MEC_GIRQ17_ID + 8)) \r
75 #define MEC_GIRQ18_BITMASK          (1UL << (MEC_GIRQ18_ID + 8)) \r
76 #define MEC_GIRQ19_BITMASK          (1UL << (MEC_GIRQ19_ID + 8)) \r
77 #define MEC_GIRQ20_BITMASK          (1UL << (MEC_GIRQ20_ID + 8)) \r
78 #define MEC_GIRQ21_BITMASK          (1UL << (MEC_GIRQ21_ID + 8)) \r
79 #define MEC_GIRQ22_BITMASK          (1UL << (MEC_GIRQ22_ID + 8)) \r
80 #define MEC_GIRQ23_BITMASK          (1UL << (MEC_GIRQ23_ID + 8)) \r
81 \r
82 #define INTERRUPT_MODE_ALL_AGGREGATED        (0u)\r
83 #define INTERRUPT_MODE_DIRECT                (1u)\r
84 \r
85 // Bit map of GIRQs whose sources can be directly connected to the NVIC\r
86 // GIRQs 13 - 19, 21, 23, 24-26\r
87 #define ECIA_GIRQ_DIRECT_BITMAP     (0x07AFE000ul)\r
88 \r
89 /*\r
90  *  n = b[7:0]   = zero-based direct mapped NVIC ID\r
91  *  m = b[15:8]  = zero-based aggregated NVIC ID\r
92  *  a = b[23:16] = block Aggregator register block ID\r
93  *  b = b[31:24] = block bit position in Aggregator registers\r
94 */\r
95 #define IROUTE(b,a,m,n)         (((uint32_t)(n)&0xFFul) + \\r
96                             (((uint32_t)(m)&0xFFul)<<8u) + \\r
97                             ((((uint32_t)(a)-8ul)&0x0F)<<16u) + \\r
98                             (((uint32_t)(b)&0x1Ful)<<24))\r
99 \r
100 #define ECIA_NVIC_ID_BITPOS             (0u)\r
101 #define ECIA_IA_NVIC_ID_BITPOS          (8u)\r
102 #define ECIA_GIRQ_ID_BITPOS             (16u)\r
103 #define ECIA_GIRQ_BIT_BITPOS            (24u)\r
104 \r
105 //\r
106 // GIRQ08\r
107 //\r
108 #define GPIO_0140_IROUTE                IROUTE(0,8,0,0)\r
109 #define GPIO_0141_IROUTE                IROUTE(1,8,0,0)\r
110 #define GPIO_0142_IROUTE                IROUTE(2,8,0,0)\r
111 #define GPIO_0143_IROUTE                IROUTE(3,8,0,0)\r
112 #define GPIO_0144_IROUTE                IROUTE(4,8,0,0)\r
113 #define GPIO_0145_IROUTE                IROUTE(5,8,0,0)\r
114 #define GPIO_0147_IROUTE                IROUTE(7,8,0,0)\r
115 //\r
116 #define GPIO_0150_IROUTE                IROUTE(8,8,0,0)\r
117 #define GPIO_0151_IROUTE                IROUTE(9,8,0,0)\r
118 #define GPIO_0152_IROUTE                IROUTE(10,8,0,0)\r
119 #define GPIO_0153_IROUTE                IROUTE(11,8,0,0)\r
120 #define GPIO_0154_IROUTE                IROUTE(12,8,0,0)\r
121 #define GPIO_0155_IROUTE                IROUTE(13,8,0,0)\r
122 #define GPIO_0156_IROUTE                IROUTE(14,8,0,0)\r
123 #define GPIO_0157_IROUTE                IROUTE(15,8,0,0)\r
124 //\r
125 #define GPIO_0160_IROUTE                IROUTE(16,8,0,0)\r
126 #define GPIO_0161_IROUTE                IROUTE(17,8,0,0)\r
127 #define GPIO_0162_IROUTE                IROUTE(18,8,0,0)\r
128 #define GPIO_0163_IROUTE                IROUTE(19,8,0,0)\r
129 #define GPIO_0164_IROUTE                IROUTE(20,8,0,0)\r
130 #define GPIO_0165_IROUTE                IROUTE(21,8,0,0)\r
131 #define GPIO_0166_IROUTE                IROUTE(22,8,0,0)\r
132 #define GPIO_0167_IROUTE                IROUTE(23,8,0,0)\r
133 \r
134 #define GPIO_0170_IROUTE                IROUTE(24,8,0,0)\r
135 #define GPIO_0171_IROUTE                IROUTE(25,8,0,0)\r
136 #define GPIO_0172_IROUTE                IROUTE(26,8,0,0)\r
137 #define GPIO_0173_IROUTE                IROUTE(27,8,0,0)\r
138 #define GPIO_0174_IROUTE                IROUTE(28,8,0,0)\r
139 #define GPIO_0175_IROUTE                IROUTE(29,8,0,0)\r
140 #define GPIO_0176_IROUTE                IROUTE(30,8,0,0)\r
141 \r
142 //\r
143 // GIRQ09\r
144 //\r
145 #define GPIO_0100_IROUTE                IROUTE(0,9,1,1)\r
146 #define GPIO_0101_IROUTE                IROUTE(1,9,1,1)\r
147 #define GPIO_0102_IROUTE                IROUTE(2,9,1,1)\r
148 #define GPIO_0103_IROUTE                IROUTE(3,9,1,1)\r
149 #define GPIO_0104_IROUTE                IROUTE(4,9,1,1)\r
150 #define GPIO_0105_IROUTE                IROUTE(5,9,1,1)\r
151 #define GPIO_0105_IROUTE                IROUTE(5,9,1,1)\r
152 #define GPIO_0107_IROUTE                IROUTE(7,9,1,1)\r
153 //\r
154 #define GPIO_0110_IROUTE                IROUTE(8,9,1,1)\r
155 #define GPIO_0111_IROUTE                IROUTE(9,9,1,1)\r
156 #define GPIO_0112_IROUTE                IROUTE(10,9,1,1)\r
157 #define GPIO_0113_IROUTE                IROUTE(11,9,1,1)\r
158 #define GPIO_0114_IROUTE                IROUTE(12,9,1,1)\r
159 #define GPIO_0115_IROUTE                IROUTE(13,9,1,1)\r
160 #define GPIO_0116_IROUTE                IROUTE(14,9,1,1)\r
161 #define GPIO_0117_IROUTE                IROUTE(15,9,1,1)\r
162 //\r
163 #define GPIO_0120_IROUTE                IROUTE(16,9,1,1)\r
164 #define GPIO_0121_IROUTE                IROUTE(17,9,1,1)\r
165 #define GPIO_0122_IROUTE                IROUTE(18,9,1,1)\r
166 #define GPIO_0124_IROUTE                IROUTE(20,9,1,1)\r
167 #define GPIO_0125_IROUTE                IROUTE(21,9,1,1)\r
168 #define GPIO_0126_IROUTE                IROUTE(22,9,1,1)\r
169 #define GPIO_0127_IROUTE                IROUTE(23,9,1,1)\r
170 //\r
171 #define GPIO_0130_IROUTE                IROUTE(24,9,1,1)\r
172 #define GPIO_0131_IROUTE                IROUTE(25,9,1,1)\r
173 #define GPIO_0132_IROUTE                IROUTE(26,9,1,1)\r
174 #define GPIO_0133_IROUTE                IROUTE(27,9,1,1)\r
175 #define GPIO_0134_IROUTE                IROUTE(28,9,1,1)\r
176 #define GPIO_0135_IROUTE                IROUTE(29,9,1,1)\r
177 #define GPIO_0136_IROUTE                IROUTE(30,9,1,1)\r
178 \r
179 //\r
180 // GIRQ10\r
181 //\r
182 #define GPIO_0040_IROUTE                IROUTE(0,10,2,2)\r
183 #define GPIO_0041_IROUTE                IROUTE(1,10,2,2)\r
184 #define GPIO_0042_IROUTE                IROUTE(2,10,2,2)\r
185 #define GPIO_0043_IROUTE                IROUTE(3,10,2,2)\r
186 #define GPIO_0044_IROUTE                IROUTE(4,10,2,2)\r
187 #define GPIO_0045_IROUTE                IROUTE(5,10,2,2)\r
188 #define GPIO_0045_IROUTE                IROUTE(5,10,2,2)\r
189 #define GPIO_0047_IROUTE                IROUTE(7,10,2,2)\r
190 //\r
191 #define GPIO_0050_IROUTE                IROUTE(8,10,2,2)\r
192 #define GPIO_0051_IROUTE                IROUTE(9,10,2,2)\r
193 #define GPIO_0052_IROUTE                IROUTE(10,10,2,2)\r
194 #define GPIO_0053_IROUTE                IROUTE(11,10,2,2)\r
195 #define GPIO_0054_IROUTE                IROUTE(12,10,2,2)\r
196 #define GPIO_0055_IROUTE                IROUTE(13,10,2,2)\r
197 #define GPIO_0056_IROUTE                IROUTE(14,10,2,2)\r
198 #define GPIO_0057_IROUTE                IROUTE(15,10,2,2)\r
199 //\r
200 #define GPIO_0060_IROUTE                IROUTE(16,10,2,2)\r
201 #define GPIO_0061_IROUTE                IROUTE(17,10,2,2)\r
202 #define GPIO_0062_IROUTE                IROUTE(18,10,2,2)\r
203 #define GPIO_0063_IROUTE                IROUTE(19,10,2,2)\r
204 #define GPIO_0064_IROUTE                IROUTE(20,10,2,2)\r
205 #define GPIO_0065_IROUTE                IROUTE(21,10,2,2)\r
206 #define GPIO_0066_IROUTE                IROUTE(22,10,2,2)\r
207 #define GPIO_0067_IROUTE                IROUTE(23,10,2,2)\r
208 //\r
209 #define GPIO_0070_IROUTE                IROUTE(24,10,2,2)\r
210 #define GPIO_0071_IROUTE                IROUTE(25,10,2,2)\r
211 #define GPIO_0072_IROUTE                IROUTE(26,10,2,2)\r
212 #define GPIO_0073_IROUTE                IROUTE(27,10,2,2)\r
213 #define GPIO_0074_IROUTE                IROUTE(28,10,2,2)\r
214 #define GPIO_0075_IROUTE                IROUTE(29,10,2,2)\r
215 #define GPIO_0076_IROUTE                IROUTE(30,10,2,2)\r
216 \r
217 //\r
218 // GIRQ11\r
219 //\r
220 #define GPIO_0000_IROUTE                IROUTE(0,11,3,3)\r
221 #define GPIO_0001_IROUTE                IROUTE(1,11,3,3)\r
222 #define GPIO_0002_IROUTE                IROUTE(2,11,3,3)\r
223 #define GPIO_0003_IROUTE                IROUTE(3,11,3,3)\r
224 #define GPIO_0004_IROUTE                IROUTE(4,11,3,3)\r
225 #define GPIO_0005_IROUTE                IROUTE(5,11,3,3)\r
226 #define GPIO_0006_IROUTE                IROUTE(6,11,3,3)\r
227 #define GPIO_0007_IROUTE                IROUTE(7,11,3,3)\r
228 //\r
229 #define GPIO_0010_IROUTE                IROUTE(8,11,3,3)\r
230 #define GPIO_0011_IROUTE                IROUTE(9,11,3,3)\r
231 #define GPIO_0012_IROUTE                IROUTE(10,11,3,3)\r
232 #define GPIO_0013_IROUTE                IROUTE(11,11,3,3)\r
233 #define GPIO_0014_IROUTE                IROUTE(12,11,3,3)\r
234 #define GPIO_0015_IROUTE                IROUTE(13,11,3,3)\r
235 #define GPIO_0016_IROUTE                IROUTE(14,11,3,3)\r
236 #define GPIO_0017_IROUTE                IROUTE(15,11,3,3)\r
237 //\r
238 #define GPIO_0020_IROUTE                IROUTE(16,11,3,3)\r
239 #define GPIO_0021_IROUTE                IROUTE(17,11,3,3)\r
240 #define GPIO_0022_IROUTE                IROUTE(18,11,3,3)\r
241 #define GPIO_0023_IROUTE                IROUTE(19,11,3,3)\r
242 #define GPIO_0024_IROUTE                IROUTE(20,11,3,3)\r
243 #define GPIO_0025_IROUTE                IROUTE(21,11,3,3)\r
244 #define GPIO_0026_IROUTE                IROUTE(22,11,3,3)\r
245 #define GPIO_0027_IROUTE                IROUTE(23,11,3,3)\r
246 //\r
247 #define GPIO_0030_IROUTE                IROUTE(24,11,3,3)\r
248 #define GPIO_0031_IROUTE                IROUTE(25,11,3,3)\r
249 #define GPIO_0032_IROUTE                IROUTE(26,11,3,3)\r
250 #define GPIO_0033_IROUTE                IROUTE(27,11,3,3)\r
251 #define GPIO_0034_IROUTE                IROUTE(28,11,3,3)\r
252 #define GPIO_0035_IROUTE                IROUTE(29,11,3,3)\r
253 #define GPIO_0036_IROUTE                IROUTE(30,11,3,3)\r
254 \r
255 \r
256 // GIRQ12\r
257 //\r
258 #define GPIO_0200_IROUTE                IROUTE(0,12,4,4)\r
259 #define GPIO_0201_IROUTE                IROUTE(1,12,4,4)\r
260 #define GPIO_0202_IROUTE                IROUTE(2,12,4,4)\r
261 #define GPIO_0203_IROUTE                IROUTE(3,12,4,4)\r
262 #define GPIO_0204_IROUTE                IROUTE(4,12,4,4)\r
263 #define GPIO_0205_IROUTE                IROUTE(5,12,4,4)\r
264 #define GPIO_0206_IROUTE                IROUTE(6,12,4,4)\r
265 #define GPIO_0207_IROUTE                IROUTE(7,12,4,4)\r
266 //\r
267 #define GPIO_0210_IROUTE                IROUTE(8,12,4,4)\r
268 #define GPIO_0211_IROUTE                IROUTE(9,12,4,4)\r
269 #define GPIO_0212_IROUTE                IROUTE(10,12,4,4)\r
270 #define GPIO_0213_IROUTE                IROUTE(11,12,4,4)\r
271 #define GPIO_0214_IROUTE                IROUTE(12,12,4,4)\r
272 #define GPIO_0215_IROUTE                IROUTE(13,12,4,4)\r
273 #define GPIO_0216_IROUTE                IROUTE(14,12,4,4)\r
274 #define GPIO_0217_IROUTE                IROUTE(15,12,4,4)\r
275 //\r
276 #define GPIO_0220_IROUTE                IROUTE(16,12,4,4)\r
277 #define GPIO_0221_IROUTE                IROUTE(17,12,4,4)\r
278 #define GPIO_0222_IROUTE                IROUTE(18,12,4,4)\r
279 #define GPIO_0223_IROUTE                IROUTE(19,12,4,4)\r
280 #define GPIO_0224_IROUTE                IROUTE(20,12,4,4)\r
281 #define GPIO_0225_IROUTE                IROUTE(21,12,4,4)\r
282 #define GPIO_0226_IROUTE                IROUTE(22,12,4,4)\r
283 #define GPIO_0227_IROUTE                IROUTE(23,12,4,4)\r
284 //\r
285 #define GPIO_0230_IROUTE                IROUTE(24,12,4,4)\r
286 #define GPIO_0231_IROUTE                IROUTE(25,12,4,4)\r
287 #define GPIO_0232_IROUTE                IROUTE(26,12,4,4)\r
288 #define GPIO_0233_IROUTE                IROUTE(27,12,4,4)\r
289 #define GPIO_0234_IROUTE                IROUTE(28,12,4,4)\r
290 #define GPIO_0235_IROUTE                IROUTE(29,12,4,4)\r
291 #define GPIO_0236_IROUTE                IROUTE(30,12,4,4)\r
292 \r
293 \r
294 \r
295 //\r
296 // GIRQ13\r
297 //\r
298 #define SMB0_IROUTE                     IROUTE(0,13,5,20)\r
299 #define SMB1_IROUTE                     IROUTE(1,13,5,21)\r
300 #define SMB2_IROUTE                     IROUTE(2,13,5,22)\r
301 #define SMB3_IROUTE                     IROUTE(3,13,5,23)\r
302 \r
303 //\r
304 // GIRQ14\r
305 //\r
306 #define DMA0_IROUTE                     IROUTE(0,14,6,24)\r
307 #define DMA1_IROUTE                     IROUTE(1,14,6,25)\r
308 #define DMA2_IROUTE                     IROUTE(2,14,6,26)\r
309 #define DMA3_IROUTE                     IROUTE(3,14,6,27)\r
310 #define DMA4_IROUTE                     IROUTE(4,14,6,28)\r
311 #define DMA5_IROUTE                     IROUTE(5,14,6,29)\r
312 #define DMA6_IROUTE                     IROUTE(6,14,6,30)\r
313 #define DMA7_IROUTE                     IROUTE(7,14,6,31)\r
314 #define DMA8_IROUTE                     IROUTE(8,14,6,33)\r
315 #define DMA9_IROUTE                     IROUTE(9,14,6,33)\r
316 #define DMA10_IROUTE                    IROUTE(10,14,6,34)\r
317 #define DMA11_IROUTE                    IROUTE(11,14,6,35)\r
318 #define DMA12_IROUTE                    IROUTE(12,14,6,36)\r
319 #define DMA13_IROUTE                    IROUTE(13,14,6,37)\r
320 \r
321 \r
322 //\r
323 // GIRQ15\r
324 //\r
325 #define UART0_IROUTE                    IROUTE(0,15,7,40)\r
326 #define UART1_IROUTE                    IROUTE(1,15,7,41)\r
327 #define EMI0_IROUTE                     IROUTE(2,15,7,42)\r
328 #define EMI1_IROUTE                     IROUTE(3,15,7,43)\r
329 #define EMI2_IROUTE                     IROUTE(4,15,7,44)\r
330 #define ACPI_EC0_IBF_IROUTE             IROUTE(5,15,7,45)\r
331 #define ACPI_EC0_OBF_IROUTE             IROUTE(6,15,7,46)\r
332 #define ACPI_EC1_IBF_IROUTE             IROUTE(7,15,7,47)\r
333 #define ACPI_EC1_OBF_IROUTE             IROUTE(8,15,7,48)\r
334 #define ACPI_EC2_IBF_IROUTE             IROUTE(9,15,7,49)\r
335 #define ACPI_EC2_OBF_IROUTE             IROUTE(10,15,7,50)\r
336 #define ACPI_EC3_IBF_IROUTE             IROUTE(11,15,7,51)\r
337 #define ACPI_EC3_OBF_IROUTE             IROUTE(12,15,7,52)\r
338 #define ACPI_EC4_IBF_IROUTE             IROUTE(13,15,7,53)\r
339 #define ACPI_EC4_OBF_IROUTE             IROUTE(14,15,7,54)\r
340 #define ACPI_PM1_CTL_IROUTE             IROUTE(15,15,7,55)\r
341 #define ACPI_PM1_EN_IROUTE              IROUTE(16,15,7,56)\r
342 #define ACPI_PM1_STS_IROUTE             IROUTE(17,15,7,57)\r
343 #define EM8042_OBF_IROUTE               IROUTE(18,15,7,58)\r
344 #define EM8042_IBF_IROUTE               IROUTE(19,15,7,59)\r
345 #define MBOX_IROUTE                     IROUTE(20,15,7,60)\r
346 #define PORT80_DBG0_BDPINT_IROUTE       IROUTE(22,15,7,62)\r
347 #define PORT80_DBG1_BDPINT_IROUTE       IROUTE(23,15,7,63)\r
348 #define TEST_IROUTE                     IROUTE(24,15,7,64)\r
349 \r
350 //\r
351 // GIRQ16\r
352 //\r
353 #define PKE_ERROR_IROUTE                IROUTE(0,16,8,65)\r
354 #define PKE_END_IROUTE                  IROUTE(1,16,8,66)\r
355 #define RNG_IROUTE                      IROUTE(2,16,8,67)\r
356 #define AES_IROUTE                      IROUTE(3,16,8,68)\r
357 #define HASH_IROUTE                     IROUTE(4,16,8,69)\r
358 \r
359 //\r
360 // GIRQ17\r
361 //\r
362 #define PECI_IROUTE                     IROUTE(0,17,9,70)\r
363 #define TACH0_IROUTE                    IROUTE(1,17,9,71)\r
364 #define TACH1_IROUTE                    IROUTE(2,17,9,72)\r
365 #define TACH2_IROUTE                    IROUTE(3,17,9,73)\r
366 #define RPM2PWM0_FAIL_IROUTE            IROUTE(4,17,9,74)\r
367 #define RPM2PWM0_STALL_IROUTE           IROUTE(5,17,9,75)\r
368 #define RPM2PWM1_FAIL_IROUTE            IROUTE(6,17,9,76)\r
369 #define RPM2PWM1_STALL_IROUTE           IROUTE(7,17,9,77)\r
370 #define ADC_SNGL_IROUTE                 IROUTE(8,17,9,78)\r
371 #define ADC_RPT_IROUTE                  IROUTE(9,17,9,79)\r
372 #define RC_ID0_IROUTE                   IROUTE(10,17,9,80)\r
373 #define RC_ID1_IROUTE                   IROUTE(11,17,9,81)\r
374 #define RC_ID2_IROUTE                   IROUTE(12,17,9,82)\r
375 #define LED0_IROUTE                     IROUTE(13,17,9,83)\r
376 #define LED1_IROUTE                     IROUTE(14,17,9,84)\r
377 #define LED2_IROUTE                     IROUTE(15,17,9,85)\r
378 #define LED3_IROUTE                     IROUTE(16,17,9,86)\r
379 #define PHOT_IROUTE                     IROUTE(17,17,9,87)\r
380 #define POWER_GUARD0_IROUTE             IROUTE(18,17,9,88)\r
381 #define POWER_GUARD1_IROUTE             IROUTE(19,17,9,89)\r
382 #define RTOS_SWI0_IROUTE                IROUTE(25,17,9,9)\r
383 #define RTOS_SWI1_IROUTE                IROUTE(26,17,9,9)\r
384 #define RTOS_SWI2_IROUTE                IROUTE(27,17,9,9)\r
385 #define RTOS_SWI3_IROUTE                IROUTE(28,17,9,9)\r
386 \r
387 //\r
388 // GIRQ18 \r
389 //\r
390 #define LPC_INT_ERR_IROUTE              IROUTE(0,18,10,90)\r
391 #define QMSPI_INT_IROUTE                IROUTE(1,18,10,91)\r
392 #define GP_SPI0_TXBE_STS_IROUTE         IROUTE(2,18,10,92)\r
393 #define GP_SPI0_RXBF_STS_IROUTE         IROUTE(3,18,10,93)\r
394 #define GP_SPI1_TXBE_STS_IROUTE         IROUTE(4,18,10,94)\r
395 #define GP_SPI1_RXBF_STS_IROUTE         IROUTE(5,18,10,95)\r
396 #define BCLINK0_BCM_ERR_IROUTE          IROUTE(6,18,10,96)\r
397 #define BCLINK0_BUSY_CLR_IROUTE         IROUTE(7,18,10,97)\r
398 #define BCLINK1_BCM_ERR_IROUTE          IROUTE(8,18,10,98)\r
399 #define BCLINK1_BUSY_CLR_IROUTE         IROUTE(9,18,10,99)\r
400 #define PS2_IFACE0_ACT_IROUTE           IROUTE(10,18,10,100)\r
401 #define PS2_IFACE1_ACT_IROUTE           IROUTE(11,18,10,101)\r
402 #define PS2_IFACE2_ACT_IROUTE           IROUTE(12,18,10,102)\r
403 #define EEPROM_IROUTE                   IROUTE(13,18,10,155)\r
404 \r
405 \r
406 //\r
407 // GIRQ19\r
408 //\r
409 #define ESPI_SLAVE_INTR_PC_IROUTE       IROUTE(0,19,11,103)\r
410 #define ESPI_SLAVE_INTR_BM1_IROUTE      IROUTE(1,19,11,104)\r
411 #define ESPI_SLAVE_INTR_BM2_IROUTE      IROUTE(2,19,11,105)\r
412 #define ESPI_SLAVE_INTR_LTR_IROUTE      IROUTE(3,19,11,106)\r
413 #define ESPI_SLAVE_INTR_OOB_UP_IROUTE   IROUTE(4,19,11,107)\r
414 #define ESPI_SLAVE_INTR_OOB_DN_IROUTE   IROUTE(5,19,11,108)\r
415 #define ESPI_SLAVE_INTR_FLASH_IROUTE    IROUTE(6,19,11,109)\r
416 #define ESPI_SLAVE_ESPI_RESET_IROUTE    IROUTE(7,19,11,110)\r
417 #define ESPI_SLAVE_VW_ENABLE_IROUTE     IROUTE(8,19,11,156)\r
418 \r
419 //\r
420 // GIRQ20\r
421 //\r
422 \r
423 \r
424 //\r
425 // GIRQ21\r
426 //\r
427 #define RTOS_TIMER_IROUTE               IROUTE(0,21,13,111)\r
428 #define HTIMER0_IROUTE                  IROUTE(1,21,13,112)\r
429 #define HTIMER1_IROUTE                  IROUTE(2,21,13,113)\r
430 #define WEEK_ALARM_INT_IROUTE           IROUTE(3,21,13,114)\r
431 #define SUB_WEEK_ALARM_IN_IROUTE        IROUTE(4,21,13,115)\r
432 #define WEEK_ALARM_ONE_SECOND_IROUTE    IROUTE(5,21,13,116)\r
433 #define WEEK_ALARM_SUB_SECOND_IROUTE    IROUTE(6,21,13,117)\r
434 #define WEEK_ALARM_SYSPWR_PRES_IROUTE   IROUTE(7,21,13,118)\r
435 #define RTC_IROUTE                      IROUTE(8,21,13,119)\r
436 #define RTC_ALARM_IROUTE                IROUTE(9,21,13,120)\r
437 #define VBAT_VCI_OVRD_IN_IROUTE         IROUTE(10,21,13,121)\r
438 #define VBAT_VCI_IN0_IROUTE             IROUTE(11,21,13,122)\r
439 #define VBAT_VCI_IN1_IROUTE             IROUTE(12,21,13,123)\r
440 #define VBAT_VCI_IN2_IROUTE             IROUTE(13,21,13,124)\r
441 #define VBAT_VCI_IN3_IROUTE             IROUTE(14,21,13,125)\r
442 #define VBAT_VCI_IN4_IROUTE             IROUTE(15,21,13,126)\r
443 #define VBAT_VCI_IN5_IROUTE             IROUTE(16,21,13,127)\r
444 #define VBAT_VCI_IN6_IROUTE             IROUTE(17,21,13,128)\r
445 #define PS2_0A_WK_IROUTE                IROUTE(18,21,13,129)\r
446 #define PS2_0B_WK_IROUTE                IROUTE(19,21,13,130)\r
447 #define PS2_1A_WK_IROUTE                IROUTE(20,21,13,131)\r
448 #define PS2_1B_WK_IROUTE                IROUTE(21,21,13,132)\r
449 #define PS2_2_WK_IROUTE                 IROUTE(22,21,13,133)\r
450 #define ENVMON_IROUTE                   IROUTE(24,21,13,134)\r
451 #define KSC_INT_IROUTE                  IROUTE(25,21,13,135)\r
452 \r
453 \r
454 //\r
455 // GIRQ22 (No Aggregated & No direct source, WAKE ONLY EVENTS)\r
456 //\r
457 #define LPC_WAKE_ONLY_IROUTE            IROUTE(0,22,22,22)\r
458 #define SMB0_WAKE_ONLY_IROUTE           IROUTE(1,22,22,22)\r
459 #define SMB1_WAKE_ONLY_IROUTE           IROUTE(2,22,22,22)\r
460 #define SMB2_WAKE_ONLY_IROUTE           IROUTE(3,22,22,22)\r
461 #define SMB3_WAKE_ONLY_IROUTE           IROUTE(4,22,22,22)\r
462 #define ESPI_WAKE_ONLY_IROUTE           IROUTE(9,22,22,22)\r
463 \r
464 //\r
465 // GIRQ23\r
466 //\r
467 #define BTMR0_IROUTE                    IROUTE(0,23,14,136)\r
468 #define BTMR1_IROUTE                    IROUTE(1,23,14,137)\r
469 #define BTMR2_IROUTE                    IROUTE(2,23,14,138)\r
470 #define BTMR3_IROUTE                    IROUTE(3,23,14,139)\r
471 #define BTMR4_IROUTE                    IROUTE(4,23,14,140)\r
472 #define BTMR5_IROUTE                    IROUTE(5,23,14,141)\r
473 #define CTIMER0_IROUTE                  IROUTE(6,23,14,142)\r
474 #define CTIMER1_IROUTE                  IROUTE(7,23,14,143)\r
475 #define CTIMER2_IROUTE                  IROUTE(8,23,14,144)\r
476 #define CTIMER3_IROUTE                  IROUTE(9,23,14,145)\r
477 #define CAP_TIMER_IROUTE                IROUTE(10,23,14,146)\r
478 #define CC_TIMER0_IROUTE                IROUTE(11,23,14,147)\r
479 #define CC_TIMER1_IROUTE                IROUTE(12,23,14,148)\r
480 #define CC_TIMER2_IROUTE                IROUTE(13,23,14,149)\r
481 #define CC_TIMER3_IROUTE                IROUTE(14,23,14,150)\r
482 #define CC_TIMER4_IROUTE                IROUTE(15,23,14,151)\r
483 #define CC_TIMER5_IROUTE                IROUTE(16,23,14,152)\r
484 #define CC_TIMER_CMP0_IROUTE            IROUTE(17,23,14,153)\r
485 #define CC_TIMER_CMP1_IROUTE            IROUTE(18,23,14,154)\r
486 \r
487 //\r
488 // GIRQ23\r
489 //\r
490 #define ESPI_SLAVE_VW00_SRC0_IROUTE     IROUTE(0,24,15,15)\r
491 #define ESPI_SLAVE_VW00_SRC1_IROUTE     IROUTE(1,24,15,15)\r
492 #define ESPI_SLAVE_VW00_SRC2_IROUTE     IROUTE(2,24,15,15)\r
493 #define ESPI_SLAVE_VW00_SRC3_IROUTE     IROUTE(3,24,15,15)\r
494 #define ESPI_SLAVE_VW01_SRC0_IROUTE     IROUTE(4,24,15,15)\r
495 #define ESPI_SLAVE_VW01_SRC1_IROUTE     IROUTE(5,24,15,15)\r
496 #define ESPI_SLAVE_VW01_SRC2_IROUTE     IROUTE(6,24,15,15)\r
497 #define ESPI_SLAVE_VW01_SRC3_IROUTE     IROUTE(7,24,15,15)\r
498 #define ESPI_SLAVE_VW02_SRC0_IROUTE     IROUTE(8,24,15,15)\r
499 #define ESPI_SLAVE_VW02_SRC1_IROUTE     IROUTE(9,24,15,15)\r
500 #define ESPI_SLAVE_VW02_SRC2_IROUTE     IROUTE(10,24,15,15)\r
501 #define ESPI_SLAVE_VW02_SRC3_IROUTE     IROUTE(11,24,15,15)\r
502 #define ESPI_SLAVE_VW03_SRC0_IROUTE     IROUTE(12,24,15,15)\r
503 #define ESPI_SLAVE_VW03_SRC1_IROUTE     IROUTE(13,24,15,15)\r
504 #define ESPI_SLAVE_VW03_SRC2_IROUTE     IROUTE(14,24,15,15)\r
505 #define ESPI_SLAVE_VW03_SRC3_IROUTE     IROUTE(15,24,15,15)\r
506 #define ESPI_SLAVE_VW04_SRC0_IROUTE     IROUTE(16,24,15,15)\r
507 #define ESPI_SLAVE_VW04_SRC1_IROUTE     IROUTE(17,24,15,15)\r
508 #define ESPI_SLAVE_VW04_SRC2_IROUTE     IROUTE(18,24,15,15)\r
509 #define ESPI_SLAVE_VW04_SRC3_IROUTE     IROUTE(19,24,15,15)\r
510 #define ESPI_SLAVE_VW05_SRC0_IROUTE     IROUTE(20,24,15,15)\r
511 #define ESPI_SLAVE_VW05_SRC1_IROUTE     IROUTE(21,24,15,15)\r
512 #define ESPI_SLAVE_VW05_SRC2_IROUTE     IROUTE(22,24,15,15)\r
513 #define ESPI_SLAVE_VW05_SRC3_IROUTE     IROUTE(23,24,15,15)\r
514 #define ESPI_SLAVE_VW06_SRC0_IROUTE     IROUTE(24,24,15,15)\r
515 #define ESPI_SLAVE_VW06_SRC1_IROUTE     IROUTE(25,24,15,15)\r
516 #define ESPI_SLAVE_VW06_SRC2_IROUTE     IROUTE(26,24,15,15)\r
517 #define ESPI_SLAVE_VW06_SRC3_IROUTE     IROUTE(27,24,15,15)\r
518 \r
519 \r
520 //\r
521 // GIRQ25\r
522 //\r
523 #define ESPI_SLAVE_VW07_SRC0_IROUTE     IROUTE(0,25,15,15)\r
524 #define ESPI_SLAVE_VW07_SRC1_IROUTE     IROUTE(1,25,15,15)\r
525 #define ESPI_SLAVE_VW07_SRC2_IROUTE     IROUTE(2,25,15,15)\r
526 #define ESPI_SLAVE_VW07_SRC3_IROUTE     IROUTE(3,25,15,15)\r
527 #define ESPI_SLAVE_VW08_SRC0_IROUTE     IROUTE(4,25,15,15)\r
528 #define ESPI_SLAVE_VW08_SRC1_IROUTE     IROUTE(5,25,15,15)\r
529 #define ESPI_SLAVE_VW08_SRC2_IROUTE     IROUTE(6,25,15,15)\r
530 #define ESPI_SLAVE_VW08_SRC3_IROUTE     IROUTE(7,25,15,15)\r
531 #define ESPI_SLAVE_VW09_SRC0_IROUTE     IROUTE(8,25,15,15)\r
532 #define ESPI_SLAVE_VW09_SRC1_IROUTE     IROUTE(9,25,15,15)\r
533 #define ESPI_SLAVE_VW09_SRC2_IROUTE     IROUTE(10,25,15,15)\r
534 #define ESPI_SLAVE_VW09_SRC3_IROUTE     IROUTE(11,25,15,15)\r
535 #define ESPI_SLAVE_VW10_SRC0_IROUTE     IROUTE(12,25,15,15)\r
536 #define ESPI_SLAVE_VW10_SRC1_IROUTE     IROUTE(13,25,15,15)\r
537 #define ESPI_SLAVE_VW10_SRC2_IROUTE     IROUTE(14,25,15,15)\r
538 #define ESPI_SLAVE_VW10_SRC3_IROUTE     IROUTE(15,25,15,15)\r
539 \r
540 //\r
541 // GIRQ26\r
542 //\r
543 #define GPIO_0240_IROUTE                IROUTE(0,26,17,17)\r
544 #define GPIO_0241_IROUTE                IROUTE(1,26,17,17)\r
545 #define GPIO_0242_IROUTE                IROUTE(2,26,17,17)\r
546 #define GPIO_0243_IROUTE                IROUTE(3,26,17,17)\r
547 #define GPIO_0244_IROUTE                IROUTE(4,26,17,17)\r
548 #define GPIO_0245_IROUTE                IROUTE(5,26,17,17)\r
549 #define GPIO_0246_IROUTE                IROUTE(6,26,17,17)\r
550 #define GPIO_0247_IROUTE                IROUTE(7,26,17,17)\r
551 //\r
552 #define GPIO_0250_IROUTE                IROUTE(8,26,17,17)\r
553 #define GPIO_0251_IROUTE                IROUTE(9,26,17,17)\r
554 #define GPIO_0252_IROUTE                IROUTE(10,26,17,17)\r
555 #define GPIO_0253_IROUTE                IROUTE(11,26,17,17)\r
556 #define GPIO_0254_IROUTE                IROUTE(12,26,17,17)\r
557 #define GPIO_0255_IROUTE                IROUTE(13,26,17,17)\r
558 #define GPIO_0256_IROUTE                IROUTE(14,26,17,17)\r
559 #define GPIO_0257_IROUTE                IROUTE(15,26,17,17)\r
560 //\r
561 #define GPIO_0260_IROUTE                IROUTE(16,26,17,17)\r
562 #define GPIO_0261_IROUTE                IROUTE(17,26,17,17)\r
563 #define GPIO_0262_IROUTE                IROUTE(18,26,17,17)\r
564 #define GPIO_0263_IROUTE                IROUTE(19,26,17,17)\r
565 #define GPIO_0264_IROUTE                IROUTE(20,26,17,17)\r
566 #define GPIO_0265_IROUTE                IROUTE(21,26,17,17)\r
567 #define GPIO_0266_IROUTE                IROUTE(22,26,17,17)\r
568 #define GPIO_0267_IROUTE                IROUTE(23,26,17,17)\r
569 //\r
570 #define GPIO_0270_IROUTE                IROUTE(24,26,17,17)\r
571 #define GPIO_0271_IROUTE                IROUTE(25,26,17,17)\r
572 #define GPIO_0272_IROUTE                IROUTE(26,26,17,17)\r
573 #define GPIO_0273_IROUTE                IROUTE(27,26,17,17)\r
574 #define GPIO_0274_IROUTE                IROUTE(28,26,17,17)\r
575 #define GPIO_0275_IROUTE                IROUTE(29,26,17,17)\r
576 #define GPIO_0276_IROUTE                IROUTE(30,26,17,17)\r
577 \r
578 \r
579 // GIRQ08 Bit Positions \r
580 #define GIRQ08_GPIO_0140_BITPOS         (0)\r
581 #define GIRQ08_GPIO_0141_BITPOS         (1)\r
582 #define GIRQ08_GPIO_0142_BITPOS         (2)\r
583 #define GIRQ08_GPIO_0143_BITPOS         (3)\r
584 #define GIRQ08_GPIO_0144_BITPOS         (4)\r
585 #define GIRQ08_GPIO_0145_BITPOS         (5)\r
586 #define GIRQ08_GPIO_0146_BITPOS         (6)\r
587 #define GIRQ08_GPIO_0147_BITPOS         (7)\r
588 //\r
589 #define GIRQ08_GPIO_0150_BITPOS         (8)\r
590 #define GIRQ08_GPIO_0151_BITPOS         (9)\r
591 #define GIRQ08_GPIO_0152_BITPOS         (10)\r
592 #define GIRQ08_GPIO_0153_BITPOS         (11)\r
593 #define GIRQ08_GPIO_0154_BITPOS         (12)\r
594 #define GIRQ08_GPIO_0155_BITPOS         (13)\r
595 #define GIRQ08_GPIO_0156_BITPOS         (14) \r
596 #define GIRQ08_GPIO_0157_BITPOS         (15)\r
597 //\r
598 #define GIRQ08_GPIO_0160_BITPOS         (16)\r
599 #define GIRQ08_GPIO_0161_BITPOS         (17)\r
600 #define GIRQ08_GPIO_0162_BITPOS         (18)\r
601 #define GIRQ08_GPIO_0163_BITPOS         (19)\r
602 #define GIRQ08_GPIO_0164_BITPOS         (20)\r
603 #define GIRQ08_GPIO_0165_BITPOS         (21)\r
604 #define GIRQ08_GPIO_0166_BITPOS         (22) \r
605 #define GIRQ08_GPIO_0167_BITPOS         (23)\r
606 \r
607 #define GIRQ08_GPIO_0170_BITPOS         (24)\r
608 #define GIRQ08_GPIO_0171_BITPOS         (25)\r
609 #define GIRQ08_GPIO_0172_BITPOS         (26)\r
610 #define GIRQ08_GPIO_0173_BITPOS         (27)\r
611 #define GIRQ08_GPIO_0174_BITPOS         (28)\r
612 #define GIRQ08_GPIO_0175_BITPOS         (29)\r
613 #define GIRQ08_GPIO_0176_BITPOS         (30) \r
614 \r
615 //\r
616 #define GIRQ08_MASK                     (0x7FFFFFFFul)\r
617 #define GIRQ08_WAKE_CAPABLE_MASK        (0x7FFFFFFFul)\r
618 //\r
619 \r
620 // GIRQ09 Bit Positions \r
621 #define GIRQ09_GPIO_0100_BITPOS         (0)\r
622 #define GIRQ09_GPIO_0101_BITPOS         (1)\r
623 #define GIRQ09_GPIO_0102_BITPOS         (2)\r
624 #define GIRQ09_GPIO_0103_BITPOS         (3)\r
625 #define GIRQ09_GPIO_0104_BITPOS         (4)\r
626 #define GIRQ09_GPIO_0105_BITPOS         (5)\r
627 #define GIRQ09_GPIO_0106_BITPOS         (6) \r
628 #define GIRQ09_GPIO_0107_BITPOS         (7)\r
629 //\r
630 #define GIRQ09_GPIO_0110_BITPOS         (8)\r
631 #define GIRQ09_GPIO_0111_BITPOS         (9)\r
632 #define GIRQ09_GPIO_0112_BITPOS         (10)\r
633 #define GIRQ09_GPIO_0113_BITPOS         (11)\r
634 #define GIRQ09_GPIO_0114_BITPOS         (12)\r
635 #define GIRQ09_GPIO_0115_BITPOS         (13)\r
636 #define GIRQ09_GPIO_0116_BITPOS         (14) \r
637 #define GIRQ09_GPIO_0117_BITPOS         (15)\r
638 //\r
639 #define GIRQ09_GPIO_0120_BITPOS         (16)\r
640 #define GIRQ09_GPIO_0121_BITPOS         (17)\r
641 #define GIRQ09_GPIO_0122_BITPOS         (18)\r
642 #define GIRQ09_GPIO_0123_BITPOS         (19)\r
643 #define GIRQ09_GPIO_0124_BITPOS         (20)\r
644 #define GIRQ09_GPIO_0125_BITPOS         (21)\r
645 #define GIRQ09_GPIO_0126_BITPOS         (22) \r
646 #define GIRQ09_GPIO_0127_BITPOS         (23)\r
647 //\r
648 #define GIRQ09_GPIO_0130_BITPOS         (24)\r
649 #define GIRQ09_GPIO_0131_BITPOS         (25)\r
650 #define GIRQ09_GPIO_0132_BITPOS         (26)\r
651 #define GIRQ09_GPIO_0133_BITPOS         (27)\r
652 #define GIRQ09_GPIO_0134_BITPOS         (28)\r
653 #define GIRQ09_GPIO_0135_BITPOS         (29)\r
654 #define GIRQ09_GPIO_0136_BITPOS         (30) \r
655 \r
656 //\r
657 #define GIRQ09_MASK                     (0x7FFFFFFFul)\r
658 #define GIRQ09_WAKE_CAPABLE_MASK        (0x7FFFFFFFul)\r
659 //\r
660 \r
661 // GIRQ10 Bit Positions \r
662 #define GIRQ10_GPIO_0040_BITPOS         (0)\r
663 #define GIRQ10_GPIO_0041_BITPOS         (1)\r
664 #define GIRQ10_GPIO_0042_BITPOS         (2)\r
665 #define GIRQ10_GPIO_0043_BITPOS         (3)\r
666 #define GIRQ10_GPIO_0044_BITPOS         (4)\r
667 #define GIRQ10_GPIO_0045_BITPOS         (5)\r
668 #define GIRQ10_GPIO_0046_BITPOS         (6) \r
669 #define GIRQ10_GPIO_0047_BITPOS         (7)\r
670 //\r
671 #define GIRQ10_GPIO_0050_BITPOS         (8)\r
672 #define GIRQ10_GPIO_0051_BITPOS         (9)\r
673 #define GIRQ10_GPIO_0052_BITPOS         (10)\r
674 #define GIRQ10_GPIO_0053_BITPOS         (11)\r
675 #define GIRQ10_GPIO_0054_BITPOS         (12)\r
676 #define GIRQ10_GPIO_0055_BITPOS         (13)\r
677 #define GIRQ10_GPIO_0056_BITPOS         (14) \r
678 #define GIRQ10_GPIO_0057_BITPOS         (15)\r
679 //\r
680 #define GIRQ10_GPIO_0060_BITPOS         (16)\r
681 #define GIRQ10_GPIO_0061_BITPOS         (17)\r
682 #define GIRQ10_GPIO_0062_BITPOS         (18)\r
683 #define GIRQ10_GPIO_0063_BITPOS         (19)\r
684 #define GIRQ10_GPIO_0064_BITPOS         (20)\r
685 #define GIRQ10_GPIO_0065_BITPOS         (21)\r
686 #define GIRQ10_GPIO_0066_BITPOS         (22) \r
687 #define GIRQ10_GPIO_0067_BITPOS         (23)\r
688 //\r
689 #define GIRQ10_GPIO_0070_BITPOS         (24)\r
690 #define GIRQ10_GPIO_0071_BITPOS         (25)\r
691 #define GIRQ10_GPIO_0072_BITPOS         (26)\r
692 #define GIRQ10_GPIO_0073_BITPOS         (27)\r
693 #define GIRQ10_GPIO_0074_BITPOS         (28)\r
694 #define GIRQ10_GPIO_0075_BITPOS         (29)\r
695 #define GIRQ10_GPIO_0076_BITPOS         (30) \r
696 \r
697 //\r
698 #define GIRQ10_MASK                     (0x7FFFFFFFul)\r
699 #define GIRQ10_WAKE_CAPABLE_MASK        (0x7FFFFFFFul)\r
700 //\r
701 \r
702 // GIRQ11 Bit Positions \r
703 #define GIRQ11_GPIO_0000_BITPOS         (0)\r
704 #define GIRQ11_GPIO_0001_BITPOS         (1)\r
705 #define GIRQ11_GPIO_0002_BITPOS         (2)\r
706 #define GIRQ11_GPIO_0003_BITPOS         (3)\r
707 #define GIRQ11_GPIO_0004_BITPOS         (4)\r
708 #define GIRQ11_GPIO_0005_BITPOS         (5)\r
709 #define GIRQ11_GPIO_0006_BITPOS         (6) \r
710 #define GIRQ11_GPIO_0007_BITPOS         (7)\r
711 //\r
712 #define GIRQ11_GPIO_0010_BITPOS         (8)\r
713 #define GIRQ11_GPIO_0011_BITPOS         (9)\r
714 #define GIRQ11_GPIO_0012_BITPOS         (10)\r
715 #define GIRQ11_GPIO_0013_BITPOS         (11)\r
716 #define GIRQ11_GPIO_0014_BITPOS         (12)\r
717 #define GIRQ11_GPIO_0015_BITPOS         (13)\r
718 #define GIRQ11_GPIO_0016_BITPOS         (14) \r
719 #define GIRQ11_GPIO_0017_BITPOS         (15)\r
720 //\r
721 #define GIRQ11_GPIO_0020_BITPOS         (16)\r
722 #define GIRQ11_GPIO_0021_BITPOS         (17)\r
723 #define GIRQ11_GPIO_0022_BITPOS         (18)\r
724 #define GIRQ11_GPIO_0023_BITPOS         (19)\r
725 #define GIRQ11_GPIO_0024_BITPOS         (20)\r
726 #define GIRQ11_GPIO_0025_BITPOS         (21)\r
727 #define GIRQ11_GPIO_0026_BITPOS         (22) \r
728 #define GIRQ11_GPIO_0027_BITPOS         (23)\r
729 //\r
730 #define GIRQ11_GPIO_0030_BITPOS         (24)\r
731 #define GIRQ11_GPIO_0031_BITPOS         (25)\r
732 #define GIRQ11_GPIO_0032_BITPOS         (26)\r
733 #define GIRQ11_GPIO_0033_BITPOS         (27)\r
734 #define GIRQ11_GPIO_0034_BITPOS         (28)\r
735 #define GIRQ11_GPIO_0035_BITPOS         (29)\r
736 #define GIRQ11_GPIO_0036_BITPOS         (30) \r
737 \r
738 //\r
739 #define GIRQ11_MASK                     (0x7FFFFFFFul)\r
740 #define GIRQ11_WAKE_CAPABLE_MASK        (0x7FFFFFFFul)\r
741 //\r
742 \r
743 // GIRQ12 Bit Positions \r
744 #define GIRQ12_GPIO_0200_BITPOS         (0)\r
745 #define GIRQ12_GPIO_0201_BITPOS         (1)\r
746 #define GIRQ12_GPIO_0202_BITPOS         (2)\r
747 #define GIRQ12_GPIO_0203_BITPOS         (3)\r
748 #define GIRQ12_GPIO_0204_BITPOS         (4)\r
749 #define GIRQ12_GPIO_0205_BITPOS         (5)\r
750 #define GIRQ12_GPIO_0206_BITPOS         (6) \r
751 #define GIRQ12_GPIO_0207_BITPOS         (7)\r
752 //\r
753 #define GIRQ12_GPIO_0210_BITPOS         (8)\r
754 #define GIRQ12_GPIO_0211_BITPOS         (9)\r
755 #define GIRQ12_GPIO_0212_BITPOS         (10)\r
756 #define GIRQ12_GPIO_0213_BITPOS         (11)\r
757 #define GIRQ12_GPIO_0214_BITPOS         (12)\r
758 #define GIRQ12_GPIO_0215_BITPOS         (13)\r
759 #define GIRQ12_GPIO_0216_BITPOS         (14) \r
760 #define GIRQ12_GPIO_0217_BITPOS         (15)\r
761 //\r
762 #define GIRQ12_GPIO_0220_BITPOS         (16)\r
763 #define GIRQ12_GPIO_0221_BITPOS         (17)\r
764 #define GIRQ12_GPIO_0222_BITPOS         (18)\r
765 #define GIRQ12_GPIO_0223_BITPOS         (19)\r
766 #define GIRQ12_GPIO_0224_BITPOS         (20)\r
767 #define GIRQ12_GPIO_0225_BITPOS         (21)\r
768 #define GIRQ12_GPIO_0226_BITPOS         (22) \r
769 #define GIRQ12_GPIO_0227_BITPOS         (23)\r
770 //\r
771 #define GIRQ12_GPIO_0230_BITPOS         (24)\r
772 #define GIRQ12_GPIO_0231_BITPOS         (25)\r
773 #define GIRQ12_GPIO_0232_BITPOS         (26)\r
774 #define GIRQ12_GPIO_0233_BITPOS         (27)\r
775 #define GIRQ12_GPIO_0234_BITPOS         (28)\r
776 #define GIRQ12_GPIO_0235_BITPOS         (29)\r
777 #define GIRQ12_GPIO_0236_BITPOS         (30) \r
778 \r
779 //\r
780 #define GIRQ12_MASK                     (0x7FFFFFFFul)\r
781 #define GIRQ12_WAKE_CAPABLE_MASK        (0x7FFFFFFFul)\r
782 \r
783 // GIRQ13 Bit Positions \r
784 #define GIRQ13_SMBUS0_BITPOS            (0)\r
785 #define GIRQ13_SMBUS1_BITPOS            (1)\r
786 #define GIRQ13_SMBUS2_BITPOS            (2)\r
787 #define GIRQ13_SMBUS3_BITPOS            (3)\r
788 \r
789 #define GIRQ13_MASK                     (0xFul)\r
790 #define GIRQ13_WAKE_CAPABLE_MASK        (0x0ul)\r
791 //\r
792 \r
793 // GIRQ14 Bit Positions \r
794 #define GIRQ14_DMA0_BITPOS              (0)\r
795 #define GIRQ14_DMA1_BITPOS              (1)\r
796 #define GIRQ14_DMA2_BITPOS              (2)\r
797 #define GIRQ14_DMA3_BITPOS              (3)\r
798 #define GIRQ14_DMA4_BITPOS              (4)\r
799 #define GIRQ14_DMA5_BITPOS              (5)\r
800 #define GIRQ14_DMA6_BITPOS              (6)\r
801 #define GIRQ14_DMA7_BITPOS              (7)\r
802 #define GIRQ14_DMA8_BITPOS              (8)\r
803 #define GIRQ14_DMA9_BITPOS              (9)\r
804 #define GIRQ14_DMA10_BITPOS             (10)\r
805 #define GIRQ14_DMA11_BITPOS             (11)\r
806 #define GIRQ14_DMA12_BITPOS             (12)\r
807 #define GIRQ14_DMA13_BITPOS             (13)\r
808 //\r
809 #define GIRQ14_MASK                     (0x3FFFul)\r
810 #define GIRQ14_WAKE_CAPABLE_MASK        (0x00000000ul)\r
811 //\r
812 \r
813 \r
814 // GIRQ15 Bit Positions \r
815 #define GIRQ15_UART0_BITPOS             (0)\r
816 #define GIRQ15_UART1_BITPOS             (1)\r
817 #define GIRQ15_EMI0_BITPOS              (2)\r
818 #define GIRQ15_EMI1_BITPOS              (3)\r
819 #define GIRQ15_EMI2_BITPOS              (4)\r
820 #define GIRQ15_ACPI0_IBF_BITPOS         (5)\r
821 #define GIRQ15_ACPI0_OBF_BITPOS         (6)\r
822 #define GIRQ15_ACPI1_IBF_BITPOS         (7)\r
823 #define GIRQ15_ACPI1_OBF_BITPOS         (8)\r
824 #define GIRQ15_ACPI2_IBF_BITPOS         (9)\r
825 #define GIRQ15_ACPI2_OBF_BITPOS         (10)\r
826 #define GIRQ15_ACPI3_IBF_BITPOS         (11)\r
827 #define GIRQ15_ACPI3_OBF_BITPOS         (12)\r
828 #define GIRQ15_ACPI4_IBF_BITPOS         (13)\r
829 #define GIRQ15_ACPI4_OBF_BITPOS         (14)\r
830 #define GIRQ15_ACPI_PM1CTL_BITPOS       (15)\r
831 #define GIRQ15_ACPI_PM1EN_BITPOS        (16)\r
832 #define GIRQ15_ACPI_PM1STS_BITPOS       (17)\r
833 #define GIRQ15_MF8042_OBF_BITPOS        (18)\r
834 #define GIRQ15_MF8042_IBF_BITPOS        (19)\r
835 #define GIRQ15_MAILBOX_BITPOS           (20)\r
836 #define GIRQ15_PORT80_DBG0_BITPOS       (22)\r
837 #define GIRQ15_PORT80_DBG1_BITPOS       (23)\r
838 #define GIRQ15_TEST_BITPOS              (24)\r
839 \r
840 //\r
841 #define GIRQ15_MASK                     (0x1FFFFFFul)\r
842 #define GIRQ15_WAKE_CAPABLE_MASK        (0x000000ul)\r
843 //\r
844 \r
845 // GIRQ16 Bit Positions \r
846 #define PKE_ERROR_BITPOS                (0)\r
847 #define PKE_END_BITPOS                  (1)\r
848 #define RNG_BITPOS                      (2)\r
849 #define AES_BITPOS                      (3)\r
850 #define HASH_BITPOS                     (4)\r
851 \r
852 //\r
853 #define GIRQ16_MASK                     (0x1Ful)\r
854 #define GIRQ16_WAKE_CAPABLE_MASK        (0x00ul)\r
855 //\r
856 \r
857 // GIRQ17 Bit Positions \r
858 #define GIRQ17_PECI_BITPOS              (0)\r
859 #define GIRQ17_TACH0_BITPOS             (1)\r
860 #define GIRQ17_TACH1_BITPOS             (2)\r
861 #define GIRQ17_TACH2_BITPOS             (3)\r
862 #define GIRQ17_RPM2PWM0_FAIL_BITPOS     (4)\r
863 #define GIRQ17_RPM2PWM0_STALL_BITPOS    (5)\r
864 #define GIRQ17_RPM2PWM1_FAIL_BITPOS     (6)\r
865 #define GIRQ17_RPM2PWM1_STALL_BITPOS    (7)\r
866 #define GIRQ17_ADC_INT0_BITPOS          (8)\r
867 #define GIRQ17_ADC_INT1_BITPOS          (9)\r
868 #define GIRQ17_RC_ID0_BITPOS            (10)\r
869 #define GIRQ17_RC_ID1_BITPOS            (11)\r
870 #define GIRQ17_RC_ID2_BITPOS            (12)\r
871 #define GIRQ17_LED0_BITPOS              (13)\r
872 #define GIRQ17_LED1_BITPOS              (14)\r
873 #define GIRQ17_LED2_BITPOS              (15)\r
874 #define GIRQ17_LED3_BITPOS              (16)\r
875 #define GIRQ17_PHOT_BITPOS              (17)\r
876 #define GIRQ17_PWRGUARD0_BITPOS         (18)\r
877 #define GIRQ17_PWRGUARD1_BITPOS         (19)\r
878 #define GIRQ17_RTOS_SWI0_BITPOS         (25)\r
879 #define GIRQ17_RTOS_SWI1_BITPOS         (26)\r
880 #define GIRQ17_RTOS_SWI2_BITPOS         (27)\r
881 #define GIRQ17_RTOS_SWI3_BITPOS         (28)\r
882 \r
883 //\r
884 #define GIRQ17_MASK                     (0x1E0FFFFFul)\r
885 #define GIRQ17_WAKE_CAPABLE_MASK        (0x0ul)\r
886 //\r
887 \r
888 // GIRQ18 Bit Positions\r
889 #define GIRQ18_LPC_ERROR_BITPOS         (0)\r
890 #define GIRQ18_QMSPI_INT_BITPOS         (1)\r
891 #define GIRQ18_SPI0_TX_BITPOS           (2)\r
892 #define GIRQ18_SPI0_RX_BITPOS           (3)\r
893 #define GIRQ18_SPI1_TX_BITPOS           (4)\r
894 #define GIRQ18_SPI1_RX_BITPOS           (5)\r
895 #define GIRQ18_BCM0_BUSY_CLR_BITPOS     (6)\r
896 #define GIRQ18_BCM0_ERROR_BITPOS        (7)\r
897 #define GIRQ18_BCM1_BUSY_CLR_BITPOS     (8)\r
898 #define GIRQ18_BCM1_ERROR_BITPOS        (9)\r
899 #define GIRQ18_PS2_ACT0_BITPOS          (10)\r
900 #define GIRQ18_PS2_ACT1_BITPOS          (11)\r
901 #define GIRQ18_PS2_ACT2_BITPOS          (12)\r
902 #define GIRQ18_EEPROM_BITPOS            (13)\r
903 \r
904 //\r
905 #define GIRQ18_MASK                     (0x3FFFul)\r
906 #define GIRQ18_WAKE_CAPABLE_MASK        (0x0ul)\r
907 //\r
908 \r
909 // GIRQ19 Bit Positions \r
910 #define GIRQ19_ESPI_INTR_PC_BITPOS       (0)\r
911 #define GIRQ19_ESPI_INTR_BM1_BITPOS      (1)\r
912 #define GIRQ19_ESPI_INTR_BM2_BITPOS      (2)\r
913 #define GIRQ19_ESPI_INTR_LTR_BITPOS      (3)\r
914 #define GIRQ19_ESPI_INTR_OOB_UP_BITPOS   (4)\r
915 #define GIRQ19_ESPI_INTR_OOB_DN_BITPOS   (5)\r
916 #define GIRQ19_ESPI_INTR_FLASH_BITPOS    (6)\r
917 #define GIRQ19_ESPI_RESET_BITPOS         (7)\r
918 #define GIRQ19_ESPI_VW_ENABLE_BITPOS     (8)\r
919 \r
920 //\r
921 #define GIRQ19_MASK                     (0x01FFul)\r
922 #define GIRQ19_WAKE_CAPABLE_MASK        (0x0ul)\r
923 //\r
924 \r
925 // GIRQ20 Bit Positions \r
926 \r
927 // \r
928 #define GIRQ20_MASK                     (0x0ul)\r
929 #define GIRQ20_WAKE_CAPABLE_MASK        (0x0ul)\r
930 //\r
931 \r
932 // GIRQ21 Bit Positions \r
933 #define GIRQ21_RTOS_TIMER_BITPOS        (0)\r
934 #define GIRQ21_HTIMER0_BITPOS           (1)\r
935 #define GIRQ21_HTIMER1_BITPOS           (2)\r
936 #define GIRQ21_WEEK_ALRM_INT_BITPOS     (3)\r
937 #define GIRQ21_SUB_WEEK_ALRM_INT_BITPOS (4)\r
938 #define GIRQ21_ONE_SECOND_BITPOS        (5)\r
939 #define GIRQ21_SUB_SECOND_BITPOS        (6)\r
940 #define GIRQ21_SYSPWR_PRES_BITPOS       (7)\r
941 #define GIRQ21_RTC_BITPOS               (8)\r
942 #define GIRQ21_RTC_ALARM_BITPOS         (9)\r
943 #define GIRQ21_VBAT_VCI_OVRD_IN_BITPOS  (10)\r
944 #define GIRQ21_VBAT_VCI_IN0_BITPOS      (11)\r
945 #define GIRQ21_VBAT_VCI_IN1_BITPOS      (12)\r
946 #define GIRQ21_VBAT_VCI_IN2_BITPOS      (13)\r
947 #define GIRQ21_VBAT_VCI_IN3_BITPOS      (14)\r
948 #define GIRQ21_VBAT_VCI_IN4_BITPOS      (15)\r
949 #define GIRQ21_VBAT_VCI_IN5_BITPOS      (16)\r
950 #define GIRQ21_VBAT_VCI_IN6_BITPOS      (17)\r
951 #define GIRQ21_PS2_0A_WK_BITPOS         (18)\r
952 #define GIRQ21_PS2_0B_WK_BITPOS         (19)\r
953 #define GIRQ21_PS2_1A_WK_BITPOS         (20)\r
954 #define GIRQ21_PS2_1B_WK_BITPOS         (21)\r
955 #define GIRQ21_PS2_2_WK_BITPOS          (22)\r
956 #define GIRQ21_ENVMON_BITPOS            (24)\r
957 #define GIRQ21_KSC_INT_BITPOS           (25)\r
958 \r
959 //\r
960 #define GIRQ21_MASK                     (0x37FFFFFul)\r
961 #define GIRQ21_WAKE_CAPABLE_MASK        (0x37FFFFFul)\r
962 //\r
963 \r
964 // GIRQ22 Bit Positions \r
965 #define GIRQ22_LPC_WAKE_ONLY_BITPOS     (0)\r
966 #define GIRQ22_SMB0_WAKE_ONLY_BITPOS    (1)\r
967 #define GIRQ22_SMB1_WAKE_ONLY_BITPOS    (2)\r
968 #define GIRQ22_SMB2_WAKE_ONLY_BITPOS    (3)\r
969 #define GIRQ22_SMB3_WAKE_ONLY_BITPOS    (4)\r
970 #define GIRQ22_ESPI_WAKE_ONLY_BITPOS    (9)\r
971 \r
972 #define GIRQ22_MASK                     (0x021Ful)\r
973 #define GIRQ22_WAKE_CAPABLE_MASK        (0x021Ful)\r
974 \r
975 // GIRQ23 Bit Positions \r
976 #define GIRQ23_TMR0_BITPOS              (0)\r
977 #define GIRQ23_TMR1_BITPOS              (1)\r
978 #define GIRQ23_TMR2_BITPOS              (2)\r
979 #define GIRQ23_TMR3_BITPOS              (3)\r
980 #define GIRQ23_TMR4_BITPOS              (4)\r
981 #define GIRQ23_TMR5_BITPOS              (5)\r
982 #define GIRQ23_CTIMER0_BITPOS           (6)\r
983 #define GIRQ23_CTIMER1_BITPOS           (7)\r
984 #define GIRQ23_CTIMER2_BITPOS           (8)\r
985 #define GIRQ23_CTIMER3_BITPOS           (9)\r
986 #define GIRQ23_CAP_TIMER_BITPOS         (10)\r
987 #define GIRQ23_CCTIMER0_BITPOS          (11)\r
988 #define GIRQ23_CCTIMER1_BITPOS          (12)\r
989 #define GIRQ23_CCTIMER2_BITPOS          (13)\r
990 #define GIRQ23_CCTIMER3_BITPOS          (14)\r
991 #define GIRQ23_CCTIMER4_BITPOS          (15)\r
992 #define GIRQ23_CCTIMER5_BITPOS          (16)\r
993 #define GIRQ23_CCTIMER6_BITPOS          (17)\r
994 #define GIRQ23_CCTIMER7_BITPOS          (18)\r
995 \r
996 //\r
997 #define GIRQ23_MASK                     (0x07FFFFul)\r
998 #define GIRQ23_WAKE_CAPABLE_MASK        (0x0ul)\r
999 //\r
1000 \r
1001 // GIRQ24 Bit Positions\r
1002 #define GIRQ24_ESPI_VW00_SRC0_BITPOS     (0)\r
1003 #define GIRQ24_ESPI_VW00_SRC1_BITPOS     (1)\r
1004 #define GIRQ24_ESPI_VW00_SRC2_BITPOS     (2)\r
1005 #define GIRQ24_ESPI_VW00_SRC3_BITPOS     (3)\r
1006 #define GIRQ24_ESPI_VW01_SRC0_BITPOS     (4)\r
1007 #define GIRQ24_ESPI_VW01_SRC1_BITPOS     (5)\r
1008 #define GIRQ24_ESPI_VW01_SRC2_BITPOS     (6)\r
1009 #define GIRQ24_ESPI_VW01_SRC3_BITPOS     (7)\r
1010 #define GIRQ24_ESPI_VW02_SRC0_BITPOS     (8)\r
1011 #define GIRQ24_ESPI_VW02_SRC1_BITPOS     (9)\r
1012 #define GIRQ24_ESPI_VW02_SRC2_BITPOS     (10)\r
1013 #define GIRQ24_ESPI_VW02_SRC3_BITPOS     (11)\r
1014 #define GIRQ24_ESPI_VW03_SRC0_BITPOS     (12)\r
1015 #define GIRQ24_ESPI_VW03_SRC1_BITPOS     (13)\r
1016 #define GIRQ24_ESPI_VW03_SRC2_BITPOS     (14)\r
1017 #define GIRQ24_ESPI_VW03_SRC3_BITPOS     (15)\r
1018 #define GIRQ24_ESPI_VW04_SRC0_BITPOS     (16)\r
1019 #define GIRQ24_ESPI_VW04_SRC1_BITPOS     (17)\r
1020 #define GIRQ24_ESPI_VW04_SRC2_BITPOS     (18)\r
1021 #define GIRQ24_ESPI_VW04_SRC3_BITPOS     (19)\r
1022 #define GIRQ24_ESPI_VW05_SRC0_BITPOS     (20)\r
1023 #define GIRQ24_ESPI_VW05_SRC1_BITPOS     (21)\r
1024 #define GIRQ24_ESPI_VW05_SRC2_BITPOS     (22)\r
1025 #define GIRQ24_ESPI_VW05_SRC3_BITPOS     (23)\r
1026 #define GIRQ24_ESPI_VW06_SRC0_BITPOS     (24)\r
1027 #define GIRQ24_ESPI_VW06_SRC1_BITPOS     (25)\r
1028 #define GIRQ24_ESPI_VW06_SRC2_BITPOS     (26)\r
1029 #define GIRQ24_ESPI_VW06_SRC3_BITPOS     (27)\r
1030 \r
1031 //\r
1032 #define GIRQ24_MASK                      (0x0FFFFFFFul)\r
1033 #define GIRQ24_WAKE_CAPABLE_MASK         (0x0FFFFFFFul)\r
1034 //\r
1035 \r
1036 // GIRQ25 Bit Positions\r
1037 #define GIRQ25_ESPI_VW07_SRC0_BITPOS     (0)\r
1038 #define GIRQ25_ESPI_VW07_SRC1_BITPOS     (1)\r
1039 #define GIRQ25_ESPI_VW07_SRC2_BITPOS     (2)\r
1040 #define GIRQ25_ESPI_VW07_SRC3_BITPOS     (3)\r
1041 #define GIRQ25_ESPI_VW08_SRC0_BITPOS     (4)\r
1042 #define GIRQ25_ESPI_VW08_SRC1_BITPOS     (5)\r
1043 #define GIRQ25_ESPI_VW08_SRC2_BITPOS     (6)\r
1044 #define GIRQ25_ESPI_VW08_SRC3_BITPOS     (7)\r
1045 #define GIRQ25_ESPI_VW09_SRC0_BITPOS     (8)\r
1046 #define GIRQ25_ESPI_VW09_SRC1_BITPOS     (9)\r
1047 #define GIRQ25_ESPI_VW09_SRC2_BITPOS     (10)\r
1048 #define GIRQ25_ESPI_VW09_SRC3_BITPOS     (11)\r
1049 #define GIRQ25_ESPI_VW10_SRC0_BITPOS     (12)\r
1050 #define GIRQ25_ESPI_VW10_SRC1_BITPOS     (13)\r
1051 #define GIRQ25_ESPI_VW10_SRC2_BITPOS     (14)\r
1052 #define GIRQ25_ESPI_VW10_SRC3_BITPOS     (15)\r
1053 \r
1054 //\r
1055 #define GIRQ25_MASK                      (0x0FFFFul)\r
1056 #define GIRQ25_WAKE_CAPABLE_MASK         (0x0FFFFul)\r
1057 //\r
1058 \r
1059 // GIRQ26 bit positions\r
1060 #define GIRQ26_GPIO240_BITPOS            (0)\r
1061 #define GIRQ26_GPIO241_BITPOS            (1)\r
1062 #define GIRQ26_GPIO242_BITPOS            (2)\r
1063 #define GIRQ26_GPIO243_BITPOS            (3)\r
1064 #define GIRQ26_GPIO244_BITPOS            (4)\r
1065 #define GIRQ26_GPIO245_BITPOS            (5)\r
1066 #define GIRQ26_GPIO246_BITPOS            (6)\r
1067 #define GIRQ26_GPIO247_BITPOS            (7)\r
1068 \r
1069 #define GIRQ26_GPIO250_BITPOS            (8)\r
1070 #define GIRQ26_GPIO251_BITPOS            (9)\r
1071 #define GIRQ26_GPIO252_BITPOS            (10)\r
1072 #define GIRQ26_GPIO253_BITPOS            (11)\r
1073 #define GIRQ26_GPIO254_BITPOS            (12)\r
1074 #define GIRQ26_GPIO255_BITPOS            (13)\r
1075 #define GIRQ26_GPIO256_BITPOS            (14)\r
1076 #define GIRQ26_GPIO257_BITPOS            (15)\r
1077 \r
1078 #define GIRQ26_GPIO260_BITPOS            (16)\r
1079 #define GIRQ26_GPIO261_BITPOS            (17)\r
1080 #define GIRQ26_GPIO262_BITPOS            (18)\r
1081 #define GIRQ26_GPIO263_BITPOS            (19)\r
1082 #define GIRQ26_GPIO264_BITPOS            (20)\r
1083 #define GIRQ26_GPIO265_BITPOS            (21)\r
1084 #define GIRQ26_GPIO266_BITPOS            (22)\r
1085 #define GIRQ26_GPIO267_BITPOS            (23)\r
1086 \r
1087 #define GIRQ26_GPIO270_BITPOS            (24)\r
1088 #define GIRQ26_GPIO271_BITPOS            (25)\r
1089 #define GIRQ26_GPIO272_BITPOS            (26)\r
1090 #define GIRQ26_GPIO273_BITPOS            (27)\r
1091 #define GIRQ26_GPIO274_BITPOS            (28)\r
1092 #define GIRQ26_GPIO275_BITPOS            (29)\r
1093 #define GIRQ26_GPIO276_BITPOS            (30)\r
1094 \r
1095 #define GIRQ26_MASK                      (0x7FFFFFFFul)\r
1096 #define GIRQ26_WAKE_CAPABLE_MASK         (0x7FFFFFFFul)\r
1097 \r
1098 /* ------------------------------------------------------------------------------- */\r
1099 /*                  NVIC,ECIA Routing Policy for Direct Mode                       */\r
1100 /* ------------------------------------------------------------------------------- */\r
1101 /* In Direct Mode, some interrupts could be configured to be used as aggregated.\r
1102  * Configuration:\r
1103  *      1. Always set ECS Interrupt Direct enable bit.         \r
1104  *      2. If GIRQn aggregated set Block Enable bit.\r
1105  *      3. If GIRQn direct then clear Block Enable bit and enable individual NVIC inputs.\r
1106  *  Switching issues:\r
1107  *  Aggregate enable/disable requires set/clear single GIRQn bit in GIRQ Block En/Clr registers.\r
1108  *  Also requires set/clear of individual NVIC Enables.\r
1109  *  \r
1110  * Note: interrupt_is_girq_direct() internal function uses this policy to detect \r
1111  * if any interrupt is configured as direct or aggregated\r
1112 */\r
1113 \r
1114 /** Initialize EC Interrupt Aggregator\r
1115  * @param mode 1 - Direct Map mode, 0 - Fully Aggregated Mode \r
1116  * @param girq_bitmask - BitMask of GIRQ to be configured as aggregated \r
1117  *                     This parameter is only applicable in direct mode.\r
1118  * @note All GPIO's and wake capable sources are always \r
1119  * aggregated! GPIO's interrupts will still work in direct mode.\r
1120  * Block wakes are not be routed to the processor in direct \r
1121  * mode. \r
1122  * Note2: This function disables and enables global interrupt  \r
1123  */\r
1124 void interrupt_init(uint8_t mode, uint32_t girq_bitmask);\r
1125 \r
1126 /** Set interrupt routing mode to aggregated or direct. \r
1127  * @param mode 1 = Direct (except GPIO & wake), 0 = All Aggregated \r
1128  * @note In direct mode, one could enable certain GIRQs as aggregated using \r
1129  * p_interrupt_ecia_block_enable_set function\r
1130  */\r
1131 void interrupt_mode_set(uint8_t mode);\r
1132 \r
1133 /** Clears all individual interrupts Enables and Source in ECIA,\r
1134  *  and Clears all NVIC external enables and pending bits  \r
1135  */\r
1136 void interrupt_reset(void);\r
1137 \r
1138 /** Enables interrupt for a device \r
1139  * @param dev_iroute - source IROUTING information \r
1140  * @note This function disables and enables global interrupt \r
1141  */\r
1142 void interrupt_device_enable(uint32_t dev_iroute);\r
1143 \r
1144 /** Disables interrupt for a device\r
1145  * @param dev_iroute - source IROUTING information  \r
1146  * @note This function disables and enables global interrupt \r
1147  */\r
1148 void interrupt_device_disable(uint32_t dev_iroute);\r
1149 \r
1150 /* ------------------------------------------------------------------------------- */\r
1151 /*                  ECIA APIs using device IROUTE() as input                       */ \r
1152 /* ------------------------------------------------------------------------------- */\r
1153 \r
1154 /** Clear Source in the ECIA for the device  \r
1155  * @param devi - device IROUTING value  \r
1156  */\r
1157 void interrupt_device_ecia_source_clear(const uint32_t dev_iroute);\r
1158 \r
1159 /** Get the Source bit in the ECIA for the device  \r
1160  * @param devi - device IROUTING value  \r
1161  * @return 0 if source bit not set; else non-zero value\r
1162  */\r
1163 uint32_t interrupt_device_ecia_source_get(const uint32_t dev_iroute);\r
1164 \r
1165 /** Get the Result bit in the ECIA for the device  \r
1166  * @param devi - device IROUTING value  \r
1167  * @return 0 if result bit not set; else non-zero value\r
1168  */\r
1169 uint32_t interrupt_device_ecia_result_get(const uint32_t dev_iroute);\r
1170 \r
1171 /* ------------------------------------------------------------------------------- */\r
1172 /*                  NVIC APIs using device IROUTE() as input                       */ \r
1173 /* ------------------------------------------------------------------------------- */\r
1174 /* Note that if the device interrupt is aggregated, then these APIs would affect the \r
1175  * NVIC corresponding to the aggregated GIRQ \r
1176  */\r
1177 \r
1178 /**  Enable/Disable the NVIC (in the NVIC controller) for the device\r
1179  * @param dev_iroute : source IROUTING information (encoded in a uint32_t)\r
1180  * @param en_flag : 1 = Enable the NVIC IRQ, 0 = Disable the NVIC IRQ \r
1181  * @note Recommended to use interrupt_device_enable, interrupt_device_disable\r
1182  * to enable/disable interrupts for the device, since those APIs configure ECIA as well\r
1183  */\r
1184 void interrupt_device_nvic_enable(uint32_t dev_iroute, uint8_t en_flag);\r
1185 \r
1186 /** Set NVIC priority for specified peripheral interrupt source\r
1187  * @param dev_iroute - source IROUTING information (encoded in a uint32_t)\r
1188  * @param nvic_pri - NVIC Priority\r
1189  * @note 1. If ECIA is in aggregated mode, the priority affects all interrupt \r
1190  * sources in the GIRQ. \r
1191  * 2. This function disables and enables global interrupt    \r
1192  */\r
1193 void interrupt_device_nvic_priority_set(const uint32_t dev_iroute, const uint8_t nvic_pri);\r
1194 \r
1195 /** Return NVIC priority for interrupt source\r
1196  * @param dev_iroute - source IROUTING information \r
1197  * @return uint32_t  NVIC priority \r
1198  */\r
1199 uint32_t interrupt_device_nvic_priority_get(const uint32_t dev_iroute);\r
1200 \r
1201 /** Return NVIC pending for interrupt source\r
1202  * @param dev_iroute - source IROUTING information \r
1203  * @return uint8_t 0(not pending), 1 (pending in NVIC) \r
1204  *  \r
1205  */\r
1206 uint8_t interrupt_device_nvic_pending_get(const uint32_t dev_iroute);\r
1207 \r
1208 /** Set NVIC pending for interrupt source\r
1209  * @param dev_iroute - source IROUTING information   \r
1210  */\r
1211 void interrupt_device_nvic_pending_set(const uint32_t dev_iroute);\r
1212 \r
1213 /** Clears NVIC pending for interrupt source\r
1214  * @param dev_iroute - source IROUTING information \r
1215  * @return uint8_t 0(not pending), 1 (pending in NVIC) - before clear \r
1216  * @note This function disables and enables global interrupt    \r
1217  */\r
1218 uint8_t interrupt_device_nvic_pending_clear(const uint32_t dev_iroute);\r
1219     \r
1220 /* ------------------------------------------------------------------------------- */\r
1221 /* Peripheral Functions - Operations on GIRQ Block Enable Set, Enable Clear        *\r
1222  * and Status Register                                                             */\r
1223 /* ------------------------------------------------------------------------------- */\r
1224 \r
1225 /** Enable specified GIRQ in ECIA block\r
1226  * @param girq_id - enum MEC_GIRQ_IDS \r
1227  */\r
1228  void p_interrupt_ecia_block_enable_set(uint8_t girq_id);\r
1229   \r
1230  /** Enable GIRQs in ECIA Block \r
1231  * @param girq_bitmask - Bitmask of GIRQs to be enabled in ECIA Block  \r
1232  */\r
1233 void p_interrupt_ecia_block_enable_bitmask_set(uint32_t girq_bitmask);\r
1234 \r
1235 /** Check if specified GIRQ block enabled or not\r
1236  * @param girq_id - enum MEC_GIRQ_IDS \r
1237  * @return retVal - 1 if the particular GIRQ block enabled, else 0\r
1238  */\r
1239 uint8_t p_interrupt_ecia_block_enable_get(uint8_t girq_id);\r
1240 \r
1241 /** Set all GIRQ block enables */\r
1242 void p_interrupt_ecia_block_enable_all_set(void);\r
1243 \r
1244 /** Clear specified GIRQ in ECIA Block \r
1245  * @param girq_id - enum MEC_GIRQ_IDS \r
1246  */\r
1247 void p_interrupt_ecia_block_enable_clr(uint8_t girq_id);\r
1248 \r
1249 /** Clear GIRQs in ECIA Block \r
1250  * @param girq_bitmask - Bitmask of GIRQs to be cleared in ECIA Block  \r
1251  */\r
1252 void p_interrupt_ecia_block_enable_bitmask_clr(uint32_t girq_bitmask);\r
1253 \r
1254 /** p_interrupt_ecia_block_enable_all_clr - Clears all GIRQ block enables */\r
1255 void p_interrupt_ecia_block_enable_all_clr(void);\r
1256  \r
1257  /** Get status of GIRQ in ECIA Block\r
1258  * @param girq_id - enum MEC_GIRQ_IDS  \r
1259  * @return 0 if status bit not set; else non-zero value\r
1260  */\r
1261 uint32_t p_interrupt_ecia_block_irq_status_get(uint8_t girq_id);\r
1262 \r
1263 /** Reads the Block IRQ Vector Register\r
1264   * @return 32-bit value\r
1265  */\r
1266 uint32_t p_interrupt_ecia_block_irq_all_status_get(void);\r
1267 \r
1268 /* ---------------------------------------------------------------------------- */\r
1269 /* Peripheral Functions - Operations on GIRQx Source, Enable, Result            *\r
1270  * and Enable Registers                                                         */\r
1271 /* ---------------------------------------------------------------------------- */\r
1272 \r
1273 /** Clear specified interrupt source bit in GIRQx\r
1274  * @param girq_id - enum MEC_GIRQ_IDS\r
1275  * @param bitnum -[0, 31]\r
1276  */\r
1277 void p_interrupt_ecia_girq_source_clr(int16_t girq_id, uint8_t bitnum);\r
1278 \r
1279 /** Read the specified interrupt source bit in GIRQx\r
1280  * @param girq_id - enum MEC_GIRQ_IDS\r
1281  * @param bitnum -[0, 31]\r
1282  * @return 0 if source bit not set; else non-zero value\r
1283  */\r
1284 uint32_t p_interrupt_ecia_girq_source_get(int16_t girq_id, uint8_t bitnum);\r
1285 \r
1286 /** Enable the specified interrupt in GIRQx\r
1287  * girq_id - enum MEC_GIRQ_IDS\r
1288  * bitnum = [0, 31]\r
1289  */\r
1290 void p_interrupt_ecia_girq_enable_set(uint16_t girq_id, uint8_t bitnum);\r
1291 \r
1292 /** Disable the specified interrupt in GIRQx\r
1293  * girq_id - enum MEC_GIRQ_IDS\r
1294  * bitnum = [0, 31]\r
1295  */\r
1296 void p_interrupt_ecia_girq_enable_clr(uint16_t girq_id, uint8_t bitnum);\r
1297 \r
1298 /** Read the status of the specified interrupt in GIRQx\r
1299  * girq_id - enum MEC_GIRQ_IDS\r
1300  * bitnum = [0, 31]\r
1301  * @return 0 if enable bit not set; else non-zero value\r
1302  */\r
1303 uint32_t p_interrupt_ecia_girq_enable_get(uint16_t girq_id, uint8_t bitnum);\r
1304 \r
1305 /** Read the result bit of the interrupt in GIRQx\r
1306  * @param girq_id - enum MEC_GIRQ_IDS\r
1307  * @param bitnum -[0, 31]\r
1308  * @return 0 if enable bit not set; else non-zero value\r
1309  */\r
1310 uint32_t p_interrupt_ecia_girq_result_get(int16_t girq_id, uint8_t bitnum);\r
1311 \r
1312 /* ------------------------------------------------------------------------------- */\r
1313 /* Peripheral Function - Operations on all GIRQs                                   */\r
1314 /* ------------------------------------------------------------------------------- */\r
1315 \r
1316 /** Clear all aggregator GIRQn status registers */\r
1317 void p_interrupt_ecia_girqs_source_reset(void);\r
1318 \r
1319 /** Clear all aggregator GIRQn enables */\r
1320  void p_interrupt_ecia_girqs_enable_reset(void);\r
1321  \r
1322 /* ------------------------------------------------------------------------------- */\r
1323 /* Peripheral Function - Function to set interrupt control                         */\r
1324 /* ------------------------------------------------------------------------------- */\r
1325 \r
1326 /** Set interrupt control \r
1327  * @param nvic_en_flag : 0 = Alternate NVIC disabled, 1 = Alternate NVIC enabled\r
1328  */\r
1329  void p_interrupt_control_set(uint8_t nvic_en_flag);\r
1330      \r
1331  /** Read interrupt control \r
1332  * @return uint8_t - 0 = Alternate NVIC disabled, 1 = Alternate NVIC enabled\r
1333  */\r
1334 uint8_t p_interrupt_control_get(void);\r
1335 \r
1336 /* ------------------------------------------------------------------------------- */\r
1337 /* Peripheral Functions - NVIC                                                     */\r
1338 /* ------------------------------------------------------------------------------- */\r
1339 \r
1340 /**  Enable/Disable the NVIC IRQ in the NVIC interrupt controller\r
1341  * @param nvic_num : NVIC number (see enum IRQn_Type)\r
1342  * @param en_flag : 1 = Enable the NVIC IRQ, 0 = Disable the NVIC IRQ\r
1343  * @note Application should perform this operation\r
1344  */\r
1345  void p_interrupt_nvic_enable(IRQn_Type nvic_num, uint8_t en_flag);\r
1346      \r
1347  /**  ecia_nvic_clr_en - Clear all NVIC external enables */ \r
1348 void p_interrupt_nvic_extEnables_clr(void);\r
1349 \r
1350 /** Clear all NVIC external enables and pending bits */\r
1351 void p_interrupt_nvic_enpend_clr(void);\r
1352 \r
1353 /** Set NVIC external priorities to POR value */\r
1354 void p_interrupt_nvic_priorities_default_set(void);\r
1355 \r
1356 /** Set NVIC external priorities to specified priority (0 - 7)\r
1357  * @param zero-based 3-bit priority value: 0=highest, 7=lowest.\r
1358  * @note NVIC highest priority is the value 0, lowest is all 1's.\r
1359  * Each external interrupt has an 8-bit register and the priority \r
1360  * is left justified in the registers. MECxxx implements 8 priority \r
1361  * levels or bits [7:5] in the register. Lowest priority = 0xE0\r
1362  */\r
1363 void p_interrupt_nvic_priorities_set(uint8_t new_pri);\r
1364 \r
1365 #endif // #ifndef _INTERRUPT_H\r
1366 /* end interrupt.h */\r
1367 /**   @}\r
1368  */\r
1369 \r
1370 \r
1371 \r