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