exti_config.h
1 /*
2  * Copyright (C) 2020 ML!PA Consulting GmbH
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
20 #include "cpu_conf.h"
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
29 static const int8_t exti_config[PORT_GROUPS][32] = {
30 #if PORT_GROUPS >= 1
31 {
32 # ifdef PIN_PA00A_EIC_EXTINT_NUM
33  PIN_PA00A_EIC_EXTINT_NUM,
34 # else
35  -1,
36 # endif
37 # ifdef PIN_PA01A_EIC_EXTINT_NUM
38  PIN_PA01A_EIC_EXTINT_NUM,
39 # else
40  -1,
41 # endif
42 # ifdef PIN_PA02A_EIC_EXTINT_NUM
43  PIN_PA02A_EIC_EXTINT_NUM,
44 # else
45  -1,
46 # endif
47 # ifdef PIN_PA03A_EIC_EXTINT_NUM
48  PIN_PA03A_EIC_EXTINT_NUM,
49 # else
50  -1,
51 # endif
52 # ifdef PIN_PA04A_EIC_EXTINT_NUM
53  PIN_PA04A_EIC_EXTINT_NUM,
54 # else
55  -1,
56 # endif
57 # ifdef PIN_PA05A_EIC_EXTINT_NUM
58  PIN_PA05A_EIC_EXTINT_NUM,
59 # else
60  -1,
61 # endif
62 # ifdef PIN_PA06A_EIC_EXTINT_NUM
63  PIN_PA06A_EIC_EXTINT_NUM,
64 # else
65  -1,
66 # endif
67 # ifdef PIN_PA07A_EIC_EXTINT_NUM
68  PIN_PA07A_EIC_EXTINT_NUM,
69 # else
70  -1,
71 # endif
72 # ifdef PIN_PA08A_EIC_EXTINT_NUM
73  PIN_PA08A_EIC_EXTINT_NUM,
74 # else
75  -1,
76 # endif
77 # ifdef PIN_PA09A_EIC_EXTINT_NUM
78  PIN_PA09A_EIC_EXTINT_NUM,
79 # else
80  -1,
81 # endif
82 # ifdef PIN_PA10A_EIC_EXTINT_NUM
83  PIN_PA10A_EIC_EXTINT_NUM,
84 # else
85  -1,
86 # endif
87 # ifdef PIN_PA11A_EIC_EXTINT_NUM
88  PIN_PA11A_EIC_EXTINT_NUM,
89 # else
90  -1,
91 # endif
92 # ifdef PIN_PA12A_EIC_EXTINT_NUM
93  PIN_PA12A_EIC_EXTINT_NUM,
94 # else
95  -1,
96 # endif
97 # ifdef PIN_PA13A_EIC_EXTINT_NUM
98  PIN_PA13A_EIC_EXTINT_NUM,
99 # else
100  -1,
101 # endif
102 # ifdef PIN_PA14A_EIC_EXTINT_NUM
103  PIN_PA14A_EIC_EXTINT_NUM,
104 # else
105  -1,
106 # endif
107 # ifdef PIN_PA15A_EIC_EXTINT_NUM
108  PIN_PA15A_EIC_EXTINT_NUM,
109 # else
110  -1,
111 # endif
112 # ifdef PIN_PA16A_EIC_EXTINT_NUM
113  PIN_PA16A_EIC_EXTINT_NUM,
114 # else
115  -1,
116 # endif
117 # ifdef PIN_PA17A_EIC_EXTINT_NUM
118  PIN_PA17A_EIC_EXTINT_NUM,
119 # else
120  -1,
121 # endif
122 # ifdef PIN_PA18A_EIC_EXTINT_NUM
123  PIN_PA18A_EIC_EXTINT_NUM,
124 # else
125  -1,
126 # endif
127 # ifdef PIN_PA19A_EIC_EXTINT_NUM
128  PIN_PA19A_EIC_EXTINT_NUM,
129 # else
130  -1,
131 # endif
132 # ifdef PIN_PA20A_EIC_EXTINT_NUM
133  PIN_PA20A_EIC_EXTINT_NUM,
134 # else
135  -1,
136 # endif
137 # ifdef PIN_PA21A_EIC_EXTINT_NUM
138  PIN_PA21A_EIC_EXTINT_NUM,
139 # else
140  -1,
141 # endif
142 # ifdef PIN_PA22A_EIC_EXTINT_NUM
143  PIN_PA22A_EIC_EXTINT_NUM,
144 # else
145  -1,
146 # endif
147 # ifdef PIN_PA23A_EIC_EXTINT_NUM
148  PIN_PA23A_EIC_EXTINT_NUM,
149 # else
150  -1,
151 # endif
152 # ifdef PIN_PA24A_EIC_EXTINT_NUM
153  PIN_PA24A_EIC_EXTINT_NUM,
154 # else
155  -1,
156 # endif
157 # ifdef PIN_PA25A_EIC_EXTINT_NUM
158  PIN_PA25A_EIC_EXTINT_NUM,
159 # else
160  -1,
161 # endif
162 # ifdef PIN_PA26A_EIC_EXTINT_NUM
163  PIN_PA26A_EIC_EXTINT_NUM,
164 # else
165  -1,
166 # endif
167 # ifdef PIN_PA27A_EIC_EXTINT_NUM
168  PIN_PA27A_EIC_EXTINT_NUM,
169 # else
170  -1,
171 # endif
172 # ifdef PIN_PA28A_EIC_EXTINT_NUM
173  PIN_PA28A_EIC_EXTINT_NUM,
174 # else
175  -1,
176 # endif
177 # ifdef PIN_PA29A_EIC_EXTINT_NUM
178  PIN_PA29A_EIC_EXTINT_NUM,
179 # else
180  -1,
181 # endif
182 # ifdef PIN_PA30A_EIC_EXTINT_NUM
183  PIN_PA30A_EIC_EXTINT_NUM,
184 # else
185  -1,
186 # endif
187 # ifdef PIN_PA31A_EIC_EXTINT_NUM
188  PIN_PA31A_EIC_EXTINT_NUM,
189 # else
190  -1,
191 # endif
192 },
193 #endif
194 
195 #if PORT_GROUPS >= 2
196 {
197 # ifdef PIN_PB00A_EIC_EXTINT_NUM
198  PIN_PB00A_EIC_EXTINT_NUM,
199 # else
200  -1,
201 # endif
202 # ifdef PIN_PB01A_EIC_EXTINT_NUM
203  PIN_PB01A_EIC_EXTINT_NUM,
204 # else
205  -1,
206 # endif
207 # ifdef PIN_PB02A_EIC_EXTINT_NUM
208  PIN_PB02A_EIC_EXTINT_NUM,
209 # else
210  -1,
211 # endif
212 # ifdef PIN_PB03A_EIC_EXTINT_NUM
213  PIN_PB03A_EIC_EXTINT_NUM,
214 # else
215  -1,
216 # endif
217 # ifdef PIN_PB04A_EIC_EXTINT_NUM
218  PIN_PB04A_EIC_EXTINT_NUM,
219 # else
220  -1,
221 # endif
222 # ifdef PIN_PB05A_EIC_EXTINT_NUM
223  PIN_PB05A_EIC_EXTINT_NUM,
224 # else
225  -1,
226 # endif
227 # ifdef PIN_PB06A_EIC_EXTINT_NUM
228  PIN_PB06A_EIC_EXTINT_NUM,
229 # else
230  -1,
231 # endif
232 # ifdef PIN_PB07A_EIC_EXTINT_NUM
233  PIN_PB07A_EIC_EXTINT_NUM,
234 # else
235  -1,
236 # endif
237 # ifdef PIN_PB08A_EIC_EXTINT_NUM
238  PIN_PB08A_EIC_EXTINT_NUM,
239 # else
240  -1,
241 # endif
242 # ifdef PIN_PB09A_EIC_EXTINT_NUM
243  PIN_PB09A_EIC_EXTINT_NUM,
244 # else
245  -1,
246 # endif
247 # ifdef PIN_PB10A_EIC_EXTINT_NUM
248  PIN_PB10A_EIC_EXTINT_NUM,
249 # else
250  -1,
251 # endif
252 # ifdef PIN_PB11A_EIC_EXTINT_NUM
253  PIN_PB11A_EIC_EXTINT_NUM,
254 # else
255  -1,
256 # endif
257 # ifdef PIN_PB12A_EIC_EXTINT_NUM
258  PIN_PB12A_EIC_EXTINT_NUM,
259 # else
260  -1,
261 # endif
262 # ifdef PIN_PB13A_EIC_EXTINT_NUM
263  PIN_PB13A_EIC_EXTINT_NUM,
264 # else
265  -1,
266 # endif
267 # ifdef PIN_PB14A_EIC_EXTINT_NUM
268  PIN_PB14A_EIC_EXTINT_NUM,
269 # else
270  -1,
271 # endif
272 # ifdef PIN_PB15A_EIC_EXTINT_NUM
273  PIN_PB15A_EIC_EXTINT_NUM,
274 # else
275  -1,
276 # endif
277 # ifdef PIN_PB16A_EIC_EXTINT_NUM
278  PIN_PB16A_EIC_EXTINT_NUM,
279 # else
280  -1,
281 # endif
282 # ifdef PIN_PB17A_EIC_EXTINT_NUM
283  PIN_PB17A_EIC_EXTINT_NUM,
284 # else
285  -1,
286 # endif
287 # ifdef PIN_PB18A_EIC_EXTINT_NUM
288  PIN_PB18A_EIC_EXTINT_NUM,
289 # else
290  -1,
291 # endif
292 # ifdef PIN_PB19A_EIC_EXTINT_NUM
293  PIN_PB19A_EIC_EXTINT_NUM,
294 # else
295  -1,
296 # endif
297 # ifdef PIN_PB20A_EIC_EXTINT_NUM
298  PIN_PB20A_EIC_EXTINT_NUM,
299 # else
300  -1,
301 # endif
302 # ifdef PIN_PB21A_EIC_EXTINT_NUM
303  PIN_PB21A_EIC_EXTINT_NUM,
304 # else
305  -1,
306 # endif
307 # ifdef PIN_PB22A_EIC_EXTINT_NUM
308  PIN_PB22A_EIC_EXTINT_NUM,
309 # else
310  -1,
311 # endif
312 # ifdef PIN_PB23A_EIC_EXTINT_NUM
313  PIN_PB23A_EIC_EXTINT_NUM,
314 # else
315  -1,
316 # endif
317 # ifdef PIN_PB24A_EIC_EXTINT_NUM
318  PIN_PB24A_EIC_EXTINT_NUM,
319 # else
320  -1,
321 # endif
322 # ifdef PIN_PB25A_EIC_EXTINT_NUM
323  PIN_PB25A_EIC_EXTINT_NUM,
324 # else
325  -1,
326 # endif
327 # ifdef PIN_PB26A_EIC_EXTINT_NUM
328  PIN_PB26A_EIC_EXTINT_NUM,
329 # else
330  -1,
331 # endif
332 # ifdef PIN_PB27A_EIC_EXTINT_NUM
333  PIN_PB27A_EIC_EXTINT_NUM,
334 # else
335  -1,
336 # endif
337 # ifdef PIN_PB28A_EIC_EXTINT_NUM
338  PIN_PB28A_EIC_EXTINT_NUM,
339 # else
340  -1,
341 # endif
342 # ifdef PIN_PB29A_EIC_EXTINT_NUM
343  PIN_PB29A_EIC_EXTINT_NUM,
344 # else
345  -1,
346 # endif
347 # ifdef PIN_PB30A_EIC_EXTINT_NUM
348  PIN_PB30A_EIC_EXTINT_NUM,
349 # else
350  -1,
351 # endif
352 # ifdef PIN_PB31A_EIC_EXTINT_NUM
353  PIN_PB31A_EIC_EXTINT_NUM,
354 # else
355  -1,
356 # endif
357 },
358 #endif
359 
360 #if PORT_GROUPS >= 3
361 {
362 # ifdef PIN_PC00A_EIC_EXTINT_NUM
363  PIN_PC00A_EIC_EXTINT_NUM,
364 # else
365  -1,
366 # endif
367 # ifdef PIN_PC01A_EIC_EXTINT_NUM
368  PIN_PC01A_EIC_EXTINT_NUM,
369 # else
370  -1,
371 # endif
372 # ifdef PIN_PC02A_EIC_EXTINT_NUM
373  PIN_PC02A_EIC_EXTINT_NUM,
374 # else
375  -1,
376 # endif
377 # ifdef PIN_PC03A_EIC_EXTINT_NUM
378  PIN_PC03A_EIC_EXTINT_NUM,
379 # else
380  -1,
381 # endif
382 # ifdef PIN_PC04A_EIC_EXTINT_NUM
383  PIN_PC04A_EIC_EXTINT_NUM,
384 # else
385  -1,
386 # endif
387 # ifdef PIN_PC05A_EIC_EXTINT_NUM
388  PIN_PC05A_EIC_EXTINT_NUM,
389 # else
390  -1,
391 # endif
392 # ifdef PIN_PC06A_EIC_EXTINT_NUM
393  PIN_PC06A_EIC_EXTINT_NUM,
394 # else
395  -1,
396 # endif
397 # ifdef PIN_PC07A_EIC_EXTINT_NUM
398  PIN_PC07A_EIC_EXTINT_NUM,
399 # else
400  -1,
401 # endif
402 # ifdef PIN_PC08A_EIC_EXTINT_NUM
403  PIN_PC08A_EIC_EXTINT_NUM,
404 # else
405  -1,
406 # endif
407 # ifdef PIN_PC09A_EIC_EXTINT_NUM
408  PIN_PC09A_EIC_EXTINT_NUM,
409 # else
410  -1,
411 # endif
412 # ifdef PIN_PC10A_EIC_EXTINT_NUM
413  PIN_PC10A_EIC_EXTINT_NUM,
414 # else
415  -1,
416 # endif
417 # ifdef PIN_PC11A_EIC_EXTINT_NUM
418  PIN_PC11A_EIC_EXTINT_NUM,
419 # else
420  -1,
421 # endif
422 # ifdef PIN_PC12A_EIC_EXTINT_NUM
423  PIN_PC12A_EIC_EXTINT_NUM,
424 # else
425  -1,
426 # endif
427 # ifdef PIN_PC13A_EIC_EXTINT_NUM
428  PIN_PC13A_EIC_EXTINT_NUM,
429 # else
430  -1,
431 # endif
432 # ifdef PIN_PC14A_EIC_EXTINT_NUM
433  PIN_PC14A_EIC_EXTINT_NUM,
434 # else
435  -1,
436 # endif
437 # ifdef PIN_PC15A_EIC_EXTINT_NUM
438  PIN_PC15A_EIC_EXTINT_NUM,
439 # else
440  -1,
441 # endif
442 # ifdef PIN_PC16A_EIC_EXTINT_NUM
443  PIN_PC16A_EIC_EXTINT_NUM,
444 # else
445  -1,
446 # endif
447 # ifdef PIN_PC17A_EIC_EXTINT_NUM
448  PIN_PC17A_EIC_EXTINT_NUM,
449 # else
450  -1,
451 # endif
452 # ifdef PIN_PC18A_EIC_EXTINT_NUM
453  PIN_PC18A_EIC_EXTINT_NUM,
454 # else
455  -1,
456 # endif
457 # ifdef PIN_PC19A_EIC_EXTINT_NUM
458  PIN_PC19A_EIC_EXTINT_NUM,
459 # else
460  -1,
461 # endif
462 # ifdef PIN_PC20A_EIC_EXTINT_NUM
463  PIN_PC20A_EIC_EXTINT_NUM,
464 # else
465  -1,
466 # endif
467 # ifdef PIN_PC21A_EIC_EXTINT_NUM
468  PIN_PC21A_EIC_EXTINT_NUM,
469 # else
470  -1,
471 # endif
472 # ifdef PIN_PC22A_EIC_EXTINT_NUM
473  PIN_PC22A_EIC_EXTINT_NUM,
474 # else
475  -1,
476 # endif
477 # ifdef PIN_PC23A_EIC_EXTINT_NUM
478  PIN_PC23A_EIC_EXTINT_NUM,
479 # else
480  -1,
481 # endif
482 # ifdef PIN_PC24A_EIC_EXTINT_NUM
483  PIN_PC24A_EIC_EXTINT_NUM,
484 # else
485  -1,
486 # endif
487 # ifdef PIN_PC25A_EIC_EXTINT_NUM
488  PIN_PC25A_EIC_EXTINT_NUM,
489 # else
490  -1,
491 # endif
492 # ifdef PIN_PC26A_EIC_EXTINT_NUM
493  PIN_PC26A_EIC_EXTINT_NUM,
494 # else
495  -1,
496 # endif
497 # ifdef PIN_PC27A_EIC_EXTINT_NUM
498  PIN_PC27A_EIC_EXTINT_NUM,
499 # else
500  -1,
501 # endif
502 # ifdef PIN_PC28A_EIC_EXTINT_NUM
503  PIN_PC28A_EIC_EXTINT_NUM,
504 # else
505  -1,
506 # endif
507 # ifdef PIN_PC29A_EIC_EXTINT_NUM
508  PIN_PC29A_EIC_EXTINT_NUM,
509 # else
510  -1,
511 # endif
512 # ifdef PIN_PC30A_EIC_EXTINT_NUM
513  PIN_PC30A_EIC_EXTINT_NUM,
514 # else
515  -1,
516 # endif
517 # ifdef PIN_PC31A_EIC_EXTINT_NUM
518  PIN_PC31A_EIC_EXTINT_NUM,
519 # else
520  -1,
521 # endif
522 },
523 #endif
524 
525 #if PORT_GROUPS >= 4
526 {
527 # ifdef PIN_PD00A_EIC_EXTINT_NUM
528  PIN_PD00A_EIC_EXTINT_NUM,
529 # else
530  -1,
531 # endif
532 # ifdef PIN_PD01A_EIC_EXTINT_NUM
533  PIN_PD01A_EIC_EXTINT_NUM,
534 # else
535  -1,
536 # endif
537 # ifdef PIN_PD02A_EIC_EXTINT_NUM
538  PIN_PD02A_EIC_EXTINT_NUM,
539 # else
540  -1,
541 # endif
542 # ifdef PIN_PD03A_EIC_EXTINT_NUM
543  PIN_PD03A_EIC_EXTINT_NUM,
544 # else
545  -1,
546 # endif
547 # ifdef PIN_PD04A_EIC_EXTINT_NUM
548  PIN_PD04A_EIC_EXTINT_NUM,
549 # else
550  -1,
551 # endif
552 # ifdef PIN_PD05A_EIC_EXTINT_NUM
553  PIN_PD05A_EIC_EXTINT_NUM,
554 # else
555  -1,
556 # endif
557 # ifdef PIN_PD06A_EIC_EXTINT_NUM
558  PIN_PD06A_EIC_EXTINT_NUM,
559 # else
560  -1,
561 # endif
562 # ifdef PIN_PD07A_EIC_EXTINT_NUM
563  PIN_PD07A_EIC_EXTINT_NUM,
564 # else
565  -1,
566 # endif
567 # ifdef PIN_PD08A_EIC_EXTINT_NUM
568  PIN_PD08A_EIC_EXTINT_NUM,
569 # else
570  -1,
571 # endif
572 # ifdef PIN_PD09A_EIC_EXTINT_NUM
573  PIN_PD09A_EIC_EXTINT_NUM,
574 # else
575  -1,
576 # endif
577 # ifdef PIN_PD10A_EIC_EXTINT_NUM
578  PIN_PD10A_EIC_EXTINT_NUM,
579 # else
580  -1,
581 # endif
582 # ifdef PIN_PD11A_EIC_EXTINT_NUM
583  PIN_PD11A_EIC_EXTINT_NUM,
584 # else
585  -1,
586 # endif
587 # ifdef PIN_PD12A_EIC_EXTINT_NUM
588  PIN_PD12A_EIC_EXTINT_NUM,
589 # else
590  -1,
591 # endif
592 # ifdef PIN_PD13A_EIC_EXTINT_NUM
593  PIN_PD13A_EIC_EXTINT_NUM,
594 # else
595  -1,
596 # endif
597 # ifdef PIN_PD14A_EIC_EXTINT_NUM
598  PIN_PD14A_EIC_EXTINT_NUM,
599 # else
600  -1,
601 # endif
602 # ifdef PIN_PD15A_EIC_EXTINT_NUM
603  PIN_PD15A_EIC_EXTINT_NUM,
604 # else
605  -1,
606 # endif
607 # ifdef PIN_PD16A_EIC_EXTINT_NUM
608  PIN_PD16A_EIC_EXTINT_NUM,
609 # else
610  -1,
611 # endif
612 # ifdef PIN_PD17A_EIC_EXTINT_NUM
613  PIN_PD17A_EIC_EXTINT_NUM,
614 # else
615  -1,
616 # endif
617 # ifdef PIN_PD18A_EIC_EXTINT_NUM
618  PIN_PD18A_EIC_EXTINT_NUM,
619 # else
620  -1,
621 # endif
622 # ifdef PIN_PD19A_EIC_EXTINT_NUM
623  PIN_PD19A_EIC_EXTINT_NUM,
624 # else
625  -1,
626 # endif
627 # ifdef PIN_PD20A_EIC_EXTINT_NUM
628  PIN_PD20A_EIC_EXTINT_NUM,
629 # else
630  -1,
631 # endif
632 # ifdef PIN_PD21A_EIC_EXTINT_NUM
633  PIN_PD21A_EIC_EXTINT_NUM,
634 # else
635  -1,
636 # endif
637 # ifdef PIN_PD22A_EIC_EXTINT_NUM
638  PIN_PD22A_EIC_EXTINT_NUM,
639 # else
640  -1,
641 # endif
642 # ifdef PIN_PD23A_EIC_EXTINT_NUM
643  PIN_PD23A_EIC_EXTINT_NUM,
644 # else
645  -1,
646 # endif
647 # ifdef PIN_PD24A_EIC_EXTINT_NUM
648  PIN_PD24A_EIC_EXTINT_NUM,
649 # else
650  -1,
651 # endif
652 # ifdef PIN_PD25A_EIC_EXTINT_NUM
653  PIN_PD25A_EIC_EXTINT_NUM,
654 # else
655  -1,
656 # endif
657 # ifdef PIN_PD26A_EIC_EXTINT_NUM
658  PIN_PD26A_EIC_EXTINT_NUM,
659 # else
660  -1,
661 # endif
662 # ifdef PIN_PD27A_EIC_EXTINT_NUM
663  PIN_PD27A_EIC_EXTINT_NUM,
664 # else
665  -1,
666 # endif
667 # ifdef PIN_PD28A_EIC_EXTINT_NUM
668  PIN_PD28A_EIC_EXTINT_NUM,
669 # else
670  -1,
671 # endif
672 # ifdef PIN_PD29A_EIC_EXTINT_NUM
673  PIN_PD29A_EIC_EXTINT_NUM,
674 # else
675  -1,
676 # endif
677 # ifdef PIN_PD30A_EIC_EXTINT_NUM
678  PIN_PD30A_EIC_EXTINT_NUM,
679 # else
680  -1,
681 # endif
682 # ifdef PIN_PD31A_EIC_EXTINT_NUM
683  PIN_PD31A_EIC_EXTINT_NUM,
684 # else
685  -1,
686 # endif
687 },
688 #endif
689 };
690 
691 #ifdef __cplusplus
692 }
693 #endif
694 
static const int8_t exti_config[PORT_GROUPS][32]
Generic EXTI map for all CPUs of the sam0 family.
Definition: exti_config.h:29
Implementation specific CPU configuration options.