ClearCore Library
HardwareMapping.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Teknic, Inc.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20  * SOFTWARE.
21  */
22 
28 #ifndef __HARDWAREMAPPING_H__
29 #define __HARDWAREMAPPING_H__
30 
31 #include <sam.h>
32 #include "PeripheralRoute.h"
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 
39 namespace ClearCore {
40 
41 // g++, please don't spit out pedantic warnings in this file
42 // BK: structs and their initializers were generated by a script, so there's
43 // no need to complain about missing initializers. We chose to represent the
44 // peripheral routing structs to make it clear which fields have which values,
45 // as opposed to a class with a constructor, and potentially ambiguous
46 // numbers and letters strewn about.
47 #pragma GCC diagnostic push
48 #pragma GCC diagnostic ignored "-Wpedantic"
49 #pragma GCC diagnostic ignored "-Wmissing-field-initializers"
50 
51 #ifndef HIDE_FROM_DOXYGEN
52 const PeripheralRoute _5VOB_MON = {
53  .pin_raw = 9,
54  .gpioPort = PORTB,
55  .gpioPin = 4,
56  .extInt = 4,
57  .extIntAvail = false,
58  .adc0Channel = 255,
59  .adc1Channel = 6,
60  .dacChannel = 255,
61  .sercomNum = 255,
62  .sercomPadNum = 255,
63  .tcNum = 255,
64  .tcPadNum = 255,
65  .tccNum = 255,
66  .tccPadNum = 255,
67  .gclkNum = 255,
68 };
69 const PeripheralRoute Com0_CTS_MISO = {
70  .pin_raw = 67,
71  .gpioPort = PORTB,
72  .gpioPin = 19,
73  .extInt = 3,
74  .extIntAvail = false,
75  .adc0Channel = 255,
76  .adc1Channel = 255,
77  .dacChannel = 255,
78  .sercomNum = 7,
79  .sercomPadNum = 3,
80  .tcNum = 255,
81  .tcPadNum = 255,
82  .tccNum = 1,
83  .tccPadNum = 1,
84  .gclkNum = 5,
85 };
86 const PeripheralRoute Com0_RTS_SS = {
87  .pin_raw = 66,
88  .gpioPort = PORTB,
89  .gpioPin = 18,
90  .extInt = 2,
91  .extIntAvail = false,
92  .adc0Channel = 255,
93  .adc1Channel = 255,
94  .dacChannel = 255,
95  .sercomNum = 7,
96  .sercomPadNum = 2,
97  .tcNum = 255,
98  .tcPadNum = 255,
99  .tccNum = 1,
100  .tccPadNum = 0,
101  .gclkNum = 4,
102 };
103 const PeripheralRoute Com0_RX_SCK = {
104  .pin_raw = 68,
105  .gpioPort = PORTB,
106  .gpioPin = 20,
107  .extInt = 4,
108  .extIntAvail = false,
109  .adc0Channel = 255,
110  .adc1Channel = 255,
111  .dacChannel = 255,
112  .sercomNum = 7,
113  .sercomPadNum = 1,
114  .tcNum = 255,
115  .tcPadNum = 255,
116  .tccNum = 1,
117  .tccPadNum = 2,
118  .gclkNum = 6,
119 };
120 const PeripheralRoute Com0_TX_MOSI = {
121  .pin_raw = 69,
122  .gpioPort = PORTB,
123  .gpioPin = 21,
124  .extInt = 5,
125  .extIntAvail = false,
126  .adc0Channel = 255,
127  .adc1Channel = 255,
128  .dacChannel = 255,
129  .sercomNum = 7,
130  .sercomPadNum = 0,
131  .tcNum = 255,
132  .tcPadNum = 255,
133  .tccNum = 1,
134  .tccPadNum = 3,
135  .gclkNum = 7,
136 };
137 const PeripheralRoute Com1_CTS_MISO = {
138  .pin_raw = 29,
139  .gpioPort = PORTA,
140  .gpioPin = 11,
141  .extInt = 11,
142  .extIntAvail = false,
143  .adc0Channel = 255,
144  .adc1Channel = 255,
145  .dacChannel = 255,
146  .sercomNum = 0,
147  .sercomPadNum = 3,
148  .tcNum = 1,
149  .tcPadNum = 1,
150  .tccNum = 0,
151  .tccPadNum = 3,
152  .gclkNum = 5,
153 };
154 const PeripheralRoute Com1_RTS_SS = {
155  .pin_raw = 28,
156  .gpioPort = PORTA,
157  .gpioPin = 10,
158  .extInt = 10,
159  .extIntAvail = false,
160  .adc0Channel = 255,
161  .adc1Channel = 255,
162  .dacChannel = 255,
163  .sercomNum = 0,
164  .sercomPadNum = 2,
165  .tcNum = 1,
166  .tcPadNum = 0,
167  .tccNum = 0,
168  .tccPadNum = 2,
169  .gclkNum = 4,
170 };
171 const PeripheralRoute Com1_RX_SCK = {
172  .pin_raw = 27,
173  .gpioPort = PORTA,
174  .gpioPin = 9,
175  .extInt = 9,
176  .extIntAvail = false,
177  .adc0Channel = 255,
178  .adc1Channel = 3,
179  .dacChannel = 255,
180  .sercomNum = 0,
181  .sercomPadNum = 1,
182  .tcNum = 0,
183  .tcPadNum = 1,
184  .tccNum = 0,
185  .tccPadNum = 1,
186  .gclkNum = 255,
187 };
188 const PeripheralRoute Com1_TX_MOSI = {
189  .pin_raw = 26,
190  .gpioPort = PORTA,
191  .gpioPin = 8,
192  .extInt = 255,
193  .extIntAvail = false,
194  .adc0Channel = 255,
195  .adc1Channel = 2,
196  .dacChannel = 255,
197  .sercomNum = 0,
198  .sercomPadNum = 0,
199  .tcNum = 0,
200  .tcPadNum = 0,
201  .tccNum = 0,
202  .tccPadNum = 0,
203  .gclkNum = 255,
204 };
205 const PeripheralRoute Aout00 = {
206  .pin_raw = 7,
207  .gpioPort = PORTA,
208  .gpioPin = 2,
209  .extInt = 2,
210  .extIntAvail = false,
211  .adc0Channel = 255,
212  .adc1Channel = 255,
213  .dacChannel = 1,
214  .sercomNum = 255,
215  .sercomPadNum = 255,
216  .tcNum = 0,
217  .tcPadNum = 1,
218  .tccNum = 255,
219  .tccPadNum = 255,
220  .gclkNum = 255,
221 };
222 const PeripheralRoute IN00n_Aout00n = {
223  .pin_raw = 18,
224  .gpioPort = PORTA,
225  .gpioPin = 5,
226  .extInt = 5,
227  .extIntAvail = false,
228  .adc0Channel = 255,
229  .adc1Channel = 255,
230  .dacChannel = 1,
231  .sercomNum = 255,
232  .sercomPadNum = 255,
233  .tcNum = 0,
234  .tcPadNum = 1,
235  .tccNum = 255,
236  .tccPadNum = 255,
237  .gclkNum = 255,
238 };
239 const PeripheralRoute IN01n = {
240  .pin_raw = 7,
241  .gpioPort = PORTB,
242  .gpioPin = 17,
243  .extInt = 2,
244  .extIntAvail = false,
245  .adc0Channel = 255,
246  .adc1Channel = 255,
247  .dacChannel = 0,
248  .sercomNum = 255,
249  .sercomPadNum = 255,
250  .tcNum = 255,
251  .tcPadNum = 255,
252  .tccNum = 255,
253  .tccPadNum = 255,
254  .gclkNum = 255,
255 };
256 const PeripheralRoute IN02n = {
257  .pin_raw = 8,
258  .gpioPort = PORTA,
259  .gpioPin = 3,
260  .extInt = 3,
261  .extIntAvail = false,
262  .adc0Channel = 255,
263  .adc1Channel = 255,
264  .dacChannel = 255,
265  .sercomNum = 255,
266  .sercomPadNum = 255,
267  .tcNum = 255,
268  .tcPadNum = 255,
269  .tccNum = 255,
270  .tccPadNum = 255,
271  .gclkNum = 255,
272 };
273 const PeripheralRoute IN03n = {
274  .pin_raw = 17,
275  .gpioPort = PORTC,
276  .gpioPin = 21,
277  .extInt = 4,
278  .extIntAvail = false,
279  .adc0Channel = 255,
280  .adc1Channel = 255,
281  .dacChannel = 255,
282  .sercomNum = 255,
283  .sercomPadNum = 255,
284  .tcNum = 0,
285  .tcPadNum = 0,
286  .tccNum = 255,
287  .tccPadNum = 255,
288  .gclkNum = 255,
289 };
290 const PeripheralRoute IN04n = {
291  .pin_raw = 85,
292  .gpioPort = PORTC,
293  .gpioPin = 27,
294  .extInt = 11,
295  .extIntAvail = false,
296  .adc0Channel = 255,
297  .adc1Channel = 255,
298  .dacChannel = 255,
299  .sercomNum = 1,
300  .sercomPadNum = 0,
301  .tcNum = 255,
302  .tcPadNum = 255,
303  .tccNum = 255,
304  .tccPadNum = 255,
305  .gclkNum = 255,
306 };
307 const PeripheralRoute IN05n = {
308  .pin_raw = 59,
309  .gpioPort = PORTC,
310  .gpioPin = 19,
311  .extInt = 3,
312  .extIntAvail = false,
313  .adc0Channel = 255,
314  .adc1Channel = 255,
315  .dacChannel = 255,
316  .sercomNum = 6,
317  .sercomPadNum = 3,
318  .tcNum = 255,
319  .tcPadNum = 255,
320  .tccNum = 0,
321  .tccPadNum = 3,
322  .gclkNum = 255,
323 };
324 const PeripheralRoute IN06n_QuadA = {
325  .pin_raw = 56,
326  .gpioPort = PORTC,
327  .gpioPin = 16,
328  .extInt = 0,
329  .extIntAvail = true,
330  .adc0Channel = 255,
331  .adc1Channel = 255,
332  .dacChannel = 255,
333  .sercomNum = 6,
334  .sercomPadNum = 0,
335  .tcNum = 255,
336  .tcPadNum = 255,
337  .tccNum = 0,
338  .tccPadNum = 0,
339  .gclkNum = 255,
340 };
341 const PeripheralRoute IN07n_QuadB = {
342  .pin_raw = 57,
343  .gpioPort = PORTC,
344  .gpioPin = 17,
345  .extInt = 1,
346  .extIntAvail = true,
347  .adc0Channel = 255,
348  .adc1Channel = 255,
349  .dacChannel = 255,
350  .sercomNum = 6,
351  .sercomPadNum = 1,
352  .tcNum = 255,
353  .tcPadNum = 255,
354  .tccNum = 0,
355  .tccPadNum = 1,
356  .gclkNum = 255,
357 };
358 const PeripheralRoute IN08n_QuadI = {
359  .pin_raw = 58,
360  .gpioPort = PORTC,
361  .gpioPin = 18,
362  .extInt = 2,
363  .extIntAvail = true,
364  .adc0Channel = 255,
365  .adc1Channel = 255,
366  .dacChannel = 255,
367  .sercomNum = 6,
368  .sercomPadNum = 2,
369  .tcNum = 255,
370  .tcPadNum = 255,
371  .tccNum = 0,
372  .tccPadNum = 2,
373  .gclkNum = 255,
374 };
375 const PeripheralRoute IN09n_AIN09 = {
376  .pin_raw = 14,
377  .gpioPort = PORTB,
378  .gpioPin = 7,
379  .extInt = 7,
380  .extIntAvail = true,
381  .adc0Channel = 255,
382  .adc1Channel = 9,
383  .dacChannel = 255,
384  .sercomNum = 255,
385  .sercomPadNum = 255,
386  .tcNum = 255,
387  .tcPadNum = 255,
388  .tccNum = 255,
389  .tccPadNum = 255,
390  .gclkNum = 255,
391 };
392 const PeripheralRoute IN10n_AIN10 = {
393  .pin_raw = 13,
394  .gpioPort = PORTB,
395  .gpioPin = 6,
396  .extInt = 6,
397  .extIntAvail = true,
398  .adc0Channel = 255,
399  .adc1Channel = 8,
400  .dacChannel = 255,
401  .sercomNum = 255,
402  .sercomPadNum = 255,
403  .tcNum = 255,
404  .tcPadNum = 255,
405  .tccNum = 255,
406  .tccPadNum = 255,
407  .gclkNum = 255,
408 };
409 const PeripheralRoute IN11n_AIN11 = {
410  .pin_raw = 10,
411  .gpioPort = PORTB,
412  .gpioPin = 5,
413  .extInt = 5,
414  .extIntAvail = true,
415  .adc0Channel = 255,
416  .adc1Channel = 7,
417  .dacChannel = 255,
418  .sercomNum = 255,
419  .sercomPadNum = 255,
420  .tcNum = 255,
421  .tcPadNum = 255,
422  .tccNum = 255,
423  .tccPadNum = 255,
424  .gclkNum = 255,
425 };
426 const PeripheralRoute IN12n_AIN12 = {
427  .pin_raw = 6,
428  .gpioPort = PORTC,
429  .gpioPin = 3,
430  .extInt = 3,
431  .extIntAvail = true,
432  .adc0Channel = 255,
433  .adc1Channel = 5,
434  .dacChannel = 255,
435  .sercomNum = 255,
436  .sercomPadNum = 255,
437  .tcNum = 255,
438  .tcPadNum = 255,
439  .tccNum = 255,
440  .tccPadNum = 255,
441  .gclkNum = 255,
442 };
443 const PeripheralRoute MicroSD_MISO = {
444  .pin_raw = 32,
445  .gpioPort = PORTB,
446  .gpioPin = 10,
447  .extInt = 10,
448  .extIntAvail = false,
449  .adc0Channel = 255,
450  .adc1Channel = 255,
451  .dacChannel = 255,
452  .sercomNum = 4,
453  .sercomPadNum = 2,
454  .tcNum = 5,
455  .tcPadNum = 0,
456  .tccNum = 0,
457  .tccPadNum = 4,
458  .gclkNum = 4,
459 };
460 const PeripheralRoute MicroSD_MOSI = {
461  .pin_raw = 15,
462  .gpioPort = PORTB,
463  .gpioPin = 8,
464  .extInt = 8,
465  .extIntAvail = false,
466  .adc0Channel = 255,
467  .adc1Channel = 0,
468  .dacChannel = 255,
469  .sercomNum = 4,
470  .sercomPadNum = 0,
471  .tcNum = 4,
472  .tcPadNum = 0,
473  .tccNum = 255,
474  .tccPadNum = 255,
475  .gclkNum = 255,
476 };
477 const PeripheralRoute MicroSD_SCK = {
478  .pin_raw = 16,
479  .gpioPort = PORTB,
480  .gpioPin = 9,
481  .extInt = 9,
482  .extIntAvail = false,
483  .adc0Channel = 255,
484  .adc1Channel = 1,
485  .dacChannel = 255,
486  .sercomNum = 4,
487  .sercomPadNum = 1,
488  .tcNum = 4,
489  .tcPadNum = 1,
490  .tccNum = 255,
491  .tccPadNum = 255,
492  .gclkNum = 255,
493 };
494 const PeripheralRoute MicroSD_SS = {
495  .pin_raw = 61,
496  .gpioPort = PORTA,
497  .gpioPin = 4,
498  .extInt = 5,
499  .extIntAvail = false,
500  .adc0Channel = 255,
501  .adc1Channel = 255,
502  .dacChannel = 255,
503  .sercomNum = 255,
504  .sercomPadNum = 255,
505  .tcNum = 255,
506  .tcPadNum = 255,
507  .tccNum = 0,
508  .tccPadNum = 5,
509  .gclkNum = 255,
510 };
511 const PeripheralRoute Mtr_CLK_01 = {
512  .pin_raw = 87,
513  .gpioPort = PORTA,
514  .gpioPin = 27,
515  .extInt = 11,
516  .extIntAvail = false,
517  .adc0Channel = 255,
518  .adc1Channel = 255,
519  .dacChannel = 255,
520  .sercomNum = 255,
521  .sercomPadNum = 255,
522  .tcNum = 255,
523  .tcPadNum = 255,
524  .tccNum = 255,
525  .tccPadNum = 255,
526  .gclkNum = 1,
527 };
528 const PeripheralRoute Mtr_CLK_23 = {
529  .pin_raw = 79,
530  .gpioPort = PORTB,
531  .gpioPin = 23,
532  .extInt = 7,
533  .extIntAvail = false,
534  .adc0Channel = 255,
535  .adc1Channel = 255,
536  .dacChannel = 255,
537  .sercomNum = 1,
538  .sercomPadNum = 3,
539  .tcNum = 7,
540  .tcPadNum = 1,
541  .tccNum = 255,
542  .tccPadNum = 255,
543  .gclkNum = 1,
544 };
545 const PeripheralRoute Mtr0_An_SCTx = {
546  .pin_raw = 73,
547  .gpioPort = PORTA,
548  .gpioPin = 23,
549  .extInt = 7,
550  .extIntAvail = false,
551  .adc0Channel = 255,
552  .adc1Channel = 255,
553  .dacChannel = 255,
554  .sercomNum = 5,
555  .sercomPadNum = 0,
556  .tcNum = 4,
557  .tcPadNum = 1,
558  .tccNum = 1,
559  .tccPadNum = 7,
560  .gclkNum = 255,
561 };
562 const PeripheralRoute Mtr0_B = {
563  .pin_raw = 44,
564  .gpioPort = PORTC,
565  .gpioPin = 14,
566  .extInt = 14,
567  .extIntAvail = false,
568  .adc0Channel = 255,
569  .adc1Channel = 255,
570  .dacChannel = 255,
571  .sercomNum = 7,
572  .sercomPadNum = 2,
573  .tcNum = 255,
574  .tcPadNum = 255,
575  .tccNum = 0,
576  .tccPadNum = 4,
577  .gclkNum = 255,
578 };
579 const PeripheralRoute Mtr0_HLFB_SCRx = {
580  .pin_raw = 70,
581  .gpioPort = PORTA,
582  .gpioPin = 20,
583  .extInt = 4,
584  .extIntAvail = true,
585  .adc0Channel = 255,
586  .adc1Channel = 255,
587  .dacChannel = 255,
588  .sercomNum = 5,
589  .sercomPadNum = 2,
590  .tcNum = 7,
591  .tcPadNum = 0,
592  .tccNum = 1,
593  .tccPadNum = 4,
594  .gclkNum = 255,
595 };
596 const PeripheralRoute Mtr1_An = {
597  .pin_raw = 71,
598  .gpioPort = PORTA,
599  .gpioPin = 21,
600  .extInt = 5,
601  .extIntAvail = false,
602  .adc0Channel = 255,
603  .adc1Channel = 255,
604  .dacChannel = 255,
605  .sercomNum = 5,
606  .sercomPadNum = 3,
607  .tcNum = 7,
608  .tcPadNum = 1,
609  .tccNum = 1,
610  .tccPadNum = 5,
611  .gclkNum = 255,
612 };
613 const PeripheralRoute Mtr1_B = {
614  .pin_raw = 45,
615  .gpioPort = PORTC,
616  .gpioPin = 15,
617  .extInt = 15,
618  .extIntAvail = false,
619  .adc0Channel = 255,
620  .adc1Channel = 255,
621  .dacChannel = 255,
622  .sercomNum = 7,
623  .sercomPadNum = 3,
624  .tcNum = 255,
625  .tcPadNum = 255,
626  .tccNum = 0,
627  .tccPadNum = 5,
628  .gclkNum = 255,
629 };
630 const PeripheralRoute Mtr1_HLFB = {
631  .pin_raw = 33,
632  .gpioPort = PORTB,
633  .gpioPin = 11,
634  .extInt = 11,
635  .extIntAvail = true,
636  .adc0Channel = 255,
637  .adc1Channel = 255,
638  .dacChannel = 255,
639  .sercomNum = 255,
640  .sercomPadNum = 255,
641  .tcNum = 5,
642  .tcPadNum = 1,
643  .tccNum = 0,
644  .tccPadNum = 5,
645  .gclkNum = 5,
646 };
647 const PeripheralRoute Mtr2_An_Sdrvr2_PWMA = {
648  .pin_raw = 72,
649  .gpioPort = PORTA,
650  .gpioPin = 22,
651  .extInt = 6,
652  .extIntAvail = false,
653  .adc0Channel = 255,
654  .adc1Channel = 255,
655  .dacChannel = 255,
656  .sercomNum = 3,
657  .sercomPadNum = 0,
658  .tcNum = 4,
659  .tcPadNum = 0,
660  .tccNum = 1,
661  .tccPadNum = 6,
662  .gclkNum = 255,
663 };
664 const PeripheralRoute Mtr2_B_Sdrvr2_PWMB = {
665  .pin_raw = 43,
666  .gpioPort = PORTC,
667  .gpioPin = 13,
668  .extInt = 13,
669  .extIntAvail = false,
670  .adc0Channel = 255,
671  .adc1Channel = 255,
672  .dacChannel = 255,
673  .sercomNum = 7,
674  .sercomPadNum = 1,
675  .tcNum = 255,
676  .tcPadNum = 255,
677  .tccNum = 0,
678  .tccPadNum = 3,
679  .gclkNum = 255,
680 };
681 const PeripheralRoute Mtr2_HLFB_Sdrvr2_Trig = {
682  .pin_raw = 84,
683  .gpioPort = PORTC,
684  .gpioPin = 26,
685  .extInt = 10,
686  .extIntAvail = true,
687  .adc0Channel = 255,
688  .adc1Channel = 255,
689  .dacChannel = 255,
690  .sercomNum = 255,
691  .sercomPadNum = 255,
692  .tcNum = 255,
693  .tcPadNum = 255,
694  .tccNum = 255,
695  .tccPadNum = 255,
696  .gclkNum = 255,
697 };
698 const PeripheralRoute Mtr3_An_Sdrvr3_PWMA = {
699  .pin_raw = 52,
700  .gpioPort = PORTA,
701  .gpioPin = 16,
702  .extInt = 0,
703  .extIntAvail = false,
704  .adc0Channel = 255,
705  .adc1Channel = 255,
706  .dacChannel = 255,
707  .sercomNum = 1,
708  .sercomPadNum = 0,
709  .tcNum = 2,
710  .tcPadNum = 0,
711  .tccNum = 1,
712  .tccPadNum = 0,
713  .gclkNum = 2,
714 };
715 const PeripheralRoute Mtr3_B_Sdrvr3_PWMB = {
716  .pin_raw = 40,
717  .gpioPort = PORTC,
718  .gpioPin = 10,
719  .extInt = 10,
720  .extIntAvail = false,
721  .adc0Channel = 255,
722  .adc1Channel = 255,
723  .dacChannel = 255,
724  .sercomNum = 6,
725  .sercomPadNum = 2,
726  .tcNum = 255,
727  .tcPadNum = 255,
728  .tccNum = 0,
729  .tccPadNum = 0,
730  .gclkNum = 255,
731 };
732 const PeripheralRoute Mtr3_HLFB_Sdrvr3_Trig = {
733  .pin_raw = 96,
734  .gpioPort = PORTB,
735  .gpioPin = 31,
736  .extInt = 15,
737  .extIntAvail = true,
738  .adc0Channel = 255,
739  .adc1Channel = 255,
740  .dacChannel = 255,
741  .sercomNum = 255,
742  .sercomPadNum = 255,
743  .tcNum = 0,
744  .tcPadNum = 1,
745  .tccNum = 4,
746  .tccPadNum = 1,
747  .gclkNum = 255,
748 };
749 const PeripheralRoute OUT00 = {
750  .pin_raw = 1,
751  .gpioPort = PORTA,
752  .gpioPin = 0,
753  .extInt = 0,
754  .extIntAvail = false,
755  .adc0Channel = 255,
756  .adc1Channel = 255,
757  .dacChannel = 255,
758  .sercomNum = 255,
759  .sercomPadNum = 255,
760  .tcNum = 2,
761  .tcPadNum = 0,
762  .tccNum = 255,
763  .tccPadNum = 255,
764  .gclkNum = 255,
765 };
766 const PeripheralRoute OUT01 = {
767  .pin_raw = 2,
768  .gpioPort = PORTA,
769  .gpioPin = 1,
770  .extInt = 1,
771  .extIntAvail = false,
772  .adc0Channel = 255,
773  .adc1Channel = 255,
774  .dacChannel = 255,
775  .sercomNum = 255,
776  .sercomPadNum = 255,
777  .tcNum = 2,
778  .tcPadNum = 1,
779  .tccNum = 255,
780  .tccPadNum = 255,
781  .gclkNum = 255,
782 };
783 const PeripheralRoute OUT02 = {
784  .pin_raw = 19,
785  .gpioPort = PORTA,
786  .gpioPin = 6,
787  .extInt = 6,
788  .extIntAvail = false,
789  .adc0Channel = 255,
790  .adc1Channel = 255,
791  .dacChannel = 255,
792  .sercomNum = 255,
793  .sercomPadNum = 255,
794  .tcNum = 1,
795  .tcPadNum = 0,
796  .tccNum = 255,
797  .tccPadNum = 255,
798  .gclkNum = 255,
799 };
800 const PeripheralRoute OUT03 = {
801  .pin_raw = 20,
802  .gpioPort = PORTA,
803  .gpioPin = 7,
804  .extInt = 7,
805  .extIntAvail = false,
806  .adc0Channel = 255,
807  .adc1Channel = 255,
808  .dacChannel = 255,
809  .sercomNum = 255,
810  .sercomPadNum = 255,
811  .tcNum = 1,
812  .tcPadNum = 1,
813  .tccNum = 255,
814  .tccPadNum = 255,
815  .gclkNum = 255,
816 };
817 const PeripheralRoute OUT04_ENABLE04 = {
818  .pin_raw = 64,
819  .gpioPort = PORTB,
820  .gpioPin = 16,
821  .extInt = 0,
822  .extIntAvail = false,
823  .adc0Channel = 255,
824  .adc1Channel = 255,
825  .dacChannel = 255,
826  .sercomNum = 5,
827  .sercomPadNum = 0,
828  .tcNum = 6,
829  .tcPadNum = 0,
830  .tccNum = 3,
831  .tccPadNum = 0,
832  .gclkNum = 2,
833 };
834 const PeripheralRoute OUT05_ENABLE05 = {
835  .pin_raw = 100,
836  .gpioPort = PORTB,
837  .gpioPin = 3,
838  .extInt = 3,
839  .extIntAvail = false,
840  .adc0Channel = 255,
841  .adc1Channel = 255,
842  .dacChannel = 255,
843  .sercomNum = 255,
844  .sercomPadNum = 255,
845  .tcNum = 6,
846  .tcPadNum = 1,
847  .tccNum = 255,
848  .tccPadNum = 255,
849  .gclkNum = 255,
850 };
851 const PeripheralRoute OutFault_04or05 = {
852  .pin_raw = 97,
853  .gpioPort = PORTB,
854  .gpioPin = 0,
855  .extInt = 0,
856  .extIntAvail = false,
857  .adc0Channel = 255,
858  .adc1Channel = 255,
859  .dacChannel = 255,
860  .sercomNum = 255,
861  .sercomPadNum = 255,
862  .tcNum = 7,
863  .tcPadNum = 0,
864  .tccNum = 255,
865  .tccPadNum = 255,
866  .gclkNum = 255,
867 };
868 const PeripheralRoute PHY_INT = {
869  .pin_raw = 86,
870  .gpioPort = PORTC,
871  .gpioPin = 28,
872  .extInt = 12,
873  .extIntAvail = true,
874  .adc0Channel = 255,
875  .adc1Channel = 255,
876  .dacChannel = 255,
877  .sercomNum = 1,
878  .sercomPadNum = 1,
879  .tcNum = 255,
880  .tcPadNum = 255,
881  .tccNum = 255,
882  .tccPadNum = 255,
883  .gclkNum = 255,
884 };
885 const PeripheralRoute PHY_MDC = {
886  .pin_raw = 41,
887  .gpioPort = PORTC,
888  .gpioPin = 11,
889  .extInt = 11,
890  .extIntAvail = false,
891  .adc0Channel = 255,
892  .adc1Channel = 255,
893  .dacChannel = 255,
894  .sercomNum = 6,
895  .sercomPadNum = 3,
896  .tcNum = 255,
897  .tcPadNum = 255,
898  .tccNum = 0,
899  .tccPadNum = 1,
900  .gclkNum = 255,
901 };
902 const PeripheralRoute PHY_MDIO = {
903  .pin_raw = 42,
904  .gpioPort = PORTC,
905  .gpioPin = 12,
906  .extInt = 12,
907  .extIntAvail = false,
908  .adc0Channel = 255,
909  .adc1Channel = 255,
910  .dacChannel = 255,
911  .sercomNum = 7,
912  .sercomPadNum = 0,
913  .tcNum = 255,
914  .tcPadNum = 255,
915  .tccNum = 0,
916  .tccPadNum = 2,
917  .gclkNum = 255,
918 };
919 const PeripheralRoute PHY_RXD0 = {
920  .pin_raw = 47,
921  .gpioPort = PORTA,
922  .gpioPin = 13,
923  .extInt = 13,
924  .extIntAvail = false,
925  .adc0Channel = 255,
926  .adc1Channel = 255,
927  .dacChannel = 255,
928  .sercomNum = 2,
929  .sercomPadNum = 1,
930  .tcNum = 2,
931  .tcPadNum = 1,
932  .tccNum = 0,
933  .tccPadNum = 7,
934  .gclkNum = 255,
935 };
936 const PeripheralRoute PHY_RXD1 = {
937  .pin_raw = 46,
938  .gpioPort = PORTA,
939  .gpioPin = 12,
940  .extInt = 12,
941  .extIntAvail = false,
942  .adc0Channel = 255,
943  .adc1Channel = 255,
944  .dacChannel = 255,
945  .sercomNum = 2,
946  .sercomPadNum = 0,
947  .tcNum = 2,
948  .tcPadNum = 0,
949  .tccNum = 0,
950  .tccPadNum = 6,
951  .gclkNum = 255,
952 };
953 const PeripheralRoute PHY_RXDV = {
954  .pin_raw = 60,
955  .gpioPort = PORTC,
956  .gpioPin = 20,
957  .extInt = 4,
958  .extIntAvail = false,
959  .adc0Channel = 255,
960  .adc1Channel = 255,
961  .dacChannel = 255,
962  .sercomNum = 255,
963  .sercomPadNum = 255,
964  .tcNum = 255,
965  .tcPadNum = 255,
966  .tccNum = 0,
967  .tccPadNum = 4,
968  .gclkNum = 255,
969 };
970 const PeripheralRoute PHY_RXER = {
971  .pin_raw = 49,
972  .gpioPort = PORTA,
973  .gpioPin = 15,
974  .extInt = 15,
975  .extIntAvail = false,
976  .adc0Channel = 255,
977  .adc1Channel = 255,
978  .dacChannel = 255,
979  .sercomNum = 2,
980  .sercomPadNum = 3,
981  .tcNum = 3,
982  .tcPadNum = 1,
983  .tccNum = 2,
984  .tccPadNum = 1,
985  .gclkNum = 1,
986 };
987 const PeripheralRoute PHY_TXCLK = {
988  .pin_raw = 48,
989  .gpioPort = PORTA,
990  .gpioPin = 14,
991  .extInt = 14,
992  .extIntAvail = false,
993  .adc0Channel = 255,
994  .adc1Channel = 255,
995  .dacChannel = 255,
996  .sercomNum = 2,
997  .sercomPadNum = 2,
998  .tcNum = 3,
999  .tcPadNum = 0,
1000  .tccNum = 2,
1001  .tccPadNum = 0,
1002  .gclkNum = 0,
1003 };
1004 const PeripheralRoute PHY_TXD0 = {
1005  .pin_raw = 54,
1006  .gpioPort = PORTA,
1007  .gpioPin = 18,
1008  .extInt = 2,
1009  .extIntAvail = false,
1010  .adc0Channel = 255,
1011  .adc1Channel = 255,
1012  .dacChannel = 255,
1013  .sercomNum = 1,
1014  .sercomPadNum = 2,
1015  .tcNum = 3,
1016  .tcPadNum = 0,
1017  .tccNum = 1,
1018  .tccPadNum = 2,
1019  .gclkNum = 255,
1020 };
1021 const PeripheralRoute PHY_TXD1 = {
1022  .pin_raw = 55,
1023  .gpioPort = PORTA,
1024  .gpioPin = 19,
1025  .extInt = 3,
1026  .extIntAvail = false,
1027  .adc0Channel = 255,
1028  .adc1Channel = 255,
1029  .dacChannel = 255,
1030  .sercomNum = 1,
1031  .sercomPadNum = 3,
1032  .tcNum = 3,
1033  .tcPadNum = 1,
1034  .tccNum = 1,
1035  .tccPadNum = 3,
1036  .gclkNum = 255,
1037 };
1038 const PeripheralRoute PHY_TXEN = {
1039  .pin_raw = 53,
1040  .gpioPort = PORTA,
1041  .gpioPin = 17,
1042  .extInt = 1,
1043  .extIntAvail = false,
1044  .adc0Channel = 255,
1045  .adc1Channel = 255,
1046  .dacChannel = 255,
1047  .sercomNum = 1,
1048  .sercomPadNum = 1,
1049  .tcNum = 2,
1050  .tcPadNum = 1,
1051  .tccNum = 1,
1052  .tccPadNum = 1,
1053  .gclkNum = 3,
1054 };
1055 const PeripheralRoute Polarity04_PWM04A = {
1056  .pin_raw = 36,
1057  .gpioPort = PORTB,
1058  .gpioPin = 14,
1059  .extInt = 14,
1060  .extIntAvail = false,
1061  .adc0Channel = 255,
1062  .adc1Channel = 255,
1063  .dacChannel = 255,
1064  .sercomNum = 4,
1065  .sercomPadNum = 2,
1066  .tcNum = 5,
1067  .tcPadNum = 0,
1068  .tccNum = 4,
1069  .tccPadNum = 0,
1070  .gclkNum = 0,
1071 };
1072 const PeripheralRoute Polarity04S_PWM04B = {
1073  .pin_raw = 37,
1074  .gpioPort = PORTB,
1075  .gpioPin = 15,
1076  .extInt = 15,
1077  .extIntAvail = false,
1078  .adc0Channel = 255,
1079  .adc1Channel = 255,
1080  .dacChannel = 255,
1081  .sercomNum = 4,
1082  .sercomPadNum = 3,
1083  .tcNum = 5,
1084  .tcPadNum = 1,
1085  .tccNum = 4,
1086  .tccPadNum = 1,
1087  .gclkNum = 1,
1088 };
1089 const PeripheralRoute Polarity05_PWM05A = {
1090  .pin_raw = 34,
1091  .gpioPort = PORTB,
1092  .gpioPin = 12,
1093  .extInt = 12,
1094  .extIntAvail = false,
1095  .adc0Channel = 255,
1096  .adc1Channel = 255,
1097  .dacChannel = 255,
1098  .sercomNum = 4,
1099  .sercomPadNum = 0,
1100  .tcNum = 4,
1101  .tcPadNum = 0,
1102  .tccNum = 3,
1103  .tccPadNum = 0,
1104  .gclkNum = 6,
1105 };
1106 const PeripheralRoute Polarity05S_PWM05B = {
1107  .pin_raw = 35,
1108  .gpioPort = PORTB,
1109  .gpioPin = 13,
1110  .extInt = 13,
1111  .extIntAvail = false,
1112  .adc0Channel = 255,
1113  .adc1Channel = 255,
1114  .dacChannel = 255,
1115  .sercomNum = 4,
1116  .sercomPadNum = 1,
1117  .tcNum = 4,
1118  .tcPadNum = 1,
1119  .tccNum = 3,
1120  .tccPadNum = 1,
1121  .gclkNum = 7,
1122 };
1123 const PeripheralRoute RESETn = {
1124  .pin_raw = 88,
1125  .gpioPort = NOT_A_PORT,
1126  .gpioPin = 0,
1127  .extInt = 255,
1128  .extIntAvail = false,
1129  .adc0Channel = 255,
1130  .adc1Channel = 255,
1131  .dacChannel = 255,
1132  .sercomNum = 255,
1133  .sercomPadNum = 255,
1134  .tcNum = 255,
1135  .tcPadNum = 255,
1136  .tccNum = 255,
1137  .tccPadNum = 255,
1138  .gclkNum = 255,
1139 };
1140 const PeripheralRoute Sdrvr2_iMon = {
1141  .pin_raw = 4,
1142  .gpioPort = PORTC,
1143  .gpioPin = 1,
1144  .extInt = 1,
1145  .extIntAvail = false,
1146  .adc0Channel = 255,
1147  .adc1Channel = 11,
1148  .dacChannel = 255,
1149  .sercomNum = 255,
1150  .sercomPadNum = 255,
1151  .tcNum = 255,
1152  .tcPadNum = 255,
1153  .tccNum = 255,
1154  .tccPadNum = 255,
1155  .gclkNum = 255,
1156 };
1157 const PeripheralRoute Sdrvr3_iMon = {
1158  .pin_raw = 3,
1159  .gpioPort = PORTC,
1160  .gpioPin = 0,
1161  .extInt = 0,
1162  .extIntAvail = false,
1163  .adc0Channel = 255,
1164  .adc1Channel = 10,
1165  .dacChannel = 255,
1166  .sercomNum = 255,
1167  .sercomPadNum = 255,
1168  .tcNum = 255,
1169  .tcPadNum = 255,
1170  .tccNum = 255,
1171  .tccPadNum = 255,
1172  .gclkNum = 255,
1173 };
1174 const PeripheralRoute SR_CLK = {
1175  .pin_raw = 21,
1176  .gpioPort = PORTC,
1177  .gpioPin = 5,
1178  .extInt = 5,
1179  .extIntAvail = false,
1180  .adc0Channel = 255,
1181  .adc1Channel = 255,
1182  .dacChannel = 255,
1183  .sercomNum = 6,
1184  .sercomPadNum = 1,
1185  .tcNum = 255,
1186  .tcPadNum = 255,
1187  .tccNum = 255,
1188  .tccPadNum = 255,
1189  .gclkNum = 255,
1190 };
1191 const PeripheralRoute SR_DATA = {
1192  .pin_raw = 23,
1193  .gpioPort = PORTC,
1194  .gpioPin = 7,
1195  .extInt = 9,
1196  .extIntAvail = false,
1197  .adc0Channel = 255,
1198  .adc1Channel = 255,
1199  .dacChannel = 255,
1200  .sercomNum = 6,
1201  .sercomPadNum = 3,
1202  .tcNum = 255,
1203  .tcPadNum = 255,
1204  .tccNum = 255,
1205  .tccPadNum = 255,
1206  .gclkNum = 255,
1207 };
1208 const PeripheralRoute SR_DATA_RET = {
1209  .pin_raw = 22,
1210  .gpioPort = PORTC,
1211  .gpioPin = 6,
1212  .extInt = 6,
1213  .extIntAvail = false,
1214  .adc0Channel = 255,
1215  .adc1Channel = 255,
1216  .dacChannel = 255,
1217  .sercomNum = 6,
1218  .sercomPadNum = 2,
1219  .tcNum = 255,
1220  .tcPadNum = 255,
1221  .tccNum = 255,
1222  .tccPadNum = 255,
1223  .gclkNum = 255,
1224 };
1225 const PeripheralRoute SR_ENn = {
1226  .pin_raw = 98,
1227  .gpioPort = PORTB,
1228  .gpioPin = 1,
1229  .extInt = 1,
1230  .extIntAvail = false,
1231  .adc0Channel = 255,
1232  .adc1Channel = 255,
1233  .dacChannel = 255,
1234  .sercomNum = 255,
1235  .sercomPadNum = 255,
1236  .tcNum = 7,
1237  .tcPadNum = 1,
1238  .tccNum = 255,
1239  .tccPadNum = 255,
1240  .gclkNum = 255,
1241 };
1242 const PeripheralRoute SR_LOAD = {
1243  .pin_raw = 99,
1244  .gpioPort = PORTB,
1245  .gpioPin = 2,
1246  .extInt = 2,
1247  .extIntAvail = false,
1248  .adc0Channel = 255,
1249  .adc1Channel = 255,
1250  .dacChannel = 255,
1251  .sercomNum = 255,
1252  .sercomPadNum = 255,
1253  .tcNum = 6,
1254  .tcPadNum = 0,
1255  .tccNum = 2,
1256  .tccPadNum = 2,
1257  .gclkNum = 255,
1258 };
1259 const PeripheralRoute SWCLK = {
1260  .pin_raw = 93,
1261  .gpioPort = PORTA,
1262  .gpioPin = 30,
1263  .extInt = 14,
1264  .extIntAvail = false,
1265  .adc0Channel = 255,
1266  .adc1Channel = 255,
1267  .dacChannel = 255,
1268  .sercomNum = 1,
1269  .sercomPadNum = 2,
1270  .tcNum = 6,
1271  .tcPadNum = 0,
1272  .tccNum = 2,
1273  .tccPadNum = 0,
1274  .gclkNum = 0,
1275 };
1276 const PeripheralRoute SWDIO = {
1277  .pin_raw = 94,
1278  .gpioPort = PORTA,
1279  .gpioPin = 31,
1280  .extInt = 15,
1281  .extIntAvail = false,
1282  .adc0Channel = 255,
1283  .adc1Channel = 255,
1284  .dacChannel = 255,
1285  .sercomNum = 1,
1286  .sercomPadNum = 3,
1287  .tcNum = 6,
1288  .tcPadNum = 1,
1289  .tccNum = 2,
1290  .tccPadNum = 1,
1291  .gclkNum = 255,
1292 };
1293 const PeripheralRoute SWO = {
1294  .pin_raw = 95,
1295  .gpioPort = PORTB,
1296  .gpioPin = 30,
1297  .extInt = 14,
1298  .extIntAvail = false,
1299  .adc0Channel = 255,
1300  .adc1Channel = 255,
1301  .dacChannel = 255,
1302  .sercomNum = 5,
1303  .sercomPadNum = 1,
1304  .tcNum = 0,
1305  .tcPadNum = 0,
1306  .tccNum = 4,
1307  .tccPadNum = 0,
1308  .gclkNum = 255,
1309 };
1310 const PeripheralRoute SYS_CLK = {
1311  .pin_raw = 78,
1312  .gpioPort = PORTB,
1313  .gpioPin = 22,
1314  .extInt = 6,
1315  .extIntAvail = false,
1316  .adc0Channel = 255,
1317  .adc1Channel = 255,
1318  .dacChannel = 255,
1319  .sercomNum = 1,
1320  .sercomPadNum = 2,
1321  .tcNum = 7,
1322  .tcPadNum = 0,
1323  .tccNum = 255,
1324  .tccPadNum = 255,
1325  .gclkNum = 0,
1326 };
1327 const PeripheralRoute USB_DM = {
1328  .pin_raw = 74,
1329  .gpioPort = PORTA,
1330  .gpioPin = 24,
1331  .extInt = 8,
1332  .extIntAvail = false,
1333  .adc0Channel = 255,
1334  .adc1Channel = 255,
1335  .dacChannel = 255,
1336  .sercomNum = 3,
1337  .sercomPadNum = 2,
1338  .tcNum = 5,
1339  .tcPadNum = 0,
1340  .tccNum = 2,
1341  .tccPadNum = 2,
1342  .gclkNum = 255,
1343 };
1344 const PeripheralRoute USB_DP = {
1345  .pin_raw = 75,
1346  .gpioPort = PORTA,
1347  .gpioPin = 25,
1348  .extInt = 9,
1349  .extIntAvail = false,
1350  .adc0Channel = 255,
1351  .adc1Channel = 255,
1352  .dacChannel = 255,
1353  .sercomNum = 3,
1354  .sercomPadNum = 3,
1355  .tcNum = 5,
1356  .tcPadNum = 1,
1357  .tccNum = 255,
1358  .tccPadNum = 255,
1359  .gclkNum = 255,
1360 };
1361 const PeripheralRoute Vsupply_MON_IO_4and5_RST = {
1362  .pin_raw = 5,
1363  .gpioPort = PORTC,
1364  .gpioPin = 2,
1365  .extInt = 2,
1366  .extIntAvail = false,
1367  .adc0Channel = 255,
1368  .adc1Channel = 4,
1369  .dacChannel = 255,
1370  .sercomNum = 255,
1371  .sercomPadNum = 255,
1372  .tcNum = 255,
1373  .tcPadNum = 255,
1374  .tccNum = 255,
1375  .tccPadNum = 255,
1376  .gclkNum = 255,
1377 };
1378 const PeripheralRoute XBee_CTS_IN = {
1379  .pin_raw = 83,
1380  .gpioPort = PORTC,
1381  .gpioPin = 25,
1382  .extInt = 9,
1383  .extIntAvail = false,
1384  .adc0Channel = 255,
1385  .adc1Channel = 255,
1386  .dacChannel = 255,
1387  .sercomNum = 2,
1388  .sercomPadNum = 3,
1389  .tcNum = 255,
1390  .tcPadNum = 255,
1391  .tccNum = 255,
1392  .tccPadNum = 255,
1393  .gclkNum = 255,
1394 };
1395 const PeripheralRoute XBee_RTS_OUT = {
1396  .pin_raw = 82,
1397  .gpioPort = PORTC,
1398  .gpioPin = 24,
1399  .extInt = 8,
1400  .extIntAvail = false,
1401  .adc0Channel = 255,
1402  .adc1Channel = 255,
1403  .dacChannel = 255,
1404  .sercomNum = 2,
1405  .sercomPadNum = 2,
1406  .tcNum = 255,
1407  .tcPadNum = 255,
1408  .tccNum = 255,
1409  .tccPadNum = 255,
1410  .gclkNum = 255,
1411 };
1412 const PeripheralRoute XBee_Rx_IN = {
1413  .pin_raw = 80,
1414  .gpioPort = PORTB,
1415  .gpioPin = 24,
1416  .extInt = 8,
1417  .extIntAvail = false,
1418  .adc0Channel = 255,
1419  .adc1Channel = 255,
1420  .dacChannel = 255,
1421  .sercomNum = 2,
1422  .sercomPadNum = 1,
1423  .tcNum = 255,
1424  .tcPadNum = 255,
1425  .tccNum = 255,
1426  .tccPadNum = 255,
1427  .gclkNum = 255,
1428 };
1429 const PeripheralRoute XBee_Tx_OUT = {
1430  .pin_raw = 81,
1431  .gpioPort = PORTB,
1432  .gpioPin = 25,
1433  .extInt = 9,
1434  .extIntAvail = false,
1435  .adc0Channel = 255,
1436  .adc1Channel = 255,
1437  .dacChannel = 255,
1438  .sercomNum = 2,
1439  .sercomPadNum = 0,
1440  .tcNum = 255,
1441  .tcPadNum = 255,
1442  .tccNum = 255,
1443  .tccPadNum = 255,
1444  .gclkNum = 255,
1445 };
1446 #endif // HIDE_FROM_DOXYGEN
1447 
1448 // start complaining about -Wpedantic and -Wmissing-field-initializers again
1449 #pragma GCC diagnostic pop
1450 
1451 } // ClearCore namespace
1452 
1453 #ifdef __cplusplus
1454 #include "Connector.h"
1455 }
1456 #endif
1457 
1458 #endif // __HARDWAREMAPPING_H__
Defines the Peripheral Route structure, used in HardwareMapping.
Namespace to encompass the ClearCore board API.
Definition: AdcManager.h:36
Base class for all connector classes.