Loading...
Searching...
No Matches
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
16
17#include "cpu_conf.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
26static 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.