Loading...
Searching...
No Matches
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
23extern "C" {
24#endif
25
29static 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.