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