RTEMS CPU Kit with SuperCore  4.11.3
iox256a3b.h
Go to the documentation of this file.
1 
9 /*
10  * Copyright (c) 2009 Atmel Corporation
11  * All rights reserved.
12  *
13  * Redistribution and use in source and binary forms, with or without
14  * modification, are permitted provided that the following conditions are met:
15  *
16  * * Redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer.
18  *
19  * * Redistributions in binary form must reproduce the above copyright
20  * notice, this list of conditions and the following disclaimer in
21  * the documentation and/or other materials provided with the
22  * distribution.
23  *
24  * * Neither the name of the copyright holders nor the names of
25  * contributors may be used to endorse or promote products derived
26  * from this software without specific prior written permission.
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
32  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
35  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
36  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
37  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38  * POSSIBILITY OF SUCH DAMAGE.
39  */
40 
41 #ifndef _AVR_IO_H_
42 # error "Include <avr/io.h> instead of this file."
43 #endif
44 
45 #ifndef _AVR_IOXXX_H_
46 # define _AVR_IOXXX_H_ "iox256a3b.h"
47 #else
48 # error "Attempt to include more than one <avr/ioXXX.h> file."
49 #endif
50 
51 
52 #ifndef _AVR_ATxmega256A3B_H_
53 #define _AVR_ATxmega256A3B_H_ 1
54 
62 /* Ungrouped common registers */
63 #define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
64 #define GPIO1 _SFR_MEM8(0x0001) /* General Purpose IO Register 1 */
65 #define GPIO2 _SFR_MEM8(0x0002) /* General Purpose IO Register 2 */
66 #define GPIO3 _SFR_MEM8(0x0003) /* General Purpose IO Register 3 */
67 #define GPIO4 _SFR_MEM8(0x0004) /* General Purpose IO Register 4 */
68 #define GPIO5 _SFR_MEM8(0x0005) /* General Purpose IO Register 5 */
69 #define GPIO6 _SFR_MEM8(0x0006) /* General Purpose IO Register 6 */
70 #define GPIO7 _SFR_MEM8(0x0007) /* General Purpose IO Register 7 */
71 #define GPIO8 _SFR_MEM8(0x0008) /* General Purpose IO Register 8 */
72 #define GPIO9 _SFR_MEM8(0x0009) /* General Purpose IO Register 9 */
73 #define GPIOA _SFR_MEM8(0x000A) /* General Purpose IO Register 10 */
74 #define GPIOB _SFR_MEM8(0x000B) /* General Purpose IO Register 11 */
75 #define GPIOC _SFR_MEM8(0x000C) /* General Purpose IO Register 12 */
76 #define GPIOD _SFR_MEM8(0x000D) /* General Purpose IO Register 13 */
77 #define GPIOE _SFR_MEM8(0x000E) /* General Purpose IO Register 14 */
78 #define GPIOF _SFR_MEM8(0x000F) /* General Purpose IO Register 15 */
79 
80 #define CCP _SFR_MEM8(0x0034) /* Configuration Change Protection */
81 #define RAMPD _SFR_MEM8(0x0038) /* Ramp D */
82 #define RAMPX _SFR_MEM8(0x0039) /* Ramp X */
83 #define RAMPY _SFR_MEM8(0x003A) /* Ramp Y */
84 #define RAMPZ _SFR_MEM8(0x003B) /* Ramp Z */
85 #define EIND _SFR_MEM8(0x003C) /* Extended Indirect Jump */
86 #define SPL _SFR_MEM8(0x003D) /* Stack Pointer Low */
87 #define SPH _SFR_MEM8(0x003E) /* Stack Pointer High */
88 #define SREG _SFR_MEM8(0x003F) /* Status Register */
89 
90 
91 /* C Language Only */
92 #if !defined (__ASSEMBLER__)
93 
94 #include <stdint.h>
95 
96 typedef volatile uint8_t register8_t;
97 typedef volatile uint16_t register16_t;
98 typedef volatile uint32_t register32_t;
99 
100 
101 #ifdef _WORDREGISTER
102 #undef _WORDREGISTER
103 #endif
104 #define _WORDREGISTER(regname) \
105  __extension__ union \
106  { \
107  register16_t regname; \
108  struct \
109  { \
110  register8_t regname ## L; \
111  register8_t regname ## H; \
112  }; \
113  }
114 
115 #ifdef _DWORDREGISTER
116 #undef _DWORDREGISTER
117 #endif
118 #define _DWORDREGISTER(regname) \
119  __extension__ union \
120  { \
121  register32_t regname; \
122  struct \
123  { \
124  register8_t regname ## 0; \
125  register8_t regname ## 1; \
126  register8_t regname ## 2; \
127  register8_t regname ## 3; \
128  }; \
129  }
130 
131 
132 /*
133 ==========================================================================
134 IO Module Structures
135 ==========================================================================
136 */
137 
138 
139 /*
140 --------------------------------------------------------------------------
141 XOCD - On-Chip Debug System
142 --------------------------------------------------------------------------
143 */
144 
145 /* On-Chip Debug System */
146 typedef struct OCD_struct
147 {
148  register8_t OCDR0; /* OCD Register 0 */
149  register8_t OCDR1; /* OCD Register 1 */
150 } OCD_t;
151 
152 
153 /* CCP signatures */
154 typedef enum CCP_enum
155 {
156  CCP_SPM_gc = (0x9D<<0), /* SPM Instruction Protection */
157  CCP_IOREG_gc = (0xD8<<0), /* IO Register Protection */
158 } CCP_t;
159 
160 
161 /*
162 --------------------------------------------------------------------------
163 CLK - Clock System
164 --------------------------------------------------------------------------
165 */
166 
167 /* Clock System */
168 typedef struct CLK_struct
169 {
170  register8_t CTRL; /* Control Register */
171  register8_t PSCTRL; /* Prescaler Control Register */
172  register8_t LOCK; /* Lock register */
173  register8_t RTCCTRL; /* RTC Control Register */
174 } CLK_t;
175 
176 /*
177 --------------------------------------------------------------------------
178 CLK - Clock System
179 --------------------------------------------------------------------------
180 */
181 
182 /* Power Reduction */
183 typedef struct PR_struct
184 {
185  register8_t PRGEN; /* General Power Reduction */
186  register8_t PRPA; /* Power Reduction Port A */
187  register8_t PRPB; /* Power Reduction Port B */
188  register8_t PRPC; /* Power Reduction Port C */
189  register8_t PRPD; /* Power Reduction Port D */
190  register8_t PRPE; /* Power Reduction Port E */
191  register8_t PRPF; /* Power Reduction Port F */
192 } PR_t;
193 
194 /* System Clock Selection */
195 typedef enum CLK_SCLKSEL_enum
196 {
197  CLK_SCLKSEL_RC2M_gc = (0x00<<0), /* Internal 2MHz RC Oscillator */
198  CLK_SCLKSEL_RC32M_gc = (0x01<<0), /* Internal 32MHz RC Oscillator */
199  CLK_SCLKSEL_RC32K_gc = (0x02<<0), /* Internal 32kHz RC Oscillator */
200  CLK_SCLKSEL_XOSC_gc = (0x03<<0), /* External Crystal Oscillator or Clock */
201  CLK_SCLKSEL_PLL_gc = (0x04<<0), /* Phase Locked Loop */
202 } CLK_SCLKSEL_t;
203 
204 /* Prescaler A Division Factor */
205 typedef enum CLK_PSADIV_enum
206 {
207  CLK_PSADIV_1_gc = (0x00<<2), /* Divide by 1 */
208  CLK_PSADIV_2_gc = (0x01<<2), /* Divide by 2 */
209  CLK_PSADIV_4_gc = (0x03<<2), /* Divide by 4 */
210  CLK_PSADIV_8_gc = (0x05<<2), /* Divide by 8 */
211  CLK_PSADIV_16_gc = (0x07<<2), /* Divide by 16 */
212  CLK_PSADIV_32_gc = (0x09<<2), /* Divide by 32 */
213  CLK_PSADIV_64_gc = (0x0B<<2), /* Divide by 64 */
214  CLK_PSADIV_128_gc = (0x0D<<2), /* Divide by 128 */
215  CLK_PSADIV_256_gc = (0x0F<<2), /* Divide by 256 */
216  CLK_PSADIV_512_gc = (0x11<<2), /* Divide by 512 */
217 } CLK_PSADIV_t;
218 
219 /* Prescaler B and C Division Factor */
220 typedef enum CLK_PSBCDIV_enum
221 {
222  CLK_PSBCDIV_1_1_gc = (0x00<<0), /* Divide B by 1 and C by 1 */
223  CLK_PSBCDIV_1_2_gc = (0x01<<0), /* Divide B by 1 and C by 2 */
224  CLK_PSBCDIV_4_1_gc = (0x02<<0), /* Divide B by 4 and C by 1 */
225  CLK_PSBCDIV_2_2_gc = (0x03<<0), /* Divide B by 2 and C by 2 */
226 } CLK_PSBCDIV_t;
227 
228 /* RTC Clock Source */
229 typedef enum CLK_RTCSRC_enum
230 {
231  CLK_RTCSRC_ULP_gc = (0x00<<1), /* 1kHz from internal 32kHz ULP */
232  CLK_RTCSRC_TOSC_gc = (0x01<<1), /* 1kHz from 32kHz crystal oscillator on TOSC */
233  CLK_RTCSRC_RCOSC_gc = (0x02<<1), /* 1kHz from internal 32kHz RC oscillator */
234  CLK_RTCSRC_TOSC32_gc = (0x05<<1), /* 32kHz from 32kHz crystal oscillator on TOSC */
235 } CLK_RTCSRC_t;
236 
237 
238 /*
239 --------------------------------------------------------------------------
240 SLEEP - Sleep Controller
241 --------------------------------------------------------------------------
242 */
243 
244 /* Sleep Controller */
245 typedef struct SLEEP_struct
246 {
247  register8_t CTRL; /* Control Register */
248 } SLEEP_t;
249 
250 /* Sleep Mode */
251 typedef enum SLEEP_SMODE_enum
252 {
253  SLEEP_SMODE_IDLE_gc = (0x00<<1), /* Idle mode */
254  SLEEP_SMODE_PDOWN_gc = (0x02<<1), /* Power-down Mode */
255  SLEEP_SMODE_PSAVE_gc = (0x03<<1), /* Power-save Mode */
256  SLEEP_SMODE_STDBY_gc = (0x06<<1), /* Standby Mode */
257  SLEEP_SMODE_ESTDBY_gc = (0x07<<1), /* Extended Standby Mode */
258 } SLEEP_SMODE_t;
259 
260 
261 /*
262 --------------------------------------------------------------------------
263 OSC - Oscillator
264 --------------------------------------------------------------------------
265 */
266 
267 /* Oscillator */
268 typedef struct OSC_struct
269 {
270  register8_t CTRL; /* Control Register */
271  register8_t STATUS; /* Status Register */
272  register8_t XOSCCTRL; /* External Oscillator Control Register */
273  register8_t XOSCFAIL; /* External Oscillator Failure Detection Register */
274  register8_t RC32KCAL; /* 32kHz Internal Oscillator Calibration Register */
275  register8_t PLLCTRL; /* PLL Control REgister */
276  register8_t DFLLCTRL; /* DFLL Control Register */
277 } OSC_t;
278 
279 /* Oscillator Frequency Range */
280 typedef enum OSC_FRQRANGE_enum
281 {
282  OSC_FRQRANGE_04TO2_gc = (0x00<<6), /* 0.4 - 2 MHz */
283  OSC_FRQRANGE_2TO9_gc = (0x01<<6), /* 2 - 9 MHz */
284  OSC_FRQRANGE_9TO12_gc = (0x02<<6), /* 9 - 12 MHz */
285  OSC_FRQRANGE_12TO16_gc = (0x03<<6), /* 12 - 16 MHz */
286 } OSC_FRQRANGE_t;
287 
288 /* External Oscillator Selection and Startup Time */
289 typedef enum OSC_XOSCSEL_enum
290 {
291  OSC_XOSCSEL_EXTCLK_gc = (0x00<<0), /* External Clock - 6 CLK */
292  OSC_XOSCSEL_32KHz_gc = (0x02<<0), /* 32kHz TOSC - 32K CLK */
293  OSC_XOSCSEL_XTAL_256CLK_gc = (0x03<<0), /* 0.4-16MHz XTAL - 256 CLK */
294  OSC_XOSCSEL_XTAL_1KCLK_gc = (0x07<<0), /* 0.4-16MHz XTAL - 1K CLK */
295  OSC_XOSCSEL_XTAL_16KCLK_gc = (0x0B<<0), /* 0.4-16MHz XTAL - 16K CLK */
296 } OSC_XOSCSEL_t;
297 
298 /* PLL Clock Source */
299 typedef enum OSC_PLLSRC_enum
300 {
301  OSC_PLLSRC_RC2M_gc = (0x00<<6), /* Internal 2MHz RC Oscillator */
302  OSC_PLLSRC_RC32M_gc = (0x02<<6), /* Internal 32MHz RC Oscillator */
303  OSC_PLLSRC_XOSC_gc = (0x03<<6), /* External Oscillator */
304 } OSC_PLLSRC_t;
305 
306 
307 /*
308 --------------------------------------------------------------------------
309 DFLL - DFLL
310 --------------------------------------------------------------------------
311 */
312 
313 /* DFLL */
314 typedef struct DFLL_struct
315 {
316  register8_t CTRL; /* Control Register */
317  register8_t reserved_0x01;
318  register8_t CALA; /* Calibration Register A */
319  register8_t CALB; /* Calibration Register B */
320  register8_t COMP0; /* Oscillator Compare Register 0 */
321  register8_t COMP1; /* Oscillator Compare Register 1 */
322  register8_t COMP2; /* Oscillator Compare Register 2 */
323  register8_t reserved_0x07;
324 } DFLL_t;
325 
326 
327 /*
328 --------------------------------------------------------------------------
329 RST - Reset
330 --------------------------------------------------------------------------
331 */
332 
333 /* Reset */
334 typedef struct RST_struct
335 {
336  register8_t STATUS; /* Status Register */
337  register8_t CTRL; /* Control Register */
338 } RST_t;
339 
340 
341 /*
342 --------------------------------------------------------------------------
343 WDT - Watch-Dog Timer
344 --------------------------------------------------------------------------
345 */
346 
347 /* Watch-Dog Timer */
348 typedef struct WDT_struct
349 {
350  register8_t CTRL; /* Control */
351  register8_t WINCTRL; /* Windowed Mode Control */
352  register8_t STATUS; /* Status */
353 } WDT_t;
354 
355 /* Period setting */
356 typedef enum WDT_PER_enum
357 {
358  WDT_PER_8CLK_gc = (0x00<<2), /* 8 cycles (8ms @ 3.3V) */
359  WDT_PER_16CLK_gc = (0x01<<2), /* 16 cycles (16ms @ 3.3V) */
360  WDT_PER_32CLK_gc = (0x02<<2), /* 32 cycles (32ms @ 3.3V) */
361  WDT_PER_64CLK_gc = (0x03<<2), /* 64 cycles (64ms @ 3.3V) */
362  WDT_PER_128CLK_gc = (0x04<<2), /* 128 cycles (0.125s @ 3.3V) */
363  WDT_PER_256CLK_gc = (0x05<<2), /* 256 cycles (0.25s @ 3.3V) */
364  WDT_PER_512CLK_gc = (0x06<<2), /* 512 cycles (0.5s @ 3.3V) */
365  WDT_PER_1KCLK_gc = (0x07<<2), /* 1K cycles (1s @ 3.3V) */
366  WDT_PER_2KCLK_gc = (0x08<<2), /* 2K cycles (2s @ 3.3V) */
367  WDT_PER_4KCLK_gc = (0x09<<2), /* 4K cycles (4s @ 3.3V) */
368  WDT_PER_8KCLK_gc = (0x0A<<2), /* 8K cycles (8s @ 3.3V) */
369 } WDT_PER_t;
370 
371 /* Closed window period */
372 typedef enum WDT_WPER_enum
373 {
374  WDT_WPER_8CLK_gc = (0x00<<2), /* 8 cycles (8ms @ 3.3V) */
375  WDT_WPER_16CLK_gc = (0x01<<2), /* 16 cycles (16ms @ 3.3V) */
376  WDT_WPER_32CLK_gc = (0x02<<2), /* 32 cycles (32ms @ 3.3V) */
377  WDT_WPER_64CLK_gc = (0x03<<2), /* 64 cycles (64ms @ 3.3V) */
378  WDT_WPER_128CLK_gc = (0x04<<2), /* 128 cycles (0.125s @ 3.3V) */
379  WDT_WPER_256CLK_gc = (0x05<<2), /* 256 cycles (0.25s @ 3.3V) */
380  WDT_WPER_512CLK_gc = (0x06<<2), /* 512 cycles (0.5s @ 3.3V) */
381  WDT_WPER_1KCLK_gc = (0x07<<2), /* 1K cycles (1s @ 3.3V) */
382  WDT_WPER_2KCLK_gc = (0x08<<2), /* 2K cycles (2s @ 3.3V) */
383  WDT_WPER_4KCLK_gc = (0x09<<2), /* 4K cycles (4s @ 3.3V) */
384  WDT_WPER_8KCLK_gc = (0x0A<<2), /* 8K cycles (8s @ 3.3V) */
385 } WDT_WPER_t;
386 
387 
388 /*
389 --------------------------------------------------------------------------
390 MCU - MCU Control
391 --------------------------------------------------------------------------
392 */
393 
394 /* MCU Control */
395 typedef struct MCU_struct
396 {
397  register8_t DEVID0; /* Device ID byte 0 */
398  register8_t DEVID1; /* Device ID byte 1 */
399  register8_t DEVID2; /* Device ID byte 2 */
400  register8_t REVID; /* Revision ID */
401  register8_t JTAGUID; /* JTAG User ID */
402  register8_t reserved_0x05;
403  register8_t MCUCR; /* MCU Control */
404  register8_t reserved_0x07;
405  register8_t EVSYSLOCK; /* Event System Lock */
406  register8_t AWEXLOCK; /* AWEX Lock */
407  register8_t reserved_0x0A;
408  register8_t reserved_0x0B;
409 } MCU_t;
410 
411 
412 /*
413 --------------------------------------------------------------------------
414 PMIC - Programmable Multi-level Interrupt Controller
415 --------------------------------------------------------------------------
416 */
417 
418 /* Programmable Multi-level Interrupt Controller */
419 typedef struct PMIC_struct
420 {
421  register8_t STATUS; /* Status Register */
422  register8_t INTPRI; /* Interrupt Priority */
423  register8_t CTRL; /* Control Register */
424 } PMIC_t;
425 
426 
427 /*
428 --------------------------------------------------------------------------
429 DMA - DMA Controller
430 --------------------------------------------------------------------------
431 */
432 
433 /* DMA Channel */
434 typedef struct DMA_CH_struct
435 {
436  register8_t CTRLA; /* Channel Control */
437  register8_t CTRLB; /* Channel Control */
438  register8_t ADDRCTRL; /* Address Control */
439  register8_t TRIGSRC; /* Channel Trigger Source */
440  _WORDREGISTER(TRFCNT); /* Channel Block Transfer Count */
441  register8_t REPCNT; /* Channel Repeat Count */
442  register8_t reserved_0x07;
443  register8_t SRCADDR0; /* Channel Source Address 0 */
444  register8_t SRCADDR1; /* Channel Source Address 1 */
445  register8_t SRCADDR2; /* Channel Source Address 2 */
446  register8_t reserved_0x0B;
447  register8_t DESTADDR0; /* Channel Destination Address 0 */
448  register8_t DESTADDR1; /* Channel Destination Address 1 */
449  register8_t DESTADDR2; /* Channel Destination Address 2 */
450  register8_t reserved_0x0F;
451 } DMA_CH_t;
452 
453 /*
454 --------------------------------------------------------------------------
455 DMA - DMA Controller
456 --------------------------------------------------------------------------
457 */
458 
459 /* DMA Controller */
460 typedef struct DMA_struct
461 {
462  register8_t CTRL; /* Control */
463  register8_t reserved_0x01;
464  register8_t reserved_0x02;
465  register8_t INTFLAGS; /* Transfer Interrupt Status */
466  register8_t STATUS; /* Status */
467  register8_t reserved_0x05;
468  _WORDREGISTER(TEMP); /* Temporary Register For 16/24-bit Access */
469  register8_t reserved_0x08;
470  register8_t reserved_0x09;
471  register8_t reserved_0x0A;
472  register8_t reserved_0x0B;
473  register8_t reserved_0x0C;
474  register8_t reserved_0x0D;
475  register8_t reserved_0x0E;
476  register8_t reserved_0x0F;
477  DMA_CH_t CH0; /* DMA Channel 0 */
478  DMA_CH_t CH1; /* DMA Channel 1 */
479  DMA_CH_t CH2; /* DMA Channel 2 */
480  DMA_CH_t CH3; /* DMA Channel 3 */
481 } DMA_t;
482 
483 /* Burst mode */
484 typedef enum DMA_CH_BURSTLEN_enum
485 {
486  DMA_CH_BURSTLEN_1BYTE_gc = (0x00<<0), /* 1-byte burst mode */
487  DMA_CH_BURSTLEN_2BYTE_gc = (0x01<<0), /* 2-byte burst mode */
488  DMA_CH_BURSTLEN_4BYTE_gc = (0x02<<0), /* 4-byte burst mode */
489  DMA_CH_BURSTLEN_8BYTE_gc = (0x03<<0), /* 8-byte burst mode */
490 } DMA_CH_BURSTLEN_t;
491 
492 /* Source address reload mode */
493 typedef enum DMA_CH_SRCRELOAD_enum
494 {
495  DMA_CH_SRCRELOAD_NONE_gc = (0x00<<6), /* No reload */
496  DMA_CH_SRCRELOAD_BLOCK_gc = (0x01<<6), /* Reload at end of block */
497  DMA_CH_SRCRELOAD_BURST_gc = (0x02<<6), /* Reload at end of burst */
498  DMA_CH_SRCRELOAD_TRANSACTION_gc = (0x03<<6), /* Reload at end of transaction */
499 } DMA_CH_SRCRELOAD_t;
500 
501 /* Source addressing mode */
502 typedef enum DMA_CH_SRCDIR_enum
503 {
504  DMA_CH_SRCDIR_FIXED_gc = (0x00<<4), /* Fixed */
505  DMA_CH_SRCDIR_INC_gc = (0x01<<4), /* Increment */
506  DMA_CH_SRCDIR_DEC_gc = (0x02<<4), /* Decrement */
507 } DMA_CH_SRCDIR_t;
508 
509 /* Destination adress reload mode */
510 typedef enum DMA_CH_DESTRELOAD_enum
511 {
512  DMA_CH_DESTRELOAD_NONE_gc = (0x00<<2), /* No reload */
513  DMA_CH_DESTRELOAD_BLOCK_gc = (0x01<<2), /* Reload at end of block */
514  DMA_CH_DESTRELOAD_BURST_gc = (0x02<<2), /* Reload at end of burst */
515  DMA_CH_DESTRELOAD_TRANSACTION_gc = (0x03<<2), /* Reload at end of transaction */
516 } DMA_CH_DESTRELOAD_t;
517 
518 /* Destination adressing mode */
519 typedef enum DMA_CH_DESTDIR_enum
520 {
521  DMA_CH_DESTDIR_FIXED_gc = (0x00<<0), /* Fixed */
522  DMA_CH_DESTDIR_INC_gc = (0x01<<0), /* Increment */
523  DMA_CH_DESTDIR_DEC_gc = (0x02<<0), /* Decrement */
524 } DMA_CH_DESTDIR_t;
525 
526 /* Transfer trigger source */
527 typedef enum DMA_CH_TRIGSRC_enum
528 {
529  DMA_CH_TRIGSRC_OFF_gc = (0x00<<0), /* Off software triggers only */
530  DMA_CH_TRIGSRC_EVSYS_CH0_gc = (0x01<<0), /* Event System Channel 0 */
531  DMA_CH_TRIGSRC_EVSYS_CH1_gc = (0x02<<0), /* Event System Channel 1 */
532  DMA_CH_TRIGSRC_EVSYS_CH2_gc = (0x03<<0), /* Event System Channel 2 */
533  DMA_CH_TRIGSRC_ADCA_CH0_gc = (0x10<<0), /* ADCA Channel 0 */
534  DMA_CH_TRIGSRC_ADCA_CH1_gc = (0x11<<0), /* ADCA Channel 1 */
535  DMA_CH_TRIGSRC_ADCA_CH2_gc = (0x12<<0), /* ADCA Channel 2 */
536  DMA_CH_TRIGSRC_ADCA_CH3_gc = (0x13<<0), /* ADCA Channel 3 */
537  DMA_CH_TRIGSRC_ADCA_CH4_gc = (0x14<<0), /* ADCA Channel 0,1,2,3 combined */
538  DMA_CH_TRIGSRC_DACA_CH0_gc = (0x15<<0), /* DACA Channel 0 */
539  DMA_CH_TRIGSRC_DACA_CH1_gc = (0x16<<0), /* DACA Channel 1 */
540  DMA_CH_TRIGSRC_ADCB_CH0_gc = (0x20<<0), /* ADCB Channel 0 */
541  DMA_CH_TRIGSRC_ADCB_CH1_gc = (0x21<<0), /* ADCB Channel 1 */
542  DMA_CH_TRIGSRC_ADCB_CH2_gc = (0x22<<0), /* ADCB Channel 2 */
543  DMA_CH_TRIGSRC_ADCB_CH3_gc = (0x23<<0), /* ADCB Channel 3 */
544  DMA_CH_TRIGSRC_ADCB_CH4_gc = (0x24<<0), /* ADCB Channel 0,1,2,3 combined */
545  DMA_CH_TRIGSRC_DACB_CH0_gc = (0x25<<0), /* DACB Channel 0 */
546  DMA_CH_TRIGSRC_DACB_CH1_gc = (0x26<<0), /* DACB Channel 1 */
547  DMA_CH_TRIGSRC_TCC0_OVF_gc = (0x40<<0), /* Timer/Counter C0 Overflow */
548  DMA_CH_TRIGSRC_TCC0_ERR_gc = (0x41<<0), /* Timer/Counter C0 Error */
549  DMA_CH_TRIGSRC_TCC0_CCA_gc = (0x42<<0), /* Timer/Counter C0 Compare or Capture A */
550  DMA_CH_TRIGSRC_TCC0_CCB_gc = (0x43<<0), /* Timer/Counter C0 Compare or Capture B */
551  DMA_CH_TRIGSRC_TCC0_CCC_gc = (0x44<<0), /* Timer/Counter C0 Compare or Capture C */
552  DMA_CH_TRIGSRC_TCC0_CCD_gc = (0x45<<0), /* Timer/Counter C0 Compare or Capture D */
553  DMA_CH_TRIGSRC_TCC1_OVF_gc = (0x46<<0), /* Timer/Counter C1 Overflow */
554  DMA_CH_TRIGSRC_TCC1_ERR_gc = (0x47<<0), /* Timer/Counter C1 Error */
555  DMA_CH_TRIGSRC_TCC1_CCA_gc = (0x48<<0), /* Timer/Counter C1 Compare or Capture A */
556  DMA_CH_TRIGSRC_TCC1_CCB_gc = (0x49<<0), /* Timer/Counter C1 Compare or Capture B */
557  DMA_CH_TRIGSRC_SPIC_gc = (0x4A<<0), /* SPI C Transfer Complete */
558  DMA_CH_TRIGSRC_USARTC0_RXC_gc = (0x4B<<0), /* USART C0 Receive Complete */
559  DMA_CH_TRIGSRC_USARTC0_DRE_gc = (0x4C<<0), /* USART C0 Data Register Empty */
560  DMA_CH_TRIGSRC_USARTC1_RXC_gc = (0x4E<<0), /* USART C1 Receive Complete */
561  DMA_CH_TRIGSRC_USARTC1_DRE_gc = (0x4F<<0), /* USART C1 Data Register Empty */
562  DMA_CH_TRIGSRC_TCD0_OVF_gc = (0x60<<0), /* Timer/Counter D0 Overflow */
563  DMA_CH_TRIGSRC_TCD0_ERR_gc = (0x61<<0), /* Timer/Counter D0 Error */
564  DMA_CH_TRIGSRC_TCD0_CCA_gc = (0x62<<0), /* Timer/Counter D0 Compare or Capture A */
565  DMA_CH_TRIGSRC_TCD0_CCB_gc = (0x63<<0), /* Timer/Counter D0 Compare or Capture B */
566  DMA_CH_TRIGSRC_TCD0_CCC_gc = (0x64<<0), /* Timer/Counter D0 Compare or Capture C */
567  DMA_CH_TRIGSRC_TCD0_CCD_gc = (0x65<<0), /* Timer/Counter D0 Compare or Capture D */
568  DMA_CH_TRIGSRC_TCD1_OVF_gc = (0x66<<0), /* Timer/Counter D1 Overflow */
569  DMA_CH_TRIGSRC_TCD1_ERR_gc = (0x67<<0), /* Timer/Counter D1 Error */
570  DMA_CH_TRIGSRC_TCD1_CCA_gc = (0x68<<0), /* Timer/Counter D1 Compare or Capture A */
571  DMA_CH_TRIGSRC_TCD1_CCB_gc = (0x69<<0), /* Timer/Counter D1 Compare or Capture B */
572  DMA_CH_TRIGSRC_SPID_gc = (0x6A<<0), /* SPI D Transfer Complete */
573  DMA_CH_TRIGSRC_USARTD0_RXC_gc = (0x6B<<0), /* USART D0 Receive Complete */
574  DMA_CH_TRIGSRC_USARTD0_DRE_gc = (0x6C<<0), /* USART D0 Data Register Empty */
575  DMA_CH_TRIGSRC_USARTD1_RXC_gc = (0x6E<<0), /* USART D1 Receive Complete */
576  DMA_CH_TRIGSRC_USARTD1_DRE_gc = (0x6F<<0), /* USART D1 Data Register Empty */
577  DMA_CH_TRIGSRC_TCE0_OVF_gc = (0x80<<0), /* Timer/Counter E0 Overflow */
578  DMA_CH_TRIGSRC_TCE0_ERR_gc = (0x81<<0), /* Timer/Counter E0 Error */
579  DMA_CH_TRIGSRC_TCE0_CCA_gc = (0x82<<0), /* Timer/Counter E0 Compare or Capture A */
580  DMA_CH_TRIGSRC_TCE0_CCB_gc = (0x83<<0), /* Timer/Counter E0 Compare or Capture B */
581  DMA_CH_TRIGSRC_TCE0_CCC_gc = (0x84<<0), /* Timer/Counter E0 Compare or Capture C */
582  DMA_CH_TRIGSRC_TCE0_CCD_gc = (0x85<<0), /* Timer/Counter E0 Compare or Capture D */
583  DMA_CH_TRIGSRC_TCE1_OVF_gc = (0x86<<0), /* Timer/Counter E1 Overflow */
584  DMA_CH_TRIGSRC_TCE1_ERR_gc = (0x87<<0), /* Timer/Counter E1 Error */
585  DMA_CH_TRIGSRC_TCE1_CCA_gc = (0x88<<0), /* Timer/Counter E1 Compare or Capture A */
586  DMA_CH_TRIGSRC_TCE1_CCB_gc = (0x89<<0), /* Timer/Counter E1 Compare or Capture B */
587  DMA_CH_TRIGSRC_SPIE_gc = (0x8A<<0), /* SPI E Transfer Complete */
588  DMA_CH_TRIGSRC_USARTE0_RXC_gc = (0x8B<<0), /* USART E0 Receive Complete */
589  DMA_CH_TRIGSRC_USARTE0_DRE_gc = (0x8C<<0), /* USART E0 Data Register Empty */
590  DMA_CH_TRIGSRC_USARTE1_RXC_gc = (0x8E<<0), /* USART E1 Receive Complete */
591  DMA_CH_TRIGSRC_USARTE1_DRE_gc = (0x8F<<0), /* USART E1 Data Register Empty */
592  DMA_CH_TRIGSRC_TCF0_OVF_gc = (0xA0<<0), /* Timer/Counter F0 Overflow */
593  DMA_CH_TRIGSRC_TCF0_ERR_gc = (0xA1<<0), /* Timer/Counter F0 Error */
594  DMA_CH_TRIGSRC_TCF0_CCA_gc = (0xA2<<0), /* Timer/Counter F0 Compare or Capture A */
595  DMA_CH_TRIGSRC_TCF0_CCB_gc = (0xA3<<0), /* Timer/Counter F0 Compare or Capture B */
596  DMA_CH_TRIGSRC_TCF0_CCC_gc = (0xA4<<0), /* Timer/Counter F0 Compare or Capture C */
597  DMA_CH_TRIGSRC_TCF0_CCD_gc = (0xA5<<0), /* Timer/Counter F0 Compare or Capture D */
598  DMA_CH_TRIGSRC_TCF1_OVF_gc = (0xA6<<0), /* Timer/Counter F1 Overflow */
599  DMA_CH_TRIGSRC_TCF1_ERR_gc = (0xA7<<0), /* Timer/Counter F1 Error */
600  DMA_CH_TRIGSRC_TCF1_CCA_gc = (0xA8<<0), /* Timer/Counter F1 Compare or Capture A */
601  DMA_CH_TRIGSRC_TCF1_CCB_gc = (0xA9<<0), /* Timer/Counter F1 Compare or Capture B */
602  DMA_CH_TRIGSRC_SPIF_gc = (0xAA<<0), /* SPI F Transfer Complete */
603  DMA_CH_TRIGSRC_USARTF0_RXC_gc = (0xAB<<0), /* USART F0 Receive Complete */
604  DMA_CH_TRIGSRC_USARTF0_DRE_gc = (0xAC<<0), /* USART F0 Data Register Empty */
605  DMA_CH_TRIGSRC_USARTF1_RXC_gc = (0xAE<<0), /* USART F1 Receive Complete */
606  DMA_CH_TRIGSRC_USARTF1_DRE_gc = (0xAF<<0), /* USART F1 Data Register Empty */
607 } DMA_CH_TRIGSRC_t;
608 
609 /* Double buffering mode */
610 typedef enum DMA_DBUFMODE_enum
611 {
612  DMA_DBUFMODE_DISABLED_gc = (0x00<<2), /* Double buffering disabled */
613  DMA_DBUFMODE_CH01_gc = (0x01<<2), /* Double buffering enabled on channel 0/1 */
614  DMA_DBUFMODE_CH23_gc = (0x02<<2), /* Double buffering enabled on channel 2/3 */
615  DMA_DBUFMODE_CH01CH23_gc = (0x03<<2), /* Double buffering enabled on ch. 0/1 and ch. 2/3 */
616 } DMA_DBUFMODE_t;
617 
618 /* Priority mode */
619 typedef enum DMA_PRIMODE_enum
620 {
621  DMA_PRIMODE_RR0123_gc = (0x00<<0), /* Round Robin */
622  DMA_PRIMODE_CH0RR123_gc = (0x01<<0), /* Channel 0 > Round Robin on channel 1/2/3 */
623  DMA_PRIMODE_CH01RR23_gc = (0x02<<0), /* Channel 0 > channel 1 > Round Robin on channel 2/3 */
624  DMA_PRIMODE_CH0123_gc = (0x03<<0), /* Channel 0 > channel 1 > channel 2 > channel 3 */
625 } DMA_PRIMODE_t;
626 
627 /* Interrupt level */
628 typedef enum DMA_CH_ERRINTLVL_enum
629 {
630  DMA_CH_ERRINTLVL_OFF_gc = (0x00<<2), /* Interrupt disabled */
631  DMA_CH_ERRINTLVL_LO_gc = (0x01<<2), /* Low level */
632  DMA_CH_ERRINTLVL_MED_gc = (0x02<<2), /* Medium level */
633  DMA_CH_ERRINTLVL_HI_gc = (0x03<<2), /* High level */
634 } DMA_CH_ERRINTLVL_t;
635 
636 /* Interrupt level */
637 typedef enum DMA_CH_TRNINTLVL_enum
638 {
639  DMA_CH_TRNINTLVL_OFF_gc = (0x00<<0), /* Interrupt disabled */
640  DMA_CH_TRNINTLVL_LO_gc = (0x01<<0), /* Low level */
641  DMA_CH_TRNINTLVL_MED_gc = (0x02<<0), /* Medium level */
642  DMA_CH_TRNINTLVL_HI_gc = (0x03<<0), /* High level */
643 } DMA_CH_TRNINTLVL_t;
644 
645 
646 /*
647 --------------------------------------------------------------------------
648 EVSYS - Event System
649 --------------------------------------------------------------------------
650 */
651 
652 /* Event System */
653 typedef struct EVSYS_struct
654 {
655  register8_t CH0MUX; /* Event Channel 0 Multiplexer */
656  register8_t CH1MUX; /* Event Channel 1 Multiplexer */
657  register8_t CH2MUX; /* Event Channel 2 Multiplexer */
658  register8_t CH3MUX; /* Event Channel 3 Multiplexer */
659  register8_t CH4MUX; /* Event Channel 4 Multiplexer */
660  register8_t CH5MUX; /* Event Channel 5 Multiplexer */
661  register8_t CH6MUX; /* Event Channel 6 Multiplexer */
662  register8_t CH7MUX; /* Event Channel 7 Multiplexer */
663  register8_t CH0CTRL; /* Channel 0 Control Register */
664  register8_t CH1CTRL; /* Channel 1 Control Register */
665  register8_t CH2CTRL; /* Channel 2 Control Register */
666  register8_t CH3CTRL; /* Channel 3 Control Register */
667  register8_t CH4CTRL; /* Channel 4 Control Register */
668  register8_t CH5CTRL; /* Channel 5 Control Register */
669  register8_t CH6CTRL; /* Channel 6 Control Register */
670  register8_t CH7CTRL; /* Channel 7 Control Register */
671  register8_t STROBE; /* Event Strobe */
672  register8_t DATA; /* Event Data */
673 } EVSYS_t;
674 
675 /* Quadrature Decoder Index Recognition Mode */
676 typedef enum EVSYS_QDIRM_enum
677 {
678  EVSYS_QDIRM_00_gc = (0x00<<5), /* QDPH0 = 0, QDPH90 = 0 */
679  EVSYS_QDIRM_01_gc = (0x01<<5), /* QDPH0 = 0, QDPH90 = 1 */
680  EVSYS_QDIRM_10_gc = (0x02<<5), /* QDPH0 = 1, QDPH90 = 0 */
681  EVSYS_QDIRM_11_gc = (0x03<<5), /* QDPH0 = 1, QDPH90 = 1 */
682 } EVSYS_QDIRM_t;
683 
684 /* Digital filter coefficient */
685 typedef enum EVSYS_DIGFILT_enum
686 {
687  EVSYS_DIGFILT_1SAMPLE_gc = (0x00<<0), /* 1 SAMPLE */
688  EVSYS_DIGFILT_2SAMPLES_gc = (0x01<<0), /* 2 SAMPLES */
689  EVSYS_DIGFILT_3SAMPLES_gc = (0x02<<0), /* 3 SAMPLES */
690  EVSYS_DIGFILT_4SAMPLES_gc = (0x03<<0), /* 4 SAMPLES */
691  EVSYS_DIGFILT_5SAMPLES_gc = (0x04<<0), /* 5 SAMPLES */
692  EVSYS_DIGFILT_6SAMPLES_gc = (0x05<<0), /* 6 SAMPLES */
693  EVSYS_DIGFILT_7SAMPLES_gc = (0x06<<0), /* 7 SAMPLES */
694  EVSYS_DIGFILT_8SAMPLES_gc = (0x07<<0), /* 8 SAMPLES */
695 } EVSYS_DIGFILT_t;
696 
697 /* Event Channel multiplexer input selection */
698 typedef enum EVSYS_CHMUX_enum
699 {
700  EVSYS_CHMUX_OFF_gc = (0x00<<0), /* Off */
701  EVSYS_CHMUX_RTC_OVF_gc = (0x08<<0), /* RTC Overflow */
702  EVSYS_CHMUX_RTC_CMP_gc = (0x09<<0), /* RTC Compare Match */
703  EVSYS_CHMUX_ACA_CH0_gc = (0x10<<0), /* Analog Comparator A Channel 0 */
704  EVSYS_CHMUX_ACA_CH1_gc = (0x11<<0), /* Analog Comparator A Channel 1 */
705  EVSYS_CHMUX_ACA_WIN_gc = (0x12<<0), /* Analog Comparator A Window */
706  EVSYS_CHMUX_ACB_CH0_gc = (0x13<<0), /* Analog Comparator B Channel 0 */
707  EVSYS_CHMUX_ACB_CH1_gc = (0x14<<0), /* Analog Comparator B Channel 1 */
708  EVSYS_CHMUX_ACB_WIN_gc = (0x15<<0), /* Analog Comparator B Window */
709  EVSYS_CHMUX_ADCA_CH0_gc = (0x20<<0), /* ADC A Channel 0 */
710  EVSYS_CHMUX_ADCA_CH1_gc = (0x21<<0), /* ADC A Channel 1 */
711  EVSYS_CHMUX_ADCA_CH2_gc = (0x22<<0), /* ADC A Channel 2 */
712  EVSYS_CHMUX_ADCA_CH3_gc = (0x23<<0), /* ADC A Channel 3 */
713  EVSYS_CHMUX_ADCB_CH0_gc = (0x24<<0), /* ADC B Channel 0 */
714  EVSYS_CHMUX_ADCB_CH1_gc = (0x25<<0), /* ADC B Channel 1 */
715  EVSYS_CHMUX_ADCB_CH2_gc = (0x26<<0), /* ADC B Channel 2 */
716  EVSYS_CHMUX_ADCB_CH3_gc = (0x27<<0), /* ADC B Channel 3 */
717  EVSYS_CHMUX_PORTA_PIN0_gc = (0x50<<0), /* Port A, Pin0 */
718  EVSYS_CHMUX_PORTA_PIN1_gc = (0x51<<0), /* Port A, Pin1 */
719  EVSYS_CHMUX_PORTA_PIN2_gc = (0x52<<0), /* Port A, Pin2 */
720  EVSYS_CHMUX_PORTA_PIN3_gc = (0x53<<0), /* Port A, Pin3 */
721  EVSYS_CHMUX_PORTA_PIN4_gc = (0x54<<0), /* Port A, Pin4 */
722  EVSYS_CHMUX_PORTA_PIN5_gc = (0x55<<0), /* Port A, Pin5 */
723  EVSYS_CHMUX_PORTA_PIN6_gc = (0x56<<0), /* Port A, Pin6 */
724  EVSYS_CHMUX_PORTA_PIN7_gc = (0x57<<0), /* Port A, Pin7 */
725  EVSYS_CHMUX_PORTB_PIN0_gc = (0x58<<0), /* Port B, Pin0 */
726  EVSYS_CHMUX_PORTB_PIN1_gc = (0x59<<0), /* Port B, Pin1 */
727  EVSYS_CHMUX_PORTB_PIN2_gc = (0x5A<<0), /* Port B, Pin2 */
728  EVSYS_CHMUX_PORTB_PIN3_gc = (0x5B<<0), /* Port B, Pin3 */
729  EVSYS_CHMUX_PORTB_PIN4_gc = (0x5C<<0), /* Port B, Pin4 */
730  EVSYS_CHMUX_PORTB_PIN5_gc = (0x5D<<0), /* Port B, Pin5 */
731  EVSYS_CHMUX_PORTB_PIN6_gc = (0x5E<<0), /* Port B, Pin6 */
732  EVSYS_CHMUX_PORTB_PIN7_gc = (0x5F<<0), /* Port B, Pin7 */
733  EVSYS_CHMUX_PORTC_PIN0_gc = (0x60<<0), /* Port C, Pin0 */
734  EVSYS_CHMUX_PORTC_PIN1_gc = (0x61<<0), /* Port C, Pin1 */
735  EVSYS_CHMUX_PORTC_PIN2_gc = (0x62<<0), /* Port C, Pin2 */
736  EVSYS_CHMUX_PORTC_PIN3_gc = (0x63<<0), /* Port C, Pin3 */
737  EVSYS_CHMUX_PORTC_PIN4_gc = (0x64<<0), /* Port C, Pin4 */
738  EVSYS_CHMUX_PORTC_PIN5_gc = (0x65<<0), /* Port C, Pin5 */
739  EVSYS_CHMUX_PORTC_PIN6_gc = (0x66<<0), /* Port C, Pin6 */
740  EVSYS_CHMUX_PORTC_PIN7_gc = (0x67<<0), /* Port C, Pin7 */
741  EVSYS_CHMUX_PORTD_PIN0_gc = (0x68<<0), /* Port D, Pin0 */
742  EVSYS_CHMUX_PORTD_PIN1_gc = (0x69<<0), /* Port D, Pin1 */
743  EVSYS_CHMUX_PORTD_PIN2_gc = (0x6A<<0), /* Port D, Pin2 */
744  EVSYS_CHMUX_PORTD_PIN3_gc = (0x6B<<0), /* Port D, Pin3 */
745  EVSYS_CHMUX_PORTD_PIN4_gc = (0x6C<<0), /* Port D, Pin4 */
746  EVSYS_CHMUX_PORTD_PIN5_gc = (0x6D<<0), /* Port D, Pin5 */
747  EVSYS_CHMUX_PORTD_PIN6_gc = (0x6E<<0), /* Port D, Pin6 */
748  EVSYS_CHMUX_PORTD_PIN7_gc = (0x6F<<0), /* Port D, Pin7 */
749  EVSYS_CHMUX_PORTE_PIN0_gc = (0x70<<0), /* Port E, Pin0 */
750  EVSYS_CHMUX_PORTE_PIN1_gc = (0x71<<0), /* Port E, Pin1 */
751  EVSYS_CHMUX_PORTE_PIN2_gc = (0x72<<0), /* Port E, Pin2 */
752  EVSYS_CHMUX_PORTE_PIN3_gc = (0x73<<0), /* Port E, Pin3 */
753  EVSYS_CHMUX_PORTE_PIN4_gc = (0x74<<0), /* Port E, Pin4 */
754  EVSYS_CHMUX_PORTE_PIN5_gc = (0x75<<0), /* Port E, Pin5 */
755  EVSYS_CHMUX_PORTE_PIN6_gc = (0x76<<0), /* Port E, Pin6 */
756  EVSYS_CHMUX_PORTE_PIN7_gc = (0x77<<0), /* Port E, Pin7 */
757  EVSYS_CHMUX_PORTF_PIN0_gc = (0x78<<0), /* Port F, Pin0 */
758  EVSYS_CHMUX_PORTF_PIN1_gc = (0x79<<0), /* Port F, Pin1 */
759  EVSYS_CHMUX_PORTF_PIN2_gc = (0x7A<<0), /* Port F, Pin2 */
760  EVSYS_CHMUX_PORTF_PIN3_gc = (0x7B<<0), /* Port F, Pin3 */
761  EVSYS_CHMUX_PORTF_PIN4_gc = (0x7C<<0), /* Port F, Pin4 */
762  EVSYS_CHMUX_PORTF_PIN5_gc = (0x7D<<0), /* Port F, Pin5 */
763  EVSYS_CHMUX_PORTF_PIN6_gc = (0x7E<<0), /* Port F, Pin6 */
764  EVSYS_CHMUX_PORTF_PIN7_gc = (0x7F<<0), /* Port F, Pin7 */
765  EVSYS_CHMUX_PRESCALER_1_gc = (0x80<<0), /* Prescaler, divide by 1 */
766  EVSYS_CHMUX_PRESCALER_2_gc = (0x81<<0), /* Prescaler, divide by 2 */
767  EVSYS_CHMUX_PRESCALER_4_gc = (0x82<<0), /* Prescaler, divide by 4 */
768  EVSYS_CHMUX_PRESCALER_8_gc = (0x83<<0), /* Prescaler, divide by 8 */
769  EVSYS_CHMUX_PRESCALER_16_gc = (0x84<<0), /* Prescaler, divide by 16 */
770  EVSYS_CHMUX_PRESCALER_32_gc = (0x85<<0), /* Prescaler, divide by 32 */
771  EVSYS_CHMUX_PRESCALER_64_gc = (0x86<<0), /* Prescaler, divide by 64 */
772  EVSYS_CHMUX_PRESCALER_128_gc = (0x87<<0), /* Prescaler, divide by 128 */
773  EVSYS_CHMUX_PRESCALER_256_gc = (0x88<<0), /* Prescaler, divide by 256 */
774  EVSYS_CHMUX_PRESCALER_512_gc = (0x89<<0), /* Prescaler, divide by 512 */
775  EVSYS_CHMUX_PRESCALER_1024_gc = (0x8A<<0), /* Prescaler, divide by 1024 */
776  EVSYS_CHMUX_PRESCALER_2048_gc = (0x8B<<0), /* Prescaler, divide by 2048 */
777  EVSYS_CHMUX_PRESCALER_4096_gc = (0x8C<<0), /* Prescaler, divide by 4096 */
778  EVSYS_CHMUX_PRESCALER_8192_gc = (0x8D<<0), /* Prescaler, divide by 8192 */
779  EVSYS_CHMUX_PRESCALER_16384_gc = (0x8E<<0), /* Prescaler, divide by 16384 */
780  EVSYS_CHMUX_PRESCALER_32768_gc = (0x8F<<0), /* Prescaler, divide by 32768 */
781  EVSYS_CHMUX_TCC0_OVF_gc = (0xC0<<0), /* Timer/Counter C0 Overflow */
782  EVSYS_CHMUX_TCC0_ERR_gc = (0xC1<<0), /* Timer/Counter C0 Error */
783  EVSYS_CHMUX_TCC0_CCA_gc = (0xC4<<0), /* Timer/Counter C0 Compare or Capture A */
784  EVSYS_CHMUX_TCC0_CCB_gc = (0xC5<<0), /* Timer/Counter C0 Compare or Capture B */
785  EVSYS_CHMUX_TCC0_CCC_gc = (0xC6<<0), /* Timer/Counter C0 Compare or Capture C */
786  EVSYS_CHMUX_TCC0_CCD_gc = (0xC7<<0), /* Timer/Counter C0 Compare or Capture D */
787  EVSYS_CHMUX_TCC1_OVF_gc = (0xC8<<0), /* Timer/Counter C1 Overflow */
788  EVSYS_CHMUX_TCC1_ERR_gc = (0xC9<<0), /* Timer/Counter C1 Error */
789  EVSYS_CHMUX_TCC1_CCA_gc = (0xCC<<0), /* Timer/Counter C1 Compare or Capture A */
790  EVSYS_CHMUX_TCC1_CCB_gc = (0xCD<<0), /* Timer/Counter C1 Compare or Capture B */
791  EVSYS_CHMUX_TCD0_OVF_gc = (0xD0<<0), /* Timer/Counter D0 Overflow */
792  EVSYS_CHMUX_TCD0_ERR_gc = (0xD1<<0), /* Timer/Counter D0 Error */
793  EVSYS_CHMUX_TCD0_CCA_gc = (0xD4<<0), /* Timer/Counter D0 Compare or Capture A */
794  EVSYS_CHMUX_TCD0_CCB_gc = (0xD5<<0), /* Timer/Counter D0 Compare or Capture B */
795  EVSYS_CHMUX_TCD0_CCC_gc = (0xD6<<0), /* Timer/Counter D0 Compare or Capture C */
796  EVSYS_CHMUX_TCD0_CCD_gc = (0xD7<<0), /* Timer/Counter D0 Compare or Capture D */
797  EVSYS_CHMUX_TCD1_OVF_gc = (0xD8<<0), /* Timer/Counter D1 Overflow */
798  EVSYS_CHMUX_TCD1_ERR_gc = (0xD9<<0), /* Timer/Counter D1 Error */
799  EVSYS_CHMUX_TCD1_CCA_gc = (0xDC<<0), /* Timer/Counter D1 Compare or Capture A */
800  EVSYS_CHMUX_TCD1_CCB_gc = (0xDD<<0), /* Timer/Counter D1 Compare or Capture B */
801  EVSYS_CHMUX_TCE0_OVF_gc = (0xE0<<0), /* Timer/Counter E0 Overflow */
802  EVSYS_CHMUX_TCE0_ERR_gc = (0xE1<<0), /* Timer/Counter E0 Error */
803  EVSYS_CHMUX_TCE0_CCA_gc = (0xE4<<0), /* Timer/Counter E0 Compare or Capture A */
804  EVSYS_CHMUX_TCE0_CCB_gc = (0xE5<<0), /* Timer/Counter E0 Compare or Capture B */
805  EVSYS_CHMUX_TCE0_CCC_gc = (0xE6<<0), /* Timer/Counter E0 Compare or Capture C */
806  EVSYS_CHMUX_TCE0_CCD_gc = (0xE7<<0), /* Timer/Counter E0 Compare or Capture D */
807  EVSYS_CHMUX_TCE1_OVF_gc = (0xE8<<0), /* Timer/Counter E1 Overflow */
808  EVSYS_CHMUX_TCE1_ERR_gc = (0xE9<<0), /* Timer/Counter E1 Error */
809  EVSYS_CHMUX_TCE1_CCA_gc = (0xEC<<0), /* Timer/Counter E1 Compare or Capture A */
810  EVSYS_CHMUX_TCE1_CCB_gc = (0xED<<0), /* Timer/Counter E1 Compare or Capture B */
811  EVSYS_CHMUX_TCF0_OVF_gc = (0xF0<<0), /* Timer/Counter F0 Overflow */
812  EVSYS_CHMUX_TCF0_ERR_gc = (0xF1<<0), /* Timer/Counter F0 Error */
813  EVSYS_CHMUX_TCF0_CCA_gc = (0xF4<<0), /* Timer/Counter F0 Compare or Capture A */
814  EVSYS_CHMUX_TCF0_CCB_gc = (0xF5<<0), /* Timer/Counter F0 Compare or Capture B */
815  EVSYS_CHMUX_TCF0_CCC_gc = (0xF6<<0), /* Timer/Counter F0 Compare or Capture C */
816  EVSYS_CHMUX_TCF0_CCD_gc = (0xF7<<0), /* Timer/Counter F0 Compare or Capture D */
817  EVSYS_CHMUX_TCF1_OVF_gc = (0xF8<<0), /* Timer/Counter F1 Overflow */
818  EVSYS_CHMUX_TCF1_ERR_gc = (0xF9<<0), /* Timer/Counter F1 Error */
819  EVSYS_CHMUX_TCF1_CCA_gc = (0xFC<<0), /* Timer/Counter F1 Compare or Capture A */
820  EVSYS_CHMUX_TCF1_CCB_gc = (0xFD<<0), /* Timer/Counter F1 Compare or Capture B */
821 } EVSYS_CHMUX_t;
822 
823 
824 /*
825 --------------------------------------------------------------------------
826 NVM - Non Volatile Memory Controller
827 --------------------------------------------------------------------------
828 */
829 
830 /* Non-volatile Memory Controller */
831 typedef struct NVM_struct
832 {
833  register8_t ADDR0; /* Address Register 0 */
834  register8_t ADDR1; /* Address Register 1 */
835  register8_t ADDR2; /* Address Register 2 */
836  register8_t reserved_0x03;
837  register8_t DATA0; /* Data Register 0 */
838  register8_t DATA1; /* Data Register 1 */
839  register8_t DATA2; /* Data Register 2 */
840  register8_t reserved_0x07;
841  register8_t reserved_0x08;
842  register8_t reserved_0x09;
843  register8_t CMD; /* Command */
844  register8_t CTRLA; /* Control Register A */
845  register8_t CTRLB; /* Control Register B */
846  register8_t INTCTRL; /* Interrupt Control */
847  register8_t reserved_0x0E;
848  register8_t STATUS; /* Status */
849  register8_t LOCKBITS; /* Lock Bits */
850 } NVM_t;
851 
852 /*
853 --------------------------------------------------------------------------
854 NVM - Non Volatile Memory Controller
855 --------------------------------------------------------------------------
856 */
857 
858 /* Lock Bits */
859 typedef struct NVM_LOCKBITS_struct
860 {
861  register8_t LOCKBITS; /* Lock Bits */
863 
864 /*
865 --------------------------------------------------------------------------
866 NVM - Non Volatile Memory Controller
867 --------------------------------------------------------------------------
868 */
869 
870 /* Fuses */
871 typedef struct NVM_FUSES_struct
872 {
873  register8_t FUSEBYTE0; /* JTAG User ID */
874  register8_t FUSEBYTE1; /* Watchdog Configuration */
875  register8_t FUSEBYTE2; /* Reset Configuration */
876  register8_t reserved_0x03;
877  register8_t FUSEBYTE4; /* Start-up Configuration */
878  register8_t FUSEBYTE5; /* EESAVE and BOD Level */
879 } NVM_FUSES_t;
880 
881 /*
882 --------------------------------------------------------------------------
883 NVM - Non Volatile Memory Controller
884 --------------------------------------------------------------------------
885 */
886 
887 /* Production Signatures */
888 typedef struct NVM_PROD_SIGNATURES_struct
889 {
890  register8_t RCOSC2M; /* RCOSC 2MHz Calibration Value */
891  register8_t reserved_0x01;
892  register8_t RCOSC32K; /* RCOSC 32kHz Calibration Value */
893  register8_t RCOSC32M; /* RCOSC 32MHz Calibration Value */
894  register8_t reserved_0x04;
895  register8_t reserved_0x05;
896  register8_t reserved_0x06;
897  register8_t reserved_0x07;
898  register8_t LOTNUM0; /* Lot Number Byte 0, ASCII */
899  register8_t LOTNUM1; /* Lot Number Byte 1, ASCII */
900  register8_t LOTNUM2; /* Lot Number Byte 2, ASCII */
901  register8_t LOTNUM3; /* Lot Number Byte 3, ASCII */
902  register8_t LOTNUM4; /* Lot Number Byte 4, ASCII */
903  register8_t LOTNUM5; /* Lot Number Byte 5, ASCII */
904  register8_t reserved_0x0E;
905  register8_t reserved_0x0F;
906  register8_t WAFNUM; /* Wafer Number */
907  register8_t reserved_0x11;
908  register8_t COORDX0; /* Wafer Coordinate X Byte 0 */
909  register8_t COORDX1; /* Wafer Coordinate X Byte 1 */
910  register8_t COORDY0; /* Wafer Coordinate Y Byte 0 */
911  register8_t COORDY1; /* Wafer Coordinate Y Byte 1 */
912  register8_t reserved_0x16;
913  register8_t reserved_0x17;
914  register8_t reserved_0x18;
915  register8_t reserved_0x19;
916  register8_t reserved_0x1A;
917  register8_t reserved_0x1B;
918  register8_t reserved_0x1C;
919  register8_t reserved_0x1D;
920  register8_t reserved_0x1E;
921  register8_t reserved_0x1F;
922  register8_t ADCACAL0; /* ADCA Calibration Byte 0 */
923  register8_t ADCACAL1; /* ADCA Calibration Byte 1 */
924  register8_t reserved_0x22;
925  register8_t reserved_0x23;
926  register8_t ADCBCAL0; /* ADCB Calibration Byte 0 */
927  register8_t ADCBCAL1; /* ADCB Calibration Byte 1 */
928  register8_t reserved_0x26;
929  register8_t reserved_0x27;
930  register8_t reserved_0x28;
931  register8_t reserved_0x29;
932  register8_t reserved_0x2A;
933  register8_t reserved_0x2B;
934  register8_t reserved_0x2C;
935  register8_t reserved_0x2D;
936  register8_t TEMPSENSE0; /* Temperature Sensor Calibration Byte 0 */
937  register8_t TEMPSENSE1; /* Temperature Sensor Calibration Byte 0 */
938  register8_t DACAOFFCAL; /* DACA Calibration Byte 0 */
939  register8_t DACAGAINCAL; /* DACA Calibration Byte 1 */
940  register8_t DACBOFFCAL; /* DACB Calibration Byte 0 */
941  register8_t DACBGAINCAL; /* DACB Calibration Byte 1 */
942  register8_t reserved_0x34;
943  register8_t reserved_0x35;
944  register8_t reserved_0x36;
945  register8_t reserved_0x37;
946  register8_t reserved_0x38;
947  register8_t reserved_0x39;
948  register8_t reserved_0x3A;
949  register8_t reserved_0x3B;
950  register8_t reserved_0x3C;
951  register8_t reserved_0x3D;
952  register8_t reserved_0x3E;
954 
955 /* NVM Command */
956 typedef enum NVM_CMD_enum
957 {
958  NVM_CMD_NO_OPERATION_gc = (0x00<<0), /* Noop/Ordinary LPM */
959  NVM_CMD_READ_CALIB_ROW_gc = (0x02<<0), /* Read calibration row */
960  NVM_CMD_READ_USER_SIG_ROW_gc = (0x01<<0), /* Read user signature row */
961  NVM_CMD_READ_EEPROM_gc = (0x06<<0), /* Read EEPROM */
962  NVM_CMD_READ_FUSES_gc = (0x07<<0), /* Read fuse byte */
963  NVM_CMD_WRITE_LOCK_BITS_gc = (0x08<<0), /* Write lock bits */
964  NVM_CMD_ERASE_USER_SIG_ROW_gc = (0x18<<0), /* Erase user signature row */
965  NVM_CMD_WRITE_USER_SIG_ROW_gc = (0x1A<<0), /* Write user signature row */
966  NVM_CMD_ERASE_APP_gc = (0x20<<0), /* Erase Application Section */
967  NVM_CMD_ERASE_APP_PAGE_gc = (0x22<<0), /* Erase Application Section page */
968  NVM_CMD_LOAD_FLASH_BUFFER_gc = (0x23<<0), /* Load Flash page buffer */
969  NVM_CMD_WRITE_APP_PAGE_gc = (0x24<<0), /* Write Application Section page */
970  NVM_CMD_ERASE_WRITE_APP_PAGE_gc = (0x25<<0), /* Erase-and-write Application Section page */
971  NVM_CMD_ERASE_FLASH_BUFFER_gc = (0x26<<0), /* Erase/flush Flash page buffer */
972  NVM_CMD_ERASE_BOOT_PAGE_gc = (0x2A<<0), /* Erase Boot Section page */
973  NVM_CMD_WRITE_BOOT_PAGE_gc = (0x2C<<0), /* Write Boot Section page */
974  NVM_CMD_ERASE_WRITE_BOOT_PAGE_gc = (0x2D<<0), /* Erase-and-write Boot Section page */
975  NVM_CMD_ERASE_EEPROM_gc = (0x30<<0), /* Erase EEPROM */
976  NVM_CMD_ERASE_EEPROM_PAGE_gc = (0x32<<0), /* Erase EEPROM page */
977  NVM_CMD_LOAD_EEPROM_BUFFER_gc = (0x33<<0), /* Load EEPROM page buffer */
978  NVM_CMD_WRITE_EEPROM_PAGE_gc = (0x34<<0), /* Write EEPROM page */
979  NVM_CMD_ERASE_WRITE_EEPROM_PAGE_gc = (0x35<<0), /* Erase-and-write EEPROM page */
980  NVM_CMD_ERASE_EEPROM_BUFFER_gc = (0x36<<0), /* Erase/flush EEPROM page buffer */
981  NVM_CMD_APP_CRC_gc = (0x38<<0), /* Generate Application section CRC */
982  NVM_CMD_BOOT_CRC_gc = (0x39<<0), /* Generate Boot Section CRC */
983  NVM_CMD_FLASH_RANGE_CRC_gc = (0x3A<<0), /* Generate Flash Range CRC */
984 } NVM_CMD_t;
985 
986 /* SPM ready interrupt level */
987 typedef enum NVM_SPMLVL_enum
988 {
989  NVM_SPMLVL_OFF_gc = (0x00<<2), /* Interrupt disabled */
990  NVM_SPMLVL_LO_gc = (0x01<<2), /* Low level */
991  NVM_SPMLVL_MED_gc = (0x02<<2), /* Medium level */
992  NVM_SPMLVL_HI_gc = (0x03<<2), /* High level */
993 } NVM_SPMLVL_t;
994 
995 /* EEPROM ready interrupt level */
996 typedef enum NVM_EELVL_enum
997 {
998  NVM_EELVL_OFF_gc = (0x00<<0), /* Interrupt disabled */
999  NVM_EELVL_LO_gc = (0x01<<0), /* Low level */
1000  NVM_EELVL_MED_gc = (0x02<<0), /* Medium level */
1001  NVM_EELVL_HI_gc = (0x03<<0), /* High level */
1002 } NVM_EELVL_t;
1003 
1004 /* Boot lock bits - boot setcion */
1005 typedef enum NVM_BLBB_enum
1006 {
1007  NVM_BLBB_NOLOCK_gc = (0x03<<6), /* No locks */
1008  NVM_BLBB_WLOCK_gc = (0x02<<6), /* Write not allowed */
1009  NVM_BLBB_RLOCK_gc = (0x01<<6), /* Read not allowed */
1010  NVM_BLBB_RWLOCK_gc = (0x00<<6), /* Read and write not allowed */
1011 } NVM_BLBB_t;
1012 
1013 /* Boot lock bits - application section */
1014 typedef enum NVM_BLBA_enum
1015 {
1016  NVM_BLBA_NOLOCK_gc = (0x03<<4), /* No locks */
1017  NVM_BLBA_WLOCK_gc = (0x02<<4), /* Write not allowed */
1018  NVM_BLBA_RLOCK_gc = (0x01<<4), /* Read not allowed */
1019  NVM_BLBA_RWLOCK_gc = (0x00<<4), /* Read and write not allowed */
1020 } NVM_BLBA_t;
1021 
1022 /* Boot lock bits - application table section */
1023 typedef enum NVM_BLBAT_enum
1024 {
1025  NVM_BLBAT_NOLOCK_gc = (0x03<<2), /* No locks */
1026  NVM_BLBAT_WLOCK_gc = (0x02<<2), /* Write not allowed */
1027  NVM_BLBAT_RLOCK_gc = (0x01<<2), /* Read not allowed */
1028  NVM_BLBAT_RWLOCK_gc = (0x00<<2), /* Read and write not allowed */
1029 } NVM_BLBAT_t;
1030 
1031 /* Lock bits */
1032 typedef enum NVM_LB_enum
1033 {
1034  NVM_LB_NOLOCK_gc = (0x03<<0), /* No locks */
1035  NVM_LB_WLOCK_gc = (0x02<<0), /* Write not allowed */
1036  NVM_LB_RWLOCK_gc = (0x00<<0), /* Read and write not allowed */
1037 } NVM_LB_t;
1038 
1039 /* Boot Loader Section Reset Vector */
1040 typedef enum BOOTRST_enum
1041 {
1042  BOOTRST_BOOTLDR_gc = (0x00<<6), /* Boot Loader Reset */
1043  BOOTRST_APPLICATION_gc = (0x01<<6), /* Application Reset */
1044 } BOOTRST_t;
1045 
1046 /* BOD operation */
1047 typedef enum BOD_enum
1048 {
1049  BOD_INSAMPLEDMODE_gc = (0x01<<0), /* BOD enabled in sampled mode */
1050  BOD_CONTINOUSLY_gc = (0x02<<0), /* BOD enabled continuously */
1051  BOD_DISABLED_gc = (0x03<<0), /* BOD Disabled */
1052 } BOD_t;
1053 
1054 /* Watchdog (Window) Timeout Period */
1055 typedef enum WD_enum
1056 {
1057  WD_8CLK_gc = (0x00<<4), /* 8 cycles (8ms @ 3.3V) */
1058  WD_16CLK_gc = (0x01<<4), /* 16 cycles (16ms @ 3.3V) */
1059  WD_32CLK_gc = (0x02<<4), /* 32 cycles (32ms @ 3.3V) */
1060  WD_64CLK_gc = (0x03<<4), /* 64 cycles (64ms @ 3.3V) */
1061  WD_128CLK_gc = (0x04<<4), /* 128 cycles (0.125s @ 3.3V) */
1062  WD_256CLK_gc = (0x05<<4), /* 256 cycles (0.25s @ 3.3V) */
1063  WD_512CLK_gc = (0x06<<4), /* 512 cycles (0.5s @ 3.3V) */
1064  WD_1KCLK_gc = (0x07<<4), /* 1K cycles (1s @ 3.3V) */
1065  WD_2KCLK_gc = (0x08<<4), /* 2K cycles (2s @ 3.3V) */
1066  WD_4KCLK_gc = (0x09<<4), /* 4K cycles (4s @ 3.3V) */
1067  WD_8KCLK_gc = (0x0A<<4), /* 8K cycles (8s @ 3.3V) */
1068 } WD_t;
1069 
1070 /* Start-up Time */
1071 typedef enum SUT_enum
1072 {
1073  SUT_0MS_gc = (0x03<<2), /* 0 ms */
1074  SUT_4MS_gc = (0x01<<2), /* 4 ms */
1075  SUT_64MS_gc = (0x00<<2), /* 64 ms */
1076 } SUT_t;
1077 
1078 /* Brown Out Detection Voltage Level */
1079 typedef enum BODLVL_enum
1080 {
1081  BODLVL_1V6_gc = (0x07<<0), /* 1.6 V */
1082  BODLVL_1V9_gc = (0x06<<0), /* 1.8 V */
1083  BODLVL_2V1_gc = (0x05<<0), /* 2.0 V */
1084  BODLVL_2V4_gc = (0x04<<0), /* 2.2 V */
1085  BODLVL_2V6_gc = (0x03<<0), /* 2.4 V */
1086  BODLVL_2V9_gc = (0x02<<0), /* 2.7 V */
1087  BODLVL_3V2_gc = (0x01<<0), /* 2.9 V */
1088 } BODLVL_t;
1089 
1090 
1091 /*
1092 --------------------------------------------------------------------------
1093 AC - Analog Comparator
1094 --------------------------------------------------------------------------
1095 */
1096 
1097 /* Analog Comparator */
1098 typedef struct AC_struct
1099 {
1100  register8_t AC0CTRL; /* Comparator 0 Control */
1101  register8_t AC1CTRL; /* Comparator 1 Control */
1102  register8_t AC0MUXCTRL; /* Comparator 0 MUX Control */
1103  register8_t AC1MUXCTRL; /* Comparator 1 MUX Control */
1104  register8_t CTRLA; /* Control Register A */
1105  register8_t CTRLB; /* Control Register B */
1106  register8_t WINCTRL; /* Window Mode Control */
1107  register8_t STATUS; /* Status */
1108 } AC_t;
1109 
1110 /* Interrupt mode */
1111 typedef enum AC_INTMODE_enum
1112 {
1113  AC_INTMODE_BOTHEDGES_gc = (0x00<<6), /* Interrupt on both edges */
1114  AC_INTMODE_FALLING_gc = (0x02<<6), /* Interrupt on falling edge */
1115  AC_INTMODE_RISING_gc = (0x03<<6), /* Interrupt on rising edge */
1116 } AC_INTMODE_t;
1117 
1118 /* Interrupt level */
1119 typedef enum AC_INTLVL_enum
1120 {
1121  AC_INTLVL_OFF_gc = (0x00<<4), /* Interrupt disabled */
1122  AC_INTLVL_LO_gc = (0x01<<4), /* Low level */
1123  AC_INTLVL_MED_gc = (0x02<<4), /* Medium level */
1124  AC_INTLVL_HI_gc = (0x03<<4), /* High level */
1125 } AC_INTLVL_t;
1126 
1127 /* Hysteresis mode selection */
1128 typedef enum AC_HYSMODE_enum
1129 {
1130  AC_HYSMODE_NO_gc = (0x00<<1), /* No hysteresis */
1131  AC_HYSMODE_SMALL_gc = (0x01<<1), /* Small hysteresis */
1132  AC_HYSMODE_LARGE_gc = (0x02<<1), /* Large hysteresis */
1133 } AC_HYSMODE_t;
1134 
1135 /* Positive input multiplexer selection */
1136 typedef enum AC_MUXPOS_enum
1137 {
1138  AC_MUXPOS_PIN0_gc = (0x00<<3), /* Pin 0 */
1139  AC_MUXPOS_PIN1_gc = (0x01<<3), /* Pin 1 */
1140  AC_MUXPOS_PIN2_gc = (0x02<<3), /* Pin 2 */
1141  AC_MUXPOS_PIN3_gc = (0x03<<3), /* Pin 3 */
1142  AC_MUXPOS_PIN4_gc = (0x04<<3), /* Pin 4 */
1143  AC_MUXPOS_PIN5_gc = (0x05<<3), /* Pin 5 */
1144  AC_MUXPOS_PIN6_gc = (0x06<<3), /* Pin 6 */
1145  AC_MUXPOS_DAC_gc = (0x07<<3), /* DAC output */
1146 } AC_MUXPOS_t;
1147 
1148 /* Negative input multiplexer selection */
1149 typedef enum AC_MUXNEG_enum
1150 {
1151  AC_MUXNEG_PIN0_gc = (0x00<<0), /* Pin 0 */
1152  AC_MUXNEG_PIN1_gc = (0x01<<0), /* Pin 1 */
1153  AC_MUXNEG_PIN3_gc = (0x02<<0), /* Pin 3 */
1154  AC_MUXNEG_PIN5_gc = (0x03<<0), /* Pin 5 */
1155  AC_MUXNEG_PIN7_gc = (0x04<<0), /* Pin 7 */
1156  AC_MUXNEG_DAC_gc = (0x05<<0), /* DAC output */
1157  AC_MUXNEG_BANDGAP_gc = (0x06<<0), /* Bandgap Reference */
1158  AC_MUXNEG_SCALER_gc = (0x07<<0), /* Internal voltage scaler */
1159 } AC_MUXNEG_t;
1160 
1161 /* Windows interrupt mode */
1162 typedef enum AC_WINTMODE_enum
1163 {
1164  AC_WINTMODE_ABOVE_gc = (0x00<<2), /* Interrupt on above window */
1165  AC_WINTMODE_INSIDE_gc = (0x01<<2), /* Interrupt on inside window */
1166  AC_WINTMODE_BELOW_gc = (0x02<<2), /* Interrupt on below window */
1167  AC_WINTMODE_OUTSIDE_gc = (0x03<<2), /* Interrupt on outside window */
1168 } AC_WINTMODE_t;
1169 
1170 /* Window interrupt level */
1171 typedef enum AC_WINTLVL_enum
1172 {
1173  AC_WINTLVL_OFF_gc = (0x00<<0), /* Interrupt disabled */
1174  AC_WINTLVL_LO_gc = (0x01<<0), /* Low priority */
1175  AC_WINTLVL_MED_gc = (0x02<<0), /* Medium priority */
1176  AC_WINTLVL_HI_gc = (0x03<<0), /* High priority */
1177 } AC_WINTLVL_t;
1178 
1179 /* Window mode state */
1180 typedef enum AC_WSTATE_enum
1181 {
1182  AC_WSTATE_ABOVE_gc = (0x00<<6), /* Signal above window */
1183  AC_WSTATE_INSIDE_gc = (0x01<<6), /* Signal inside window */
1184  AC_WSTATE_BELOW_gc = (0x02<<6), /* Signal below window */
1185 } AC_WSTATE_t;
1186 
1187 
1188 /*
1189 --------------------------------------------------------------------------
1190 ADC - Analog/Digital Converter
1191 --------------------------------------------------------------------------
1192 */
1193 
1194 /* ADC Channel */
1195 typedef struct ADC_CH_struct
1196 {
1197  register8_t CTRL; /* Control Register */
1198  register8_t MUXCTRL; /* MUX Control */
1199  register8_t INTCTRL; /* Channel Interrupt Control */
1200  register8_t INTFLAGS; /* Interrupt Flags */
1201  _WORDREGISTER(RES); /* Channel Result */
1202  register8_t reserved_0x6;
1203  register8_t reserved_0x7;
1204 } ADC_CH_t;
1205 
1206 /*
1207 --------------------------------------------------------------------------
1208 ADC - Analog/Digital Converter
1209 --------------------------------------------------------------------------
1210 */
1211 
1212 /* Analog-to-Digital Converter */
1213 typedef struct ADC_struct
1214 {
1215  register8_t CTRLA; /* Control Register A */
1216  register8_t CTRLB; /* Control Register B */
1217  register8_t REFCTRL; /* Reference Control */
1218  register8_t EVCTRL; /* Event Control */
1219  register8_t PRESCALER; /* Clock Prescaler */
1220  register8_t CALCTRL; /* Calibration Control Register */
1221  register8_t INTFLAGS; /* Interrupt Flags */
1222  register8_t reserved_0x07;
1223  register8_t reserved_0x08;
1224  register8_t reserved_0x09;
1225  register8_t reserved_0x0A;
1226  register8_t reserved_0x0B;
1227  _WORDREGISTER(CAL); /* Calibration Value */
1228  register8_t reserved_0x0E;
1229  register8_t reserved_0x0F;
1230  _WORDREGISTER(CH0RES); /* Channel 0 Result */
1231  _WORDREGISTER(CH1RES); /* Channel 1 Result */
1232  _WORDREGISTER(CH2RES); /* Channel 2 Result */
1233  _WORDREGISTER(CH3RES); /* Channel 3 Result */
1234  _WORDREGISTER(CMP); /* Compare Value */
1235  register8_t reserved_0x1A;
1236  register8_t reserved_0x1B;
1237  register8_t reserved_0x1C;
1238  register8_t reserved_0x1D;
1239  register8_t reserved_0x1E;
1240  register8_t reserved_0x1F;
1241  ADC_CH_t CH0; /* ADC Channel 0 */
1242  ADC_CH_t CH1; /* ADC Channel 1 */
1243  ADC_CH_t CH2; /* ADC Channel 2 */
1244  ADC_CH_t CH3; /* ADC Channel 3 */
1245 } ADC_t;
1246 
1247 /* Positive input multiplexer selection */
1248 typedef enum ADC_CH_MUXPOS_enum
1249 {
1250  ADC_CH_MUXPOS_PIN0_gc = (0x00<<3), /* Input pin 0 */
1251  ADC_CH_MUXPOS_PIN1_gc = (0x01<<3), /* Input pin 1 */
1252  ADC_CH_MUXPOS_PIN2_gc = (0x02<<3), /* Input pin 2 */
1253  ADC_CH_MUXPOS_PIN3_gc = (0x03<<3), /* Input pin 3 */
1254  ADC_CH_MUXPOS_PIN4_gc = (0x04<<3), /* Input pin 4 */
1255  ADC_CH_MUXPOS_PIN5_gc = (0x05<<3), /* Input pin 5 */
1256  ADC_CH_MUXPOS_PIN6_gc = (0x06<<3), /* Input pin 6 */
1257  ADC_CH_MUXPOS_PIN7_gc = (0x07<<3), /* Input pin 7 */
1258 } ADC_CH_MUXPOS_t;
1259 
1260 /* Internal input multiplexer selections */
1261 typedef enum ADC_CH_MUXINT_enum
1262 {
1263  ADC_CH_MUXINT_TEMP_gc = (0x00<<3), /* Temperature Reference */
1264  ADC_CH_MUXINT_BANDGAP_gc = (0x01<<3), /* Bandgap Reference */
1265  ADC_CH_MUXINT_SCALEDVCC_gc = (0x02<<3), /* 1/10 scaled VCC */
1266  ADC_CH_MUXINT_DAC_gc = (0x03<<3), /* DAC output */
1267 } ADC_CH_MUXINT_t;
1268 
1269 /* Negative input multiplexer selection */
1270 typedef enum ADC_CH_MUXNEG_enum
1271 {
1272  ADC_CH_MUXNEG_PIN0_gc = (0x00<<0), /* Input pin 0 */
1273  ADC_CH_MUXNEG_PIN1_gc = (0x01<<0), /* Input pin 1 */
1274  ADC_CH_MUXNEG_PIN2_gc = (0x02<<0), /* Input pin 2 */
1275  ADC_CH_MUXNEG_PIN3_gc = (0x03<<0), /* Input pin 3 */
1276  ADC_CH_MUXNEG_PIN4_gc = (0x04<<0), /* Input pin 4 */
1277  ADC_CH_MUXNEG_PIN5_gc = (0x05<<0), /* Input pin 5 */
1278  ADC_CH_MUXNEG_PIN6_gc = (0x06<<0), /* Input pin 6 */
1279  ADC_CH_MUXNEG_PIN7_gc = (0x07<<0), /* Input pin 7 */
1280 } ADC_CH_MUXNEG_t;
1281 
1282 /* Input mode */
1283 typedef enum ADC_CH_INPUTMODE_enum
1284 {
1285  ADC_CH_INPUTMODE_INTERNAL_gc = (0x00<<0), /* Internal inputs, no gain */
1286  ADC_CH_INPUTMODE_SINGLEENDED_gc = (0x01<<0), /* Single-ended input, no gain */
1287  ADC_CH_INPUTMODE_DIFF_gc = (0x02<<0), /* Differential input, no gain */
1288  ADC_CH_INPUTMODE_DIFFWGAIN_gc = (0x03<<0), /* Differential input, with gain */
1289 } ADC_CH_INPUTMODE_t;
1290 
1291 /* Gain factor */
1292 typedef enum ADC_CH_GAIN_enum
1293 {
1294  ADC_CH_GAIN_1X_gc = (0x00<<2), /* 1x gain */
1295  ADC_CH_GAIN_2X_gc = (0x01<<2), /* 2x gain */
1296  ADC_CH_GAIN_4X_gc = (0x02<<2), /* 4x gain */
1297  ADC_CH_GAIN_8X_gc = (0x03<<2), /* 8x gain */
1298  ADC_CH_GAIN_16X_gc = (0x04<<2), /* 16x gain */
1299  ADC_CH_GAIN_32X_gc = (0x05<<2), /* 32x gain */
1300  ADC_CH_GAIN_64X_gc = (0x06<<2), /* 64x gain */
1301 } ADC_CH_GAIN_t;
1302 
1303 /* Conversion result resolution */
1304 typedef enum ADC_RESOLUTION_enum
1305 {
1306  ADC_RESOLUTION_12BIT_gc = (0x00<<1), /* 12-bit right-adjusted result */
1307  ADC_RESOLUTION_8BIT_gc = (0x02<<1), /* 8-bit right-adjusted result */
1308  ADC_RESOLUTION_LEFT12BIT_gc = (0x03<<1), /* 12-bit left-adjusted result */
1309 } ADC_RESOLUTION_t;
1310 
1311 /* Voltage reference selection */
1312 typedef enum ADC_REFSEL_enum
1313 {
1314  ADC_REFSEL_INT1V_gc = (0x00<<4), /* Internal 1V */
1315  ADC_REFSEL_VCC_gc = (0x01<<4), /* Internal VCC / 1.6V */
1316  ADC_REFSEL_AREFA_gc = (0x02<<4), /* External reference on PORT A */
1317  ADC_REFSEL_AREFB_gc = (0x03<<4), /* External reference on PORT B */
1318 } ADC_REFSEL_t;
1319 
1320 /* Channel sweep selection */
1321 typedef enum ADC_SWEEP_enum
1322 {
1323  ADC_SWEEP_0_gc = (0x00<<6), /* ADC Channel 0 */
1324  ADC_SWEEP_01_gc = (0x01<<6), /* ADC Channel 0,1 */
1325  ADC_SWEEP_012_gc = (0x02<<6), /* ADC Channel 0,1,2 */
1326  ADC_SWEEP_0123_gc = (0x03<<6), /* ADC Channel 0,1,2,3 */
1327 } ADC_SWEEP_t;
1328 
1329 /* Event channel input selection */
1330 typedef enum ADC_EVSEL_enum
1331 {
1332  ADC_EVSEL_0123_gc = (0x00<<3), /* Event Channel 0,1,2,3 */
1333  ADC_EVSEL_1234_gc = (0x01<<3), /* Event Channel 1,2,3,4 */
1334  ADC_EVSEL_2345_gc = (0x02<<3), /* Event Channel 2,3,4,5 */
1335  ADC_EVSEL_3456_gc = (0x03<<3), /* Event Channel 3,4,5,6 */
1336  ADC_EVSEL_4567_gc = (0x04<<3), /* Event Channel 4,5,6,7 */
1337  ADC_EVSEL_567_gc = (0x05<<3), /* Event Channel 5,6,7 */
1338  ADC_EVSEL_67_gc = (0x06<<3), /* Event Channel 6,7 */
1339  ADC_EVSEL_7_gc = (0x07<<3), /* Event Channel 7 */
1340 } ADC_EVSEL_t;
1341 
1342 /* Event action selection */
1343 typedef enum ADC_EVACT_enum
1344 {
1345  ADC_EVACT_NONE_gc = (0x00<<0), /* No event action */
1346  ADC_EVACT_CH0_gc = (0x01<<0), /* First event triggers channel 0 */
1347  ADC_EVACT_CH01_gc = (0x02<<0), /* First two events trigger channel 0,1 */
1348  ADC_EVACT_CH012_gc = (0x03<<0), /* First three events trigger channel 0,1,2 */
1349  ADC_EVACT_CH0123_gc = (0x04<<0), /* Events trigger channel 0,1,2,3 */
1350  ADC_EVACT_SWEEP_gc = (0x05<<0), /* First event triggers sweep */
1351  ADC_EVACT_SYNCHSWEEP_gc = (0x06<<0), /* First event triggers synchronized sweep */
1352 } ADC_EVACT_t;
1353 
1354 /* Interupt mode */
1355 typedef enum ADC_CH_INTMODE_enum
1356 {
1357  ADC_CH_INTMODE_COMPLETE_gc = (0x00<<2), /* Interrupt on conversion complete */
1358  ADC_CH_INTMODE_BELOW_gc = (0x01<<2), /* Interrupt on result below compare value */
1359  ADC_CH_INTMODE_ABOVE_gc = (0x03<<2), /* Interrupt on result above compare value */
1360 } ADC_CH_INTMODE_t;
1361 
1362 /* Interrupt level */
1363 typedef enum ADC_CH_INTLVL_enum
1364 {
1365  ADC_CH_INTLVL_OFF_gc = (0x00<<0), /* Interrupt disabled */
1366  ADC_CH_INTLVL_LO_gc = (0x01<<0), /* Low level */
1367  ADC_CH_INTLVL_MED_gc = (0x02<<0), /* Medium level */
1368  ADC_CH_INTLVL_HI_gc = (0x03<<0), /* High level */
1369 } ADC_CH_INTLVL_t;
1370 
1371 /* DMA request selection */
1372 typedef enum ADC_DMASEL_enum
1373 {
1374  ADC_DMASEL_OFF_gc = (0x00<<6), /* Combined DMA request OFF */
1375  ADC_DMASEL_CH01_gc = (0x01<<6), /* ADC Channel 0 or 1 */
1376  ADC_DMASEL_CH012_gc = (0x02<<6), /* ADC Channel 0 or 1 or 2 */
1377  ADC_DMASEL_CH0123_gc = (0x03<<6), /* ADC Channel 0 or 1 or 2 or 3 */
1378 } ADC_DMASEL_t;
1379 
1380 /* Clock prescaler */
1381 typedef enum ADC_PRESCALER_enum
1382 {
1383  ADC_PRESCALER_DIV4_gc = (0x00<<0), /* Divide clock by 4 */
1384  ADC_PRESCALER_DIV8_gc = (0x01<<0), /* Divide clock by 8 */
1385  ADC_PRESCALER_DIV16_gc = (0x02<<0), /* Divide clock by 16 */
1386  ADC_PRESCALER_DIV32_gc = (0x03<<0), /* Divide clock by 32 */
1387  ADC_PRESCALER_DIV64_gc = (0x04<<0), /* Divide clock by 64 */
1388  ADC_PRESCALER_DIV128_gc = (0x05<<0), /* Divide clock by 128 */
1389  ADC_PRESCALER_DIV256_gc = (0x06<<0), /* Divide clock by 256 */
1390  ADC_PRESCALER_DIV512_gc = (0x07<<0), /* Divide clock by 512 */
1391 } ADC_PRESCALER_t;
1392 
1393 
1394 /*
1395 --------------------------------------------------------------------------
1396 DAC - Digital/Analog Converter
1397 --------------------------------------------------------------------------
1398 */
1399 
1400 /* Digital-to-Analog Converter */
1401 typedef struct DAC_struct
1402 {
1403  register8_t CTRLA; /* Control Register A */
1404  register8_t CTRLB; /* Control Register B */
1405  register8_t CTRLC; /* Control Register C */
1406  register8_t EVCTRL; /* Event Input Control */
1407  register8_t TIMCTRL; /* Timing Control */
1408  register8_t STATUS; /* Status */
1409  register8_t reserved_0x06;
1410  register8_t reserved_0x07;
1411  register8_t GAINCAL; /* Gain Calibration */
1412  register8_t OFFSETCAL; /* Offset Calibration */
1413  register8_t reserved_0x0A;
1414  register8_t reserved_0x0B;
1415  register8_t reserved_0x0C;
1416  register8_t reserved_0x0D;
1417  register8_t reserved_0x0E;
1418  register8_t reserved_0x0F;
1419  register8_t reserved_0x10;
1420  register8_t reserved_0x11;
1421  register8_t reserved_0x12;
1422  register8_t reserved_0x13;
1423  register8_t reserved_0x14;
1424  register8_t reserved_0x15;
1425  register8_t reserved_0x16;
1426  register8_t reserved_0x17;
1427  _WORDREGISTER(CH0DATA); /* Channel 0 Data */
1428  _WORDREGISTER(CH1DATA); /* Channel 1 Data */
1429 } DAC_t;
1430 
1431 /* Output channel selection */
1432 typedef enum DAC_CHSEL_enum
1433 {
1434  DAC_CHSEL_SINGLE_gc = (0x00<<5), /* Single channel operation (Channel A only) */
1435  DAC_CHSEL_DUAL_gc = (0x02<<5), /* Dual channel operation (S/H on both channels) */
1436 } DAC_CHSEL_t;
1437 
1438 /* Reference voltage selection */
1439 typedef enum DAC_REFSEL_enum
1440 {
1441  DAC_REFSEL_INT1V_gc = (0x00<<3), /* Internal 1V */
1442  DAC_REFSEL_AVCC_gc = (0x01<<3), /* Analog supply voltage */
1443  DAC_REFSEL_AREFA_gc = (0x02<<3), /* External reference on AREF on PORTA */
1444  DAC_REFSEL_AREFB_gc = (0x03<<3), /* External reference on AREF on PORTB */
1445 } DAC_REFSEL_t;
1446 
1447 /* Event channel selection */
1448 typedef enum DAC_EVSEL_enum
1449 {
1450  DAC_EVSEL_0_gc = (0x00<<0), /* Event Channel 0 */
1451  DAC_EVSEL_1_gc = (0x01<<0), /* Event Channel 1 */
1452  DAC_EVSEL_2_gc = (0x02<<0), /* Event Channel 2 */
1453  DAC_EVSEL_3_gc = (0x03<<0), /* Event Channel 3 */
1454  DAC_EVSEL_4_gc = (0x04<<0), /* Event Channel 4 */
1455  DAC_EVSEL_5_gc = (0x05<<0), /* Event Channel 5 */
1456  DAC_EVSEL_6_gc = (0x06<<0), /* Event Channel 6 */
1457  DAC_EVSEL_7_gc = (0x07<<0), /* Event Channel 7 */
1458 } DAC_EVSEL_t;
1459 
1460 /* Conversion interval */
1461 typedef enum DAC_CONINTVAL_enum
1462 {
1463  DAC_CONINTVAL_1CLK_gc = (0x00<<4), /* 1 CLK / 2 CLK in S/H mode */
1464  DAC_CONINTVAL_2CLK_gc = (0x01<<4), /* 2 CLK / 3 CLK in S/H mode */
1465  DAC_CONINTVAL_4CLK_gc = (0x02<<4), /* 4 CLK / 6 CLK in S/H mode */
1466  DAC_CONINTVAL_8CLK_gc = (0x03<<4), /* 8 CLK / 12 CLK in S/H mode */
1467  DAC_CONINTVAL_16CLK_gc = (0x04<<4), /* 16 CLK / 24 CLK in S/H mode */
1468  DAC_CONINTVAL_32CLK_gc = (0x05<<4), /* 32 CLK / 48 CLK in S/H mode */
1469  DAC_CONINTVAL_64CLK_gc = (0x06<<4), /* 64 CLK / 96 CLK in S/H mode */
1470  DAC_CONINTVAL_128CLK_gc = (0x07<<4), /* 128 CLK / 192 CLK in S/H mode */
1471 } DAC_CONINTVAL_t;
1472 
1473 /* Refresh rate */
1474 typedef enum DAC_REFRESH_enum
1475 {
1476  DAC_REFRESH_16CLK_gc = (0x00<<0), /* 16 CLK */
1477  DAC_REFRESH_32CLK_gc = (0x01<<0), /* 32 CLK */
1478  DAC_REFRESH_64CLK_gc = (0x02<<0), /* 64 CLK */
1479  DAC_REFRESH_128CLK_gc = (0x03<<0), /* 128 CLK */
1480  DAC_REFRESH_256CLK_gc = (0x04<<0), /* 256 CLK */
1481  DAC_REFRESH_512CLK_gc = (0x05<<0), /* 512 CLK */
1482  DAC_REFRESH_1024CLK_gc = (0x06<<0), /* 1024 CLK */
1483  DAC_REFRESH_2048CLK_gc = (0x07<<0), /* 2048 CLK */
1484  DAC_REFRESH_4086CLK_gc = (0x08<<0), /* 4096 CLK */
1485  DAC_REFRESH_8192CLK_gc = (0x09<<0), /* 8192 CLK */
1486  DAC_REFRESH_16384CLK_gc = (0x0A<<0), /* 16384 CLK */
1487  DAC_REFRESH_32768CLK_gc = (0x0B<<0), /* 32768 CLK */
1488  DAC_REFRESH_65536CLK_gc = (0x0C<<0), /* 65536 CLK */
1489  DAC_REFRESH_OFF_gc = (0x0F<<0), /* Auto refresh OFF */
1490 } DAC_REFRESH_t;
1491 
1492 
1493 /*
1494 --------------------------------------------------------------------------
1495 RTC32 - 32-bit Real-Time Counter
1496 --------------------------------------------------------------------------
1497 */
1498 
1499 /* 32-bit Real-Time Clounter */
1500 typedef struct RTC32_struct
1501 {
1502  register8_t CTRL; /* Control Register */
1503  register8_t SYNCCTRL; /* Synchronization Control/Status Register */
1504  register8_t INTCTRL; /* Interrupt Control Register */
1505  register8_t INTFLAGS; /* Interrupt Flags */
1506 } RTC32_t;
1507 
1508 /* Compare Interrupt level */
1509 typedef enum RTC32_COMPINTLVL_enum
1510 {
1511  RTC32_COMPINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
1512  RTC32_COMPINTLVL_LO_gc = (0x01<<2), /* Low Level */
1513  RTC32_COMPINTLVL_MED_gc = (0x02<<2), /* Medium Level */
1514  RTC32_COMPINTLVL_HI_gc = (0x03<<2), /* High Level */
1515 } RTC32_COMPINTLVL_t;
1516 
1517 /* Overflow Interrupt level */
1518 typedef enum RTC32_OVFINTLVL_enum
1519 {
1520  RTC32_OVFINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
1521  RTC32_OVFINTLVL_LO_gc = (0x01<<0), /* Low Level */
1522  RTC32_OVFINTLVL_MED_gc = (0x02<<0), /* Medium Level */
1523  RTC32_OVFINTLVL_HI_gc = (0x03<<0), /* High Level */
1524 } RTC32_OVFINTLVL_t;
1525 
1526 
1527 /*
1528 --------------------------------------------------------------------------
1529 EBI - External Bus Interface
1530 --------------------------------------------------------------------------
1531 */
1532 
1533 /* EBI Chip Select Module */
1534 typedef struct EBI_CS_struct
1535 {
1536  register8_t CTRLA; /* Chip Select Control Register A */
1537  register8_t CTRLB; /* Chip Select Control Register B */
1538  _WORDREGISTER(BASEADDR); /* Chip Select Base Address */
1539 } EBI_CS_t;
1540 
1541 /*
1542 --------------------------------------------------------------------------
1543 EBI - External Bus Interface
1544 --------------------------------------------------------------------------
1545 */
1546 
1547 /* External Bus Interface */
1548 typedef struct EBI_struct
1549 {
1550  register8_t CTRL; /* Control */
1551  register8_t SDRAMCTRLA; /* SDRAM Control Register A */
1552  register8_t reserved_0x02;
1553  register8_t reserved_0x03;
1554  _WORDREGISTER(REFRESH); /* SDRAM Refresh Period */
1555  _WORDREGISTER(INITDLY); /* SDRAM Initialization Delay */
1556  register8_t SDRAMCTRLB; /* SDRAM Control Register B */
1557  register8_t SDRAMCTRLC; /* SDRAM Control Register C */
1558  register8_t reserved_0x0A;
1559  register8_t reserved_0x0B;
1560  register8_t reserved_0x0C;
1561  register8_t reserved_0x0D;
1562  register8_t reserved_0x0E;
1563  register8_t reserved_0x0F;
1564  EBI_CS_t CS0; /* Chip Select 0 */
1565  EBI_CS_t CS1; /* Chip Select 1 */
1566  EBI_CS_t CS2; /* Chip Select 2 */
1567  EBI_CS_t CS3; /* Chip Select 3 */
1568 } EBI_t;
1569 
1570 /* Chip Select adress space */
1571 typedef enum EBI_CS_ASPACE_enum
1572 {
1573  EBI_CS_ASPACE_256B_gc = (0x00<<2), /* 256 bytes */
1574  EBI_CS_ASPACE_512B_gc = (0x01<<2), /* 512 bytes */
1575  EBI_CS_ASPACE_1KB_gc = (0x02<<2), /* 1K bytes */
1576  EBI_CS_ASPACE_2KB_gc = (0x03<<2), /* 2K bytes */
1577  EBI_CS_ASPACE_4KB_gc = (0x04<<2), /* 4K bytes */
1578  EBI_CS_ASPACE_8KB_gc = (0x05<<2), /* 8K bytes */
1579  EBI_CS_ASPACE_16KB_gc = (0x06<<2), /* 16K bytes */
1580  EBI_CS_ASPACE_32KB_gc = (0x07<<2), /* 32K bytes */
1581  EBI_CS_ASPACE_64KB_gc = (0x08<<2), /* 64K bytes */
1582  EBI_CS_ASPACE_128KB_gc = (0x09<<2), /* 128K bytes */
1583  EBI_CS_ASPACE_256KB_gc = (0x0A<<2), /* 256K bytes */
1584  EBI_CS_ASPACE_512KB_gc = (0x0B<<2), /* 512K bytes */
1585  EBI_CS_ASPACE_1MB_gc = (0x0C<<2), /* 1M bytes */
1586  EBI_CS_ASPACE_2MB_gc = (0x0D<<2), /* 2M bytes */
1587  EBI_CS_ASPACE_4MB_gc = (0x0E<<2), /* 4M bytes */
1588  EBI_CS_ASPACE_8MB_gc = (0x0F<<2), /* 8M bytes */
1589  EBI_CS_ASPACE_16M_gc = (0x10<<2), /* 16M bytes */
1590 } EBI_CS_ASPACE_t;
1591 
1592 /* */
1593 typedef enum EBI_CS_SRWS_enum
1594 {
1595  EBI_CS_SRWS_0CLK_gc = (0x00<<0), /* 0 cycles */
1596  EBI_CS_SRWS_1CLK_gc = (0x01<<0), /* 1 cycle */
1597  EBI_CS_SRWS_2CLK_gc = (0x02<<0), /* 2 cycles */
1598  EBI_CS_SRWS_3CLK_gc = (0x03<<0), /* 3 cycles */
1599  EBI_CS_SRWS_4CLK_gc = (0x04<<0), /* 4 cycles */
1600  EBI_CS_SRWS_5CLK_gc = (0x05<<0), /* 5 cycle */
1601  EBI_CS_SRWS_6CLK_gc = (0x06<<0), /* 6 cycles */
1602  EBI_CS_SRWS_7CLK_gc = (0x07<<0), /* 7 cycles */
1603 } EBI_CS_SRWS_t;
1604 
1605 /* Chip Select address mode */
1606 typedef enum EBI_CS_MODE_enum
1607 {
1608  EBI_CS_MODE_DISABLED_gc = (0x00<<0), /* Chip Select Disabled */
1609  EBI_CS_MODE_SRAM_gc = (0x01<<0), /* Chip Select in SRAM mode */
1610  EBI_CS_MODE_LPC_gc = (0x02<<0), /* Chip Select in SRAM LPC mode */
1611  EBI_CS_MODE_SDRAM_gc = (0x03<<0), /* Chip Select in SDRAM mode */
1612 } EBI_CS_MODE_t;
1613 
1614 /* Chip Select SDRAM mode */
1615 typedef enum EBI_CS_SDMODE_enum
1616 {
1617  EBI_CS_SDMODE_NORMAL_gc = (0x00<<0), /* Normal mode */
1618  EBI_CS_SDMODE_LOAD_gc = (0x01<<0), /* Load Mode Register command mode */
1619 } EBI_CS_SDMODE_t;
1620 
1621 /* */
1622 typedef enum EBI_SDDATAW_enum
1623 {
1624  EBI_SDDATAW_4BIT_gc = (0x00<<6), /* 4-bit data bus */
1625  EBI_SDDATAW_8BIT_gc = (0x01<<6), /* 8-bit data bus */
1626 } EBI_SDDATAW_t;
1627 
1628 /* */
1629 typedef enum EBI_LPCMODE_enum
1630 {
1631  EBI_LPCMODE_ALE1_gc = (0x00<<4), /* Data muxed with addr byte 0 */
1632  EBI_LPCMODE_ALE12_gc = (0x02<<4), /* Data muxed with addr byte 0 and 1 */
1633 } EBI_LPCMODE_t;
1634 
1635 /* */
1636 typedef enum EBI_SRMODE_enum
1637 {
1638  EBI_SRMODE_ALE1_gc = (0x00<<2), /* Addr byte 0 muxed with 1 */
1639  EBI_SRMODE_ALE2_gc = (0x01<<2), /* Addr byte 0 muxed with 2 */
1640  EBI_SRMODE_ALE12_gc = (0x02<<2), /* Addr byte 0 muxed with 1 and 2 */
1641  EBI_SRMODE_NOALE_gc = (0x03<<2), /* No addr muxing */
1642 } EBI_SRMODE_t;
1643 
1644 /* */
1645 typedef enum EBI_IFMODE_enum
1646 {
1647  EBI_IFMODE_DISABLED_gc = (0x00<<0), /* EBI Disabled */
1648  EBI_IFMODE_3PORT_gc = (0x01<<0), /* 3-port mode */
1649  EBI_IFMODE_4PORT_gc = (0x02<<0), /* 4-port mode */
1650  EBI_IFMODE_2PORT_gc = (0x03<<0), /* 2-port mode */
1651 } EBI_IFMODE_t;
1652 
1653 /* */
1654 typedef enum EBI_SDCOL_enum
1655 {
1656  EBI_SDCOL_8BIT_gc = (0x00<<0), /* 8 column bits */
1657  EBI_SDCOL_9BIT_gc = (0x01<<0), /* 9 column bits */
1658  EBI_SDCOL_10BIT_gc = (0x02<<0), /* 10 column bits */
1659  EBI_SDCOL_11BIT_gc = (0x03<<0), /* 11 column bits */
1660 } EBI_SDCOL_t;
1661 
1662 /* */
1663 typedef enum EBI_MRDLY_enum
1664 {
1665  EBI_MRDLY_0CLK_gc = (0x00<<6), /* 0 cycles */
1666  EBI_MRDLY_1CLK_gc = (0x01<<6), /* 1 cycle */
1667  EBI_MRDLY_2CLK_gc = (0x02<<6), /* 2 cycles */
1668  EBI_MRDLY_3CLK_gc = (0x03<<6), /* 3 cycles */
1669 } EBI_MRDLY_t;
1670 
1671 /* */
1672 typedef enum EBI_ROWCYCDLY_enum
1673 {
1674  EBI_ROWCYCDLY_0CLK_gc = (0x00<<3), /* 0 cycles */
1675  EBI_ROWCYCDLY_1CLK_gc = (0x01<<3), /* 1 cycle */
1676  EBI_ROWCYCDLY_2CLK_gc = (0x02<<3), /* 2 cycles */
1677  EBI_ROWCYCDLY_3CLK_gc = (0x03<<3), /* 3 cycles */
1678  EBI_ROWCYCDLY_4CLK_gc = (0x04<<3), /* 4 cycles */
1679  EBI_ROWCYCDLY_5CLK_gc = (0x05<<3), /* 5 cycle */
1680  EBI_ROWCYCDLY_6CLK_gc = (0x06<<3), /* 6 cycles */
1681  EBI_ROWCYCDLY_7CLK_gc = (0x07<<3), /* 7 cycles */
1682 } EBI_ROWCYCDLY_t;
1683 
1684 /* */
1685 typedef enum EBI_RPDLY_enum
1686 {
1687  EBI_RPDLY_0CLK_gc = (0x00<<0), /* 0 cycles */
1688  EBI_RPDLY_1CLK_gc = (0x01<<0), /* 1 cycle */
1689  EBI_RPDLY_2CLK_gc = (0x02<<0), /* 2 cycles */
1690  EBI_RPDLY_3CLK_gc = (0x03<<0), /* 3 cycles */
1691  EBI_RPDLY_4CLK_gc = (0x04<<0), /* 4 cycles */
1692  EBI_RPDLY_5CLK_gc = (0x05<<0), /* 5 cycle */
1693  EBI_RPDLY_6CLK_gc = (0x06<<0), /* 6 cycles */
1694  EBI_RPDLY_7CLK_gc = (0x07<<0), /* 7 cycles */
1695 } EBI_RPDLY_t;
1696 
1697 /* */
1698 typedef enum EBI_WRDLY_enum
1699 {
1700  EBI_WRDLY_0CLK_gc = (0x00<<6), /* 0 cycles */
1701  EBI_WRDLY_1CLK_gc = (0x01<<6), /* 1 cycle */
1702  EBI_WRDLY_2CLK_gc = (0x02<<6), /* 2 cycles */
1703  EBI_WRDLY_3CLK_gc = (0x03<<6), /* 3 cycles */
1704 } EBI_WRDLY_t;
1705 
1706 /* */
1707 typedef enum EBI_ESRDLY_enum
1708 {
1709  EBI_ESRDLY_0CLK_gc = (0x00<<3), /* 0 cycles */
1710  EBI_ESRDLY_1CLK_gc = (0x01<<3), /* 1 cycle */
1711  EBI_ESRDLY_2CLK_gc = (0x02<<3), /* 2 cycles */
1712  EBI_ESRDLY_3CLK_gc = (0x03<<3), /* 3 cycles */
1713  EBI_ESRDLY_4CLK_gc = (0x04<<3), /* 4 cycles */
1714  EBI_ESRDLY_5CLK_gc = (0x05<<3), /* 5 cycle */
1715  EBI_ESRDLY_6CLK_gc = (0x06<<3), /* 6 cycles */
1716  EBI_ESRDLY_7CLK_gc = (0x07<<3), /* 7 cycles */
1717 } EBI_ESRDLY_t;
1718 
1719 /* */
1720 typedef enum EBI_ROWCOLDLY_enum
1721 {
1722  EBI_ROWCOLDLY_0CLK_gc = (0x00<<0), /* 0 cycles */
1723  EBI_ROWCOLDLY_1CLK_gc = (0x01<<0), /* 1 cycle */
1724  EBI_ROWCOLDLY_2CLK_gc = (0x02<<0), /* 2 cycles */
1725  EBI_ROWCOLDLY_3CLK_gc = (0x03<<0), /* 3 cycles */
1726  EBI_ROWCOLDLY_4CLK_gc = (0x04<<0), /* 4 cycles */
1727  EBI_ROWCOLDLY_5CLK_gc = (0x05<<0), /* 5 cycle */
1728  EBI_ROWCOLDLY_6CLK_gc = (0x06<<0), /* 6 cycles */
1729  EBI_ROWCOLDLY_7CLK_gc = (0x07<<0), /* 7 cycles */
1730 } EBI_ROWCOLDLY_t;
1731 
1732 
1733 /*
1734 --------------------------------------------------------------------------
1735 TWI - Two-Wire Interface
1736 --------------------------------------------------------------------------
1737 */
1738 
1739 /* */
1740 typedef struct TWI_MASTER_struct
1741 {
1742  register8_t CTRLA; /* Control Register A */
1743  register8_t CTRLB; /* Control Register B */
1744  register8_t CTRLC; /* Control Register C */
1745  register8_t STATUS; /* Status Register */
1746  register8_t BAUD; /* Baurd Rate Control Register */
1747  register8_t ADDR; /* Address Register */
1748  register8_t DATA; /* Data Register */
1749 } TWI_MASTER_t;
1750 
1751 /*
1752 --------------------------------------------------------------------------
1753 TWI - Two-Wire Interface
1754 --------------------------------------------------------------------------
1755 */
1756 
1757 /* */
1758 typedef struct TWI_SLAVE_struct
1759 {
1760  register8_t CTRLA; /* Control Register A */
1761  register8_t CTRLB; /* Control Register B */
1762  register8_t STATUS; /* Status Register */
1763  register8_t ADDR; /* Address Register */
1764  register8_t DATA; /* Data Register */
1765  register8_t ADDRMASK; /* Address Mask Register */
1766 } TWI_SLAVE_t;
1767 
1768 /*
1769 --------------------------------------------------------------------------
1770 TWI - Two-Wire Interface
1771 --------------------------------------------------------------------------
1772 */
1773 
1774 /* Two-Wire Interface */
1775 typedef struct TWI_struct
1776 {
1777  register8_t CTRL; /* TWI Common Control Register */
1778  TWI_MASTER_t MASTER; /* TWI master module */
1779  TWI_SLAVE_t SLAVE; /* TWI slave module */
1780 } TWI_t;
1781 
1782 /* Master Interrupt Level */
1783 typedef enum TWI_MASTER_INTLVL_enum
1784 {
1785  TWI_MASTER_INTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */
1786  TWI_MASTER_INTLVL_LO_gc = (0x01<<6), /* Low Level */
1787  TWI_MASTER_INTLVL_MED_gc = (0x02<<6), /* Medium Level */
1788  TWI_MASTER_INTLVL_HI_gc = (0x03<<6), /* High Level */
1789 } TWI_MASTER_INTLVL_t;
1790 
1791 /* Inactive Timeout */
1792 typedef enum TWI_MASTER_TIMEOUT_enum
1793 {
1794  TWI_MASTER_TIMEOUT_DISABLED_gc = (0x00<<2), /* Bus Timeout Disabled */
1795  TWI_MASTER_TIMEOUT_50US_gc = (0x01<<2), /* 50 Microseconds */
1796  TWI_MASTER_TIMEOUT_100US_gc = (0x02<<2), /* 100 Microseconds */
1797  TWI_MASTER_TIMEOUT_200US_gc = (0x03<<2), /* 200 Microseconds */
1798 } TWI_MASTER_TIMEOUT_t;
1799 
1800 /* Master Command */
1801 typedef enum TWI_MASTER_CMD_enum
1802 {
1803  TWI_MASTER_CMD_NOACT_gc = (0x00<<0), /* No Action */
1804  TWI_MASTER_CMD_REPSTART_gc = (0x01<<0), /* Issue Repeated Start Condition */
1805  TWI_MASTER_CMD_RECVTRANS_gc = (0x02<<0), /* Receive or Transmit Data */
1806  TWI_MASTER_CMD_STOP_gc = (0x03<<0), /* Issue Stop Condition */
1807 } TWI_MASTER_CMD_t;
1808 
1809 /* Master Bus State */
1810 typedef enum TWI_MASTER_BUSSTATE_enum
1811 {
1812  TWI_MASTER_BUSSTATE_UNKNOWN_gc = (0x00<<0), /* Unknown Bus State */
1813  TWI_MASTER_BUSSTATE_IDLE_gc = (0x01<<0), /* Bus is Idle */
1814  TWI_MASTER_BUSSTATE_OWNER_gc = (0x02<<0), /* This Module Controls The Bus */
1815  TWI_MASTER_BUSSTATE_BUSY_gc = (0x03<<0), /* The Bus is Busy */
1816 } TWI_MASTER_BUSSTATE_t;
1817 
1818 /* Slave Interrupt Level */
1819 typedef enum TWI_SLAVE_INTLVL_enum
1820 {
1821  TWI_SLAVE_INTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */
1822  TWI_SLAVE_INTLVL_LO_gc = (0x01<<6), /* Low Level */
1823  TWI_SLAVE_INTLVL_MED_gc = (0x02<<6), /* Medium Level */
1824  TWI_SLAVE_INTLVL_HI_gc = (0x03<<6), /* High Level */
1825 } TWI_SLAVE_INTLVL_t;
1826 
1827 /* Slave Command */
1828 typedef enum TWI_SLAVE_CMD_enum
1829 {
1830  TWI_SLAVE_CMD_NOACT_gc = (0x00<<0), /* No Action */
1831  TWI_SLAVE_CMD_COMPTRANS_gc = (0x02<<0), /* Used To Complete a Transaction */
1832  TWI_SLAVE_CMD_RESPONSE_gc = (0x03<<0), /* Used in Response to Address/Data Interrupt */
1833 } TWI_SLAVE_CMD_t;
1834 
1835 
1836 /*
1837 --------------------------------------------------------------------------
1838 PORT - Port Configuration
1839 --------------------------------------------------------------------------
1840 */
1841 
1842 /* I/O port Configuration */
1843 typedef struct PORTCFG_struct
1844 {
1845  register8_t MPCMASK; /* Multi-pin Configuration Mask */
1846  register8_t reserved_0x01;
1847  register8_t VPCTRLA; /* Virtual Port Control Register A */
1848  register8_t VPCTRLB; /* Virtual Port Control Register B */
1849  register8_t CLKEVOUT; /* Clock and Event Out Register */
1850 } PORTCFG_t;
1851 
1852 /*
1853 --------------------------------------------------------------------------
1854 PORT - Port Configuration
1855 --------------------------------------------------------------------------
1856 */
1857 
1858 /* Virtual Port */
1859 typedef struct VPORT_struct
1860 {
1861  register8_t DIR; /* I/O Port Data Direction */
1862  register8_t OUT; /* I/O Port Output */
1863  register8_t IN; /* I/O Port Input */
1864  register8_t INTFLAGS; /* Interrupt Flag Register */
1865 } VPORT_t;
1866 
1867 /*
1868 --------------------------------------------------------------------------
1869 PORT - Port Configuration
1870 --------------------------------------------------------------------------
1871 */
1872 
1873 /* I/O Ports */
1874 typedef struct PORT_struct
1875 {
1876  register8_t DIR; /* I/O Port Data Direction */
1877  register8_t DIRSET; /* I/O Port Data Direction Set */
1878  register8_t DIRCLR; /* I/O Port Data Direction Clear */
1879  register8_t DIRTGL; /* I/O Port Data Direction Toggle */
1880  register8_t OUT; /* I/O Port Output */
1881  register8_t OUTSET; /* I/O Port Output Set */
1882  register8_t OUTCLR; /* I/O Port Output Clear */
1883  register8_t OUTTGL; /* I/O Port Output Toggle */
1884  register8_t IN; /* I/O port Input */
1885  register8_t INTCTRL; /* Interrupt Control Register */
1886  register8_t INT0MASK; /* Port Interrupt 0 Mask */
1887  register8_t INT1MASK; /* Port Interrupt 1 Mask */
1888  register8_t INTFLAGS; /* Interrupt Flag Register */
1889  register8_t reserved_0x0D;
1890  register8_t reserved_0x0E;
1891  register8_t reserved_0x0F;
1892  register8_t PIN0CTRL; /* Pin 0 Control Register */
1893  register8_t PIN1CTRL; /* Pin 1 Control Register */
1894  register8_t PIN2CTRL; /* Pin 2 Control Register */
1895  register8_t PIN3CTRL; /* Pin 3 Control Register */
1896  register8_t PIN4CTRL; /* Pin 4 Control Register */
1897  register8_t PIN5CTRL; /* Pin 5 Control Register */
1898  register8_t PIN6CTRL; /* Pin 6 Control Register */
1899  register8_t PIN7CTRL; /* Pin 7 Control Register */
1900 } PORT_t;
1901 
1902 /* Virtual Port 0 Mapping */
1903 typedef enum PORTCFG_VP0MAP_enum
1904 {
1905  PORTCFG_VP0MAP_PORTA_gc = (0x00<<0), /* Mapped To PORTA */
1906  PORTCFG_VP0MAP_PORTB_gc = (0x01<<0), /* Mapped To PORTB */
1907  PORTCFG_VP0MAP_PORTC_gc = (0x02<<0), /* Mapped To PORTC */
1908  PORTCFG_VP0MAP_PORTD_gc = (0x03<<0), /* Mapped To PORTD */
1909  PORTCFG_VP0MAP_PORTE_gc = (0x04<<0), /* Mapped To PORTE */
1910  PORTCFG_VP0MAP_PORTF_gc = (0x05<<0), /* Mapped To PORTF */
1911  PORTCFG_VP0MAP_PORTG_gc = (0x06<<0), /* Mapped To PORTG */
1912  PORTCFG_VP0MAP_PORTH_gc = (0x07<<0), /* Mapped To PORTH */
1913  PORTCFG_VP0MAP_PORTJ_gc = (0x08<<0), /* Mapped To PORTJ */
1914  PORTCFG_VP0MAP_PORTK_gc = (0x09<<0), /* Mapped To PORTK */
1915  PORTCFG_VP0MAP_PORTL_gc = (0x0A<<0), /* Mapped To PORTL */
1916  PORTCFG_VP0MAP_PORTM_gc = (0x0B<<0), /* Mapped To PORTM */
1917  PORTCFG_VP0MAP_PORTN_gc = (0x0C<<0), /* Mapped To PORTN */
1918  PORTCFG_VP0MAP_PORTP_gc = (0x0D<<0), /* Mapped To PORTP */
1919  PORTCFG_VP0MAP_PORTQ_gc = (0x0E<<0), /* Mapped To PORTQ */
1920  PORTCFG_VP0MAP_PORTR_gc = (0x0F<<0), /* Mapped To PORTR */
1921 } PORTCFG_VP0MAP_t;
1922 
1923 /* Virtual Port 1 Mapping */
1924 typedef enum PORTCFG_VP1MAP_enum
1925 {
1926  PORTCFG_VP1MAP_PORTA_gc = (0x00<<4), /* Mapped To PORTA */
1927  PORTCFG_VP1MAP_PORTB_gc = (0x01<<4), /* Mapped To PORTB */
1928  PORTCFG_VP1MAP_PORTC_gc = (0x02<<4), /* Mapped To PORTC */
1929  PORTCFG_VP1MAP_PORTD_gc = (0x03<<4), /* Mapped To PORTD */
1930  PORTCFG_VP1MAP_PORTE_gc = (0x04<<4), /* Mapped To PORTE */
1931  PORTCFG_VP1MAP_PORTF_gc = (0x05<<4), /* Mapped To PORTF */
1932  PORTCFG_VP1MAP_PORTG_gc = (0x06<<4), /* Mapped To PORTG */
1933  PORTCFG_VP1MAP_PORTH_gc = (0x07<<4), /* Mapped To PORTH */
1934  PORTCFG_VP1MAP_PORTJ_gc = (0x08<<4), /* Mapped To PORTJ */
1935  PORTCFG_VP1MAP_PORTK_gc = (0x09<<4), /* Mapped To PORTK */
1936  PORTCFG_VP1MAP_PORTL_gc = (0x0A<<4), /* Mapped To PORTL */
1937  PORTCFG_VP1MAP_PORTM_gc = (0x0B<<4), /* Mapped To PORTM */
1938  PORTCFG_VP1MAP_PORTN_gc = (0x0C<<4), /* Mapped To PORTN */
1939  PORTCFG_VP1MAP_PORTP_gc = (0x0D<<4), /* Mapped To PORTP */
1940  PORTCFG_VP1MAP_PORTQ_gc = (0x0E<<4), /* Mapped To PORTQ */
1941  PORTCFG_VP1MAP_PORTR_gc = (0x0F<<4), /* Mapped To PORTR */
1942 } PORTCFG_VP1MAP_t;
1943 
1944 /* Virtual Port 2 Mapping */
1945 typedef enum PORTCFG_VP2MAP_enum
1946 {
1947  PORTCFG_VP2MAP_PORTA_gc = (0x00<<0), /* Mapped To PORTA */
1948  PORTCFG_VP2MAP_PORTB_gc = (0x01<<0), /* Mapped To PORTB */
1949  PORTCFG_VP2MAP_PORTC_gc = (0x02<<0), /* Mapped To PORTC */
1950  PORTCFG_VP2MAP_PORTD_gc = (0x03<<0), /* Mapped To PORTD */
1951  PORTCFG_VP2MAP_PORTE_gc = (0x04<<0), /* Mapped To PORTE */
1952  PORTCFG_VP2MAP_PORTF_gc = (0x05<<0), /* Mapped To PORTF */
1953  PORTCFG_VP2MAP_PORTG_gc = (0x06<<0), /* Mapped To PORTG */
1954  PORTCFG_VP2MAP_PORTH_gc = (0x07<<0), /* Mapped To PORTH */
1955  PORTCFG_VP2MAP_PORTJ_gc = (0x08<<0), /* Mapped To PORTJ */
1956  PORTCFG_VP2MAP_PORTK_gc = (0x09<<0), /* Mapped To PORTK */
1957  PORTCFG_VP2MAP_PORTL_gc = (0x0A<<0), /* Mapped To PORTL */
1958  PORTCFG_VP2MAP_PORTM_gc = (0x0B<<0), /* Mapped To PORTM */
1959  PORTCFG_VP2MAP_PORTN_gc = (0x0C<<0), /* Mapped To PORTN */
1960  PORTCFG_VP2MAP_PORTP_gc = (0x0D<<0), /* Mapped To PORTP */
1961  PORTCFG_VP2MAP_PORTQ_gc = (0x0E<<0), /* Mapped To PORTQ */
1962  PORTCFG_VP2MAP_PORTR_gc = (0x0F<<0), /* Mapped To PORTR */
1963 } PORTCFG_VP2MAP_t;
1964 
1965 /* Virtual Port 3 Mapping */
1966 typedef enum PORTCFG_VP3MAP_enum
1967 {
1968  PORTCFG_VP3MAP_PORTA_gc = (0x00<<4), /* Mapped To PORTA */
1969  PORTCFG_VP3MAP_PORTB_gc = (0x01<<4), /* Mapped To PORTB */
1970  PORTCFG_VP3MAP_PORTC_gc = (0x02<<4), /* Mapped To PORTC */
1971  PORTCFG_VP3MAP_PORTD_gc = (0x03<<4), /* Mapped To PORTD */
1972  PORTCFG_VP3MAP_PORTE_gc = (0x04<<4), /* Mapped To PORTE */
1973  PORTCFG_VP3MAP_PORTF_gc = (0x05<<4), /* Mapped To PORTF */
1974  PORTCFG_VP3MAP_PORTG_gc = (0x06<<4), /* Mapped To PORTG */
1975  PORTCFG_VP3MAP_PORTH_gc = (0x07<<4), /* Mapped To PORTH */
1976  PORTCFG_VP3MAP_PORTJ_gc = (0x08<<4), /* Mapped To PORTJ */
1977  PORTCFG_VP3MAP_PORTK_gc = (0x09<<4), /* Mapped To PORTK */
1978  PORTCFG_VP3MAP_PORTL_gc = (0x0A<<4), /* Mapped To PORTL */
1979  PORTCFG_VP3MAP_PORTM_gc = (0x0B<<4), /* Mapped To PORTM */
1980  PORTCFG_VP3MAP_PORTN_gc = (0x0C<<4), /* Mapped To PORTN */
1981  PORTCFG_VP3MAP_PORTP_gc = (0x0D<<4), /* Mapped To PORTP */
1982  PORTCFG_VP3MAP_PORTQ_gc = (0x0E<<4), /* Mapped To PORTQ */
1983  PORTCFG_VP3MAP_PORTR_gc = (0x0F<<4), /* Mapped To PORTR */
1984 } PORTCFG_VP3MAP_t;
1985 
1986 /* Clock Output Port */
1987 typedef enum PORTCFG_CLKOUT_enum
1988 {
1989  PORTCFG_CLKOUT_OFF_gc = (0x00<<0), /* Clock Output Disabled */
1990  PORTCFG_CLKOUT_PC7_gc = (0x01<<0), /* Clock Output on Port C pin 7 */
1991  PORTCFG_CLKOUT_PD7_gc = (0x02<<0), /* Clock Output on Port D pin 7 */
1992  PORTCFG_CLKOUT_PE7_gc = (0x03<<0), /* Clock Output on Port E pin 7 */
1993 } PORTCFG_CLKOUT_t;
1994 
1995 /* Event Output Port */
1996 typedef enum PORTCFG_EVOUT_enum
1997 {
1998  PORTCFG_EVOUT_OFF_gc = (0x00<<4), /* Event Output Disabled */
1999  PORTCFG_EVOUT_PC7_gc = (0x01<<4), /* Event Channel 7 Output on Port C pin 7 */
2000  PORTCFG_EVOUT_PD7_gc = (0x02<<4), /* Event Channel 7 Output on Port D pin 7 */
2001  PORTCFG_EVOUT_PE7_gc = (0x03<<4), /* Event Channel 7 Output on Port E pin 7 */
2002 } PORTCFG_EVOUT_t;
2003 
2004 /* Port Interrupt 0 Level */
2005 typedef enum PORT_INT0LVL_enum
2006 {
2007  PORT_INT0LVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
2008  PORT_INT0LVL_LO_gc = (0x01<<0), /* Low Level */
2009  PORT_INT0LVL_MED_gc = (0x02<<0), /* Medium Level */
2010  PORT_INT0LVL_HI_gc = (0x03<<0), /* High Level */
2011 } PORT_INT0LVL_t;
2012 
2013 /* Port Interrupt 1 Level */
2014 typedef enum PORT_INT1LVL_enum
2015 {
2016  PORT_INT1LVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
2017  PORT_INT1LVL_LO_gc = (0x01<<2), /* Low Level */
2018  PORT_INT1LVL_MED_gc = (0x02<<2), /* Medium Level */
2019  PORT_INT1LVL_HI_gc = (0x03<<2), /* High Level */
2020 } PORT_INT1LVL_t;
2021 
2022 /* Output/Pull Configuration */
2023 typedef enum PORT_OPC_enum
2024 {
2025  PORT_OPC_TOTEM_gc = (0x00<<3), /* Totempole */
2026  PORT_OPC_BUSKEEPER_gc = (0x01<<3), /* Totempole w/ Bus keeper on Input and Output */
2027  PORT_OPC_PULLDOWN_gc = (0x02<<3), /* Totempole w/ Pull-down on Input */
2028  PORT_OPC_PULLUP_gc = (0x03<<3), /* Totempole w/ Pull-up on Input */
2029  PORT_OPC_WIREDOR_gc = (0x04<<3), /* Wired OR */
2030  PORT_OPC_WIREDAND_gc = (0x05<<3), /* Wired AND */
2031  PORT_OPC_WIREDORPULL_gc = (0x06<<3), /* Wired OR w/ Pull-down */
2032  PORT_OPC_WIREDANDPULL_gc = (0x07<<3), /* Wired AND w/ Pull-up */
2033 } PORT_OPC_t;
2034 
2035 /* Input/Sense Configuration */
2036 typedef enum PORT_ISC_enum
2037 {
2038  PORT_ISC_BOTHEDGES_gc = (0x00<<0), /* Sense Both Edges */
2039  PORT_ISC_RISING_gc = (0x01<<0), /* Sense Rising Edge */
2040  PORT_ISC_FALLING_gc = (0x02<<0), /* Sense Falling Edge */
2041  PORT_ISC_LEVEL_gc = (0x03<<0), /* Sense Level (Transparent For Events) */
2042  PORT_ISC_INPUT_DISABLE_gc = (0x07<<0), /* Disable Digital Input Buffer */
2043 } PORT_ISC_t;
2044 
2045 
2046 /*
2047 --------------------------------------------------------------------------
2048 TC - 16-bit Timer/Counter With PWM
2049 --------------------------------------------------------------------------
2050 */
2051 
2052 /* 16-bit Timer/Counter 0 */
2053 typedef struct TC0_struct
2054 {
2055  register8_t CTRLA; /* Control Register A */
2056  register8_t CTRLB; /* Control Register B */
2057  register8_t CTRLC; /* Control register C */
2058  register8_t CTRLD; /* Control Register D */
2059  register8_t CTRLE; /* Control Register E */
2060  register8_t reserved_0x05;
2061  register8_t INTCTRLA; /* Interrupt Control Register A */
2062  register8_t INTCTRLB; /* Interrupt Control Register B */
2063  register8_t CTRLFCLR; /* Control Register F Clear */
2064  register8_t CTRLFSET; /* Control Register F Set */
2065  register8_t CTRLGCLR; /* Control Register G Clear */
2066  register8_t CTRLGSET; /* Control Register G Set */
2067  register8_t INTFLAGS; /* Interrupt Flag Register */
2068  register8_t reserved_0x0D;
2069  register8_t reserved_0x0E;
2070  register8_t TEMP; /* Temporary Register For 16-bit Access */
2071  register8_t reserved_0x10;
2072  register8_t reserved_0x11;
2073  register8_t reserved_0x12;
2074  register8_t reserved_0x13;
2075  register8_t reserved_0x14;
2076  register8_t reserved_0x15;
2077  register8_t reserved_0x16;
2078  register8_t reserved_0x17;
2079  register8_t reserved_0x18;
2080  register8_t reserved_0x19;
2081  register8_t reserved_0x1A;
2082  register8_t reserved_0x1B;
2083  register8_t reserved_0x1C;
2084  register8_t reserved_0x1D;
2085  register8_t reserved_0x1E;
2086  register8_t reserved_0x1F;
2087  _WORDREGISTER(CNT); /* Count */
2088  register8_t reserved_0x22;
2089  register8_t reserved_0x23;
2090  register8_t reserved_0x24;
2091  register8_t reserved_0x25;
2092  _WORDREGISTER(PER); /* Period */
2093  _WORDREGISTER(CCA); /* Compare or Capture A */
2094  _WORDREGISTER(CCB); /* Compare or Capture B */
2095  _WORDREGISTER(CCC); /* Compare or Capture C */
2096  _WORDREGISTER(CCD); /* Compare or Capture D */
2097  register8_t reserved_0x30;
2098  register8_t reserved_0x31;
2099  register8_t reserved_0x32;
2100  register8_t reserved_0x33;
2101  register8_t reserved_0x34;
2102  register8_t reserved_0x35;
2103  _WORDREGISTER(PERBUF); /* Period Buffer */
2104  _WORDREGISTER(CCABUF); /* Compare Or Capture A Buffer */
2105  _WORDREGISTER(CCBBUF); /* Compare Or Capture B Buffer */
2106  _WORDREGISTER(CCCBUF); /* Compare Or Capture C Buffer */
2107  _WORDREGISTER(CCDBUF); /* Compare Or Capture D Buffer */
2108 } TC0_t;
2109 
2110 /*
2111 --------------------------------------------------------------------------
2112 TC - 16-bit Timer/Counter With PWM
2113 --------------------------------------------------------------------------
2114 */
2115 
2116 /* 16-bit Timer/Counter 1 */
2117 typedef struct TC1_struct
2118 {
2119  register8_t CTRLA; /* Control Register A */
2120  register8_t CTRLB; /* Control Register B */
2121  register8_t CTRLC; /* Control register C */
2122  register8_t CTRLD; /* Control Register D */
2123  register8_t CTRLE; /* Control Register E */
2124  register8_t reserved_0x05;
2125  register8_t INTCTRLA; /* Interrupt Control Register A */
2126  register8_t INTCTRLB; /* Interrupt Control Register B */
2127  register8_t CTRLFCLR; /* Control Register F Clear */
2128  register8_t CTRLFSET; /* Control Register F Set */
2129  register8_t CTRLGCLR; /* Control Register G Clear */
2130  register8_t CTRLGSET; /* Control Register G Set */
2131  register8_t INTFLAGS; /* Interrupt Flag Register */
2132  register8_t reserved_0x0D;
2133  register8_t reserved_0x0E;
2134  register8_t TEMP; /* Temporary Register For 16-bit Access */
2135  register8_t reserved_0x10;
2136  register8_t reserved_0x11;
2137  register8_t reserved_0x12;
2138  register8_t reserved_0x13;
2139  register8_t reserved_0x14;
2140  register8_t reserved_0x15;
2141  register8_t reserved_0x16;
2142  register8_t reserved_0x17;
2143  register8_t reserved_0x18;
2144  register8_t reserved_0x19;
2145  register8_t reserved_0x1A;
2146  register8_t reserved_0x1B;
2147  register8_t reserved_0x1C;
2148  register8_t reserved_0x1D;
2149  register8_t reserved_0x1E;
2150  register8_t reserved_0x1F;
2151  _WORDREGISTER(CNT); /* Count */
2152  register8_t reserved_0x22;
2153  register8_t reserved_0x23;
2154  register8_t reserved_0x24;
2155  register8_t reserved_0x25;
2156  _WORDREGISTER(PER); /* Period */
2157  _WORDREGISTER(CCA); /* Compare or Capture A */
2158  _WORDREGISTER(CCB); /* Compare or Capture B */
2159  register8_t reserved_0x2C;
2160  register8_t reserved_0x2D;
2161  register8_t reserved_0x2E;
2162  register8_t reserved_0x2F;
2163  register8_t reserved_0x30;
2164  register8_t reserved_0x31;
2165  register8_t reserved_0x32;
2166  register8_t reserved_0x33;
2167  register8_t reserved_0x34;
2168  register8_t reserved_0x35;
2169  _WORDREGISTER(PERBUF); /* Period Buffer */
2170  _WORDREGISTER(CCABUF); /* Compare Or Capture A Buffer */
2171  _WORDREGISTER(CCBBUF); /* Compare Or Capture B Buffer */
2172 } TC1_t;
2173 
2174 /*
2175 --------------------------------------------------------------------------
2176 TC - 16-bit Timer/Counter With PWM
2177 --------------------------------------------------------------------------
2178 */
2179 
2180 /* Advanced Waveform Extension */
2181 typedef struct AWEX_struct
2182 {
2183  register8_t CTRL; /* Control Register */
2184  register8_t reserved_0x01;
2185  register8_t FDEVMASK; /* Fault Detection Event Mask */
2186  register8_t FDCTRL; /* Fault Detection Control Register */
2187  register8_t STATUS; /* Status Register */
2188  register8_t reserved_0x05;
2189  register8_t DTBOTH; /* Dead Time Both Sides */
2190  register8_t DTBOTHBUF; /* Dead Time Both Sides Buffer */
2191  register8_t DTLS; /* Dead Time Low Side */
2192  register8_t DTHS; /* Dead Time High Side */
2193  register8_t DTLSBUF; /* Dead Time Low Side Buffer */
2194  register8_t DTHSBUF; /* Dead Time High Side Buffer */
2195  register8_t OUTOVEN; /* Output Override Enable */
2196 } AWEX_t;
2197 
2198 /*
2199 --------------------------------------------------------------------------
2200 TC - 16-bit Timer/Counter With PWM
2201 --------------------------------------------------------------------------
2202 */
2203 
2204 /* High-Resolution Extension */
2205 typedef struct HIRES_struct
2206 {
2207  register8_t CTRL; /* Control Register */
2208 } HIRES_t;
2209 
2210 /* Clock Selection */
2211 typedef enum TC_CLKSEL_enum
2212 {
2213  TC_CLKSEL_OFF_gc = (0x00<<0), /* Timer Off */
2214  TC_CLKSEL_DIV1_gc = (0x01<<0), /* System Clock */
2215  TC_CLKSEL_DIV2_gc = (0x02<<0), /* System Clock / 2 */
2216  TC_CLKSEL_DIV4_gc = (0x03<<0), /* System Clock / 4 */
2217  TC_CLKSEL_DIV8_gc = (0x04<<0), /* System Clock / 8 */
2218  TC_CLKSEL_DIV64_gc = (0x05<<0), /* System Clock / 64 */
2219  TC_CLKSEL_DIV256_gc = (0x06<<0), /* System Clock / 256 */
2220  TC_CLKSEL_DIV1024_gc = (0x07<<0), /* System Clock / 1024 */
2221  TC_CLKSEL_EVCH0_gc = (0x08<<0), /* Event Channel 0 */
2222  TC_CLKSEL_EVCH1_gc = (0x09<<0), /* Event Channel 1 */
2223  TC_CLKSEL_EVCH2_gc = (0x0A<<0), /* Event Channel 2 */
2224  TC_CLKSEL_EVCH3_gc = (0x0B<<0), /* Event Channel 3 */
2225  TC_CLKSEL_EVCH4_gc = (0x0C<<0), /* Event Channel 4 */
2226  TC_CLKSEL_EVCH5_gc = (0x0D<<0), /* Event Channel 5 */
2227  TC_CLKSEL_EVCH6_gc = (0x0E<<0), /* Event Channel 6 */
2228  TC_CLKSEL_EVCH7_gc = (0x0F<<0), /* Event Channel 7 */
2229 } TC_CLKSEL_t;
2230 
2231 /* Waveform Generation Mode */
2232 typedef enum TC_WGMODE_enum
2233 {
2234  TC_WGMODE_NORMAL_gc = (0x00<<0), /* Normal Mode */
2235  TC_WGMODE_FRQ_gc = (0x01<<0), /* Frequency Generation Mode */
2236  TC_WGMODE_SS_gc = (0x03<<0), /* Single Slope */
2237  TC_WGMODE_DS_T_gc = (0x05<<0), /* Dual Slope, Update on TOP */
2238  TC_WGMODE_DS_TB_gc = (0x06<<0), /* Dual Slope, Update on TOP and BOTTOM */
2239  TC_WGMODE_DS_B_gc = (0x07<<0), /* Dual Slope, Update on BOTTOM */
2240 } TC_WGMODE_t;
2241 
2242 /* Event Action */
2243 typedef enum TC_EVACT_enum
2244 {
2245  TC_EVACT_OFF_gc = (0x00<<5), /* No Event Action */
2246  TC_EVACT_CAPT_gc = (0x01<<5), /* Input Capture */
2247  TC_EVACT_UPDOWN_gc = (0x02<<5), /* Externally Controlled Up/Down Count */
2248  TC_EVACT_QDEC_gc = (0x03<<5), /* Quadrature Decode */
2249  TC_EVACT_RESTART_gc = (0x04<<5), /* Restart */
2250  TC_EVACT_FRW_gc = (0x05<<5), /* Frequency Capture */
2251  TC_EVACT_PW_gc = (0x06<<5), /* Pulse-width Capture */
2252 } TC_EVACT_t;
2253 
2254 /* Event Selection */
2255 typedef enum TC_EVSEL_enum
2256 {
2257  TC_EVSEL_OFF_gc = (0x00<<0), /* No Event Source */
2258  TC_EVSEL_CH0_gc = (0x08<<0), /* Event Channel 0 */
2259  TC_EVSEL_CH1_gc = (0x09<<0), /* Event Channel 1 */
2260  TC_EVSEL_CH2_gc = (0x0A<<0), /* Event Channel 2 */
2261  TC_EVSEL_CH3_gc = (0x0B<<0), /* Event Channel 3 */
2262  TC_EVSEL_CH4_gc = (0x0C<<0), /* Event Channel 4 */
2263  TC_EVSEL_CH5_gc = (0x0D<<0), /* Event Channel 5 */
2264  TC_EVSEL_CH6_gc = (0x0E<<0), /* Event Channel 6 */
2265  TC_EVSEL_CH7_gc = (0x0F<<0), /* Event Channel 7 */
2266 } TC_EVSEL_t;
2267 
2268 /* Error Interrupt Level */
2269 typedef enum TC_ERRINTLVL_enum
2270 {
2271  TC_ERRINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
2272  TC_ERRINTLVL_LO_gc = (0x01<<2), /* Low Level */
2273  TC_ERRINTLVL_MED_gc = (0x02<<2), /* Medium Level */
2274  TC_ERRINTLVL_HI_gc = (0x03<<2), /* High Level */
2275 } TC_ERRINTLVL_t;
2276 
2277 /* Overflow Interrupt Level */
2278 typedef enum TC_OVFINTLVL_enum
2279 {
2280  TC_OVFINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
2281  TC_OVFINTLVL_LO_gc = (0x01<<0), /* Low Level */
2282  TC_OVFINTLVL_MED_gc = (0x02<<0), /* Medium Level */
2283  TC_OVFINTLVL_HI_gc = (0x03<<0), /* High Level */
2284 } TC_OVFINTLVL_t;
2285 
2286 /* Compare or Capture D Interrupt Level */
2287 typedef enum TC_CCDINTLVL_enum
2288 {
2289  TC_CCDINTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */
2290  TC_CCDINTLVL_LO_gc = (0x01<<6), /* Low Level */
2291  TC_CCDINTLVL_MED_gc = (0x02<<6), /* Medium Level */
2292  TC_CCDINTLVL_HI_gc = (0x03<<6), /* High Level */
2293 } TC_CCDINTLVL_t;
2294 
2295 /* Compare or Capture C Interrupt Level */
2296 typedef enum TC_CCCINTLVL_enum
2297 {
2298  TC_CCCINTLVL_OFF_gc = (0x00<<4), /* Interrupt Disabled */
2299  TC_CCCINTLVL_LO_gc = (0x01<<4), /* Low Level */
2300  TC_CCCINTLVL_MED_gc = (0x02<<4), /* Medium Level */
2301  TC_CCCINTLVL_HI_gc = (0x03<<4), /* High Level */
2302 } TC_CCCINTLVL_t;
2303 
2304 /* Compare or Capture B Interrupt Level */
2305 typedef enum TC_CCBINTLVL_enum
2306 {
2307  TC_CCBINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
2308  TC_CCBINTLVL_LO_gc = (0x01<<2), /* Low Level */
2309  TC_CCBINTLVL_MED_gc = (0x02<<2), /* Medium Level */
2310  TC_CCBINTLVL_HI_gc = (0x03<<2), /* High Level */
2311 } TC_CCBINTLVL_t;
2312 
2313 /* Compare or Capture A Interrupt Level */
2314 typedef enum TC_CCAINTLVL_enum
2315 {
2316  TC_CCAINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
2317  TC_CCAINTLVL_LO_gc = (0x01<<0), /* Low Level */
2318  TC_CCAINTLVL_MED_gc = (0x02<<0), /* Medium Level */
2319  TC_CCAINTLVL_HI_gc = (0x03<<0), /* High Level */
2320 } TC_CCAINTLVL_t;
2321 
2322 /* Timer/Counter Command */
2323 typedef enum TC_CMD_enum
2324 {
2325  TC_CMD_NONE_gc = (0x00<<2), /* No Command */
2326  TC_CMD_UPDATE_gc = (0x01<<2), /* Force Update */
2327  TC_CMD_RESTART_gc = (0x02<<2), /* Force Restart */
2328  TC_CMD_RESET_gc = (0x03<<2), /* Force Hard Reset */
2329 } TC_CMD_t;
2330 
2331 /* Fault Detect Action */
2332 typedef enum AWEX_FDACT_enum
2333 {
2334  AWEX_FDACT_NONE_gc = (0x00<<0), /* No Fault Protection */
2335  AWEX_FDACT_CLEAROE_gc = (0x01<<0), /* Clear Output Enable Bits */
2336  AWEX_FDACT_CLEARDIR_gc = (0x03<<0), /* Clear I/O Port Direction Bits */
2337 } AWEX_FDACT_t;
2338 
2339 /* High Resolution Enable */
2340 typedef enum HIRES_HREN_enum
2341 {
2342  HIRES_HREN_NONE_gc = (0x00<<0), /* No Fault Protection */
2343  HIRES_HREN_TC0_gc = (0x01<<0), /* Enable High Resolution on Timer/Counter 0 */
2344  HIRES_HREN_TC1_gc = (0x02<<0), /* Enable High Resolution on Timer/Counter 1 */
2345  HIRES_HREN_BOTH_gc = (0x03<<0), /* Enable High Resolution both Timer/Counters */
2346 } HIRES_HREN_t;
2347 
2348 
2349 /*
2350 --------------------------------------------------------------------------
2351 USART - Universal Asynchronous Receiver-Transmitter
2352 --------------------------------------------------------------------------
2353 */
2354 
2355 /* Universal Synchronous/Asynchronous Receiver/Transmitter */
2356 typedef struct USART_struct
2357 {
2358  register8_t DATA; /* Data Register */
2359  register8_t STATUS; /* Status Register */
2360  register8_t reserved_0x02;
2361  register8_t CTRLA; /* Control Register A */
2362  register8_t CTRLB; /* Control Register B */
2363  register8_t CTRLC; /* Control Register C */
2364  register8_t BAUDCTRLA; /* Baud Rate Control Register A */
2365  register8_t BAUDCTRLB; /* Baud Rate Control Register B */
2366 } USART_t;
2367 
2368 /* Receive Complete Interrupt level */
2369 typedef enum USART_RXCINTLVL_enum
2370 {
2371  USART_RXCINTLVL_OFF_gc = (0x00<<4), /* Interrupt Disabled */
2372  USART_RXCINTLVL_LO_gc = (0x01<<4), /* Low Level */
2373  USART_RXCINTLVL_MED_gc = (0x02<<4), /* Medium Level */
2374  USART_RXCINTLVL_HI_gc = (0x03<<4), /* High Level */
2375 } USART_RXCINTLVL_t;
2376 
2377 /* Transmit Complete Interrupt level */
2378 typedef enum USART_TXCINTLVL_enum
2379 {
2380  USART_TXCINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
2381  USART_TXCINTLVL_LO_gc = (0x01<<2), /* Low Level */
2382  USART_TXCINTLVL_MED_gc = (0x02<<2), /* Medium Level */
2383  USART_TXCINTLVL_HI_gc = (0x03<<2), /* High Level */
2384 } USART_TXCINTLVL_t;
2385 
2386 /* Data Register Empty Interrupt level */
2387 typedef enum USART_DREINTLVL_enum
2388 {
2389  USART_DREINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
2390  USART_DREINTLVL_LO_gc = (0x01<<0), /* Low Level */
2391  USART_DREINTLVL_MED_gc = (0x02<<0), /* Medium Level */
2392  USART_DREINTLVL_HI_gc = (0x03<<0), /* High Level */
2393 } USART_DREINTLVL_t;
2394 
2395 /* Character Size */
2396 typedef enum USART_CHSIZE_enum
2397 {
2398  USART_CHSIZE_5BIT_gc = (0x00<<0), /* Character size: 5 bit */
2399  USART_CHSIZE_6BIT_gc = (0x01<<0), /* Character size: 6 bit */
2400  USART_CHSIZE_7BIT_gc = (0x02<<0), /* Character size: 7 bit */
2401  USART_CHSIZE_8BIT_gc = (0x03<<0), /* Character size: 8 bit */
2402  USART_CHSIZE_9BIT_gc = (0x07<<0), /* Character size: 9 bit */
2403 } USART_CHSIZE_t;
2404 
2405 /* Communication Mode */
2406 typedef enum USART_CMODE_enum
2407 {
2408  USART_CMODE_ASYNCHRONOUS_gc = (0x00<<6), /* Asynchronous Mode */
2409  USART_CMODE_SYNCHRONOUS_gc = (0x01<<6), /* Synchronous Mode */
2410  USART_CMODE_IRDA_gc = (0x02<<6), /* IrDA Mode */
2411  USART_CMODE_MSPI_gc = (0x03<<6), /* Master SPI Mode */
2412 } USART_CMODE_t;
2413 
2414 /* Parity Mode */
2415 typedef enum USART_PMODE_enum
2416 {
2417  USART_PMODE_DISABLED_gc = (0x00<<4), /* No Parity */
2418  USART_PMODE_EVEN_gc = (0x02<<4), /* Even Parity */
2419  USART_PMODE_ODD_gc = (0x03<<4), /* Odd Parity */
2420 } USART_PMODE_t;
2421 
2422 
2423 /*
2424 --------------------------------------------------------------------------
2425 SPI - Serial Peripheral Interface
2426 --------------------------------------------------------------------------
2427 */
2428 
2429 /* Serial Peripheral Interface */
2430 typedef struct SPI_struct
2431 {
2432  register8_t CTRL; /* Control Register */
2433  register8_t INTCTRL; /* Interrupt Control Register */
2434  register8_t STATUS; /* Status Register */
2435  register8_t DATA; /* Data Register */
2436 } SPI_t;
2437 
2438 /* SPI Mode */
2439 typedef enum SPI_MODE_enum
2440 {
2441  SPI_MODE_0_gc = (0x00<<2), /* SPI Mode 0 */
2442  SPI_MODE_1_gc = (0x01<<2), /* SPI Mode 1 */
2443  SPI_MODE_2_gc = (0x02<<2), /* SPI Mode 2 */
2444  SPI_MODE_3_gc = (0x03<<2), /* SPI Mode 3 */
2445 } SPI_MODE_t;
2446 
2447 /* Prescaler setting */
2448 typedef enum SPI_PRESCALER_enum
2449 {
2450  SPI_PRESCALER_DIV4_gc = (0x00<<0), /* System Clock / 4 */
2451  SPI_PRESCALER_DIV16_gc = (0x01<<0), /* System Clock / 16 */
2452  SPI_PRESCALER_DIV64_gc = (0x02<<0), /* System Clock / 64 */
2453  SPI_PRESCALER_DIV128_gc = (0x03<<0), /* System Clock / 128 */
2454 } SPI_PRESCALER_t;
2455 
2456 /* Interrupt level */
2457 typedef enum SPI_INTLVL_enum
2458 {
2459  SPI_INTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
2460  SPI_INTLVL_LO_gc = (0x01<<0), /* Low Level */
2461  SPI_INTLVL_MED_gc = (0x02<<0), /* Medium Level */
2462  SPI_INTLVL_HI_gc = (0x03<<0), /* High Level */
2463 } SPI_INTLVL_t;
2464 
2465 
2466 /*
2467 --------------------------------------------------------------------------
2468 IRCOM - IR Communication Module
2469 --------------------------------------------------------------------------
2470 */
2471 
2472 /* IR Communication Module */
2473 typedef struct IRCOM_struct
2474 {
2475  register8_t CTRL; /* Control Register */
2476  register8_t TXPLCTRL; /* IrDA Transmitter Pulse Length Control Register */
2477  register8_t RXPLCTRL; /* IrDA Receiver Pulse Length Control Register */
2478 } IRCOM_t;
2479 
2480 /* Event channel selection */
2481 typedef enum IRDA_EVSEL_enum
2482 {
2483  IRDA_EVSEL_OFF_gc = (0x00<<0), /* No Event Source */
2484  IRDA_EVSEL_0_gc = (0x08<<0), /* Event Channel 0 */
2485  IRDA_EVSEL_1_gc = (0x09<<0), /* Event Channel 1 */
2486  IRDA_EVSEL_2_gc = (0x0A<<0), /* Event Channel 2 */
2487  IRDA_EVSEL_3_gc = (0x0B<<0), /* Event Channel 3 */
2488  IRDA_EVSEL_4_gc = (0x0C<<0), /* Event Channel 4 */
2489  IRDA_EVSEL_5_gc = (0x0D<<0), /* Event Channel 5 */
2490  IRDA_EVSEL_6_gc = (0x0E<<0), /* Event Channel 6 */
2491  IRDA_EVSEL_7_gc = (0x0F<<0), /* Event Channel 7 */
2492 } IRDA_EVSEL_t;
2493 
2494 
2495 /*
2496 --------------------------------------------------------------------------
2497 AES - AES Module
2498 --------------------------------------------------------------------------
2499 */
2500 
2501 /* AES Module */
2502 typedef struct AES_struct
2503 {
2504  register8_t CTRL; /* AES Control Register */
2505  register8_t STATUS; /* AES Status Register */
2506  register8_t STATE; /* AES State Register */
2507  register8_t KEY; /* AES Key Register */
2508  register8_t INTCTRL; /* AES Interrupt Control Register */
2509 } AES_t;
2510 
2511 /* Interrupt level */
2512 typedef enum AES_INTLVL_enum
2513 {
2514  AES_INTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
2515  AES_INTLVL_LO_gc = (0x01<<0), /* Low Level */
2516  AES_INTLVL_MED_gc = (0x02<<0), /* Medium Level */
2517  AES_INTLVL_HI_gc = (0x03<<0), /* High Level */
2518 } AES_INTLVL_t;
2519 
2520 
2521 /*
2522 --------------------------------------------------------------------------
2523 VBAT - VBAT Battery Backup Module
2524 --------------------------------------------------------------------------
2525 */
2526 
2527 /* VBAT Battery Backup Module */
2528 typedef struct VBAT_struct
2529 {
2530  register8_t CTRL; /* Control Register */
2531  register8_t STATUS; /* Status Register */
2532  register8_t BACKUP0; /* Battery Bacup Register 0 */
2533  register8_t BACKUP1; /* Battery Backup Register 1 */
2534 } VBAT_t;
2535 
2536 
2537 
2538 /*
2539 ==========================================================================
2540 IO Module Instances. Mapped to memory.
2541 ==========================================================================
2542 */
2543 
2544 #define GPIO (*(GPIO_t *) 0x0000) /* General Purpose IO Registers */
2545 #define VPORT0 (*(VPORT_t *) 0x0010) /* Virtual Port 0 */
2546 #define VPORT1 (*(VPORT_t *) 0x0014) /* Virtual Port 1 */
2547 #define VPORT2 (*(VPORT_t *) 0x0018) /* Virtual Port 2 */
2548 #define VPORT3 (*(VPORT_t *) 0x001C) /* Virtual Port 3 */
2549 #define OCD (*(OCD_t *) 0x002E) /* On-Chip Debug System */
2550 #define CPU (*(CPU_t *) 0x0030) /* CPU Registers */
2551 #define CLK (*(CLK_t *) 0x0040) /* Clock System */
2552 #define SLEEP (*(SLEEP_t *) 0x0048) /* Sleep Controller */
2553 #define OSC (*(OSC_t *) 0x0050) /* Oscillator Control */
2554 #define DFLLRC32M (*(DFLL_t *) 0x0060) /* DFLL for 32MHz RC Oscillator */
2555 #define DFLLRC2M (*(DFLL_t *) 0x0068) /* DFLL for 2MHz RC Oscillator */
2556 #define PR (*(PR_t *) 0x0070) /* Power Reduction */
2557 #define RST (*(RST_t *) 0x0078) /* Reset Controller */
2558 #define WDT (*(WDT_t *) 0x0080) /* Watch-Dog Timer */
2559 #define MCU (*(MCU_t *) 0x0090) /* MCU Control */
2560 #define PMIC (*(PMIC_t *) 0x00A0) /* Programmable Interrupt Controller */
2561 #define PORTCFG (*(PORTCFG_t *) 0x00B0) /* Port Configuration */
2562 #define AES (*(AES_t *) 0x00C0) /* AES Crypto Module */
2563 #define VBAT (*(VBAT_t *) 0x00F0) /* VBAT Battery Backup Module */
2564 #define DMA (*(DMA_t *) 0x0100) /* DMA Controller */
2565 #define EVSYS (*(EVSYS_t *) 0x0180) /* Event System */
2566 #define NVM (*(NVM_t *) 0x01C0) /* Non Volatile Memory Controller */
2567 #define ADCA (*(ADC_t *) 0x0200) /* Analog to Digital Converter A */
2568 #define ADCB (*(ADC_t *) 0x0240) /* Analog to Digital Converter B */
2569 #define DACB (*(DAC_t *) 0x0320) /* Digital to Analog Converter B */
2570 #define ACA (*(AC_t *) 0x0380) /* Analog Comparator A */
2571 #define ACB (*(AC_t *) 0x0390) /* Analog Comparator B */
2572 #define RTC32 (*(RTC32_t *) 0x0420) /* 32-bit Real-Time Counter */
2573 #define TWIC (*(TWI_t *) 0x0480) /* Two-Wire Interface C */
2574 #define TWIE (*(TWI_t *) 0x04A0) /* Two-Wire Interface E */
2575 #define PORTA (*(PORT_t *) 0x0600) /* Port A */
2576 #define PORTB (*(PORT_t *) 0x0620) /* Port B */
2577 #define PORTC (*(PORT_t *) 0x0640) /* Port C */
2578 #define PORTD (*(PORT_t *) 0x0660) /* Port D */
2579 #define PORTE (*(PORT_t *) 0x0680) /* Port E */
2580 #define PORTF (*(PORT_t *) 0x06A0) /* Port F */
2581 #define PORTR (*(PORT_t *) 0x07E0) /* Port R */
2582 #define TCC0 (*(TC0_t *) 0x0800) /* Timer/Counter C0 */
2583 #define TCC1 (*(TC1_t *) 0x0840) /* Timer/Counter C1 */
2584 #define AWEXC (*(AWEX_t *) 0x0880) /* Advanced Waveform Extension C */
2585 #define HIRESC (*(HIRES_t *) 0x0890) /* High-Resolution Extension C */
2586 #define USARTC0 (*(USART_t *) 0x08A0) /* Universal Asynchronous Receiver-Transmitter C0 */
2587 #define USARTC1 (*(USART_t *) 0x08B0) /* Universal Asynchronous Receiver-Transmitter C1 */
2588 #define SPIC (*(SPI_t *) 0x08C0) /* Serial Peripheral Interface C */
2589 #define IRCOM (*(IRCOM_t *) 0x08F8) /* IR Communication Module */
2590 #define TCD0 (*(TC0_t *) 0x0900) /* Timer/Counter D0 */
2591 #define TCD1 (*(TC1_t *) 0x0940) /* Timer/Counter D1 */
2592 #define HIRESD (*(HIRES_t *) 0x0990) /* High-Resolution Extension D */
2593 #define USARTD0 (*(USART_t *) 0x09A0) /* Universal Asynchronous Receiver-Transmitter D0 */
2594 #define USARTD1 (*(USART_t *) 0x09B0) /* Universal Asynchronous Receiver-Transmitter D1 */
2595 #define SPID (*(SPI_t *) 0x09C0) /* Serial Peripheral Interface D */
2596 #define TCE0 (*(TC0_t *) 0x0A00) /* Timer/Counter E0 */
2597 #define TCE1 (*(TC1_t *) 0x0A40) /* Timer/Counter E1 */
2598 #define AWEXE (*(AWEX_t *) 0x0A80) /* Advanced Waveform Extension E */
2599 #define HIRESE (*(HIRES_t *) 0x0A90) /* High-Resolution Extension E */
2600 #define USARTE0 (*(USART_t *) 0x0AA0) /* Universal Asynchronous Receiver-Transmitter E0 */
2601 #define TCF0 (*(TC0_t *) 0x0B00) /* Timer/Counter F0 */
2602 #define HIRESF (*(HIRES_t *) 0x0B90) /* High-Resolution Extension F */
2603 #define USARTF0 (*(USART_t *) 0x0BA0) /* Universal Asynchronous Receiver-Transmitter F0 */
2604 #define USARTF1 (*(USART_t *) 0x0BB0) /* Universal Asynchronous Receiver-Transmitter F1 */
2605 #define SPIF (*(SPI_t *) 0x0BC0) /* Serial Peripheral Interface F */
2606 
2607 
2608 #endif /* !defined (__ASSEMBLER__) */
2609 
2610 
2611 /* ========== Flattened fully qualified IO register names ========== */
2612 
2613 /* GPIO - General Purpose IO Registers */
2614 #define GPIO_GPIO0 _SFR_MEM8(0x0000)
2615 #define GPIO_GPIO1 _SFR_MEM8(0x0001)
2616 #define GPIO_GPIO2 _SFR_MEM8(0x0002)
2617 #define GPIO_GPIO3 _SFR_MEM8(0x0003)
2618 #define GPIO_GPIO4 _SFR_MEM8(0x0004)
2619 #define GPIO_GPIO5 _SFR_MEM8(0x0005)
2620 #define GPIO_GPIO6 _SFR_MEM8(0x0006)
2621 #define GPIO_GPIO7 _SFR_MEM8(0x0007)
2622 #define GPIO_GPIO8 _SFR_MEM8(0x0008)
2623 #define GPIO_GPIO9 _SFR_MEM8(0x0009)
2624 #define GPIO_GPIOA _SFR_MEM8(0x000A)
2625 #define GPIO_GPIOB _SFR_MEM8(0x000B)
2626 #define GPIO_GPIOC _SFR_MEM8(0x000C)
2627 #define GPIO_GPIOD _SFR_MEM8(0x000D)
2628 #define GPIO_GPIOE _SFR_MEM8(0x000E)
2629 #define GPIO_GPIOF _SFR_MEM8(0x000F)
2630 
2631 /* VPORT0 - Virtual Port 0 */
2632 #define VPORT0_DIR _SFR_MEM8(0x0010)
2633 #define VPORT0_OUT _SFR_MEM8(0x0011)
2634 #define VPORT0_IN _SFR_MEM8(0x0012)
2635 #define VPORT0_INTFLAGS _SFR_MEM8(0x0013)
2636 
2637 /* VPORT1 - Virtual Port 1 */
2638 #define VPORT1_DIR _SFR_MEM8(0x0014)
2639 #define VPORT1_OUT _SFR_MEM8(0x0015)
2640 #define VPORT1_IN _SFR_MEM8(0x0016)
2641 #define VPORT1_INTFLAGS _SFR_MEM8(0x0017)
2642 
2643 /* VPORT2 - Virtual Port 2 */
2644 #define VPORT2_DIR _SFR_MEM8(0x0018)
2645 #define VPORT2_OUT _SFR_MEM8(0x0019)
2646 #define VPORT2_IN _SFR_MEM8(0x001A)
2647 #define VPORT2_INTFLAGS _SFR_MEM8(0x001B)
2648 
2649 /* VPORT3 - Virtual Port 3 */
2650 #define VPORT3_DIR _SFR_MEM8(0x001C)
2651 #define VPORT3_OUT _SFR_MEM8(0x001D)
2652 #define VPORT3_IN _SFR_MEM8(0x001E)
2653 #define VPORT3_INTFLAGS _SFR_MEM8(0x001F)
2654 
2655 /* OCD - On-Chip Debug System */
2656 #define OCD_OCDR0 _SFR_MEM8(0x002E)
2657 #define OCD_OCDR1 _SFR_MEM8(0x002F)
2658 
2659 /* CPU - CPU Registers */
2660 #define CPU_CCP _SFR_MEM8(0x0034)
2661 #define CPU_RAMPD _SFR_MEM8(0x0038)
2662 #define CPU_RAMPX _SFR_MEM8(0x0039)
2663 #define CPU_RAMPY _SFR_MEM8(0x003A)
2664 #define CPU_RAMPZ _SFR_MEM8(0x003B)
2665 #define CPU_EIND _SFR_MEM8(0x003C)
2666 #define CPU_SPL _SFR_MEM8(0x003D)
2667 #define CPU_SPH _SFR_MEM8(0x003E)
2668 #define CPU_SREG _SFR_MEM8(0x003F)
2669 
2670 /* CLK - Clock System */
2671 #define CLK_CTRL _SFR_MEM8(0x0040)
2672 #define CLK_PSCTRL _SFR_MEM8(0x0041)
2673 #define CLK_LOCK _SFR_MEM8(0x0042)
2674 #define CLK_RTCCTRL _SFR_MEM8(0x0043)
2675 
2676 /* SLEEP - Sleep Controller */
2677 #define SLEEP_CTRL _SFR_MEM8(0x0048)
2678 
2679 /* OSC - Oscillator Control */
2680 #define OSC_CTRL _SFR_MEM8(0x0050)
2681 #define OSC_STATUS _SFR_MEM8(0x0051)
2682 #define OSC_XOSCCTRL _SFR_MEM8(0x0052)
2683 #define OSC_XOSCFAIL _SFR_MEM8(0x0053)
2684 #define OSC_RC32KCAL _SFR_MEM8(0x0054)
2685 #define OSC_PLLCTRL _SFR_MEM8(0x0055)
2686 #define OSC_DFLLCTRL _SFR_MEM8(0x0056)
2687 
2688 /* DFLLRC32M - DFLL for 32MHz RC Oscillator */
2689 #define DFLLRC32M_CTRL _SFR_MEM8(0x0060)
2690 #define DFLLRC32M_CALA _SFR_MEM8(0x0062)
2691 #define DFLLRC32M_CALB _SFR_MEM8(0x0063)
2692 #define DFLLRC32M_COMP0 _SFR_MEM8(0x0064)
2693 #define DFLLRC32M_COMP1 _SFR_MEM8(0x0065)
2694 #define DFLLRC32M_COMP2 _SFR_MEM8(0x0066)
2695 
2696 /* DFLLRC2M - DFLL for 2MHz RC Oscillator */
2697 #define DFLLRC2M_CTRL _SFR_MEM8(0x0068)
2698 #define DFLLRC2M_CALA _SFR_MEM8(0x006A)
2699 #define DFLLRC2M_CALB _SFR_MEM8(0x006B)
2700 #define DFLLRC2M_COMP0 _SFR_MEM8(0x006C)
2701 #define DFLLRC2M_COMP1 _SFR_MEM8(0x006D)
2702 #define DFLLRC2M_COMP2 _SFR_MEM8(0x006E)
2703 
2704 /* PR - Power Reduction */
2705 #define PR_PRGEN _SFR_MEM8(0x0070)
2706 #define PR_PRPA _SFR_MEM8(0x0071)
2707 #define PR_PRPB _SFR_MEM8(0x0072)
2708 #define PR_PRPC _SFR_MEM8(0x0073)
2709 #define PR_PRPD _SFR_MEM8(0x0074)
2710 #define PR_PRPE _SFR_MEM8(0x0075)
2711 #define PR_PRPF _SFR_MEM8(0x0076)
2712 
2713 /* RST - Reset Controller */
2714 #define RST_STATUS _SFR_MEM8(0x0078)
2715 #define RST_CTRL _SFR_MEM8(0x0079)
2716 
2717 /* WDT - Watch-Dog Timer */
2718 #define WDT_CTRL _SFR_MEM8(0x0080)
2719 #define WDT_WINCTRL _SFR_MEM8(0x0081)
2720 #define WDT_STATUS _SFR_MEM8(0x0082)
2721 
2722 /* MCU - MCU Control */
2723 #define MCU_DEVID0 _SFR_MEM8(0x0090)
2724 #define MCU_DEVID1 _SFR_MEM8(0x0091)
2725 #define MCU_DEVID2 _SFR_MEM8(0x0092)
2726 #define MCU_REVID _SFR_MEM8(0x0093)
2727 #define MCU_JTAGUID _SFR_MEM8(0x0094)
2728 #define MCU_MCUCR _SFR_MEM8(0x0096)
2729 #define MCU_EVSYSLOCK _SFR_MEM8(0x0098)
2730 #define MCU_AWEXLOCK _SFR_MEM8(0x0099)
2731 
2732 /* PMIC - Programmable Interrupt Controller */
2733 #define PMIC_STATUS _SFR_MEM8(0x00A0)
2734 #define PMIC_INTPRI _SFR_MEM8(0x00A1)
2735 #define PMIC_CTRL _SFR_MEM8(0x00A2)
2736 
2737 /* PORTCFG - Port Configuration */
2738 #define PORTCFG_MPCMASK _SFR_MEM8(0x00B0)
2739 #define PORTCFG_VPCTRLA _SFR_MEM8(0x00B2)
2740 #define PORTCFG_VPCTRLB _SFR_MEM8(0x00B3)
2741 #define PORTCFG_CLKEVOUT _SFR_MEM8(0x00B4)
2742 
2743 /* AES - AES Crypto Module */
2744 #define AES_CTRL _SFR_MEM8(0x00C0)
2745 #define AES_STATUS _SFR_MEM8(0x00C1)
2746 #define AES_STATE _SFR_MEM8(0x00C2)
2747 #define AES_KEY _SFR_MEM8(0x00C3)
2748 #define AES_INTCTRL _SFR_MEM8(0x00C4)
2749 
2750 /* VBAT - VBAT Battery Backup Module */
2751 #define VBAT_CTRL _SFR_MEM8(0x00F0)
2752 #define VBAT_STATUS _SFR_MEM8(0x00F1)
2753 #define VBAT_BACKUP0 _SFR_MEM8(0x00F2)
2754 #define VBAT_BACKUP1 _SFR_MEM8(0x00F3)
2755 
2756 /* DMA - DMA Controller */
2757 #define DMA_CTRL _SFR_MEM8(0x0100)
2758 #define DMA_INTFLAGS _SFR_MEM8(0x0103)
2759 #define DMA_STATUS _SFR_MEM8(0x0104)
2760 #define DMA_TEMP _SFR_MEM16(0x0106)
2761 #define DMA_CH0_CTRLA _SFR_MEM8(0x0110)
2762 #define DMA_CH0_CTRLB _SFR_MEM8(0x0111)
2763 #define DMA_CH0_ADDRCTRL _SFR_MEM8(0x0112)
2764 #define DMA_CH0_TRIGSRC _SFR_MEM8(0x0113)
2765 #define DMA_CH0_TRFCNT _SFR_MEM16(0x0114)
2766 #define DMA_CH0_REPCNT _SFR_MEM8(0x0116)
2767 #define DMA_CH0_SRCADDR0 _SFR_MEM8(0x0118)
2768 #define DMA_CH0_SRCADDR1 _SFR_MEM8(0x0119)
2769 #define DMA_CH0_SRCADDR2 _SFR_MEM8(0x011A)
2770 #define DMA_CH0_DESTADDR0 _SFR_MEM8(0x011C)
2771 #define DMA_CH0_DESTADDR1 _SFR_MEM8(0x011D)
2772 #define DMA_CH0_DESTADDR2 _SFR_MEM8(0x011E)
2773 #define DMA_CH1_CTRLA _SFR_MEM8(0x0120)
2774 #define DMA_CH1_CTRLB _SFR_MEM8(0x0121)
2775 #define DMA_CH1_ADDRCTRL _SFR_MEM8(0x0122)
2776 #define DMA_CH1_TRIGSRC _SFR_MEM8(0x0123)
2777 #define DMA_CH1_TRFCNT _SFR_MEM16(0x0124)
2778 #define DMA_CH1_REPCNT _SFR_MEM8(0x0126)
2779 #define DMA_CH1_SRCADDR0 _SFR_MEM8(0x0128)
2780 #define DMA_CH1_SRCADDR1 _SFR_MEM8(0x0129)
2781 #define DMA_CH1_SRCADDR2 _SFR_MEM8(0x012A)
2782 #define DMA_CH1_DESTADDR0 _SFR_MEM8(0x012C)
2783 #define DMA_CH1_DESTADDR1 _SFR_MEM8(0x012D)
2784 #define DMA_CH1_DESTADDR2 _SFR_MEM8(0x012E)
2785 #define DMA_CH2_CTRLA _SFR_MEM8(0x0130)
2786 #define DMA_CH2_CTRLB _SFR_MEM8(0x0131)
2787 #define DMA_CH2_ADDRCTRL _SFR_MEM8(0x0132)
2788 #define DMA_CH2_TRIGSRC _SFR_MEM8(0x0133)
2789 #define DMA_CH2_TRFCNT _SFR_MEM16(0x0134)
2790 #define DMA_CH2_REPCNT _SFR_MEM8(0x0136)
2791 #define DMA_CH2_SRCADDR0 _SFR_MEM8(0x0138)
2792 #define DMA_CH2_SRCADDR1 _SFR_MEM8(0x0139)
2793 #define DMA_CH2_SRCADDR2 _SFR_MEM8(0x013A)
2794 #define DMA_CH2_DESTADDR0 _SFR_MEM8(0x013C)
2795 #define DMA_CH2_DESTADDR1 _SFR_MEM8(0x013D)
2796 #define DMA_CH2_DESTADDR2 _SFR_MEM8(0x013E)
2797 #define DMA_CH3_CTRLA _SFR_MEM8(0x0140)
2798 #define DMA_CH3_CTRLB _SFR_MEM8(0x0141)
2799 #define DMA_CH3_ADDRCTRL _SFR_MEM8(0x0142)
2800 #define DMA_CH3_TRIGSRC _SFR_MEM8(0x0143)
2801 #define DMA_CH3_TRFCNT _SFR_MEM16(0x0144)
2802 #define DMA_CH3_REPCNT _SFR_MEM8(0x0146)
2803 #define DMA_CH3_SRCADDR0 _SFR_MEM8(0x0148)
2804 #define DMA_CH3_SRCADDR1 _SFR_MEM8(0x0149)
2805 #define DMA_CH3_SRCADDR2 _SFR_MEM8(0x014A)
2806 #define DMA_CH3_DESTADDR0 _SFR_MEM8(0x014C)
2807 #define DMA_CH3_DESTADDR1 _SFR_MEM8(0x014D)
2808 #define DMA_CH3_DESTADDR2 _SFR_MEM8(0x014E)
2809 
2810 /* EVSYS - Event System */
2811 #define EVSYS_CH0MUX _SFR_MEM8(0x0180)
2812 #define EVSYS_CH1MUX _SFR_MEM8(0x0181)
2813 #define EVSYS_CH2MUX _SFR_MEM8(0x0182)
2814 #define EVSYS_CH3MUX _SFR_MEM8(0x0183)
2815 #define EVSYS_CH4MUX _SFR_MEM8(0x0184)
2816 #define EVSYS_CH5MUX _SFR_MEM8(0x0185)
2817 #define EVSYS_CH6MUX _SFR_MEM8(0x0186)
2818 #define EVSYS_CH7MUX _SFR_MEM8(0x0187)
2819 #define EVSYS_CH0CTRL _SFR_MEM8(0x0188)
2820 #define EVSYS_CH1CTRL _SFR_MEM8(0x0189)
2821 #define EVSYS_CH2CTRL _SFR_MEM8(0x018A)
2822 #define EVSYS_CH3CTRL _SFR_MEM8(0x018B)
2823 #define EVSYS_CH4CTRL _SFR_MEM8(0x018C)
2824 #define EVSYS_CH5CTRL _SFR_MEM8(0x018D)
2825 #define EVSYS_CH6CTRL _SFR_MEM8(0x018E)
2826 #define EVSYS_CH7CTRL _SFR_MEM8(0x018F)
2827 #define EVSYS_STROBE _SFR_MEM8(0x0190)
2828 #define EVSYS_DATA _SFR_MEM8(0x0191)
2829 
2830 /* NVM - Non Volatile Memory Controller */
2831 #define NVM_ADDR0 _SFR_MEM8(0x01C0)
2832 #define NVM_ADDR1 _SFR_MEM8(0x01C1)
2833 #define NVM_ADDR2 _SFR_MEM8(0x01C2)
2834 #define NVM_DATA0 _SFR_MEM8(0x01C4)
2835 #define NVM_DATA1 _SFR_MEM8(0x01C5)
2836 #define NVM_DATA2 _SFR_MEM8(0x01C6)
2837 #define NVM_CMD _SFR_MEM8(0x01CA)
2838 #define NVM_CTRLA _SFR_MEM8(0x01CB)
2839 #define NVM_CTRLB _SFR_MEM8(0x01CC)
2840 #define NVM_INTCTRL _SFR_MEM8(0x01CD)
2841 #define NVM_STATUS _SFR_MEM8(0x01CF)
2842 #define NVM_LOCKBITS _SFR_MEM8(0x01D0)
2843 
2844 /* ADCA - Analog to Digital Converter A */
2845 #define ADCA_CTRLA _SFR_MEM8(0x0200)
2846 #define ADCA_CTRLB _SFR_MEM8(0x0201)
2847 #define ADCA_REFCTRL _SFR_MEM8(0x0202)
2848 #define ADCA_EVCTRL _SFR_MEM8(0x0203)
2849 #define ADCA_PRESCALER _SFR_MEM8(0x0204)
2850 #define ADCA_CALCTRL _SFR_MEM8(0x0205)
2851 #define ADCA_INTFLAGS _SFR_MEM8(0x0206)
2852 #define ADCA_CAL _SFR_MEM16(0x020C)
2853 #define ADCA_CH0RES _SFR_MEM16(0x0210)
2854 #define ADCA_CH1RES _SFR_MEM16(0x0212)
2855 #define ADCA_CH2RES _SFR_MEM16(0x0214)
2856 #define ADCA_CH3RES _SFR_MEM16(0x0216)
2857 #define ADCA_CMP _SFR_MEM16(0x0218)
2858 #define ADCA_CH0_CTRL _SFR_MEM8(0x0220)
2859 #define ADCA_CH0_MUXCTRL _SFR_MEM8(0x0221)
2860 #define ADCA_CH0_INTCTRL _SFR_MEM8(0x0222)
2861 #define ADCA_CH0_INTFLAGS _SFR_MEM8(0x0223)
2862 #define ADCA_CH0_RES _SFR_MEM16(0x0224)
2863 #define ADCA_CH1_CTRL _SFR_MEM8(0x0228)
2864 #define ADCA_CH1_MUXCTRL _SFR_MEM8(0x0229)
2865 #define ADCA_CH1_INTCTRL _SFR_MEM8(0x022A)
2866 #define ADCA_CH1_INTFLAGS _SFR_MEM8(0x022B)
2867 #define ADCA_CH1_RES _SFR_MEM16(0x022C)
2868 #define ADCA_CH2_CTRL _SFR_MEM8(0x0230)
2869 #define ADCA_CH2_MUXCTRL _SFR_MEM8(0x0231)
2870 #define ADCA_CH2_INTCTRL _SFR_MEM8(0x0232)
2871 #define ADCA_CH2_INTFLAGS _SFR_MEM8(0x0233)
2872 #define ADCA_CH2_RES _SFR_MEM16(0x0234)
2873 #define ADCA_CH3_CTRL _SFR_MEM8(0x0238)
2874 #define ADCA_CH3_MUXCTRL _SFR_MEM8(0x0239)
2875 #define ADCA_CH3_INTCTRL _SFR_MEM8(0x023A)
2876 #define ADCA_CH3_INTFLAGS _SFR_MEM8(0x023B)
2877 #define ADCA_CH3_RES _SFR_MEM16(0x023C)
2878 
2879 /* ADCB - Analog to Digital Converter B */
2880 #define ADCB_CTRLA _SFR_MEM8(0x0240)
2881 #define ADCB_CTRLB _SFR_MEM8(0x0241)
2882 #define ADCB_REFCTRL _SFR_MEM8(0x0242)
2883 #define ADCB_EVCTRL _SFR_MEM8(0x0243)
2884 #define ADCB_PRESCALER _SFR_MEM8(0x0244)
2885 #define ADCB_CALCTRL _SFR_MEM8(0x0245)
2886 #define ADCB_INTFLAGS _SFR_MEM8(0x0246)
2887 #define ADCB_CAL _SFR_MEM16(0x024C)
2888 #define ADCB_CH0RES _SFR_MEM16(0x0250)
2889 #define ADCB_CH1RES _SFR_MEM16(0x0252)
2890 #define ADCB_CH2RES _SFR_MEM16(0x0254)
2891 #define ADCB_CH3RES _SFR_MEM16(0x0256)
2892 #define ADCB_CMP _SFR_MEM16(0x0258)
2893 #define ADCB_CH0_CTRL _SFR_MEM8(0x0260)
2894 #define ADCB_CH0_MUXCTRL _SFR_MEM8(0x0261)
2895 #define ADCB_CH0_INTCTRL _SFR_MEM8(0x0262)
2896 #define ADCB_CH0_INTFLAGS _SFR_MEM8(0x0263)
2897 #define ADCB_CH0_RES _SFR_MEM16(0x0264)
2898 #define ADCB_CH1_CTRL _SFR_MEM8(0x0268)
2899 #define ADCB_CH1_MUXCTRL _SFR_MEM8(0x0269)
2900 #define ADCB_CH1_INTCTRL _SFR_MEM8(0x026A)
2901 #define ADCB_CH1_INTFLAGS _SFR_MEM8(0x026B)
2902 #define ADCB_CH1_RES _SFR_MEM16(0x026C)
2903 #define ADCB_CH2_CTRL _SFR_MEM8(0x0270)
2904 #define ADCB_CH2_MUXCTRL _SFR_MEM8(0x0271)
2905 #define ADCB_CH2_INTCTRL _SFR_MEM8(0x0272)
2906 #define ADCB_CH2_INTFLAGS _SFR_MEM8(0x0273)
2907 #define ADCB_CH2_RES _SFR_MEM16(0x0274)
2908 #define ADCB_CH3_CTRL _SFR_MEM8(0x0278)
2909 #define ADCB_CH3_MUXCTRL _SFR_MEM8(0x0279)
2910 #define ADCB_CH3_INTCTRL _SFR_MEM8(0x027A)
2911 #define ADCB_CH3_INTFLAGS _SFR_MEM8(0x027B)
2912 #define ADCB_CH3_RES _SFR_MEM16(0x027C)
2913 
2914 /* DACB - Digital to Analog Converter B */
2915 #define DACB_CTRLA _SFR_MEM8(0x0320)
2916 #define DACB_CTRLB _SFR_MEM8(0x0321)
2917 #define DACB_CTRLC _SFR_MEM8(0x0322)
2918 #define DACB_EVCTRL _SFR_MEM8(0x0323)
2919 #define DACB_TIMCTRL _SFR_MEM8(0x0324)
2920 #define DACB_STATUS _SFR_MEM8(0x0325)
2921 #define DACB_GAINCAL _SFR_MEM8(0x0328)
2922 #define DACB_OFFSETCAL _SFR_MEM8(0x0329)
2923 #define DACB_CH0DATA _SFR_MEM16(0x0338)
2924 #define DACB_CH1DATA _SFR_MEM16(0x033A)
2925 
2926 /* ACA - Analog Comparator A */
2927 #define ACA_AC0CTRL _SFR_MEM8(0x0380)
2928 #define ACA_AC1CTRL _SFR_MEM8(0x0381)
2929 #define ACA_AC0MUXCTRL _SFR_MEM8(0x0382)
2930 #define ACA_AC1MUXCTRL _SFR_MEM8(0x0383)
2931 #define ACA_CTRLA _SFR_MEM8(0x0384)
2932 #define ACA_CTRLB _SFR_MEM8(0x0385)
2933 #define ACA_WINCTRL _SFR_MEM8(0x0386)
2934 #define ACA_STATUS _SFR_MEM8(0x0387)
2935 
2936 /* ACB - Analog Comparator B */
2937 #define ACB_AC0CTRL _SFR_MEM8(0x0390)
2938 #define ACB_AC1CTRL _SFR_MEM8(0x0391)
2939 #define ACB_AC0MUXCTRL _SFR_MEM8(0x0392)
2940 #define ACB_AC1MUXCTRL _SFR_MEM8(0x0393)
2941 #define ACB_CTRLA _SFR_MEM8(0x0394)
2942 #define ACB_CTRLB _SFR_MEM8(0x0395)
2943 #define ACB_WINCTRL _SFR_MEM8(0x0396)
2944 #define ACB_STATUS _SFR_MEM8(0x0397)
2945 
2946 /* RTC32 - 32-bit Real-Time Counter */
2947 #define RTC32_CTRL _SFR_MEM8(0x0420)
2948 #define RTC32_SYNCCTRL _SFR_MEM8(0x0421)
2949 #define RTC32_INTCTRL _SFR_MEM8(0x0422)
2950 #define RTC32_INTFLAGS _SFR_MEM8(0x0423)
2951 
2952 /* TWIC - Two-Wire Interface C */
2953 #define TWIC_CTRL _SFR_MEM8(0x0480)
2954 #define TWIC_MASTER_CTRLA _SFR_MEM8(0x0481)
2955 #define TWIC_MASTER_CTRLB _SFR_MEM8(0x0482)
2956 #define TWIC_MASTER_CTRLC _SFR_MEM8(0x0483)
2957 #define TWIC_MASTER_STATUS _SFR_MEM8(0x0484)
2958 #define TWIC_MASTER_BAUD _SFR_MEM8(0x0485)
2959 #define TWIC_MASTER_ADDR _SFR_MEM8(0x0486)
2960 #define TWIC_MASTER_DATA _SFR_MEM8(0x0487)
2961 #define TWIC_SLAVE_CTRLA _SFR_MEM8(0x0488)
2962 #define TWIC_SLAVE_CTRLB _SFR_MEM8(0x0489)
2963 #define TWIC_SLAVE_STATUS _SFR_MEM8(0x048A)
2964 #define TWIC_SLAVE_ADDR _SFR_MEM8(0x048B)
2965 #define TWIC_SLAVE_DATA _SFR_MEM8(0x048C)
2966 #define TWIC_SLAVE_ADDRMASK _SFR_MEM8(0x048D)
2967 
2968 /* TWIE - Two-Wire Interface E */
2969 #define TWIE_CTRL _SFR_MEM8(0x04A0)
2970 #define TWIE_MASTER_CTRLA _SFR_MEM8(0x04A1)
2971 #define TWIE_MASTER_CTRLB _SFR_MEM8(0x04A2)
2972 #define TWIE_MASTER_CTRLC _SFR_MEM8(0x04A3)
2973 #define TWIE_MASTER_STATUS _SFR_MEM8(0x04A4)
2974 #define TWIE_MASTER_BAUD _SFR_MEM8(0x04A5)
2975 #define TWIE_MASTER_ADDR _SFR_MEM8(0x04A6)
2976 #define TWIE_MASTER_DATA _SFR_MEM8(0x04A7)
2977 #define TWIE_SLAVE_CTRLA _SFR_MEM8(0x04A8)
2978 #define TWIE_SLAVE_CTRLB _SFR_MEM8(0x04A9)
2979 #define TWIE_SLAVE_STATUS _SFR_MEM8(0x04AA)
2980 #define TWIE_SLAVE_ADDR _SFR_MEM8(0x04AB)
2981 #define TWIE_SLAVE_DATA _SFR_MEM8(0x04AC)
2982 #define TWIE_SLAVE_ADDRMASK _SFR_MEM8(0x04AD)
2983 
2984 /* PORTA - Port A */
2985 #define PORTA_DIR _SFR_MEM8(0x0600)
2986 #define PORTA_DIRSET _SFR_MEM8(0x0601)
2987 #define PORTA_DIRCLR _SFR_MEM8(0x0602)
2988 #define PORTA_DIRTGL _SFR_MEM8(0x0603)
2989 #define PORTA_OUT _SFR_MEM8(0x0604)
2990 #define PORTA_OUTSET _SFR_MEM8(0x0605)
2991 #define PORTA_OUTCLR _SFR_MEM8(0x0606)
2992 #define PORTA_OUTTGL _SFR_MEM8(0x0607)
2993 #define PORTA_IN _SFR_MEM8(0x0608)
2994 #define PORTA_INTCTRL _SFR_MEM8(0x0609)
2995 #define PORTA_INT0MASK _SFR_MEM8(0x060A)
2996 #define PORTA_INT1MASK _SFR_MEM8(0x060B)
2997 #define PORTA_INTFLAGS _SFR_MEM8(0x060C)
2998 #define PORTA_PIN0CTRL _SFR_MEM8(0x0610)
2999 #define PORTA_PIN1CTRL _SFR_MEM8(0x0611)
3000 #define PORTA_PIN2CTRL _SFR_MEM8(0x0612)
3001 #define PORTA_PIN3CTRL _SFR_MEM8(0x0613)
3002 #define PORTA_PIN4CTRL _SFR_MEM8(0x0614)
3003 #define PORTA_PIN5CTRL _SFR_MEM8(0x0615)
3004 #define PORTA_PIN6CTRL _SFR_MEM8(0x0616)
3005 #define PORTA_PIN7CTRL _SFR_MEM8(0x0617)
3006 
3007 /* PORTB - Port B */
3008 #define PORTB_DIR _SFR_MEM8(0x0620)
3009 #define PORTB_DIRSET _SFR_MEM8(0x0621)
3010 #define PORTB_DIRCLR _SFR_MEM8(0x0622)
3011 #define PORTB_DIRTGL _SFR_MEM8(0x0623)
3012 #define PORTB_OUT _SFR_MEM8(0x0624)
3013 #define PORTB_OUTSET _SFR_MEM8(0x0625)
3014 #define PORTB_OUTCLR _SFR_MEM8(0x0626)
3015 #define PORTB_OUTTGL _SFR_MEM8(0x0627)
3016 #define PORTB_IN _SFR_MEM8(0x0628)
3017 #define PORTB_INTCTRL _SFR_MEM8(0x0629)
3018 #define PORTB_INT0MASK _SFR_MEM8(0x062A)
3019 #define PORTB_INT1MASK _SFR_MEM8(0x062B)
3020 #define PORTB_INTFLAGS _SFR_MEM8(0x062C)
3021 #define PORTB_PIN0CTRL _SFR_MEM8(0x0630)
3022 #define PORTB_PIN1CTRL _SFR_MEM8(0x0631)
3023 #define PORTB_PIN2CTRL _SFR_MEM8(0x0632)
3024 #define PORTB_PIN3CTRL _SFR_MEM8(0x0633)
3025 #define PORTB_PIN4CTRL _SFR_MEM8(0x0634)
3026 #define PORTB_PIN5CTRL _SFR_MEM8(0x0635)
3027 #define PORTB_PIN6CTRL _SFR_MEM8(0x0636)
3028 #define PORTB_PIN7CTRL _SFR_MEM8(0x0637)
3029 
3030 /* PORTC - Port C */
3031 #define PORTC_DIR _SFR_MEM8(0x0640)
3032 #define PORTC_DIRSET _SFR_MEM8(0x0641)
3033 #define PORTC_DIRCLR _SFR_MEM8(0x0642)
3034 #define PORTC_DIRTGL _SFR_MEM8(0x0643)
3035 #define PORTC_OUT _SFR_MEM8(0x0644)
3036 #define PORTC_OUTSET _SFR_MEM8(0x0645)
3037 #define PORTC_OUTCLR _SFR_MEM8(0x0646)
3038 #define PORTC_OUTTGL _SFR_MEM8(0x0647)
3039 #define PORTC_IN _SFR_MEM8(0x0648)
3040 #define PORTC_INTCTRL _SFR_MEM8(0x0649)
3041 #define PORTC_INT0MASK _SFR_MEM8(0x064A)
3042 #define PORTC_INT1MASK _SFR_MEM8(0x064B)
3043 #define PORTC_INTFLAGS _SFR_MEM8(0x064C)
3044 #define PORTC_PIN0CTRL _SFR_MEM8(0x0650)
3045 #define PORTC_PIN1CTRL _SFR_MEM8(0x0651)
3046 #define PORTC_PIN2CTRL _SFR_MEM8(0x0652)
3047 #define PORTC_PIN3CTRL _SFR_MEM8(0x0653)
3048 #define PORTC_PIN4CTRL _SFR_MEM8(0x0654)
3049 #define PORTC_PIN5CTRL _SFR_MEM8(0x0655)
3050 #define PORTC_PIN6CTRL _SFR_MEM8(0x0656)
3051 #define PORTC_PIN7CTRL _SFR_MEM8(0x0657)
3052 
3053 /* PORTD - Port D */
3054 #define PORTD_DIR _SFR_MEM8(0x0660)
3055 #define PORTD_DIRSET _SFR_MEM8(0x0661)
3056 #define PORTD_DIRCLR _SFR_MEM8(0x0662)
3057 #define PORTD_DIRTGL _SFR_MEM8(0x0663)
3058 #define PORTD_OUT _SFR_MEM8(0x0664)
3059 #define PORTD_OUTSET _SFR_MEM8(0x0665)
3060 #define PORTD_OUTCLR _SFR_MEM8(0x0666)
3061 #define PORTD_OUTTGL _SFR_MEM8(0x0667)
3062 #define PORTD_IN _SFR_MEM8(0x0668)
3063 #define PORTD_INTCTRL _SFR_MEM8(0x0669)
3064 #define PORTD_INT0MASK _SFR_MEM8(0x066A)
3065 #define PORTD_INT1MASK _SFR_MEM8(0x066B)
3066 #define PORTD_INTFLAGS _SFR_MEM8(0x066C)
3067 #define PORTD_PIN0CTRL _SFR_MEM8(0x0670)
3068 #define PORTD_PIN1CTRL _SFR_MEM8(0x0671)
3069 #define PORTD_PIN2CTRL _SFR_MEM8(0x0672)
3070 #define PORTD_PIN3CTRL _SFR_MEM8(0x0673)
3071 #define PORTD_PIN4CTRL _SFR_MEM8(0x0674)
3072 #define PORTD_PIN5CTRL _SFR_MEM8(0x0675)
3073 #define PORTD_PIN6CTRL _SFR_MEM8(0x0676)
3074 #define PORTD_PIN7CTRL _SFR_MEM8(0x0677)
3075 
3076 /* PORTE - Port E */
3077 #define PORTE_DIR _SFR_MEM8(0x0680)
3078 #define PORTE_DIRSET _SFR_MEM8(0x0681)
3079 #define PORTE_DIRCLR _SFR_MEM8(0x0682)
3080 #define PORTE_DIRTGL _SFR_MEM8(0x0683)
3081 #define PORTE_OUT _SFR_MEM8(0x0684)
3082 #define PORTE_OUTSET _SFR_MEM8(0x0685)
3083 #define PORTE_OUTCLR _SFR_MEM8(0x0686)
3084 #define PORTE_OUTTGL _SFR_MEM8(0x0687)
3085 #define PORTE_IN _SFR_MEM8(0x0688)
3086 #define PORTE_INTCTRL _SFR_MEM8(0x0689)
3087 #define PORTE_INT0MASK _SFR_MEM8(0x068A)
3088 #define PORTE_INT1MASK _SFR_MEM8(0x068B)
3089 #define PORTE_INTFLAGS _SFR_MEM8(0x068C)
3090 #define PORTE_PIN0CTRL _SFR_MEM8(0x0690)
3091 #define PORTE_PIN1CTRL _SFR_MEM8(0x0691)
3092 #define PORTE_PIN2CTRL _SFR_MEM8(0x0692)
3093 #define PORTE_PIN3CTRL _SFR_MEM8(0x0693)
3094 #define PORTE_PIN4CTRL _SFR_MEM8(0x0694)
3095 #define PORTE_PIN5CTRL _SFR_MEM8(0x0695)
3096 #define PORTE_PIN6CTRL _SFR_MEM8(0x0696)
3097 #define PORTE_PIN7CTRL _SFR_MEM8(0x0697)
3098 
3099 /* PORTF - Port F */
3100 #define PORTF_DIR _SFR_MEM8(0x06A0)
3101 #define PORTF_DIRSET _SFR_MEM8(0x06A1)
3102 #define PORTF_DIRCLR _SFR_MEM8(0x06A2)
3103 #define PORTF_DIRTGL _SFR_MEM8(0x06A3)
3104 #define PORTF_OUT _SFR_MEM8(0x06A4)
3105 #define PORTF_OUTSET _SFR_MEM8(0x06A5)
3106 #define PORTF_OUTCLR _SFR_MEM8(0x06A6)
3107 #define PORTF_OUTTGL _SFR_MEM8(0x06A7)
3108 #define PORTF_IN _SFR_MEM8(0x06A8)
3109 #define PORTF_INTCTRL _SFR_MEM8(0x06A9)
3110 #define PORTF_INT0MASK _SFR_MEM8(0x06AA)
3111 #define PORTF_INT1MASK _SFR_MEM8(0x06AB)
3112 #define PORTF_INTFLAGS _SFR_MEM8(0x06AC)
3113 #define PORTF_PIN0CTRL _SFR_MEM8(0x06B0)
3114 #define PORTF_PIN1CTRL _SFR_MEM8(0x06B1)
3115 #define PORTF_PIN2CTRL _SFR_MEM8(0x06B2)
3116 #define PORTF_PIN3CTRL _SFR_MEM8(0x06B3)
3117 #define PORTF_PIN4CTRL _SFR_MEM8(0x06B4)
3118 #define PORTF_PIN5CTRL _SFR_MEM8(0x06B5)
3119 #define PORTF_PIN6CTRL _SFR_MEM8(0x06B6)
3120 #define PORTF_PIN7CTRL _SFR_MEM8(0x06B7)
3121 
3122 /* PORTR - Port R */
3123 #define PORTR_DIR _SFR_MEM8(0x07E0)
3124 #define PORTR_DIRSET _SFR_MEM8(0x07E1)
3125 #define PORTR_DIRCLR _SFR_MEM8(0x07E2)
3126 #define PORTR_DIRTGL _SFR_MEM8(0x07E3)
3127 #define PORTR_OUT _SFR_MEM8(0x07E4)
3128 #define PORTR_OUTSET _SFR_MEM8(0x07E5)
3129 #define PORTR_OUTCLR _SFR_MEM8(0x07E6)
3130 #define PORTR_OUTTGL _SFR_MEM8(0x07E7)
3131 #define PORTR_IN _SFR_MEM8(0x07E8)
3132 #define PORTR_INTCTRL _SFR_MEM8(0x07E9)
3133 #define PORTR_INT0MASK _SFR_MEM8(0x07EA)
3134 #define PORTR_INT1MASK _SFR_MEM8(0x07EB)
3135 #define PORTR_INTFLAGS _SFR_MEM8(0x07EC)
3136 #define PORTR_PIN0CTRL _SFR_MEM8(0x07F0)
3137 #define PORTR_PIN1CTRL _SFR_MEM8(0x07F1)
3138 #define PORTR_PIN2CTRL _SFR_MEM8(0x07F2)
3139 #define PORTR_PIN3CTRL _SFR_MEM8(0x07F3)
3140 #define PORTR_PIN4CTRL _SFR_MEM8(0x07F4)
3141 #define PORTR_PIN5CTRL _SFR_MEM8(0x07F5)
3142 #define PORTR_PIN6CTRL _SFR_MEM8(0x07F6)
3143 #define PORTR_PIN7CTRL _SFR_MEM8(0x07F7)
3144 
3145 /* TCC0 - Timer/Counter C0 */
3146 #define TCC0_CTRLA _SFR_MEM8(0x0800)
3147 #define TCC0_CTRLB _SFR_MEM8(0x0801)
3148 #define TCC0_CTRLC _SFR_MEM8(0x0802)
3149 #define TCC0_CTRLD _SFR_MEM8(0x0803)
3150 #define TCC0_CTRLE _SFR_MEM8(0x0804)
3151 #define TCC0_INTCTRLA _SFR_MEM8(0x0806)
3152 #define TCC0_INTCTRLB _SFR_MEM8(0x0807)
3153 #define TCC0_CTRLFCLR _SFR_MEM8(0x0808)
3154 #define TCC0_CTRLFSET _SFR_MEM8(0x0809)
3155 #define TCC0_CTRLGCLR _SFR_MEM8(0x080A)
3156 #define TCC0_CTRLGSET _SFR_MEM8(0x080B)
3157 #define TCC0_INTFLAGS _SFR_MEM8(0x080C)
3158 #define TCC0_TEMP _SFR_MEM8(0x080F)
3159 #define TCC0_CNT _SFR_MEM16(0x0820)
3160 #define TCC0_PER _SFR_MEM16(0x0826)
3161 #define TCC0_CCA _SFR_MEM16(0x0828)
3162 #define TCC0_CCB _SFR_MEM16(0x082A)
3163 #define TCC0_CCC _SFR_MEM16(0x082C)
3164 #define TCC0_CCD _SFR_MEM16(0x082E)
3165 #define TCC0_PERBUF _SFR_MEM16(0x0836)
3166 #define TCC0_CCABUF _SFR_MEM16(0x0838)
3167 #define TCC0_CCBBUF _SFR_MEM16(0x083A)
3168 #define TCC0_CCCBUF _SFR_MEM16(0x083C)
3169 #define TCC0_CCDBUF _SFR_MEM16(0x083E)
3170 
3171 /* TCC1 - Timer/Counter C1 */
3172 #define TCC1_CTRLA _SFR_MEM8(0x0840)
3173 #define TCC1_CTRLB _SFR_MEM8(0x0841)
3174 #define TCC1_CTRLC _SFR_MEM8(0x0842)
3175 #define TCC1_CTRLD _SFR_MEM8(0x0843)
3176 #define TCC1_CTRLE _SFR_MEM8(0x0844)
3177 #define TCC1_INTCTRLA _SFR_MEM8(0x0846)
3178 #define TCC1_INTCTRLB _SFR_MEM8(0x0847)
3179 #define TCC1_CTRLFCLR _SFR_MEM8(0x0848)
3180 #define TCC1_CTRLFSET _SFR_MEM8(0x0849)
3181 #define TCC1_CTRLGCLR _SFR_MEM8(0x084A)
3182 #define TCC1_CTRLGSET _SFR_MEM8(0x084B)
3183 #define TCC1_INTFLAGS _SFR_MEM8(0x084C)
3184 #define TCC1_TEMP _SFR_MEM8(0x084F)
3185 #define TCC1_CNT _SFR_MEM16(0x0860)
3186 #define TCC1_PER _SFR_MEM16(0x0866)
3187 #define TCC1_CCA _SFR_MEM16(0x0868)
3188 #define TCC1_CCB _SFR_MEM16(0x086A)
3189 #define TCC1_PERBUF _SFR_MEM16(0x0876)
3190 #define TCC1_CCABUF _SFR_MEM16(0x0878)
3191 #define TCC1_CCBBUF _SFR_MEM16(0x087A)
3192 
3193 /* AWEXC - Advanced Waveform Extension C */
3194 #define AWEXC_CTRL _SFR_MEM8(0x0880)
3195 #define AWEXC_FDEVMASK _SFR_MEM8(0x0882)
3196 #define AWEXC_FDCTRL _SFR_MEM8(0x0883)
3197 #define AWEXC_STATUS _SFR_MEM8(0x0884)
3198 #define AWEXC_DTBOTH _SFR_MEM8(0x0886)
3199 #define AWEXC_DTBOTHBUF _SFR_MEM8(0x0887)
3200 #define AWEXC_DTLS _SFR_MEM8(0x0888)
3201 #define AWEXC_DTHS _SFR_MEM8(0x0889)
3202 #define AWEXC_DTLSBUF _SFR_MEM8(0x088A)
3203 #define AWEXC_DTHSBUF _SFR_MEM8(0x088B)
3204 #define AWEXC_OUTOVEN _SFR_MEM8(0x088C)
3205 
3206 /* HIRESC - High-Resolution Extension C */
3207 #define HIRESC_CTRL _SFR_MEM8(0x0890)
3208 
3209 /* USARTC0 - Universal Asynchronous Receiver-Transmitter C0 */
3210 #define USARTC0_DATA _SFR_MEM8(0x08A0)
3211 #define USARTC0_STATUS _SFR_MEM8(0x08A1)
3212 #define USARTC0_CTRLA _SFR_MEM8(0x08A3)
3213 #define USARTC0_CTRLB _SFR_MEM8(0x08A4)
3214 #define USARTC0_CTRLC _SFR_MEM8(0x08A5)
3215 #define USARTC0_BAUDCTRLA _SFR_MEM8(0x08A6)
3216 #define USARTC0_BAUDCTRLB _SFR_MEM8(0x08A7)
3217 
3218 /* USARTC1 - Universal Asynchronous Receiver-Transmitter C1 */
3219 #define USARTC1_DATA _SFR_MEM8(0x08B0)
3220 #define USARTC1_STATUS _SFR_MEM8(0x08B1)
3221 #define USARTC1_CTRLA _SFR_MEM8(0x08B3)
3222 #define USARTC1_CTRLB _SFR_MEM8(0x08B4)
3223 #define USARTC1_CTRLC _SFR_MEM8(0x08B5)
3224 #define USARTC1_BAUDCTRLA _SFR_MEM8(0x08B6)
3225 #define USARTC1_BAUDCTRLB _SFR_MEM8(0x08B7)
3226 
3227 /* SPIC - Serial Peripheral Interface C */
3228 #define SPIC_CTRL _SFR_MEM8(0x08C0)
3229 #define SPIC_INTCTRL _SFR_MEM8(0x08C1)
3230 #define SPIC_STATUS _SFR_MEM8(0x08C2)
3231 #define SPIC_DATA _SFR_MEM8(0x08C3)
3232 
3233 /* IRCOM - IR Communication Module */
3234 #define IRCOM_CTRL _SFR_MEM8(0x08F8)
3235 #define IRCOM_TXPLCTRL _SFR_MEM8(0x08F9)
3236 #define IRCOM_RXPLCTRL _SFR_MEM8(0x08FA)
3237 
3238 /* TCD0 - Timer/Counter D0 */
3239 #define TCD0_CTRLA _SFR_MEM8(0x0900)
3240 #define TCD0_CTRLB _SFR_MEM8(0x0901)
3241 #define TCD0_CTRLC _SFR_MEM8(0x0902)
3242 #define TCD0_CTRLD _SFR_MEM8(0x0903)
3243 #define TCD0_CTRLE _SFR_MEM8(0x0904)
3244 #define TCD0_INTCTRLA _SFR_MEM8(0x0906)
3245 #define TCD0_INTCTRLB _SFR_MEM8(0x0907)
3246 #define TCD0_CTRLFCLR _SFR_MEM8(0x0908)
3247 #define TCD0_CTRLFSET _SFR_MEM8(0x0909)
3248 #define TCD0_CTRLGCLR _SFR_MEM8(0x090A)
3249 #define TCD0_CTRLGSET _SFR_MEM8(0x090B)
3250 #define TCD0_INTFLAGS _SFR_MEM8(0x090C)
3251 #define TCD0_TEMP _SFR_MEM8(0x090F)
3252 #define TCD0_CNT _SFR_MEM16(0x0920)
3253 #define TCD0_PER _SFR_MEM16(0x0926)
3254 #define TCD0_CCA _SFR_MEM16(0x0928)
3255 #define TCD0_CCB _SFR_MEM16(0x092A)
3256 #define TCD0_CCC _SFR_MEM16(0x092C)
3257 #define TCD0_CCD _SFR_MEM16(0x092E)
3258 #define TCD0_PERBUF _SFR_MEM16(0x0936)
3259 #define TCD0_CCABUF _SFR_MEM16(0x0938)
3260 #define TCD0_CCBBUF _SFR_MEM16(0x093A)
3261 #define TCD0_CCCBUF _SFR_MEM16(0x093C)
3262 #define TCD0_CCDBUF _SFR_MEM16(0x093E)
3263 
3264 /* TCD1 - Timer/Counter D1 */
3265 #define TCD1_CTRLA _SFR_MEM8(0x0940)
3266 #define TCD1_CTRLB _SFR_MEM8(0x0941)
3267 #define TCD1_CTRLC _SFR_MEM8(0x0942)
3268 #define TCD1_CTRLD _SFR_MEM8(0x0943)
3269 #define TCD1_CTRLE _SFR_MEM8(0x0944)
3270 #define TCD1_INTCTRLA _SFR_MEM8(0x0946)
3271 #define TCD1_INTCTRLB _SFR_MEM8(0x0947)
3272 #define TCD1_CTRLFCLR _SFR_MEM8(0x0948)
3273 #define TCD1_CTRLFSET _SFR_MEM8(0x0949)
3274 #define TCD1_CTRLGCLR _SFR_MEM8(0x094A)
3275 #define TCD1_CTRLGSET _SFR_MEM8(0x094B)
3276 #define TCD1_INTFLAGS _SFR_MEM8(0x094C)
3277 #define TCD1_TEMP _SFR_MEM8(0x094F)
3278 #define TCD1_CNT _SFR_MEM16(0x0960)
3279 #define TCD1_PER _SFR_MEM16(0x0966)
3280 #define TCD1_CCA _SFR_MEM16(0x0968)
3281 #define TCD1_CCB _SFR_MEM16(0x096A)
3282 #define TCD1_PERBUF _SFR_MEM16(0x0976)
3283 #define TCD1_CCABUF _SFR_MEM16(0x0978)
3284 #define TCD1_CCBBUF _SFR_MEM16(0x097A)
3285 
3286 /* HIRESD - High-Resolution Extension D */
3287 #define HIRESD_CTRL _SFR_MEM8(0x0990)
3288 
3289 /* USARTD0 - Universal Asynchronous Receiver-Transmitter D0 */
3290 #define USARTD0_DATA _SFR_MEM8(0x09A0)
3291 #define USARTD0_STATUS _SFR_MEM8(0x09A1)
3292 #define USARTD0_CTRLA _SFR_MEM8(0x09A3)
3293 #define USARTD0_CTRLB _SFR_MEM8(0x09A4)
3294 #define USARTD0_CTRLC _SFR_MEM8(0x09A5)
3295 #define USARTD0_BAUDCTRLA _SFR_MEM8(0x09A6)
3296 #define USARTD0_BAUDCTRLB _SFR_MEM8(0x09A7)
3297 
3298 /* USARTD1 - Universal Asynchronous Receiver-Transmitter D1 */
3299 #define USARTD1_DATA _SFR_MEM8(0x09B0)
3300 #define USARTD1_STATUS _SFR_MEM8(0x09B1)
3301 #define USARTD1_CTRLA _SFR_MEM8(0x09B3)
3302 #define USARTD1_CTRLB _SFR_MEM8(0x09B4)
3303 #define USARTD1_CTRLC _SFR_MEM8(0x09B5)
3304 #define USARTD1_BAUDCTRLA _SFR_MEM8(0x09B6)
3305 #define USARTD1_BAUDCTRLB _SFR_MEM8(0x09B7)
3306 
3307 /* SPID - Serial Peripheral Interface D */
3308 #define SPID_CTRL _SFR_MEM8(0x09C0)
3309 #define SPID_INTCTRL _SFR_MEM8(0x09C1)
3310 #define SPID_STATUS _SFR_MEM8(0x09C2)
3311 #define SPID_DATA _SFR_MEM8(0x09C3)
3312 
3313 /* TCE0 - Timer/Counter E0 */
3314 #define TCE0_CTRLA _SFR_MEM8(0x0A00)
3315 #define TCE0_CTRLB _SFR_MEM8(0x0A01)
3316 #define TCE0_CTRLC _SFR_MEM8(0x0A02)
3317 #define TCE0_CTRLD _SFR_MEM8(0x0A03)
3318 #define TCE0_CTRLE _SFR_MEM8(0x0A04)
3319 #define TCE0_INTCTRLA _SFR_MEM8(0x0A06)
3320 #define TCE0_INTCTRLB _SFR_MEM8(0x0A07)
3321 #define TCE0_CTRLFCLR _SFR_MEM8(0x0A08)
3322 #define TCE0_CTRLFSET _SFR_MEM8(0x0A09)
3323 #define TCE0_CTRLGCLR _SFR_MEM8(0x0A0A)
3324 #define TCE0_CTRLGSET _SFR_MEM8(0x0A0B)
3325 #define TCE0_INTFLAGS _SFR_MEM8(0x0A0C)
3326 #define TCE0_TEMP _SFR_MEM8(0x0A0F)
3327 #define TCE0_CNT _SFR_MEM16(0x0A20)
3328 #define TCE0_PER _SFR_MEM16(0x0A26)
3329 #define TCE0_CCA _SFR_MEM16(0x0A28)
3330 #define TCE0_CCB _SFR_MEM16(0x0A2A)
3331 #define TCE0_CCC _SFR_MEM16(0x0A2C)
3332 #define TCE0_CCD _SFR_MEM16(0x0A2E)
3333 #define TCE0_PERBUF _SFR_MEM16(0x0A36)
3334 #define TCE0_CCABUF _SFR_MEM16(0x0A38)
3335 #define TCE0_CCBBUF _SFR_MEM16(0x0A3A)
3336 #define TCE0_CCCBUF _SFR_MEM16(0x0A3C)
3337 #define TCE0_CCDBUF _SFR_MEM16(0x0A3E)
3338 
3339 /* TCE1 - Timer/Counter E1 */
3340 #define TCE1_CTRLA _SFR_MEM8(0x0A40)
3341 #define TCE1_CTRLB _SFR_MEM8(0x0A41)
3342 #define TCE1_CTRLC _SFR_MEM8(0x0A42)
3343 #define TCE1_CTRLD _SFR_MEM8(0x0A43)
3344 #define TCE1_CTRLE _SFR_MEM8(0x0A44)
3345 #define TCE1_INTCTRLA _SFR_MEM8(0x0A46)
3346 #define TCE1_INTCTRLB _SFR_MEM8(0x0A47)
3347 #define TCE1_CTRLFCLR _SFR_MEM8(0x0A48)
3348 #define TCE1_CTRLFSET _SFR_MEM8(0x0A49)
3349 #define TCE1_CTRLGCLR _SFR_MEM8(0x0A4A)
3350 #define TCE1_CTRLGSET _SFR_MEM8(0x0A4B)
3351 #define TCE1_INTFLAGS _SFR_MEM8(0x0A4C)
3352 #define TCE1_TEMP _SFR_MEM8(0x0A4F)
3353 #define TCE1_CNT _SFR_MEM16(0x0A60)
3354 #define TCE1_PER _SFR_MEM16(0x0A66)
3355 #define TCE1_CCA _SFR_MEM16(0x0A68)
3356 #define TCE1_CCB _SFR_MEM16(0x0A6A)
3357 #define TCE1_PERBUF _SFR_MEM16(0x0A76)
3358 #define TCE1_CCABUF _SFR_MEM16(0x0A78)
3359 #define TCE1_CCBBUF _SFR_MEM16(0x0A7A)
3360 
3361 /* AWEXE - Advanced Waveform Extension E */
3362 #define AWEXE_CTRL _SFR_MEM8(0x0A80)
3363 #define AWEXE_FDEVMASK _SFR_MEM8(0x0A82)
3364 #define AWEXE_FDCTRL _SFR_MEM8(0x0A83)
3365 #define AWEXE_STATUS _SFR_MEM8(0x0A84)
3366 #define AWEXE_DTBOTH _SFR_MEM8(0x0A86)
3367 #define AWEXE_DTBOTHBUF _SFR_MEM8(0x0A87)
3368 #define AWEXE_DTLS _SFR_MEM8(0x0A88)
3369 #define AWEXE_DTHS _SFR_MEM8(0x0A89)
3370 #define AWEXE_DTLSBUF _SFR_MEM8(0x0A8A)
3371 #define AWEXE_DTHSBUF _SFR_MEM8(0x0A8B)
3372 #define AWEXE_OUTOVEN _SFR_MEM8(0x0A8C)
3373 
3374 /* HIRESE - High-Resolution Extension E */
3375 #define HIRESE_CTRL _SFR_MEM8(0x0A90)
3376 
3377 /* USARTE0 - Universal Asynchronous Receiver-Transmitter E0 */
3378 #define USARTE0_DATA _SFR_MEM8(0x0AA0)
3379 #define USARTE0_STATUS _SFR_MEM8(0x0AA1)
3380 #define USARTE0_CTRLA _SFR_MEM8(0x0AA3)
3381 #define USARTE0_CTRLB _SFR_MEM8(0x0AA4)
3382 #define USARTE0_CTRLC _SFR_MEM8(0x0AA5)
3383 #define USARTE0_BAUDCTRLA _SFR_MEM8(0x0AA6)
3384 #define USARTE0_BAUDCTRLB _SFR_MEM8(0x0AA7)
3385 
3386 /* TCF0 - Timer/Counter F0 */
3387 #define TCF0_CTRLA _SFR_MEM8(0x0B00)
3388 #define TCF0_CTRLB _SFR_MEM8(0x0B01)
3389 #define TCF0_CTRLC _SFR_MEM8(0x0B02)
3390 #define TCF0_CTRLD _SFR_MEM8(0x0B03)
3391 #define TCF0_CTRLE _SFR_MEM8(0x0B04)
3392 #define TCF0_INTCTRLA _SFR_MEM8(0x0B06)
3393 #define TCF0_INTCTRLB _SFR_MEM8(0x0B07)
3394 #define TCF0_CTRLFCLR _SFR_MEM8(0x0B08)
3395 #define TCF0_CTRLFSET _SFR_MEM8(0x0B09)
3396 #define TCF0_CTRLGCLR _SFR_MEM8(0x0B0A)
3397 #define TCF0_CTRLGSET _SFR_MEM8(0x0B0B)
3398 #define TCF0_INTFLAGS _SFR_MEM8(0x0B0C)
3399 #define TCF0_TEMP _SFR_MEM8(0x0B0F)
3400 #define TCF0_CNT _SFR_MEM16(0x0B20)
3401 #define TCF0_PER _SFR_MEM16(0x0B26)
3402 #define TCF0_CCA _SFR_MEM16(0x0B28)
3403 #define TCF0_CCB _SFR_MEM16(0x0B2A)
3404 #define TCF0_CCC _SFR_MEM16(0x0B2C)
3405 #define TCF0_CCD _SFR_MEM16(0x0B2E)
3406 #define TCF0_PERBUF _SFR_MEM16(0x0B36)
3407 #define TCF0_CCABUF _SFR_MEM16(0x0B38)
3408 #define TCF0_CCBBUF _SFR_MEM16(0x0B3A)
3409 #define TCF0_CCCBUF _SFR_MEM16(0x0B3C)
3410 #define TCF0_CCDBUF _SFR_MEM16(0x0B3E)
3411 
3412 /* HIRESF - High-Resolution Extension F */
3413 #define HIRESF_CTRL _SFR_MEM8(0x0B90)
3414 
3415 /* USARTF0 - Universal Asynchronous Receiver-Transmitter F0 */
3416 #define USARTF0_DATA _SFR_MEM8(0x0BA0)
3417 #define USARTF0_STATUS _SFR_MEM8(0x0BA1)
3418 #define USARTF0_CTRLA _SFR_MEM8(0x0BA3)
3419 #define USARTF0_CTRLB _SFR_MEM8(0x0BA4)
3420 #define USARTF0_CTRLC _SFR_MEM8(0x0BA5)
3421 #define USARTF0_BAUDCTRLA _SFR_MEM8(0x0BA6)
3422 #define USARTF0_BAUDCTRLB _SFR_MEM8(0x0BA7)
3423 
3424 /* USARTF1 - Universal Asynchronous Receiver-Transmitter F1 */
3425 #define USARTF1_DATA _SFR_MEM8(0x0BB0)
3426 #define USARTF1_STATUS _SFR_MEM8(0x0BB1)
3427 #define USARTF1_CTRLA _SFR_MEM8(0x0BB3)
3428 #define USARTF1_CTRLB _SFR_MEM8(0x0BB4)
3429 #define USARTF1_CTRLC _SFR_MEM8(0x0BB5)
3430 #define USARTF1_BAUDCTRLA _SFR_MEM8(0x0BB6)
3431 #define USARTF1_BAUDCTRLB _SFR_MEM8(0x0BB7)
3432 
3433 /* SPIF - Serial Peripheral Interface F */
3434 #define SPIF_CTRL _SFR_MEM8(0x0BC0)
3435 #define SPIF_INTCTRL _SFR_MEM8(0x0BC1)
3436 #define SPIF_STATUS _SFR_MEM8(0x0BC2)
3437 #define SPIF_DATA _SFR_MEM8(0x0BC3)
3438 
3439 
3440 
3441 /*================== Bitfield Definitions ================== */
3442 
3443 /* XOCD - On-Chip Debug System */
3444 /* OCD.OCDR1 bit masks and bit positions */
3445 #define OCD_OCDRD_bm 0x01 /* OCDR Dirty bit mask. */
3446 #define OCD_OCDRD_bp 0 /* OCDR Dirty bit position. */
3447 
3448 
3449 /* CPU - CPU */
3450 /* CPU.CCP bit masks and bit positions */
3451 #define CPU_CCP_gm 0xFF /* CCP signature group mask. */
3452 #define CPU_CCP_gp 0 /* CCP signature group position. */
3453 #define CPU_CCP0_bm (1<<0) /* CCP signature bit 0 mask. */
3454 #define CPU_CCP0_bp 0 /* CCP signature bit 0 position. */
3455 #define CPU_CCP1_bm (1<<1) /* CCP signature bit 1 mask. */
3456 #define CPU_CCP1_bp 1 /* CCP signature bit 1 position. */
3457 #define CPU_CCP2_bm (1<<2) /* CCP signature bit 2 mask. */
3458 #define CPU_CCP2_bp 2 /* CCP signature bit 2 position. */
3459 #define CPU_CCP3_bm (1<<3) /* CCP signature bit 3 mask. */
3460 #define CPU_CCP3_bp 3 /* CCP signature bit 3 position. */
3461 #define CPU_CCP4_bm (1<<4) /* CCP signature bit 4 mask. */
3462 #define CPU_CCP4_bp 4 /* CCP signature bit 4 position. */
3463 #define CPU_CCP5_bm (1<<5) /* CCP signature bit 5 mask. */
3464 #define CPU_CCP5_bp 5 /* CCP signature bit 5 position. */
3465 #define CPU_CCP6_bm (1<<6) /* CCP signature bit 6 mask. */
3466 #define CPU_CCP6_bp 6 /* CCP signature bit 6 position. */
3467 #define CPU_CCP7_bm (1<<7) /* CCP signature bit 7 mask. */
3468 #define CPU_CCP7_bp 7 /* CCP signature bit 7 position. */
3469 
3470 
3471 /* CPU.SREG bit masks and bit positions */
3472 #define CPU_I_bm 0x80 /* Global Interrupt Enable Flag bit mask. */
3473 #define CPU_I_bp 7 /* Global Interrupt Enable Flag bit position. */
3474 
3475 #define CPU_T_bm 0x40 /* Transfer Bit bit mask. */
3476 #define CPU_T_bp 6 /* Transfer Bit bit position. */
3477 
3478 #define CPU_H_bm 0x20 /* Half Carry Flag bit mask. */
3479 #define CPU_H_bp 5 /* Half Carry Flag bit position. */
3480 
3481 #define CPU_S_bm 0x10 /* N Exclusive Or V Flag bit mask. */
3482 #define CPU_S_bp 4 /* N Exclusive Or V Flag bit position. */
3483 
3484 #define CPU_V_bm 0x08 /* Two's Complement Overflow Flag bit mask. */
3485 #define CPU_V_bp 3 /* Two's Complement Overflow Flag bit position. */
3486 
3487 #define CPU_N_bm 0x04 /* Negative Flag bit mask. */
3488 #define CPU_N_bp 2 /* Negative Flag bit position. */
3489 
3490 #define CPU_Z_bm 0x02 /* Zero Flag bit mask. */
3491 #define CPU_Z_bp 1 /* Zero Flag bit position. */
3492 
3493 #define CPU_C_bm 0x01 /* Carry Flag bit mask. */
3494 #define CPU_C_bp 0 /* Carry Flag bit position. */
3495 
3496 
3497 /* CLK - Clock System */
3498 /* CLK.CTRL bit masks and bit positions */
3499 #define CLK_SCLKSEL_gm 0x07 /* System Clock Selection group mask. */
3500 #define CLK_SCLKSEL_gp 0 /* System Clock Selection group position. */
3501 #define CLK_SCLKSEL0_bm (1<<0) /* System Clock Selection bit 0 mask. */
3502 #define CLK_SCLKSEL0_bp 0 /* System Clock Selection bit 0 position. */
3503 #define CLK_SCLKSEL1_bm (1<<1) /* System Clock Selection bit 1 mask. */
3504 #define CLK_SCLKSEL1_bp 1 /* System Clock Selection bit 1 position. */
3505 #define CLK_SCLKSEL2_bm (1<<2) /* System Clock Selection bit 2 mask. */
3506 #define CLK_SCLKSEL2_bp 2 /* System Clock Selection bit 2 position. */
3507 
3508 
3509 /* CLK.PSCTRL bit masks and bit positions */
3510 #define CLK_PSADIV_gm 0x7C /* Prescaler A Division Factor group mask. */
3511 #define CLK_PSADIV_gp 2 /* Prescaler A Division Factor group position. */
3512 #define CLK_PSADIV0_bm (1<<2) /* Prescaler A Division Factor bit 0 mask. */
3513 #define CLK_PSADIV0_bp 2 /* Prescaler A Division Factor bit 0 position. */
3514 #define CLK_PSADIV1_bm (1<<3) /* Prescaler A Division Factor bit 1 mask. */
3515 #define CLK_PSADIV1_bp 3 /* Prescaler A Division Factor bit 1 position. */
3516 #define CLK_PSADIV2_bm (1<<4) /* Prescaler A Division Factor bit 2 mask. */
3517 #define CLK_PSADIV2_bp 4 /* Prescaler A Division Factor bit 2 position. */
3518 #define CLK_PSADIV3_bm (1<<5) /* Prescaler A Division Factor bit 3 mask. */
3519 #define CLK_PSADIV3_bp 5 /* Prescaler A Division Factor bit 3 position. */
3520 #define CLK_PSADIV4_bm (1<<6) /* Prescaler A Division Factor bit 4 mask. */
3521 #define CLK_PSADIV4_bp 6 /* Prescaler A Division Factor bit 4 position. */
3522 
3523 #define CLK_PSBCDIV_gm 0x03 /* Prescaler B and C Division factor group mask. */
3524 #define CLK_PSBCDIV_gp 0 /* Prescaler B and C Division factor group position. */
3525 #define CLK_PSBCDIV0_bm (1<<0) /* Prescaler B and C Division factor bit 0 mask. */
3526 #define CLK_PSBCDIV0_bp 0 /* Prescaler B and C Division factor bit 0 position. */
3527 #define CLK_PSBCDIV1_bm (1<<1) /* Prescaler B and C Division factor bit 1 mask. */
3528 #define CLK_PSBCDIV1_bp 1 /* Prescaler B and C Division factor bit 1 position. */
3529 
3530 
3531 /* CLK.LOCK bit masks and bit positions */
3532 #define CLK_LOCK_bm 0x01 /* Clock System Lock bit mask. */
3533 #define CLK_LOCK_bp 0 /* Clock System Lock bit position. */
3534 
3535 
3536 /* CLK.RTCCTRL bit masks and bit positions */
3537 #define CLK_RTCSRC_gm 0x0E /* Clock Source group mask. */
3538 #define CLK_RTCSRC_gp 1 /* Clock Source group position. */
3539 #define CLK_RTCSRC0_bm (1<<1) /* Clock Source bit 0 mask. */
3540 #define CLK_RTCSRC0_bp 1 /* Clock Source bit 0 position. */
3541 #define CLK_RTCSRC1_bm (1<<2) /* Clock Source bit 1 mask. */
3542 #define CLK_RTCSRC1_bp 2 /* Clock Source bit 1 position. */
3543 #define CLK_RTCSRC2_bm (1<<3) /* Clock Source bit 2 mask. */
3544 #define CLK_RTCSRC2_bp 3 /* Clock Source bit 2 position. */
3545 
3546 #define CLK_RTCEN_bm 0x01 /* RTC Clock Source Enable bit mask. */
3547 #define CLK_RTCEN_bp 0 /* RTC Clock Source Enable bit position. */
3548 
3549 
3550 /* PR.PRGEN bit masks and bit positions */
3551 #define PR_AES_bm 0x10 /* AES bit mask. */
3552 #define PR_AES_bp 4 /* AES bit position. */
3553 
3554 #define PR_EBI_bm 0x08 /* External Bus Interface bit mask. */
3555 #define PR_EBI_bp 3 /* External Bus Interface bit position. */
3556 
3557 #define PR_RTC_bm 0x04 /* Real-time Counter bit mask. */
3558 #define PR_RTC_bp 2 /* Real-time Counter bit position. */
3559 
3560 #define PR_EVSYS_bm 0x02 /* Event System bit mask. */
3561 #define PR_EVSYS_bp 1 /* Event System bit position. */
3562 
3563 #define PR_DMA_bm 0x01 /* DMA-Controller bit mask. */
3564 #define PR_DMA_bp 0 /* DMA-Controller bit position. */
3565 
3566 
3567 /* PR.PRPA bit masks and bit positions */
3568 #define PR_DAC_bm 0x04 /* Port A DAC bit mask. */
3569 #define PR_DAC_bp 2 /* Port A DAC bit position. */
3570 
3571 #define PR_ADC_bm 0x02 /* Port A ADC bit mask. */
3572 #define PR_ADC_bp 1 /* Port A ADC bit position. */
3573 
3574 #define PR_AC_bm 0x01 /* Port A Analog Comparator bit mask. */
3575 #define PR_AC_bp 0 /* Port A Analog Comparator bit position. */
3576 
3577 
3578 /* PR.PRPB bit masks and bit positions */
3579 /* PR_DAC_bm Predefined. */
3580 /* PR_DAC_bp Predefined. */
3581 
3582 /* PR_ADC_bm Predefined. */
3583 /* PR_ADC_bp Predefined. */
3584 
3585 /* PR_AC_bm Predefined. */
3586 /* PR_AC_bp Predefined. */
3587 
3588 
3589 /* PR.PRPC bit masks and bit positions */
3590 #define PR_TWI_bm 0x40 /* Port C Two-wire Interface bit mask. */
3591 #define PR_TWI_bp 6 /* Port C Two-wire Interface bit position. */
3592 
3593 #define PR_USART1_bm 0x20 /* Port C USART1 bit mask. */
3594 #define PR_USART1_bp 5 /* Port C USART1 bit position. */
3595 
3596 #define PR_USART0_bm 0x10 /* Port C USART0 bit mask. */
3597 #define PR_USART0_bp 4 /* Port C USART0 bit position. */
3598 
3599 #define PR_SPI_bm 0x08 /* Port C SPI bit mask. */
3600 #define PR_SPI_bp 3 /* Port C SPI bit position. */
3601 
3602 #define PR_HIRES_bm 0x04 /* Port C AWEX bit mask. */
3603 #define PR_HIRES_bp 2 /* Port C AWEX bit position. */
3604 
3605 #define PR_TC1_bm 0x02 /* Port C Timer/Counter1 bit mask. */
3606 #define PR_TC1_bp 1 /* Port C Timer/Counter1 bit position. */
3607 
3608 #define PR_TC0_bm 0x01 /* Port C Timer/Counter0 bit mask. */
3609 #define PR_TC0_bp 0 /* Port C Timer/Counter0 bit position. */
3610 
3611 
3612 /* PR.PRPD bit masks and bit positions */
3613 /* PR_TWI_bm Predefined. */
3614 /* PR_TWI_bp Predefined. */
3615 
3616 /* PR_USART1_bm Predefined. */
3617 /* PR_USART1_bp Predefined. */
3618 
3619 /* PR_USART0_bm Predefined. */
3620 /* PR_USART0_bp Predefined. */
3621 
3622 /* PR_SPI_bm Predefined. */
3623 /* PR_SPI_bp Predefined. */
3624 
3625 /* PR_HIRES_bm Predefined. */
3626 /* PR_HIRES_bp Predefined. */
3627 
3628 /* PR_TC1_bm Predefined. */
3629 /* PR_TC1_bp Predefined. */
3630 
3631 /* PR_TC0_bm Predefined. */
3632 /* PR_TC0_bp Predefined. */
3633 
3634 
3635 /* PR.PRPE bit masks and bit positions */
3636 /* PR_TWI_bm Predefined. */
3637 /* PR_TWI_bp Predefined. */
3638 
3639 /* PR_USART1_bm Predefined. */
3640 /* PR_USART1_bp Predefined. */
3641 
3642 /* PR_USART0_bm Predefined. */
3643 /* PR_USART0_bp Predefined. */
3644 
3645 /* PR_SPI_bm Predefined. */
3646 /* PR_SPI_bp Predefined. */
3647 
3648 /* PR_HIRES_bm Predefined. */
3649 /* PR_HIRES_bp Predefined. */
3650 
3651 /* PR_TC1_bm Predefined. */
3652 /* PR_TC1_bp Predefined. */
3653 
3654 /* PR_TC0_bm Predefined. */
3655 /* PR_TC0_bp Predefined. */
3656 
3657 
3658 /* PR.PRPF bit masks and bit positions */
3659 /* PR_TWI_bm Predefined. */
3660 /* PR_TWI_bp Predefined. */
3661 
3662 /* PR_USART1_bm Predefined. */
3663 /* PR_USART1_bp Predefined. */
3664 
3665 /* PR_USART0_bm Predefined. */
3666 /* PR_USART0_bp Predefined. */
3667 
3668 /* PR_SPI_bm Predefined. */
3669 /* PR_SPI_bp Predefined. */
3670 
3671 /* PR_HIRES_bm Predefined. */
3672 /* PR_HIRES_bp Predefined. */
3673 
3674 /* PR_TC1_bm Predefined. */
3675 /* PR_TC1_bp Predefined. */
3676 
3677 /* PR_TC0_bm Predefined. */
3678 /* PR_TC0_bp Predefined. */
3679 
3680 
3681 /* SLEEP - Sleep Controller */
3682 /* SLEEP.CTRL bit masks and bit positions */
3683 #define SLEEP_SMODE_gm 0x0E /* Sleep Mode group mask. */
3684 #define SLEEP_SMODE_gp 1 /* Sleep Mode group position. */
3685 #define SLEEP_SMODE0_bm (1<<1) /* Sleep Mode bit 0 mask. */
3686 #define SLEEP_SMODE0_bp 1 /* Sleep Mode bit 0 position. */
3687 #define SLEEP_SMODE1_bm (1<<2) /* Sleep Mode bit 1 mask. */
3688 #define SLEEP_SMODE1_bp 2 /* Sleep Mode bit 1 position. */
3689 #define SLEEP_SMODE2_bm (1<<3) /* Sleep Mode bit 2 mask. */
3690 #define SLEEP_SMODE2_bp 3 /* Sleep Mode bit 2 position. */
3691 
3692 #define SLEEP_SEN_bm 0x01 /* Sleep Enable bit mask. */
3693 #define SLEEP_SEN_bp 0 /* Sleep Enable bit position. */
3694 
3695 
3696 /* OSC - Oscillator */
3697 /* OSC.CTRL bit masks and bit positions */
3698 #define OSC_PLLEN_bm 0x10 /* PLL Enable bit mask. */
3699 #define OSC_PLLEN_bp 4 /* PLL Enable bit position. */
3700 
3701 #define OSC_XOSCEN_bm 0x08 /* External Oscillator Enable bit mask. */
3702 #define OSC_XOSCEN_bp 3 /* External Oscillator Enable bit position. */
3703 
3704 #define OSC_RC32KEN_bm 0x04 /* Internal 32kHz RC Oscillator Enable bit mask. */
3705 #define OSC_RC32KEN_bp 2 /* Internal 32kHz RC Oscillator Enable bit position. */
3706 
3707 #define OSC_RC32MEN_bm 0x02 /* Internal 32MHz RC Oscillator Enable bit mask. */
3708 #define OSC_RC32MEN_bp 1 /* Internal 32MHz RC Oscillator Enable bit position. */
3709 
3710 #define OSC_RC2MEN_bm 0x01 /* Internal 2MHz RC Oscillator Enable bit mask. */
3711 #define OSC_RC2MEN_bp 0 /* Internal 2MHz RC Oscillator Enable bit position. */
3712 
3713 
3714 /* OSC.STATUS bit masks and bit positions */
3715 #define OSC_PLLRDY_bm 0x10 /* PLL Ready bit mask. */
3716 #define OSC_PLLRDY_bp 4 /* PLL Ready bit position. */
3717 
3718 #define OSC_XOSCRDY_bm 0x08 /* External Oscillator Ready bit mask. */
3719 #define OSC_XOSCRDY_bp 3 /* External Oscillator Ready bit position. */
3720 
3721 #define OSC_RC32KRDY_bm 0x04 /* Internal 32kHz RC Oscillator Ready bit mask. */
3722 #define OSC_RC32KRDY_bp 2 /* Internal 32kHz RC Oscillator Ready bit position. */
3723 
3724 #define OSC_RC32MRDY_bm 0x02 /* Internal 32MHz RC Oscillator Ready bit mask. */
3725 #define OSC_RC32MRDY_bp 1 /* Internal 32MHz RC Oscillator Ready bit position. */
3726 
3727 #define OSC_RC2MRDY_bm 0x01 /* Internal 2MHz RC Oscillator Ready bit mask. */
3728 #define OSC_RC2MRDY_bp 0 /* Internal 2MHz RC Oscillator Ready bit position. */
3729 
3730 
3731 /* OSC.XOSCCTRL bit masks and bit positions */
3732 #define OSC_FRQRANGE_gm 0xC0 /* Frequency Range group mask. */
3733 #define OSC_FRQRANGE_gp 6 /* Frequency Range group position. */
3734 #define OSC_FRQRANGE0_bm (1<<6) /* Frequency Range bit 0 mask. */
3735 #define OSC_FRQRANGE0_bp 6 /* Frequency Range bit 0 position. */
3736 #define OSC_FRQRANGE1_bm (1<<7) /* Frequency Range bit 1 mask. */
3737 #define OSC_FRQRANGE1_bp 7 /* Frequency Range bit 1 position. */
3738 
3739 #define OSC_X32KLPM_bm 0x20 /* 32kHz XTAL OSC Low-power Mode bit mask. */
3740 #define OSC_X32KLPM_bp 5 /* 32kHz XTAL OSC Low-power Mode bit position. */
3741 
3742 #define OSC_XOSCSEL_gm 0x0F /* External Oscillator Selection and Startup Time group mask. */
3743 #define OSC_XOSCSEL_gp 0 /* External Oscillator Selection and Startup Time group position. */
3744 #define OSC_XOSCSEL0_bm (1<<0) /* External Oscillator Selection and Startup Time bit 0 mask. */
3745 #define OSC_XOSCSEL0_bp 0 /* External Oscillator Selection and Startup Time bit 0 position. */
3746 #define OSC_XOSCSEL1_bm (1<<1) /* External Oscillator Selection and Startup Time bit 1 mask. */
3747 #define OSC_XOSCSEL1_bp 1 /* External Oscillator Selection and Startup Time bit 1 position. */
3748 #define OSC_XOSCSEL2_bm (1<<2) /* External Oscillator Selection and Startup Time bit 2 mask. */
3749 #define OSC_XOSCSEL2_bp 2 /* External Oscillator Selection and Startup Time bit 2 position. */
3750 #define OSC_XOSCSEL3_bm (1<<3) /* External Oscillator Selection and Startup Time bit 3 mask. */
3751 #define OSC_XOSCSEL3_bp 3 /* External Oscillator Selection and Startup Time bit 3 position. */
3752 
3753 
3754 /* OSC.XOSCFAIL bit masks and bit positions */
3755 #define OSC_XOSCFDIF_bm 0x02 /* Failure Detection Interrupt Flag bit mask. */
3756 #define OSC_XOSCFDIF_bp 1 /* Failure Detection Interrupt Flag bit position. */
3757 
3758 #define OSC_XOSCFDEN_bm 0x01 /* Failure Detection Enable bit mask. */
3759 #define OSC_XOSCFDEN_bp 0 /* Failure Detection Enable bit position. */
3760 
3761 
3762 /* OSC.PLLCTRL bit masks and bit positions */
3763 #define OSC_PLLSRC_gm 0xC0 /* Clock Source group mask. */
3764 #define OSC_PLLSRC_gp 6 /* Clock Source group position. */
3765 #define OSC_PLLSRC0_bm (1<<6) /* Clock Source bit 0 mask. */
3766 #define OSC_PLLSRC0_bp 6 /* Clock Source bit 0 position. */
3767 #define OSC_PLLSRC1_bm (1<<7) /* Clock Source bit 1 mask. */
3768 #define OSC_PLLSRC1_bp 7 /* Clock Source bit 1 position. */
3769 
3770 #define OSC_PLLFAC_gm 0x1F /* Multiplication Factor group mask. */
3771 #define OSC_PLLFAC_gp 0 /* Multiplication Factor group position. */
3772 #define OSC_PLLFAC0_bm (1<<0) /* Multiplication Factor bit 0 mask. */
3773 #define OSC_PLLFAC0_bp 0 /* Multiplication Factor bit 0 position. */
3774 #define OSC_PLLFAC1_bm (1<<1) /* Multiplication Factor bit 1 mask. */
3775 #define OSC_PLLFAC1_bp 1 /* Multiplication Factor bit 1 position. */
3776 #define OSC_PLLFAC2_bm (1<<2) /* Multiplication Factor bit 2 mask. */
3777 #define OSC_PLLFAC2_bp 2 /* Multiplication Factor bit 2 position. */
3778 #define OSC_PLLFAC3_bm (1<<3) /* Multiplication Factor bit 3 mask. */
3779 #define OSC_PLLFAC3_bp 3 /* Multiplication Factor bit 3 position. */
3780 #define OSC_PLLFAC4_bm (1<<4) /* Multiplication Factor bit 4 mask. */
3781 #define OSC_PLLFAC4_bp 4 /* Multiplication Factor bit 4 position. */
3782 
3783 
3784 /* OSC.DFLLCTRL bit masks and bit positions */
3785 #define OSC_RC32MCREF_bm 0x02 /* 32MHz Calibration Reference bit mask. */
3786 #define OSC_RC32MCREF_bp 1 /* 32MHz Calibration Reference bit position. */
3787 
3788 #define OSC_RC2MCREF_bm 0x01 /* 2MHz Calibration Reference bit mask. */
3789 #define OSC_RC2MCREF_bp 0 /* 2MHz Calibration Reference bit position. */
3790 
3791 
3792 /* DFLL - DFLL */
3793 /* DFLL.CTRL bit masks and bit positions */
3794 #define DFLL_ENABLE_bm 0x01 /* DFLL Enable bit mask. */
3795 #define DFLL_ENABLE_bp 0 /* DFLL Enable bit position. */
3796 
3797 
3798 /* DFLL.CALA bit masks and bit positions */
3799 #define DFLL_CALL_gm 0x7F /* DFLL Calibration bits [6:0] group mask. */
3800 #define DFLL_CALL_gp 0 /* DFLL Calibration bits [6:0] group position. */
3801 #define DFLL_CALL0_bm (1<<0) /* DFLL Calibration bits [6:0] bit 0 mask. */
3802 #define DFLL_CALL0_bp 0 /* DFLL Calibration bits [6:0] bit 0 position. */
3803 #define DFLL_CALL1_bm (1<<1) /* DFLL Calibration bits [6:0] bit 1 mask. */
3804 #define DFLL_CALL1_bp 1 /* DFLL Calibration bits [6:0] bit 1 position. */
3805 #define DFLL_CALL2_bm (1<<2) /* DFLL Calibration bits [6:0] bit 2 mask. */
3806 #define DFLL_CALL2_bp 2 /* DFLL Calibration bits [6:0] bit 2 position. */
3807 #define DFLL_CALL3_bm (1<<3) /* DFLL Calibration bits [6:0] bit 3 mask. */
3808 #define DFLL_CALL3_bp 3 /* DFLL Calibration bits [6:0] bit 3 position. */
3809 #define DFLL_CALL4_bm (1<<4) /* DFLL Calibration bits [6:0] bit 4 mask. */
3810 #define DFLL_CALL4_bp 4 /* DFLL Calibration bits [6:0] bit 4 position. */
3811 #define DFLL_CALL5_bm (1<<5) /* DFLL Calibration bits [6:0] bit 5 mask. */
3812 #define DFLL_CALL5_bp 5 /* DFLL Calibration bits [6:0] bit 5 position. */
3813 #define DFLL_CALL6_bm (1<<6) /* DFLL Calibration bits [6:0] bit 6 mask. */
3814 #define DFLL_CALL6_bp 6 /* DFLL Calibration bits [6:0] bit 6 position. */
3815 
3816 
3817 /* DFLL.CALB bit masks and bit positions */
3818 #define DFLL_CALH_gm 0x3F /* DFLL Calibration bits [12:7] group mask. */
3819 #define DFLL_CALH_gp 0 /* DFLL Calibration bits [12:7] group position. */
3820 #define DFLL_CALH0_bm (1<<0) /* DFLL Calibration bits [12:7] bit 0 mask. */
3821 #define DFLL_CALH0_bp 0 /* DFLL Calibration bits [12:7] bit 0 position. */
3822 #define DFLL_CALH1_bm (1<<1) /* DFLL Calibration bits [12:7] bit 1 mask. */
3823 #define DFLL_CALH1_bp 1 /* DFLL Calibration bits [12:7] bit 1 position. */
3824 #define DFLL_CALH2_bm (1<<2) /* DFLL Calibration bits [12:7] bit 2 mask. */
3825 #define DFLL_CALH2_bp 2 /* DFLL Calibration bits [12:7] bit 2 position. */
3826 #define DFLL_CALH3_bm (1<<3) /* DFLL Calibration bits [12:7] bit 3 mask. */
3827 #define DFLL_CALH3_bp 3 /* DFLL Calibration bits [12:7] bit 3 position. */
3828 #define DFLL_CALH4_bm (1<<4) /* DFLL Calibration bits [12:7] bit 4 mask. */
3829 #define DFLL_CALH4_bp 4 /* DFLL Calibration bits [12:7] bit 4 position. */
3830 #define DFLL_CALH5_bm (1<<5) /* DFLL Calibration bits [12:7] bit 5 mask. */
3831 #define DFLL_CALH5_bp 5 /* DFLL Calibration bits [12:7] bit 5 position. */
3832 
3833 
3834 /* RST - Reset */
3835 /* RST.STATUS bit masks and bit positions */
3836 #define RST_SDRF_bm 0x40 /* Spike Detection Reset Flag bit mask. */
3837 #define RST_SDRF_bp 6 /* Spike Detection Reset Flag bit position. */
3838 
3839 #define RST_SRF_bm 0x20 /* Software Reset Flag bit mask. */
3840 #define RST_SRF_bp 5 /* Software Reset Flag bit position. */
3841 
3842 #define RST_PDIRF_bm 0x10 /* Programming and Debug Interface Interface Reset Flag bit mask. */
3843 #define RST_PDIRF_bp 4 /* Programming and Debug Interface Interface Reset Flag bit position. */
3844 
3845 #define RST_WDRF_bm 0x08 /* Watchdog Reset Flag bit mask. */
3846 #define RST_WDRF_bp 3 /* Watchdog Reset Flag bit position. */
3847 
3848 #define RST_BORF_bm 0x04 /* Brown-out Reset Flag bit mask. */
3849 #define RST_BORF_bp 2 /* Brown-out Reset Flag bit position. */
3850 
3851 #define RST_EXTRF_bm 0x02 /* External Reset Flag bit mask. */
3852 #define RST_EXTRF_bp 1 /* External Reset Flag bit position. */
3853 
3854 #define RST_PORF_bm 0x01 /* Power-on Reset Flag bit mask. */
3855 #define RST_PORF_bp 0 /* Power-on Reset Flag bit position. */
3856 
3857 
3858 /* RST.CTRL bit masks and bit positions */
3859 #define RST_SWRST_bm 0x01 /* Software Reset bit mask. */
3860 #define RST_SWRST_bp 0 /* Software Reset bit position. */
3861 
3862 
3863 /* WDT - Watch-Dog Timer */
3864 /* WDT.CTRL bit masks and bit positions */
3865 #define WDT_PER_gm 0x3C /* Period group mask. */
3866 #define WDT_PER_gp 2 /* Period group position. */
3867 #define WDT_PER0_bm (1<<2) /* Period bit 0 mask. */
3868 #define WDT_PER0_bp 2 /* Period bit 0 position. */
3869 #define WDT_PER1_bm (1<<3) /* Period bit 1 mask. */
3870 #define WDT_PER1_bp 3 /* Period bit 1 position. */
3871 #define WDT_PER2_bm (1<<4) /* Period bit 2 mask. */
3872 #define WDT_PER2_bp 4 /* Period bit 2 position. */
3873 #define WDT_PER3_bm (1<<5) /* Period bit 3 mask. */
3874 #define WDT_PER3_bp 5 /* Period bit 3 position. */
3875 
3876 #define WDT_ENABLE_bm 0x02 /* Enable bit mask. */
3877 #define WDT_ENABLE_bp 1 /* Enable bit position. */
3878 
3879 #define WDT_CEN_bm 0x01 /* Change Enable bit mask. */
3880 #define WDT_CEN_bp 0 /* Change Enable bit position. */
3881 
3882 
3883 /* WDT.WINCTRL bit masks and bit positions */
3884 #define WDT_WPER_gm 0x3C /* Windowed Mode Period group mask. */
3885 #define WDT_WPER_gp 2 /* Windowed Mode Period group position. */
3886 #define WDT_WPER0_bm (1<<2) /* Windowed Mode Period bit 0 mask. */
3887 #define WDT_WPER0_bp 2 /* Windowed Mode Period bit 0 position. */
3888 #define WDT_WPER1_bm (1<<3) /* Windowed Mode Period bit 1 mask. */
3889 #define WDT_WPER1_bp 3 /* Windowed Mode Period bit 1 position. */
3890 #define WDT_WPER2_bm (1<<4) /* Windowed Mode Period bit 2 mask. */
3891 #define WDT_WPER2_bp 4 /* Windowed Mode Period bit 2 position. */
3892 #define WDT_WPER3_bm (1<<5) /* Windowed Mode Period bit 3 mask. */
3893 #define WDT_WPER3_bp 5 /* Windowed Mode Period bit 3 position. */
3894 
3895 #define WDT_WEN_bm 0x02 /* Windowed Mode Enable bit mask. */
3896 #define WDT_WEN_bp 1 /* Windowed Mode Enable bit position. */
3897 
3898 #define WDT_WCEN_bm 0x01 /* Windowed Mode Change Enable bit mask. */
3899 #define WDT_WCEN_bp 0 /* Windowed Mode Change Enable bit position. */
3900 
3901 
3902 /* WDT.STATUS bit masks and bit positions */
3903 #define WDT_SYNCBUSY_bm 0x01 /* Syncronization busy bit mask. */
3904 #define WDT_SYNCBUSY_bp 0 /* Syncronization busy bit position. */
3905 
3906 
3907 /* MCU - MCU Control */
3908 /* MCU.MCUCR bit masks and bit positions */
3909 #define MCU_JTAGD_bm 0x01 /* JTAG Disable bit mask. */
3910 #define MCU_JTAGD_bp 0 /* JTAG Disable bit position. */
3911 
3912 
3913 /* MCU.EVSYSLOCK bit masks and bit positions */
3914 #define MCU_EVSYS1LOCK_bm 0x10 /* Event Channel 4-7 Lock bit mask. */
3915 #define MCU_EVSYS1LOCK_bp 4 /* Event Channel 4-7 Lock bit position. */
3916 
3917 #define MCU_EVSYS0LOCK_bm 0x01 /* Event Channel 0-3 Lock bit mask. */
3918 #define MCU_EVSYS0LOCK_bp 0 /* Event Channel 0-3 Lock bit position. */
3919 
3920 
3921 /* MCU.AWEXLOCK bit masks and bit positions */
3922 #define MCU_AWEXELOCK_bm 0x04 /* AWeX on T/C E0 Lock bit mask. */
3923 #define MCU_AWEXELOCK_bp 2 /* AWeX on T/C E0 Lock bit position. */
3924 
3925 #define MCU_AWEXCLOCK_bm 0x01 /* AWeX on T/C C0 Lock bit mask. */
3926 #define MCU_AWEXCLOCK_bp 0 /* AWeX on T/C C0 Lock bit position. */
3927 
3928 
3929 /* PMIC - Programmable Multi-level Interrupt Controller */
3930 /* PMIC.STATUS bit masks and bit positions */
3931 #define PMIC_NMIEX_bm 0x80 /* Non-maskable Interrupt Executing bit mask. */
3932 #define PMIC_NMIEX_bp 7 /* Non-maskable Interrupt Executing bit position. */
3933 
3934 #define PMIC_HILVLEX_bm 0x04 /* High Level Interrupt Executing bit mask. */
3935 #define PMIC_HILVLEX_bp 2 /* High Level Interrupt Executing bit position. */
3936 
3937 #define PMIC_MEDLVLEX_bm 0x02 /* Medium Level Interrupt Executing bit mask. */
3938 #define PMIC_MEDLVLEX_bp 1 /* Medium Level Interrupt Executing bit position. */
3939 
3940 #define PMIC_LOLVLEX_bm 0x01 /* Low Level Interrupt Executing bit mask. */
3941 #define PMIC_LOLVLEX_bp 0 /* Low Level Interrupt Executing bit position. */
3942 
3943 
3944 /* PMIC.CTRL bit masks and bit positions */
3945 #define PMIC_RREN_bm 0x80 /* Round-Robin Priority Enable bit mask. */
3946 #define PMIC_RREN_bp 7 /* Round-Robin Priority Enable bit position. */
3947 
3948 #define PMIC_IVSEL_bm 0x40 /* Interrupt Vector Select bit mask. */
3949 #define PMIC_IVSEL_bp 6 /* Interrupt Vector Select bit position. */
3950 
3951 #define PMIC_HILVLEN_bm 0x04 /* High Level Enable bit mask. */
3952 #define PMIC_HILVLEN_bp 2 /* High Level Enable bit position. */
3953 
3954 #define PMIC_MEDLVLEN_bm 0x02 /* Medium Level Enable bit mask. */
3955 #define PMIC_MEDLVLEN_bp 1 /* Medium Level Enable bit position. */
3956 
3957 #define PMIC_LOLVLEN_bm 0x01 /* Low Level Enable bit mask. */
3958 #define PMIC_LOLVLEN_bp 0 /* Low Level Enable bit position. */
3959 
3960 
3961 /* DMA - DMA Controller */
3962 /* DMA_CH.CTRLA bit masks and bit positions */
3963 #define DMA_CH_ENABLE_bm 0x80 /* Channel Enable bit mask. */
3964 #define DMA_CH_ENABLE_bp 7 /* Channel Enable bit position. */
3965 
3966 #define DMA_CH_RESET_bm 0x40 /* Channel Software Reset bit mask. */
3967 #define DMA_CH_RESET_bp 6 /* Channel Software Reset bit position. */
3968 
3969 #define DMA_CH_REPEAT_bm 0x20 /* Channel Repeat Mode bit mask. */
3970 #define DMA_CH_REPEAT_bp 5 /* Channel Repeat Mode bit position. */
3971 
3972 #define DMA_CH_TRFREQ_bm 0x10 /* Channel Transfer Request bit mask. */
3973 #define DMA_CH_TRFREQ_bp 4 /* Channel Transfer Request bit position. */
3974 
3975 #define DMA_CH_SINGLE_bm 0x04 /* Channel Single Shot Data Transfer bit mask. */
3976 #define DMA_CH_SINGLE_bp 2 /* Channel Single Shot Data Transfer bit position. */
3977 
3978 #define DMA_CH_BURSTLEN_gm 0x03 /* Channel Transfer Mode group mask. */
3979 #define DMA_CH_BURSTLEN_gp 0 /* Channel Transfer Mode group position. */
3980 #define DMA_CH_BURSTLEN0_bm (1<<0) /* Channel Transfer Mode bit 0 mask. */
3981 #define DMA_CH_BURSTLEN0_bp 0 /* Channel Transfer Mode bit 0 position. */
3982 #define DMA_CH_BURSTLEN1_bm (1<<1) /* Channel Transfer Mode bit 1 mask. */
3983 #define DMA_CH_BURSTLEN1_bp 1 /* Channel Transfer Mode bit 1 position. */
3984 
3985 
3986 /* DMA_CH.CTRLB bit masks and bit positions */
3987 #define DMA_CH_CHBUSY_bm 0x80 /* Block Transfer Busy bit mask. */
3988 #define DMA_CH_CHBUSY_bp 7 /* Block Transfer Busy bit position. */
3989 
3990 #define DMA_CH_CHPEND_bm 0x40 /* Block Transfer Pending bit mask. */
3991 #define DMA_CH_CHPEND_bp 6 /* Block Transfer Pending bit position. */
3992 
3993 #define DMA_CH_ERRIF_bm 0x20 /* Block Transfer Error Interrupt Flag bit mask. */
3994 #define DMA_CH_ERRIF_bp 5 /* Block Transfer Error Interrupt Flag bit position. */
3995 
3996 #define DMA_CH_TRNIF_bm 0x10 /* Transaction Complete Interrup Flag bit mask. */
3997 #define DMA_CH_TRNIF_bp 4 /* Transaction Complete Interrup Flag bit position. */
3998 
3999 #define DMA_CH_ERRINTLVL_gm 0x0C /* Transfer Error Interrupt Level group mask. */
4000 #define DMA_CH_ERRINTLVL_gp 2 /* Transfer Error Interrupt Level group position. */
4001 #define DMA_CH_ERRINTLVL0_bm (1<<2) /* Transfer Error Interrupt Level bit 0 mask. */
4002 #define DMA_CH_ERRINTLVL0_bp 2 /* Transfer Error Interrupt Level bit 0 position. */
4003 #define DMA_CH_ERRINTLVL1_bm (1<<3) /* Transfer Error Interrupt Level bit 1 mask. */
4004 #define DMA_CH_ERRINTLVL1_bp 3 /* Transfer Error Interrupt Level bit 1 position. */
4005 
4006 #define DMA_CH_TRNINTLVL_gm 0x03 /* Transaction Complete Interrupt Level group mask. */
4007 #define DMA_CH_TRNINTLVL_gp 0 /* Transaction Complete Interrupt Level group position. */
4008 #define DMA_CH_TRNINTLVL0_bm (1<<0) /* Transaction Complete Interrupt Level bit 0 mask. */
4009 #define DMA_CH_TRNINTLVL0_bp 0 /* Transaction Complete Interrupt Level bit 0 position. */
4010 #define DMA_CH_TRNINTLVL1_bm (1<<1) /* Transaction Complete Interrupt Level bit 1 mask. */
4011 #define DMA_CH_TRNINTLVL1_bp 1 /* Transaction Complete Interrupt Level bit 1 position. */
4012 
4013 
4014 /* DMA_CH.ADDRCTRL bit masks and bit positions */
4015 #define DMA_CH_SRCRELOAD_gm 0xC0 /* Channel Source Address Reload group mask. */
4016 #define DMA_CH_SRCRELOAD_gp 6 /* Channel Source Address Reload group position. */
4017 #define DMA_CH_SRCRELOAD0_bm (1<<6) /* Channel Source Address Reload bit 0 mask. */
4018 #define DMA_CH_SRCRELOAD0_bp 6 /* Channel Source Address Reload bit 0 position. */
4019 #define DMA_CH_SRCRELOAD1_bm (1<<7) /* Channel Source Address Reload bit 1 mask. */
4020 #define DMA_CH_SRCRELOAD1_bp 7 /* Channel Source Address Reload bit 1 position. */
4021 
4022 #define DMA_CH_SRCDIR_gm 0x30 /* Channel Source Address Mode group mask. */
4023 #define DMA_CH_SRCDIR_gp 4 /* Channel Source Address Mode group position. */
4024 #define DMA_CH_SRCDIR0_bm (1<<4) /* Channel Source Address Mode bit 0 mask. */
4025 #define DMA_CH_SRCDIR0_bp 4 /* Channel Source Address Mode bit 0 position. */
4026 #define DMA_CH_SRCDIR1_bm (1<<5) /* Channel Source Address Mode bit 1 mask. */
4027 #define DMA_CH_SRCDIR1_bp 5 /* Channel Source Address Mode bit 1 position. */
4028 
4029 #define DMA_CH_DESTRELOAD_gm 0x0C /* Channel Destination Address Reload group mask. */
4030 #define DMA_CH_DESTRELOAD_gp 2 /* Channel Destination Address Reload group position. */
4031 #define DMA_CH_DESTRELOAD0_bm (1<<2) /* Channel Destination Address Reload bit 0 mask. */
4032 #define DMA_CH_DESTRELOAD0_bp 2 /* Channel Destination Address Reload bit 0 position. */
4033 #define DMA_CH_DESTRELOAD1_bm (1<<3) /* Channel Destination Address Reload bit 1 mask. */
4034 #define DMA_CH_DESTRELOAD1_bp 3 /* Channel Destination Address Reload bit 1 position. */
4035 
4036 #define DMA_CH_DESTDIR_gm 0x03 /* Channel Destination Address Mode group mask. */
4037 #define DMA_CH_DESTDIR_gp 0 /* Channel Destination Address Mode group position. */
4038 #define DMA_CH_DESTDIR0_bm (1<<0) /* Channel Destination Address Mode bit 0 mask. */
4039 #define DMA_CH_DESTDIR0_bp 0 /* Channel Destination Address Mode bit 0 position. */
4040 #define DMA_CH_DESTDIR1_bm (1<<1) /* Channel Destination Address Mode bit 1 mask. */
4041 #define DMA_CH_DESTDIR1_bp 1 /* Channel Destination Address Mode bit 1 position. */
4042 
4043 
4044 /* DMA_CH.TRIGSRC bit masks and bit positions */
4045 #define DMA_CH_TRIGSRC_gm 0xFF /* Channel Trigger Source group mask. */
4046 #define DMA_CH_TRIGSRC_gp 0 /* Channel Trigger Source group position. */
4047 #define DMA_CH_TRIGSRC0_bm (1<<0) /* Channel Trigger Source bit 0 mask. */
4048 #define DMA_CH_TRIGSRC0_bp 0 /* Channel Trigger Source bit 0 position. */
4049 #define DMA_CH_TRIGSRC1_bm (1<<1) /* Channel Trigger Source bit 1 mask. */
4050 #define DMA_CH_TRIGSRC1_bp 1 /* Channel Trigger Source bit 1 position. */
4051 #define DMA_CH_TRIGSRC2_bm (1<<2) /* Channel Trigger Source bit 2 mask. */
4052 #define DMA_CH_TRIGSRC2_bp 2 /* Channel Trigger Source bit 2 position. */
4053 #define DMA_CH_TRIGSRC3_bm (1<<3) /* Channel Trigger Source bit 3 mask. */
4054 #define DMA_CH_TRIGSRC3_bp 3 /* Channel Trigger Source bit 3 position. */
4055 #define DMA_CH_TRIGSRC4_bm (1<<4) /* Channel Trigger Source bit 4 mask. */
4056 #define DMA_CH_TRIGSRC4_bp 4 /* Channel Trigger Source bit 4 position. */
4057 #define DMA_CH_TRIGSRC5_bm (1<<5) /* Channel Trigger Source bit 5 mask. */
4058 #define DMA_CH_TRIGSRC5_bp 5 /* Channel Trigger Source bit 5 position. */
4059 #define DMA_CH_TRIGSRC6_bm (1<<6) /* Channel Trigger Source bit 6 mask. */
4060 #define DMA_CH_TRIGSRC6_bp 6 /* Channel Trigger Source bit 6 position. */
4061 #define DMA_CH_TRIGSRC7_bm (1<<7) /* Channel Trigger Source bit 7 mask. */
4062 #define DMA_CH_TRIGSRC7_bp 7 /* Channel Trigger Source bit 7 position. */
4063 
4064 
4065 /* DMA.CTRL bit masks and bit positions */
4066 #define DMA_ENABLE_bm 0x80 /* Enable bit mask. */
4067 #define DMA_ENABLE_bp 7 /* Enable bit position. */
4068 
4069 #define DMA_RESET_bm 0x40 /* Software Reset bit mask. */
4070 #define DMA_RESET_bp 6 /* Software Reset bit position. */
4071 
4072 #define DMA_DBUFMODE_gm 0x0C /* Double Buffering Mode group mask. */
4073 #define DMA_DBUFMODE_gp 2 /* Double Buffering Mode group position. */
4074 #define DMA_DBUFMODE0_bm (1<<2) /* Double Buffering Mode bit 0 mask. */
4075 #define DMA_DBUFMODE0_bp 2 /* Double Buffering Mode bit 0 position. */
4076 #define DMA_DBUFMODE1_bm (1<<3) /* Double Buffering Mode bit 1 mask. */
4077 #define DMA_DBUFMODE1_bp 3 /* Double Buffering Mode bit 1 position. */
4078 
4079 #define DMA_PRIMODE_gm 0x03 /* Channel Priority Mode group mask. */
4080 #define DMA_PRIMODE_gp 0 /* Channel Priority Mode group position. */
4081 #define DMA_PRIMODE0_bm (1<<0) /* Channel Priority Mode bit 0 mask. */
4082 #define DMA_PRIMODE0_bp 0 /* Channel Priority Mode bit 0 position. */
4083 #define DMA_PRIMODE1_bm (1<<1) /* Channel Priority Mode bit 1 mask. */
4084 #define DMA_PRIMODE1_bp 1 /* Channel Priority Mode bit 1 position. */
4085 
4086 
4087 /* DMA.INTFLAGS bit masks and bit positions */
4088 #define DMA_CH3ERRIF_bm 0x80 /* Channel 3 Block Transfer Error Interrupt Flag bit mask. */
4089 #define DMA_CH3ERRIF_bp 7 /* Channel 3 Block Transfer Error Interrupt Flag bit position. */
4090 
4091 #define DMA_CH2ERRIF_bm 0x40 /* Channel 2 Block Transfer Error Interrupt Flag bit mask. */
4092 #define DMA_CH2ERRIF_bp 6 /* Channel 2 Block Transfer Error Interrupt Flag bit position. */
4093 
4094 #define DMA_CH1ERRIF_bm 0x20 /* Channel 1 Block Transfer Error Interrupt Flag bit mask. */
4095 #define DMA_CH1ERRIF_bp 5 /* Channel 1 Block Transfer Error Interrupt Flag bit position. */
4096 
4097 #define DMA_CH0ERRIF_bm 0x10 /* Channel 0 Block Transfer Error Interrupt Flag bit mask. */
4098 #define DMA_CH0ERRIF_bp 4 /* Channel 0 Block Transfer Error Interrupt Flag bit position. */
4099 
4100 #define DMA_CH3TRNIF_bm 0x08 /* Channel 3 Transaction Complete Interrupt Flag bit mask. */
4101 #define DMA_CH3TRNIF_bp 3 /* Channel 3 Transaction Complete Interrupt Flag bit position. */
4102 
4103 #define DMA_CH2TRNIF_bm 0x04 /* Channel 2 Transaction Complete Interrupt Flag bit mask. */
4104 #define DMA_CH2TRNIF_bp 2 /* Channel 2 Transaction Complete Interrupt Flag bit position. */
4105 
4106 #define DMA_CH1TRNIF_bm 0x02 /* Channel 1 Transaction Complete Interrupt Flag bit mask. */
4107 #define DMA_CH1TRNIF_bp 1 /* Channel 1 Transaction Complete Interrupt Flag bit position. */
4108 
4109 #define DMA_CH0TRNIF_bm 0x01 /* Channel 0 Transaction Complete Interrupt Flag bit mask. */
4110 #define DMA_CH0TRNIF_bp 0 /* Channel 0 Transaction Complete Interrupt Flag bit position. */
4111 
4112 
4113 /* DMA.STATUS bit masks and bit positions */
4114 #define DMA_CH3BUSY_bm 0x80 /* Channel 3 Block Transfer Busy bit mask. */
4115 #define DMA_CH3BUSY_bp 7 /* Channel 3 Block Transfer Busy bit position. */
4116 
4117 #define DMA_CH2BUSY_bm 0x40 /* Channel 2 Block Transfer Busy bit mask. */
4118 #define DMA_CH2BUSY_bp 6 /* Channel 2 Block Transfer Busy bit position. */
4119 
4120 #define DMA_CH1BUSY_bm 0x20 /* Channel 1 Block Transfer Busy bit mask. */
4121 #define DMA_CH1BUSY_bp 5 /* Channel 1 Block Transfer Busy bit position. */
4122 
4123 #define DMA_CH0BUSY_bm 0x10 /* Channel 0 Block Transfer Busy bit mask. */
4124 #define DMA_CH0BUSY_bp 4 /* Channel 0 Block Transfer Busy bit position. */
4125 
4126 #define DMA_CH3PEND_bm 0x08 /* Channel 3 Block Transfer Pending bit mask. */
4127 #define DMA_CH3PEND_bp 3 /* Channel 3 Block Transfer Pending bit position. */
4128 
4129 #define DMA_CH2PEND_bm 0x04 /* Channel 2 Block Transfer Pending bit mask. */
4130 #define DMA_CH2PEND_bp 2 /* Channel 2 Block Transfer Pending bit position. */
4131 
4132 #define DMA_CH1PEND_bm 0x02 /* Channel 1 Block Transfer Pending bit mask. */
4133 #define DMA_CH1PEND_bp 1 /* Channel 1 Block Transfer Pending bit position. */
4134 
4135 #define DMA_CH0PEND_bm 0x01 /* Channel 0 Block Transfer Pending bit mask. */
4136 #define DMA_CH0PEND_bp 0 /* Channel 0 Block Transfer Pending bit position. */
4137 
4138 
4139 /* EVSYS - Event System */
4140 /* EVSYS.CH0MUX bit masks and bit positions */
4141 #define EVSYS_CHMUX_gm 0xFF /* Event Channel 0 Multiplexer group mask. */
4142 #define EVSYS_CHMUX_gp 0 /* Event Channel 0 Multiplexer group position. */
4143 #define EVSYS_CHMUX0_bm (1<<0) /* Event Channel 0 Multiplexer bit 0 mask. */
4144 #define EVSYS_CHMUX0_bp 0 /* Event Channel 0 Multiplexer bit 0 position. */
4145 #define EVSYS_CHMUX1_bm (1<<1) /* Event Channel 0 Multiplexer bit 1 mask. */
4146 #define EVSYS_CHMUX1_bp 1 /* Event Channel 0 Multiplexer bit 1 position. */
4147 #define EVSYS_CHMUX2_bm (1<<2) /* Event Channel 0 Multiplexer bit 2 mask. */
4148 #define EVSYS_CHMUX2_bp 2 /* Event Channel 0 Multiplexer bit 2 position. */
4149 #define EVSYS_CHMUX3_bm (1<<3) /* Event Channel 0 Multiplexer bit 3 mask. */
4150 #define EVSYS_CHMUX3_bp 3 /* Event Channel 0 Multiplexer bit 3 position. */
4151 #define EVSYS_CHMUX4_bm (1<<4) /* Event Channel 0 Multiplexer bit 4 mask. */
4152 #define EVSYS_CHMUX4_bp 4 /* Event Channel 0 Multiplexer bit 4 position. */
4153 #define EVSYS_CHMUX5_bm (1<<5) /* Event Channel 0 Multiplexer bit 5 mask. */
4154 #define EVSYS_CHMUX5_bp 5 /* Event Channel 0 Multiplexer bit 5 position. */
4155 #define EVSYS_CHMUX6_bm (1<<6) /* Event Channel 0 Multiplexer bit 6 mask. */
4156 #define EVSYS_CHMUX6_bp 6 /* Event Channel 0 Multiplexer bit 6 position. */
4157 #define EVSYS_CHMUX7_bm (1<<7) /* Event Channel 0 Multiplexer bit 7 mask. */
4158 #define EVSYS_CHMUX7_bp 7 /* Event Channel 0 Multiplexer bit 7 position. */
4159 
4160 
4161 /* EVSYS.CH1MUX bit masks and bit positions */
4162 /* EVSYS_CHMUX_gm Predefined. */
4163 /* EVSYS_CHMUX_gp Predefined. */
4164 /* EVSYS_CHMUX0_bm Predefined. */
4165 /* EVSYS_CHMUX0_bp Predefined. */
4166 /* EVSYS_CHMUX1_bm Predefined. */
4167 /* EVSYS_CHMUX1_bp Predefined. */
4168 /* EVSYS_CHMUX2_bm Predefined. */
4169 /* EVSYS_CHMUX2_bp Predefined. */
4170 /* EVSYS_CHMUX3_bm Predefined. */
4171 /* EVSYS_CHMUX3_bp Predefined. */
4172 /* EVSYS_CHMUX4_bm Predefined. */
4173 /* EVSYS_CHMUX4_bp Predefined. */
4174 /* EVSYS_CHMUX5_bm Predefined. */
4175 /* EVSYS_CHMUX5_bp Predefined. */
4176 /* EVSYS_CHMUX6_bm Predefined. */
4177 /* EVSYS_CHMUX6_bp Predefined. */
4178 /* EVSYS_CHMUX7_bm Predefined. */
4179 /* EVSYS_CHMUX7_bp Predefined. */
4180 
4181 
4182 /* EVSYS.CH2MUX bit masks and bit positions */
4183 /* EVSYS_CHMUX_gm Predefined. */
4184 /* EVSYS_CHMUX_gp Predefined. */
4185 /* EVSYS_CHMUX0_bm Predefined. */
4186 /* EVSYS_CHMUX0_bp Predefined. */
4187 /* EVSYS_CHMUX1_bm Predefined. */
4188 /* EVSYS_CHMUX1_bp Predefined. */
4189 /* EVSYS_CHMUX2_bm Predefined. */
4190 /* EVSYS_CHMUX2_bp Predefined. */
4191 /* EVSYS_CHMUX3_bm Predefined. */
4192 /* EVSYS_CHMUX3_bp Predefined. */
4193 /* EVSYS_CHMUX4_bm Predefined. */
4194 /* EVSYS_CHMUX4_bp Predefined. */
4195 /* EVSYS_CHMUX5_bm Predefined. */
4196 /* EVSYS_CHMUX5_bp Predefined. */
4197 /* EVSYS_CHMUX6_bm Predefined. */
4198 /* EVSYS_CHMUX6_bp Predefined. */
4199 /* EVSYS_CHMUX7_bm Predefined. */
4200 /* EVSYS_CHMUX7_bp Predefined. */
4201 
4202 
4203 /* EVSYS.CH3MUX bit masks and bit positions */
4204 /* EVSYS_CHMUX_gm Predefined. */
4205 /* EVSYS_CHMUX_gp Predefined. */
4206 /* EVSYS_CHMUX0_bm Predefined. */
4207 /* EVSYS_CHMUX0_bp Predefined. */
4208 /* EVSYS_CHMUX1_bm Predefined. */
4209 /* EVSYS_CHMUX1_bp Predefined. */
4210 /* EVSYS_CHMUX2_bm Predefined. */
4211 /* EVSYS_CHMUX2_bp Predefined. */
4212 /* EVSYS_CHMUX3_bm Predefined. */
4213 /* EVSYS_CHMUX3_bp Predefined. */
4214 /* EVSYS_CHMUX4_bm Predefined. */
4215 /* EVSYS_CHMUX4_bp Predefined. */
4216 /* EVSYS_CHMUX5_bm Predefined. */
4217 /* EVSYS_CHMUX5_bp Predefined. */
4218 /* EVSYS_CHMUX6_bm Predefined. */
4219 /* EVSYS_CHMUX6_bp Predefined. */
4220 /* EVSYS_CHMUX7_bm Predefined. */
4221 /* EVSYS_CHMUX7_bp Predefined. */
4222 
4223 
4224 /* EVSYS.CH4MUX bit masks and bit positions */
4225 /* EVSYS_CHMUX_gm Predefined. */
4226 /* EVSYS_CHMUX_gp Predefined. */
4227 /* EVSYS_CHMUX0_bm Predefined. */
4228 /* EVSYS_CHMUX0_bp Predefined. */
4229 /* EVSYS_CHMUX1_bm Predefined. */
4230 /* EVSYS_CHMUX1_bp Predefined. */
4231 /* EVSYS_CHMUX2_bm Predefined. */
4232 /* EVSYS_CHMUX2_bp Predefined. */
4233 /* EVSYS_CHMUX3_bm Predefined. */
4234 /* EVSYS_CHMUX3_bp Predefined. */
4235 /* EVSYS_CHMUX4_bm Predefined. */
4236 /* EVSYS_CHMUX4_bp Predefined. */
4237 /* EVSYS_CHMUX5_bm Predefined. */
4238 /* EVSYS_CHMUX5_bp Predefined. */
4239 /* EVSYS_CHMUX6_bm Predefined. */
4240 /* EVSYS_CHMUX6_bp Predefined. */
4241 /* EVSYS_CHMUX7_bm Predefined. */
4242 /* EVSYS_CHMUX7_bp Predefined. */
4243 
4244 
4245 /* EVSYS.CH5MUX bit masks and bit positions */
4246 /* EVSYS_CHMUX_gm Predefined. */
4247 /* EVSYS_CHMUX_gp Predefined. */
4248 /* EVSYS_CHMUX0_bm Predefined. */
4249 /* EVSYS_CHMUX0_bp Predefined. */
4250 /* EVSYS_CHMUX1_bm Predefined. */
4251 /* EVSYS_CHMUX1_bp Predefined. */
4252 /* EVSYS_CHMUX2_bm Predefined. */
4253 /* EVSYS_CHMUX2_bp Predefined. */
4254 /* EVSYS_CHMUX3_bm Predefined. */
4255 /* EVSYS_CHMUX3_bp Predefined. */
4256 /* EVSYS_CHMUX4_bm Predefined. */
4257 /* EVSYS_CHMUX4_bp Predefined. */
4258 /* EVSYS_CHMUX5_bm Predefined. */
4259 /* EVSYS_CHMUX5_bp Predefined. */
4260 /* EVSYS_CHMUX6_bm Predefined. */
4261 /* EVSYS_CHMUX6_bp Predefined. */
4262 /* EVSYS_CHMUX7_bm Predefined. */
4263 /* EVSYS_CHMUX7_bp Predefined. */
4264 
4265 
4266 /* EVSYS.CH6MUX bit masks and bit positions */
4267 /* EVSYS_CHMUX_gm Predefined. */
4268 /* EVSYS_CHMUX_gp Predefined. */
4269 /* EVSYS_CHMUX0_bm Predefined. */
4270 /* EVSYS_CHMUX0_bp Predefined. */
4271 /* EVSYS_CHMUX1_bm Predefined. */
4272 /* EVSYS_CHMUX1_bp Predefined. */
4273 /* EVSYS_CHMUX2_bm Predefined. */
4274 /* EVSYS_CHMUX2_bp Predefined. */
4275 /* EVSYS_CHMUX3_bm Predefined. */
4276 /* EVSYS_CHMUX3_bp Predefined. */
4277 /* EVSYS_CHMUX4_bm Predefined. */
4278 /* EVSYS_CHMUX4_bp Predefined. */
4279 /* EVSYS_CHMUX5_bm Predefined. */
4280 /* EVSYS_CHMUX5_bp Predefined. */
4281 /* EVSYS_CHMUX6_bm Predefined. */
4282 /* EVSYS_CHMUX6_bp Predefined. */
4283 /* EVSYS_CHMUX7_bm Predefined. */
4284 /* EVSYS_CHMUX7_bp Predefined. */
4285 
4286 
4287 /* EVSYS.CH7MUX bit masks and bit positions */
4288 /* EVSYS_CHMUX_gm Predefined. */
4289 /* EVSYS_CHMUX_gp Predefined. */
4290 /* EVSYS_CHMUX0_bm Predefined. */
4291 /* EVSYS_CHMUX0_bp Predefined. */
4292 /* EVSYS_CHMUX1_bm Predefined. */
4293 /* EVSYS_CHMUX1_bp Predefined. */
4294 /* EVSYS_CHMUX2_bm Predefined. */
4295 /* EVSYS_CHMUX2_bp Predefined. */
4296 /* EVSYS_CHMUX3_bm Predefined. */
4297 /* EVSYS_CHMUX3_bp Predefined. */
4298 /* EVSYS_CHMUX4_bm Predefined. */
4299 /* EVSYS_CHMUX4_bp Predefined. */
4300 /* EVSYS_CHMUX5_bm Predefined. */
4301 /* EVSYS_CHMUX5_bp Predefined. */
4302 /* EVSYS_CHMUX6_bm Predefined. */
4303 /* EVSYS_CHMUX6_bp Predefined. */
4304 /* EVSYS_CHMUX7_bm Predefined. */
4305 /* EVSYS_CHMUX7_bp Predefined. */
4306 
4307 
4308 /* EVSYS.CH0CTRL bit masks and bit positions */
4309 #define EVSYS_QDIRM_gm 0x60 /* Quadrature Decoder Index Recognition Mode group mask. */
4310 #define EVSYS_QDIRM_gp 5 /* Quadrature Decoder Index Recognition Mode group position. */
4311 #define EVSYS_QDIRM0_bm (1<<5) /* Quadrature Decoder Index Recognition Mode bit 0 mask. */
4312 #define EVSYS_QDIRM0_bp 5 /* Quadrature Decoder Index Recognition Mode bit 0 position. */
4313 #define EVSYS_QDIRM1_bm (1<<6) /* Quadrature Decoder Index Recognition Mode bit 1 mask. */
4314 #define EVSYS_QDIRM1_bp 6 /* Quadrature Decoder Index Recognition Mode bit 1 position. */
4315 
4316 #define EVSYS_QDIEN_bm 0x10 /* Quadrature Decoder Index Enable bit mask. */
4317 #define EVSYS_QDIEN_bp 4 /* Quadrature Decoder Index Enable bit position. */
4318 
4319 #define EVSYS_QDEN_bm 0x08 /* Quadrature Decoder Enable bit mask. */
4320 #define EVSYS_QDEN_bp 3 /* Quadrature Decoder Enable bit position. */
4321 
4322 #define EVSYS_DIGFILT_gm 0x07 /* Digital Filter group mask. */
4323 #define EVSYS_DIGFILT_gp 0 /* Digital Filter group position. */
4324 #define EVSYS_DIGFILT0_bm (1<<0) /* Digital Filter bit 0 mask. */
4325 #define EVSYS_DIGFILT0_bp 0 /* Digital Filter bit 0 position. */
4326 #define EVSYS_DIGFILT1_bm (1<<1) /* Digital Filter bit 1 mask. */
4327 #define EVSYS_DIGFILT1_bp 1 /* Digital Filter bit 1 position. */
4328 #define EVSYS_DIGFILT2_bm (1<<2) /* Digital Filter bit 2 mask. */
4329 #define EVSYS_DIGFILT2_bp 2 /* Digital Filter bit 2 position. */
4330 
4331 
4332 /* EVSYS.CH1CTRL bit masks and bit positions */
4333 /* EVSYS_DIGFILT_gm Predefined. */
4334 /* EVSYS_DIGFILT_gp Predefined. */
4335 /* EVSYS_DIGFILT0_bm Predefined. */
4336 /* EVSYS_DIGFILT0_bp Predefined. */
4337 /* EVSYS_DIGFILT1_bm Predefined. */
4338 /* EVSYS_DIGFILT1_bp Predefined. */
4339 /* EVSYS_DIGFILT2_bm Predefined. */
4340 /* EVSYS_DIGFILT2_bp Predefined. */
4341 
4342 
4343 /* EVSYS.CH2CTRL bit masks and bit positions */
4344 /* EVSYS_QDIRM_gm Predefined. */
4345 /* EVSYS_QDIRM_gp Predefined. */
4346 /* EVSYS_QDIRM0_bm Predefined. */
4347 /* EVSYS_QDIRM0_bp Predefined. */
4348 /* EVSYS_QDIRM1_bm Predefined. */
4349 /* EVSYS_QDIRM1_bp Predefined. */
4350 
4351 /* EVSYS_QDIEN_bm Predefined. */
4352 /* EVSYS_QDIEN_bp Predefined. */
4353 
4354 /* EVSYS_QDEN_bm Predefined. */
4355 /* EVSYS_QDEN_bp Predefined. */
4356 
4357 /* EVSYS_DIGFILT_gm Predefined. */
4358 /* EVSYS_DIGFILT_gp Predefined. */
4359 /* EVSYS_DIGFILT0_bm Predefined. */
4360 /* EVSYS_DIGFILT0_bp Predefined. */
4361 /* EVSYS_DIGFILT1_bm Predefined. */
4362 /* EVSYS_DIGFILT1_bp Predefined. */
4363 /* EVSYS_DIGFILT2_bm Predefined. */
4364 /* EVSYS_DIGFILT2_bp Predefined. */
4365 
4366 
4367 /* EVSYS.CH3CTRL bit masks and bit positions */
4368 /* EVSYS_DIGFILT_gm Predefined. */
4369 /* EVSYS_DIGFILT_gp Predefined. */
4370 /* EVSYS_DIGFILT0_bm Predefined. */
4371 /* EVSYS_DIGFILT0_bp Predefined. */
4372 /* EVSYS_DIGFILT1_bm Predefined. */
4373 /* EVSYS_DIGFILT1_bp Predefined. */
4374 /* EVSYS_DIGFILT2_bm Predefined. */
4375 /* EVSYS_DIGFILT2_bp Predefined. */
4376 
4377 
4378 /* EVSYS.CH4CTRL bit masks and bit positions */
4379 /* EVSYS_QDIRM_gm Predefined. */
4380 /* EVSYS_QDIRM_gp Predefined. */
4381 /* EVSYS_QDIRM0_bm Predefined. */
4382 /* EVSYS_QDIRM0_bp Predefined. */
4383 /* EVSYS_QDIRM1_bm Predefined. */
4384 /* EVSYS_QDIRM1_bp Predefined. */
4385 
4386 /* EVSYS_QDIEN_bm Predefined. */
4387 /* EVSYS_QDIEN_bp Predefined. */
4388 
4389 /* EVSYS_QDEN_bm Predefined. */
4390 /* EVSYS_QDEN_bp Predefined. */
4391 
4392 /* EVSYS_DIGFILT_gm Predefined. */
4393 /* EVSYS_DIGFILT_gp Predefined. */
4394 /* EVSYS_DIGFILT0_bm Predefined. */
4395 /* EVSYS_DIGFILT0_bp Predefined. */
4396 /* EVSYS_DIGFILT1_bm Predefined. */
4397 /* EVSYS_DIGFILT1_bp Predefined. */
4398 /* EVSYS_DIGFILT2_bm Predefined. */
4399 /* EVSYS_DIGFILT2_bp Predefined. */
4400 
4401 
4402 /* EVSYS.CH5CTRL bit masks and bit positions */
4403 /* EVSYS_DIGFILT_gm Predefined. */
4404 /* EVSYS_DIGFILT_gp Predefined. */
4405 /* EVSYS_DIGFILT0_bm Predefined. */
4406 /* EVSYS_DIGFILT0_bp Predefined. */
4407 /* EVSYS_DIGFILT1_bm Predefined. */
4408 /* EVSYS_DIGFILT1_bp Predefined. */
4409 /* EVSYS_DIGFILT2_bm Predefined. */
4410 /* EVSYS_DIGFILT2_bp Predefined. */
4411 
4412 
4413 /* EVSYS.CH6CTRL bit masks and bit positions */
4414 /* EVSYS_DIGFILT_gm Predefined. */
4415 /* EVSYS_DIGFILT_gp Predefined. */
4416 /* EVSYS_DIGFILT0_bm Predefined. */
4417 /* EVSYS_DIGFILT0_bp Predefined. */
4418 /* EVSYS_DIGFILT1_bm Predefined. */
4419 /* EVSYS_DIGFILT1_bp Predefined. */
4420 /* EVSYS_DIGFILT2_bm Predefined. */
4421 /* EVSYS_DIGFILT2_bp Predefined. */
4422 
4423 
4424 /* EVSYS.CH7CTRL bit masks and bit positions */
4425 /* EVSYS_DIGFILT_gm Predefined. */
4426 /* EVSYS_DIGFILT_gp Predefined. */
4427 /* EVSYS_DIGFILT0_bm Predefined. */
4428 /* EVSYS_DIGFILT0_bp Predefined. */
4429 /* EVSYS_DIGFILT1_bm Predefined. */
4430 /* EVSYS_DIGFILT1_bp Predefined. */
4431 /* EVSYS_DIGFILT2_bm Predefined. */
4432 /* EVSYS_DIGFILT2_bp Predefined. */
4433 
4434 
4435 /* NVM - Non Volatile Memory Controller */
4436 /* NVM.CMD bit masks and bit positions */
4437 #define NVM_CMD_gm 0xFF /* Command group mask. */
4438 #define NVM_CMD_gp 0 /* Command group position. */
4439 #define NVM_CMD0_bm (1<<0) /* Command bit 0 mask. */
4440 #define NVM_CMD0_bp 0 /* Command bit 0 position. */
4441 #define NVM_CMD1_bm (1<<1) /* Command bit 1 mask. */
4442 #define NVM_CMD1_bp 1 /* Command bit 1 position. */
4443 #define NVM_CMD2_bm (1<<2) /* Command bit 2 mask. */
4444 #define NVM_CMD2_bp 2 /* Command bit 2 position. */
4445 #define NVM_CMD3_bm (1<<3) /* Command bit 3 mask. */
4446 #define NVM_CMD3_bp 3 /* Command bit 3 position. */
4447 #define NVM_CMD4_bm (1<<4) /* Command bit 4 mask. */
4448 #define NVM_CMD4_bp 4 /* Command bit 4 position. */
4449 #define NVM_CMD5_bm (1<<5) /* Command bit 5 mask. */
4450 #define NVM_CMD5_bp 5 /* Command bit 5 position. */
4451 #define NVM_CMD6_bm (1<<6) /* Command bit 6 mask. */
4452 #define NVM_CMD6_bp 6 /* Command bit 6 position. */
4453 #define NVM_CMD7_bm (1<<7) /* Command bit 7 mask. */
4454 #define NVM_CMD7_bp 7 /* Command bit 7 position. */
4455 
4456 
4457 /* NVM.CTRLA bit masks and bit positions */
4458 #define NVM_CMDEX_bm 0x01 /* Command Execute bit mask. */
4459 #define NVM_CMDEX_bp 0 /* Command Execute bit position. */
4460 
4461 
4462 /* NVM.CTRLB bit masks and bit positions */
4463 #define NVM_EEMAPEN_bm 0x08 /* EEPROM Mapping Enable bit mask. */
4464 #define NVM_EEMAPEN_bp 3 /* EEPROM Mapping Enable bit position. */
4465 
4466 #define NVM_FPRM_bm 0x04 /* Flash Power Reduction Enable bit mask. */
4467 #define NVM_FPRM_bp 2 /* Flash Power Reduction Enable bit position. */
4468 
4469 #define NVM_EPRM_bm 0x02 /* EEPROM Power Reduction Enable bit mask. */
4470 #define NVM_EPRM_bp 1 /* EEPROM Power Reduction Enable bit position. */
4471 
4472 #define NVM_SPMLOCK_bm 0x01 /* SPM Lock bit mask. */
4473 #define NVM_SPMLOCK_bp 0 /* SPM Lock bit position. */
4474 
4475 
4476 /* NVM.INTCTRL bit masks and bit positions */
4477 #define NVM_SPMLVL_gm 0x0C /* SPM Interrupt Level group mask. */
4478 #define NVM_SPMLVL_gp 2 /* SPM Interrupt Level group position. */
4479 #define NVM_SPMLVL0_bm (1<<2) /* SPM Interrupt Level bit 0 mask. */
4480 #define NVM_SPMLVL0_bp 2 /* SPM Interrupt Level bit 0 position. */
4481 #define NVM_SPMLVL1_bm (1<<3) /* SPM Interrupt Level bit 1 mask. */
4482 #define NVM_SPMLVL1_bp 3 /* SPM Interrupt Level bit 1 position. */
4483 
4484 #define NVM_EELVL_gm 0x03 /* EEPROM Interrupt Level group mask. */
4485 #define NVM_EELVL_gp 0 /* EEPROM Interrupt Level group position. */
4486 #define NVM_EELVL0_bm (1<<0) /* EEPROM Interrupt Level bit 0 mask. */
4487 #define NVM_EELVL0_bp 0 /* EEPROM Interrupt Level bit 0 position. */
4488 #define NVM_EELVL1_bm (1<<1) /* EEPROM Interrupt Level bit 1 mask. */
4489 #define NVM_EELVL1_bp 1 /* EEPROM Interrupt Level bit 1 position. */
4490 
4491 
4492 /* NVM.STATUS bit masks and bit positions */
4493 #define NVM_NVMBUSY_bm 0x80 /* Non-volatile Memory Busy bit mask. */
4494 #define NVM_NVMBUSY_bp 7 /* Non-volatile Memory Busy bit position. */
4495 
4496 #define NVM_FBUSY_bm 0x40 /* Flash Memory Busy bit mask. */
4497 #define NVM_FBUSY_bp 6 /* Flash Memory Busy bit position. */
4498 
4499 #define NVM_EELOAD_bm 0x02 /* EEPROM Page Buffer Active Loading bit mask. */
4500 #define NVM_EELOAD_bp 1 /* EEPROM Page Buffer Active Loading bit position. */
4501 
4502 #define NVM_FLOAD_bm 0x01 /* Flash Page Buffer Active Loading bit mask. */
4503 #define NVM_FLOAD_bp 0 /* Flash Page Buffer Active Loading bit position. */
4504 
4505 
4506 /* NVM.LOCKBITS bit masks and bit positions */
4507 #define NVM_BLBB_gm 0xC0 /* Boot Lock Bits - Boot Section group mask. */
4508 #define NVM_BLBB_gp 6 /* Boot Lock Bits - Boot Section group position. */
4509 #define NVM_BLBB0_bm (1<<6) /* Boot Lock Bits - Boot Section bit 0 mask. */
4510 #define NVM_BLBB0_bp 6 /* Boot Lock Bits - Boot Section bit 0 position. */
4511 #define NVM_BLBB1_bm (1<<7) /* Boot Lock Bits - Boot Section bit 1 mask. */
4512 #define NVM_BLBB1_bp 7 /* Boot Lock Bits - Boot Section bit 1 position. */
4513 
4514 #define NVM_BLBA_gm 0x30 /* Boot Lock Bits - Application Section group mask. */
4515 #define NVM_BLBA_gp 4 /* Boot Lock Bits - Application Section group position. */
4516 #define NVM_BLBA0_bm (1<<4) /* Boot Lock Bits - Application Section bit 0 mask. */
4517 #define NVM_BLBA0_bp 4 /* Boot Lock Bits - Application Section bit 0 position. */
4518 #define NVM_BLBA1_bm (1<<5) /* Boot Lock Bits - Application Section bit 1 mask. */
4519 #define NVM_BLBA1_bp 5 /* Boot Lock Bits - Application Section bit 1 position. */
4520 
4521 #define NVM_BLBAT_gm 0x0C /* Boot Lock Bits - Application Table group mask. */
4522 #define NVM_BLBAT_gp 2 /* Boot Lock Bits - Application Table group position. */
4523 #define NVM_BLBAT0_bm (1<<2) /* Boot Lock Bits - Application Table bit 0 mask. */
4524 #define NVM_BLBAT0_bp 2 /* Boot Lock Bits - Application Table bit 0 position. */
4525 #define NVM_BLBAT1_bm (1<<3) /* Boot Lock Bits - Application Table bit 1 mask. */
4526 #define NVM_BLBAT1_bp 3 /* Boot Lock Bits - Application Table bit 1 position. */
4527 
4528 #define NVM_LB_gm 0x03 /* Lock Bits group mask. */
4529 #define NVM_LB_gp 0 /* Lock Bits group position. */
4530 #define NVM_LB0_bm (1<<0) /* Lock Bits bit 0 mask. */
4531 #define NVM_LB0_bp 0 /* Lock Bits bit 0 position. */
4532 #define NVM_LB1_bm (1<<1) /* Lock Bits bit 1 mask. */
4533 #define NVM_LB1_bp 1 /* Lock Bits bit 1 position. */
4534 
4535 
4536 /* NVM_LOCKBITS.LOCKBITS bit masks and bit positions */
4537 #define NVM_LOCKBITS_BLBB_gm 0xC0 /* Boot Lock Bits - Boot Section group mask. */
4538 #define NVM_LOCKBITS_BLBB_gp 6 /* Boot Lock Bits - Boot Section group position. */
4539 #define NVM_LOCKBITS_BLBB0_bm (1<<6) /* Boot Lock Bits - Boot Section bit 0 mask. */
4540 #define NVM_LOCKBITS_BLBB0_bp 6 /* Boot Lock Bits - Boot Section bit 0 position. */
4541 #define NVM_LOCKBITS_BLBB1_bm (1<<7) /* Boot Lock Bits - Boot Section bit 1 mask. */
4542 #define NVM_LOCKBITS_BLBB1_bp 7 /* Boot Lock Bits - Boot Section bit 1 position. */
4543 
4544 #define NVM_LOCKBITS_BLBA_gm 0x30 /* Boot Lock Bits - Application Section group mask. */
4545 #define NVM_LOCKBITS_BLBA_gp 4 /* Boot Lock Bits - Application Section group position. */
4546 #define NVM_LOCKBITS_BLBA0_bm (1<<4) /* Boot Lock Bits - Application Section bit 0 mask. */
4547 #define NVM_LOCKBITS_BLBA0_bp 4 /* Boot Lock Bits - Application Section bit 0 position. */
4548 #define NVM_LOCKBITS_BLBA1_bm (1<<5) /* Boot Lock Bits - Application Section bit 1 mask. */
4549 #define NVM_LOCKBITS_BLBA1_bp 5 /* Boot Lock Bits - Application Section bit 1 position. */
4550 
4551 #define NVM_LOCKBITS_BLBAT_gm 0x0C /* Boot Lock Bits - Application Table group mask. */
4552 #define NVM_LOCKBITS_BLBAT_gp 2 /* Boot Lock Bits - Application Table group position. */
4553 #define NVM_LOCKBITS_BLBAT0_bm (1<<2) /* Boot Lock Bits - Application Table bit 0 mask. */
4554 #define NVM_LOCKBITS_BLBAT0_bp 2 /* Boot Lock Bits - Application Table bit 0 position. */
4555 #define NVM_LOCKBITS_BLBAT1_bm (1<<3) /* Boot Lock Bits - Application Table bit 1 mask. */
4556 #define NVM_LOCKBITS_BLBAT1_bp 3 /* Boot Lock Bits - Application Table bit 1 position. */
4557 
4558 #define NVM_LOCKBITS_LB_gm 0x03 /* Lock Bits group mask. */
4559 #define NVM_LOCKBITS_LB_gp 0 /* Lock Bits group position. */
4560 #define NVM_LOCKBITS_LB0_bm (1<<0) /* Lock Bits bit 0 mask. */
4561 #define NVM_LOCKBITS_LB0_bp 0 /* Lock Bits bit 0 position. */
4562 #define NVM_LOCKBITS_LB1_bm (1<<1) /* Lock Bits bit 1 mask. */
4563 #define NVM_LOCKBITS_LB1_bp 1 /* Lock Bits bit 1 position. */
4564 
4565 
4566 /* NVM_FUSES.FUSEBYTE0 bit masks and bit positions */
4567 #define NVM_FUSES_JTAGUSERID_gm 0xFF /* JTAG User ID group mask. */
4568 #define NVM_FUSES_JTAGUSERID_gp 0 /* JTAG User ID group position. */
4569 #define NVM_FUSES_JTAGUSERID0_bm (1<<0) /* JTAG User ID bit 0 mask. */
4570 #define NVM_FUSES_JTAGUSERID0_bp 0 /* JTAG User ID bit 0 position. */
4571 #define NVM_FUSES_JTAGUSERID1_bm (1<<1) /* JTAG User ID bit 1 mask. */
4572 #define NVM_FUSES_JTAGUSERID1_bp 1 /* JTAG User ID bit 1 position. */
4573 #define NVM_FUSES_JTAGUSERID2_bm (1<<2) /* JTAG User ID bit 2 mask. */
4574 #define NVM_FUSES_JTAGUSERID2_bp 2 /* JTAG User ID bit 2 position. */
4575 #define NVM_FUSES_JTAGUSERID3_bm (1<<3) /* JTAG User ID bit 3 mask. */
4576 #define NVM_FUSES_JTAGUSERID3_bp 3 /* JTAG User ID bit 3 position. */
4577 #define NVM_FUSES_JTAGUSERID4_bm (1<<4) /* JTAG User ID bit 4 mask. */
4578 #define NVM_FUSES_JTAGUSERID4_bp 4 /* JTAG User ID bit 4 position. */
4579 #define NVM_FUSES_JTAGUSERID5_bm (1<<5) /* JTAG User ID bit 5 mask. */
4580 #define NVM_FUSES_JTAGUSERID5_bp 5 /* JTAG User ID bit 5 position. */
4581 #define NVM_FUSES_JTAGUSERID6_bm (1<<6) /* JTAG User ID bit 6 mask. */
4582 #define NVM_FUSES_JTAGUSERID6_bp 6 /* JTAG User ID bit 6 position. */
4583 #define NVM_FUSES_JTAGUSERID7_bm (1<<7) /* JTAG User ID bit 7 mask. */
4584 #define NVM_FUSES_JTAGUSERID7_bp 7 /* JTAG User ID bit 7 position. */
4585 
4586 
4587 /* NVM_FUSES.FUSEBYTE1 bit masks and bit positions */
4588 #define NVM_FUSES_WDWP_gm 0xF0 /* Watchdog Window Timeout Period group mask. */
4589 #define NVM_FUSES_WDWP_gp 4 /* Watchdog Window Timeout Period group position. */
4590 #define NVM_FUSES_WDWP0_bm (1<<4) /* Watchdog Window Timeout Period bit 0 mask. */
4591 #define NVM_FUSES_WDWP0_bp 4 /* Watchdog Window Timeout Period bit 0 position. */
4592 #define NVM_FUSES_WDWP1_bm (1<<5) /* Watchdog Window Timeout Period bit 1 mask. */
4593 #define NVM_FUSES_WDWP1_bp 5 /* Watchdog Window Timeout Period bit 1 position. */
4594 #define NVM_FUSES_WDWP2_bm (1<<6) /* Watchdog Window Timeout Period bit 2 mask. */
4595 #define NVM_FUSES_WDWP2_bp 6 /* Watchdog Window Timeout Period bit 2 position. */
4596 #define NVM_FUSES_WDWP3_bm (1<<7) /* Watchdog Window Timeout Period bit 3 mask. */
4597 #define NVM_FUSES_WDWP3_bp 7 /* Watchdog Window Timeout Period bit 3 position. */
4598 
4599 #define NVM_FUSES_WDP_gm 0x0F /* Watchdog Timeout Period group mask. */
4600 #define NVM_FUSES_WDP_gp 0 /* Watchdog Timeout Period group position. */
4601 #define NVM_FUSES_WDP0_bm (1<<0) /* Watchdog Timeout Period bit 0 mask. */
4602 #define NVM_FUSES_WDP0_bp 0 /* Watchdog Timeout Period bit 0 position. */
4603 #define NVM_FUSES_WDP1_bm (1<<1) /* Watchdog Timeout Period bit 1 mask. */
4604 #define NVM_FUSES_WDP1_bp 1 /* Watchdog Timeout Period bit 1 position. */
4605 #define NVM_FUSES_WDP2_bm (1<<2) /* Watchdog Timeout Period bit 2 mask. */
4606 #define NVM_FUSES_WDP2_bp 2 /* Watchdog Timeout Period bit 2 position. */
4607 #define NVM_FUSES_WDP3_bm (1<<3) /* Watchdog Timeout Period bit 3 mask. */
4608 #define NVM_FUSES_WDP3_bp 3 /* Watchdog Timeout Period bit 3 position. */
4609 
4610 
4611 /* NVM_FUSES.FUSEBYTE2 bit masks and bit positions */
4612 #define NVM_FUSES_DVSDON_bm 0x80 /* Spike Detector Enable bit mask. */
4613 #define NVM_FUSES_DVSDON_bp 7 /* Spike Detector Enable bit position. */
4614 
4615 #define NVM_FUSES_BOOTRST_bm 0x40 /* Boot Loader Section Reset Vector bit mask. */
4616 #define NVM_FUSES_BOOTRST_bp 6 /* Boot Loader Section Reset Vector bit position. */
4617 
4618 #define NVM_FUSES_BODPD_gm 0x03 /* BOD Operation in Power-Down Mode group mask. */
4619 #define NVM_FUSES_BODPD_gp 0 /* BOD Operation in Power-Down Mode group position. */
4620 #define NVM_FUSES_BODPD0_bm (1<<0) /* BOD Operation in Power-Down Mode bit 0 mask. */
4621 #define NVM_FUSES_BODPD0_bp 0 /* BOD Operation in Power-Down Mode bit 0 position. */
4622 #define NVM_FUSES_BODPD1_bm (1<<1) /* BOD Operation in Power-Down Mode bit 1 mask. */
4623 #define NVM_FUSES_BODPD1_bp 1 /* BOD Operation in Power-Down Mode bit 1 position. */
4624 
4625 
4626 /* NVM_FUSES.FUSEBYTE4 bit masks and bit positions */
4627 #define NVM_FUSES_SUT_gm 0x0C /* Start-up Time group mask. */
4628 #define NVM_FUSES_SUT_gp 2 /* Start-up Time group position. */
4629 #define NVM_FUSES_SUT0_bm (1<<2) /* Start-up Time bit 0 mask. */
4630 #define NVM_FUSES_SUT0_bp 2 /* Start-up Time bit 0 position. */
4631 #define NVM_FUSES_SUT1_bm (1<<3) /* Start-up Time bit 1 mask. */
4632 #define NVM_FUSES_SUT1_bp 3 /* Start-up Time bit 1 position. */
4633 
4634 #define NVM_FUSES_WDLOCK_bm 0x02 /* Watchdog Timer Lock bit mask. */
4635 #define NVM_FUSES_WDLOCK_bp 1 /* Watchdog Timer Lock bit position. */
4636 
4637 #define NVM_FUSES_JTAGEN_bm 0x01 /* JTAG Interface Enable bit mask. */
4638 #define NVM_FUSES_JTAGEN_bp 0 /* JTAG Interface Enable bit position. */
4639 
4640 
4641 /* NVM_FUSES.FUSEBYTE5 bit masks and bit positions */
4642 #define NVM_FUSES_BODACT_gm 0x30 /* BOD Operation in Active Mode group mask. */
4643 #define NVM_FUSES_BODACT_gp 4 /* BOD Operation in Active Mode group position. */
4644 #define NVM_FUSES_BODACT0_bm (1<<4) /* BOD Operation in Active Mode bit 0 mask. */
4645 #define NVM_FUSES_BODACT0_bp 4 /* BOD Operation in Active Mode bit 0 position. */
4646 #define NVM_FUSES_BODACT1_bm (1<<5) /* BOD Operation in Active Mode bit 1 mask. */
4647 #define NVM_FUSES_BODACT1_bp 5 /* BOD Operation in Active Mode bit 1 position. */
4648 
4649 #define NVM_FUSES_EESAVE_bm 0x08 /* Preserve EEPROM Through Chip Erase bit mask. */
4650 #define NVM_FUSES_EESAVE_bp 3 /* Preserve EEPROM Through Chip Erase bit position. */
4651 
4652 #define NVM_FUSES_BODLVL_gm 0x07 /* Brown Out Detection Voltage Level group mask. */
4653 #define NVM_FUSES_BODLVL_gp 0 /* Brown Out Detection Voltage Level group position. */
4654 #define NVM_FUSES_BODLVL0_bm (1<<0) /* Brown Out Detection Voltage Level bit 0 mask. */
4655 #define NVM_FUSES_BODLVL0_bp 0 /* Brown Out Detection Voltage Level bit 0 position. */
4656 #define NVM_FUSES_BODLVL1_bm (1<<1) /* Brown Out Detection Voltage Level bit 1 mask. */
4657 #define NVM_FUSES_BODLVL1_bp 1 /* Brown Out Detection Voltage Level bit 1 position. */
4658 #define NVM_FUSES_BODLVL2_bm (1<<2) /* Brown Out Detection Voltage Level bit 2 mask. */
4659 #define NVM_FUSES_BODLVL2_bp 2 /* Brown Out Detection Voltage Level bit 2 position. */
4660 
4661 
4662 /* AC - Analog Comparator */
4663 /* AC.AC0CTRL bit masks and bit positions */
4664 #define AC_INTMODE_gm 0xC0 /* Interrupt Mode group mask. */
4665 #define AC_INTMODE_gp 6 /* Interrupt Mode group position. */
4666 #define AC_INTMODE0_bm (1<<6) /* Interrupt Mode bit 0 mask. */
4667 #define AC_INTMODE0_bp 6 /* Interrupt Mode bit 0 position. */
4668 #define AC_INTMODE1_bm (1<<7) /* Interrupt Mode bit 1 mask. */
4669 #define AC_INTMODE1_bp 7 /* Interrupt Mode bit 1 position. */
4670 
4671 #define AC_INTLVL_gm 0x30 /* Interrupt Level group mask. */
4672 #define AC_INTLVL_gp 4 /* Interrupt Level group position. */
4673 #define AC_INTLVL0_bm (1<<4) /* Interrupt Level bit 0 mask. */
4674 #define AC_INTLVL0_bp 4 /* Interrupt Level bit 0 position. */
4675 #define AC_INTLVL1_bm (1<<5) /* Interrupt Level bit 1 mask. */
4676 #define AC_INTLVL1_bp 5 /* Interrupt Level bit 1 position. */
4677 
4678 #define AC_HSMODE_bm 0x08 /* High-speed Mode bit mask. */
4679 #define AC_HSMODE_bp 3 /* High-speed Mode bit position. */
4680 
4681 #define AC_HYSMODE_gm 0x06 /* Hysteresis Mode group mask. */
4682 #define AC_HYSMODE_gp 1 /* Hysteresis Mode group position. */
4683 #define AC_HYSMODE0_bm (1<<1) /* Hysteresis Mode bit 0 mask. */
4684 #define AC_HYSMODE0_bp 1 /* Hysteresis Mode bit 0 position. */
4685 #define AC_HYSMODE1_bm (1<<2) /* Hysteresis Mode bit 1 mask. */
4686 #define AC_HYSMODE1_bp 2 /* Hysteresis Mode bit 1 position. */
4687 
4688 #define AC_ENABLE_bm 0x01 /* Enable bit mask. */
4689 #define AC_ENABLE_bp 0 /* Enable bit position. */
4690 
4691 
4692 /* AC.AC1CTRL bit masks and bit positions */
4693 /* AC_INTMODE_gm Predefined. */
4694 /* AC_INTMODE_gp Predefined. */
4695 /* AC_INTMODE0_bm Predefined. */
4696 /* AC_INTMODE0_bp Predefined. */
4697 /* AC_INTMODE1_bm Predefined. */
4698 /* AC_INTMODE1_bp Predefined. */
4699 
4700 /* AC_INTLVL_gm Predefined. */
4701 /* AC_INTLVL_gp Predefined. */
4702 /* AC_INTLVL0_bm Predefined. */
4703 /* AC_INTLVL0_bp Predefined. */
4704 /* AC_INTLVL1_bm Predefined. */
4705 /* AC_INTLVL1_bp Predefined. */
4706 
4707 /* AC_HSMODE_bm Predefined. */
4708 /* AC_HSMODE_bp Predefined. */
4709 
4710 /* AC_HYSMODE_gm Predefined. */
4711 /* AC_HYSMODE_gp Predefined. */
4712 /* AC_HYSMODE0_bm Predefined. */
4713 /* AC_HYSMODE0_bp Predefined. */
4714 /* AC_HYSMODE1_bm Predefined. */
4715 /* AC_HYSMODE1_bp Predefined. */
4716 
4717 /* AC_ENABLE_bm Predefined. */
4718 /* AC_ENABLE_bp Predefined. */
4719 
4720 
4721 /* AC.AC0MUXCTRL bit masks and bit positions */
4722 #define AC_MUXPOS_gm 0x38 /* MUX Positive Input group mask. */
4723 #define AC_MUXPOS_gp 3 /* MUX Positive Input group position. */
4724 #define AC_MUXPOS0_bm (1<<3) /* MUX Positive Input bit 0 mask. */
4725 #define AC_MUXPOS0_bp 3 /* MUX Positive Input bit 0 position. */
4726 #define AC_MUXPOS1_bm (1<<4) /* MUX Positive Input bit 1 mask. */
4727 #define AC_MUXPOS1_bp 4 /* MUX Positive Input bit 1 position. */
4728 #define AC_MUXPOS2_bm (1<<5) /* MUX Positive Input bit 2 mask. */
4729 #define AC_MUXPOS2_bp 5 /* MUX Positive Input bit 2 position. */
4730 
4731 #define AC_MUXNEG_gm 0x07 /* MUX Negative Input group mask. */
4732 #define AC_MUXNEG_gp 0 /* MUX Negative Input group position. */
4733 #define AC_MUXNEG0_bm (1<<0) /* MUX Negative Input bit 0 mask. */
4734 #define AC_MUXNEG0_bp 0 /* MUX Negative Input bit 0 position. */
4735 #define AC_MUXNEG1_bm (1<<1) /* MUX Negative Input bit 1 mask. */
4736 #define AC_MUXNEG1_bp 1 /* MUX Negative Input bit 1 position. */
4737 #define AC_MUXNEG2_bm (1<<2) /* MUX Negative Input bit 2 mask. */
4738 #define AC_MUXNEG2_bp 2 /* MUX Negative Input bit 2 position. */
4739 
4740 
4741 /* AC.AC1MUXCTRL bit masks and bit positions */
4742 /* AC_MUXPOS_gm Predefined. */
4743 /* AC_MUXPOS_gp Predefined. */
4744 /* AC_MUXPOS0_bm Predefined. */
4745 /* AC_MUXPOS0_bp Predefined. */
4746 /* AC_MUXPOS1_bm Predefined. */
4747 /* AC_MUXPOS1_bp Predefined. */
4748 /* AC_MUXPOS2_bm Predefined. */
4749 /* AC_MUXPOS2_bp Predefined. */
4750 
4751 /* AC_MUXNEG_gm Predefined. */
4752 /* AC_MUXNEG_gp Predefined. */
4753 /* AC_MUXNEG0_bm Predefined. */
4754 /* AC_MUXNEG0_bp Predefined. */
4755 /* AC_MUXNEG1_bm Predefined. */
4756 /* AC_MUXNEG1_bp Predefined. */
4757 /* AC_MUXNEG2_bm Predefined. */
4758 /* AC_MUXNEG2_bp Predefined. */
4759 
4760 
4761 /* AC.CTRLA bit masks and bit positions */
4762 #define AC_AC0OUT_bm 0x01 /* Comparator 0 Output Enable bit mask. */
4763 #define AC_AC0OUT_bp 0 /* Comparator 0 Output Enable bit position. */
4764 
4765 
4766 /* AC.CTRLB bit masks and bit positions */
4767 #define AC_SCALEFAC_gm 0x3F /* VCC Voltage Scaler Factor group mask. */
4768 #define AC_SCALEFAC_gp 0 /* VCC Voltage Scaler Factor group position. */
4769 #define AC_SCALEFAC0_bm (1<<0) /* VCC Voltage Scaler Factor bit 0 mask. */
4770 #define AC_SCALEFAC0_bp 0 /* VCC Voltage Scaler Factor bit 0 position. */
4771 #define AC_SCALEFAC1_bm (1<<1) /* VCC Voltage Scaler Factor bit 1 mask. */
4772 #define AC_SCALEFAC1_bp 1 /* VCC Voltage Scaler Factor bit 1 position. */
4773 #define AC_SCALEFAC2_bm (1<<2) /* VCC Voltage Scaler Factor bit 2 mask. */
4774 #define AC_SCALEFAC2_bp 2 /* VCC Voltage Scaler Factor bit 2 position. */
4775 #define AC_SCALEFAC3_bm (1<<3) /* VCC Voltage Scaler Factor bit 3 mask. */
4776 #define AC_SCALEFAC3_bp 3 /* VCC Voltage Scaler Factor bit 3 position. */
4777 #define AC_SCALEFAC4_bm (1<<4) /* VCC Voltage Scaler Factor bit 4 mask. */
4778 #define AC_SCALEFAC4_bp 4 /* VCC Voltage Scaler Factor bit 4 position. */
4779 #define AC_SCALEFAC5_bm (1<<5) /* VCC Voltage Scaler Factor bit 5 mask. */
4780 #define AC_SCALEFAC5_bp 5 /* VCC Voltage Scaler Factor bit 5 position. */
4781 
4782 
4783 /* AC.WINCTRL bit masks and bit positions */
4784 #define AC_WEN_bm 0x10 /* Window Mode Enable bit mask. */
4785 #define AC_WEN_bp 4 /* Window Mode Enable bit position. */
4786 
4787 #define AC_WINTMODE_gm 0x0C /* Window Interrupt Mode group mask. */
4788 #define AC_WINTMODE_gp 2 /* Window Interrupt Mode group position. */
4789 #define AC_WINTMODE0_bm (1<<2) /* Window Interrupt Mode bit 0 mask. */
4790 #define AC_WINTMODE0_bp 2 /* Window Interrupt Mode bit 0 position. */
4791 #define AC_WINTMODE1_bm (1<<3) /* Window Interrupt Mode bit 1 mask. */
4792 #define AC_WINTMODE1_bp 3 /* Window Interrupt Mode bit 1 position. */
4793 
4794 #define AC_WINTLVL_gm 0x03 /* Window Interrupt Level group mask. */
4795 #define AC_WINTLVL_gp 0 /* Window Interrupt Level group position. */
4796 #define AC_WINTLVL0_bm (1<<0) /* Window Interrupt Level bit 0 mask. */
4797 #define AC_WINTLVL0_bp 0 /* Window Interrupt Level bit 0 position. */
4798 #define AC_WINTLVL1_bm (1<<1) /* Window Interrupt Level bit 1 mask. */
4799 #define AC_WINTLVL1_bp 1 /* Window Interrupt Level bit 1 position. */
4800 
4801 
4802 /* AC.STATUS bit masks and bit positions */
4803 #define AC_WSTATE_gm 0xC0 /* Window Mode State group mask. */
4804 #define AC_WSTATE_gp 6 /* Window Mode State group position. */
4805 #define AC_WSTATE0_bm (1<<6) /* Window Mode State bit 0 mask. */
4806 #define AC_WSTATE0_bp 6 /* Window Mode State bit 0 position. */
4807 #define AC_WSTATE1_bm (1<<7) /* Window Mode State bit 1 mask. */
4808 #define AC_WSTATE1_bp 7 /* Window Mode State bit 1 position. */
4809 
4810 #define AC_AC1STATE_bm 0x20 /* Comparator 1 State bit mask. */
4811 #define AC_AC1STATE_bp 5 /* Comparator 1 State bit position. */
4812 
4813 #define AC_AC0STATE_bm 0x10 /* Comparator 0 State bit mask. */
4814 #define AC_AC0STATE_bp 4 /* Comparator 0 State bit position. */
4815 
4816 #define AC_WIF_bm 0x04 /* Window Mode Interrupt Flag bit mask. */
4817 #define AC_WIF_bp 2 /* Window Mode Interrupt Flag bit position. */
4818 
4819 #define AC_AC1IF_bm 0x02 /* Comparator 1 Interrupt Flag bit mask. */
4820 #define AC_AC1IF_bp 1 /* Comparator 1 Interrupt Flag bit position. */
4821 
4822 #define AC_AC0IF_bm 0x01 /* Comparator 0 Interrupt Flag bit mask. */
4823 #define AC_AC0IF_bp 0 /* Comparator 0 Interrupt Flag bit position. */
4824 
4825 
4826 /* ADC - Analog/Digital Converter */
4827 /* ADC_CH.CTRL bit masks and bit positions */
4828 #define ADC_CH_START_bm 0x80 /* Channel Start Conversion bit mask. */
4829 #define ADC_CH_START_bp 7 /* Channel Start Conversion bit position. */
4830 
4831 #define ADC_CH_GAINFAC_gm 0x1C /* Gain Factor group mask. */
4832 #define ADC_CH_GAINFAC_gp 2 /* Gain Factor group position. */
4833 #define ADC_CH_GAINFAC0_bm (1<<2) /* Gain Factor bit 0 mask. */
4834 #define ADC_CH_GAINFAC0_bp 2 /* Gain Factor bit 0 position. */
4835 #define ADC_CH_GAINFAC1_bm (1<<3) /* Gain Factor bit 1 mask. */
4836 #define ADC_CH_GAINFAC1_bp 3 /* Gain Factor bit 1 position. */
4837 #define ADC_CH_GAINFAC2_bm (1<<4) /* Gain Factor bit 2 mask. */
4838 #define ADC_CH_GAINFAC2_bp 4 /* Gain Factor bit 2 position. */
4839 
4840 #define ADC_CH_INPUTMODE_gm 0x03 /* Input Mode Select group mask. */
4841 #define ADC_CH_INPUTMODE_gp 0 /* Input Mode Select group position. */
4842 #define ADC_CH_INPUTMODE0_bm (1<<0) /* Input Mode Select bit 0 mask. */
4843 #define ADC_CH_INPUTMODE0_bp 0 /* Input Mode Select bit 0 position. */
4844 #define ADC_CH_INPUTMODE1_bm (1<<1) /* Input Mode Select bit 1 mask. */
4845 #define ADC_CH_INPUTMODE1_bp 1 /* Input Mode Select bit 1 position. */
4846 
4847 
4848 /* ADC_CH.MUXCTRL bit masks and bit positions */
4849 #define ADC_CH_MUXPOS_gm 0x78 /* Positive Input Select group mask. */
4850 #define ADC_CH_MUXPOS_gp 3 /* Positive Input Select group position. */
4851 #define ADC_CH_MUXPOS0_bm (1<<3) /* Positive Input Select bit 0 mask. */
4852 #define ADC_CH_MUXPOS0_bp 3 /* Positive Input Select bit 0 position. */
4853 #define ADC_CH_MUXPOS1_bm (1<<4) /* Positive Input Select bit 1 mask. */
4854 #define ADC_CH_MUXPOS1_bp 4 /* Positive Input Select bit 1 position. */
4855 #define ADC_CH_MUXPOS2_bm (1<<5) /* Positive Input Select bit 2 mask. */
4856 #define ADC_CH_MUXPOS2_bp 5 /* Positive Input Select bit 2 position. */
4857 #define ADC_CH_MUXPOS3_bm (1<<6) /* Positive Input Select bit 3 mask. */
4858 #define ADC_CH_MUXPOS3_bp 6 /* Positive Input Select bit 3 position. */
4859 
4860 #define ADC_CH_MUXINT_gm 0x78 /* Internal Input Select group mask. */
4861 #define ADC_CH_MUXINT_gp 3 /* Internal Input Select group position. */
4862 #define ADC_CH_MUXINT0_bm (1<<3) /* Internal Input Select bit 0 mask. */
4863 #define ADC_CH_MUXINT0_bp 3 /* Internal Input Select bit 0 position. */
4864 #define ADC_CH_MUXINT1_bm (1<<4) /* Internal Input Select bit 1 mask. */
4865 #define ADC_CH_MUXINT1_bp 4 /* Internal Input Select bit 1 position. */
4866 #define ADC_CH_MUXINT2_bm (1<<5) /* Internal Input Select bit 2 mask. */
4867 #define ADC_CH_MUXINT2_bp 5 /* Internal Input Select bit 2 position. */
4868 #define ADC_CH_MUXINT3_bm (1<<6) /* Internal Input Select bit 3 mask. */
4869 #define ADC_CH_MUXINT3_bp 6 /* Internal Input Select bit 3 position. */
4870 
4871 #define ADC_CH_MUXNEG_gm 0x03 /* Negative Input Select group mask. */
4872 #define ADC_CH_MUXNEG_gp 0 /* Negative Input Select group position. */
4873 #define ADC_CH_MUXNEG0_bm (1<<0) /* Negative Input Select bit 0 mask. */
4874 #define ADC_CH_MUXNEG0_bp 0 /* Negative Input Select bit 0 position. */
4875 #define ADC_CH_MUXNEG1_bm (1<<1) /* Negative Input Select bit 1 mask. */
4876 #define ADC_CH_MUXNEG1_bp 1 /* Negative Input Select bit 1 position. */
4877 
4878 
4879 /* ADC_CH.INTCTRL bit masks and bit positions */
4880 #define ADC_CH_INTMODE_gm 0x0C /* Interrupt Mode group mask. */
4881 #define ADC_CH_INTMODE_gp 2 /* Interrupt Mode group position. */
4882 #define ADC_CH_INTMODE0_bm (1<<2) /* Interrupt Mode bit 0 mask. */
4883 #define ADC_CH_INTMODE0_bp 2 /* Interrupt Mode bit 0 position. */
4884 #define ADC_CH_INTMODE1_bm (1<<3) /* Interrupt Mode bit 1 mask. */
4885 #define ADC_CH_INTMODE1_bp 3 /* Interrupt Mode bit 1 position. */
4886 
4887 #define ADC_CH_INTLVL_gm 0x03 /* Interrupt Level group mask. */
4888 #define ADC_CH_INTLVL_gp 0 /* Interrupt Level group position. */
4889 #define ADC_CH_INTLVL0_bm (1<<0) /* Interrupt Level bit 0 mask. */
4890 #define ADC_CH_INTLVL0_bp 0 /* Interrupt Level bit 0 position. */
4891 #define ADC_CH_INTLVL1_bm (1<<1) /* Interrupt Level bit 1 mask. */
4892 #define ADC_CH_INTLVL1_bp 1 /* Interrupt Level bit 1 position. */
4893 
4894 
4895 /* ADC_CH.INTFLAGS bit masks and bit positions */
4896 #define ADC_CH_CHIF_bm 0x01 /* Channel Interrupt Flag bit mask. */
4897 #define ADC_CH_CHIF_bp 0 /* Channel Interrupt Flag bit position. */
4898 
4899 
4900 /* ADC.CTRLA bit masks and bit positions */
4901 #define ADC_DMASEL_gm 0xC0 /* DMA Selection group mask. */
4902 #define ADC_DMASEL_gp 6 /* DMA Selection group position. */
4903 #define ADC_DMASEL0_bm (1<<6) /* DMA Selection bit 0 mask. */
4904 #define ADC_DMASEL0_bp 6 /* DMA Selection bit 0 position. */
4905 #define ADC_DMASEL1_bm (1<<7) /* DMA Selection bit 1 mask. */
4906 #define ADC_DMASEL1_bp 7 /* DMA Selection bit 1 position. */
4907 
4908 #define ADC_CH3START_bm 0x20 /* Channel 3 Start Conversion bit mask. */
4909 #define ADC_CH3START_bp 5 /* Channel 3 Start Conversion bit position. */
4910 
4911 #define ADC_CH2START_bm 0x10 /* Channel 2 Start Conversion bit mask. */
4912 #define ADC_CH2START_bp 4 /* Channel 2 Start Conversion bit position. */
4913 
4914 #define ADC_CH1START_bm 0x08 /* Channel 1 Start Conversion bit mask. */
4915 #define ADC_CH1START_bp 3 /* Channel 1 Start Conversion bit position. */
4916 
4917 #define ADC_CH0START_bm 0x04 /* Channel 0 Start Conversion bit mask. */
4918 #define ADC_CH0START_bp 2 /* Channel 0 Start Conversion bit position. */
4919 
4920 #define ADC_FLUSH_bm 0x02 /* Flush Pipeline bit mask. */
4921 #define ADC_FLUSH_bp 1 /* Flush Pipeline bit position. */
4922 
4923 #define ADC_ENABLE_bm 0x01 /* Enable ADC bit mask. */
4924 #define ADC_ENABLE_bp 0 /* Enable ADC bit position. */
4925 
4926 
4927 /* ADC.CTRLB bit masks and bit positions */
4928 #define ADC_CONMODE_bm 0x10 /* Conversion Mode bit mask. */
4929 #define ADC_CONMODE_bp 4 /* Conversion Mode bit position. */
4930 
4931 #define ADC_FREERUN_bm 0x08 /* Free Running Mode Enable bit mask. */
4932 #define ADC_FREERUN_bp 3 /* Free Running Mode Enable bit position. */
4933 
4934 #define ADC_RESOLUTION_gm 0x06 /* Result Resolution group mask. */
4935 #define ADC_RESOLUTION_gp 1 /* Result Resolution group position. */
4936 #define ADC_RESOLUTION0_bm (1<<1) /* Result Resolution bit 0 mask. */
4937 #define ADC_RESOLUTION0_bp 1 /* Result Resolution bit 0 position. */
4938 #define ADC_RESOLUTION1_bm (1<<2) /* Result Resolution bit 1 mask. */
4939 #define ADC_RESOLUTION1_bp 2 /* Result Resolution bit 1 position. */
4940 
4941 
4942 /* ADC.REFCTRL bit masks and bit positions */
4943 #define ADC_REFSEL_gm 0x30 /* Reference Selection group mask. */
4944 #define ADC_REFSEL_gp 4 /* Reference Selection group position. */
4945 #define ADC_REFSEL0_bm (1<<4) /* Reference Selection bit 0 mask. */
4946 #define ADC_REFSEL0_bp 4 /* Reference Selection bit 0 position. */
4947 #define ADC_REFSEL1_bm (1<<5) /* Reference Selection bit 1 mask. */
4948 #define ADC_REFSEL1_bp 5 /* Reference Selection bit 1 position. */
4949 
4950 #define ADC_BANDGAP_bm 0x02 /* Bandgap enable bit mask. */
4951 #define ADC_BANDGAP_bp 1 /* Bandgap enable bit position. */
4952 
4953 #define ADC_TEMPREF_bm 0x01 /* Temperature Reference Enable bit mask. */
4954 #define ADC_TEMPREF_bp 0 /* Temperature Reference Enable bit position. */
4955 
4956 
4957 /* ADC.EVCTRL bit masks and bit positions */
4958 #define ADC_SWEEP_gm 0xC0 /* Channel Sweep Selection group mask. */
4959 #define ADC_SWEEP_gp 6 /* Channel Sweep Selection group position. */
4960 #define ADC_SWEEP0_bm (1<<6) /* Channel Sweep Selection bit 0 mask. */
4961 #define ADC_SWEEP0_bp 6 /* Channel Sweep Selection bit 0 position. */
4962 #define ADC_SWEEP1_bm (1<<7) /* Channel Sweep Selection bit 1 mask. */
4963 #define ADC_SWEEP1_bp 7 /* Channel Sweep Selection bit 1 position. */
4964 
4965 #define ADC_EVSEL_gm 0x38 /* Event Input Select group mask. */
4966 #define ADC_EVSEL_gp 3 /* Event Input Select group position. */
4967 #define ADC_EVSEL0_bm (1<<3) /* Event Input Select bit 0 mask. */
4968 #define ADC_EVSEL0_bp 3 /* Event Input Select bit 0 position. */
4969 #define ADC_EVSEL1_bm (1<<4) /* Event Input Select bit 1 mask. */
4970 #define ADC_EVSEL1_bp 4 /* Event Input Select bit 1 position. */
4971 #define ADC_EVSEL2_bm (1<<5) /* Event Input Select bit 2 mask. */
4972 #define ADC_EVSEL2_bp 5 /* Event Input Select bit 2 position. */
4973 
4974 #define ADC_EVACT_gm 0x07 /* Event Action Select group mask. */
4975 #define ADC_EVACT_gp 0 /* Event Action Select group position. */
4976 #define ADC_EVACT0_bm (1<<0) /* Event Action Select bit 0 mask. */
4977 #define ADC_EVACT0_bp 0 /* Event Action Select bit 0 position. */
4978 #define ADC_EVACT1_bm (1<<1) /* Event Action Select bit 1 mask. */
4979 #define ADC_EVACT1_bp 1 /* Event Action Select bit 1 position. */
4980 #define ADC_EVACT2_bm (1<<2) /* Event Action Select bit 2 mask. */
4981 #define ADC_EVACT2_bp 2 /* Event Action Select bit 2 position. */
4982 
4983 
4984 /* ADC.PRESCALER bit masks and bit positions */
4985 #define ADC_PRESCALER_gm 0x07 /* Clock Prescaler Selection group mask. */
4986 #define ADC_PRESCALER_gp 0 /* Clock Prescaler Selection group position. */
4987 #define ADC_PRESCALER0_bm (1<<0) /* Clock Prescaler Selection bit 0 mask. */
4988 #define ADC_PRESCALER0_bp 0 /* Clock Prescaler Selection bit 0 position. */
4989 #define ADC_PRESCALER1_bm (1<<1) /* Clock Prescaler Selection bit 1 mask. */
4990 #define ADC_PRESCALER1_bp 1 /* Clock Prescaler Selection bit 1 position. */
4991 #define ADC_PRESCALER2_bm (1<<2) /* Clock Prescaler Selection bit 2 mask. */
4992 #define ADC_PRESCALER2_bp 2 /* Clock Prescaler Selection bit 2 position. */
4993 
4994 
4995 /* ADC.CALCTRL bit masks and bit positions */
4996 #define ADC_CAL_bm 0x01 /* ADC Calibration Start bit mask. */
4997 #define ADC_CAL_bp 0 /* ADC Calibration Start bit position. */
4998 
4999 
5000 /* ADC.INTFLAGS bit masks and bit positions */
5001 #define ADC_CH3IF_bm 0x08 /* Channel 3 Interrupt Flag bit mask. */
5002 #define ADC_CH3IF_bp 3 /* Channel 3 Interrupt Flag bit position. */
5003 
5004 #define ADC_CH2IF_bm 0x04 /* Channel 2 Interrupt Flag bit mask. */
5005 #define ADC_CH2IF_bp 2 /* Channel 2 Interrupt Flag bit position. */
5006 
5007 #define ADC_CH1IF_bm 0x02 /* Channel 1 Interrupt Flag bit mask. */
5008 #define ADC_CH1IF_bp 1 /* Channel 1 Interrupt Flag bit position. */
5009 
5010 #define ADC_CH0IF_bm 0x01 /* Channel 0 Interrupt Flag bit mask. */
5011 #define ADC_CH0IF_bp 0 /* Channel 0 Interrupt Flag bit position. */
5012 
5013 
5014 /* DAC - Digital/Analog Converter */
5015 /* DAC.CTRLA bit masks and bit positions */
5016 #define DAC_IDOEN_bm 0x10 /* Internal Output Enable bit mask. */
5017 #define DAC_IDOEN_bp 4 /* Internal Output Enable bit position. */
5018 
5019 #define DAC_CH1EN_bm 0x08 /* Channel 1 Output Enable bit mask. */
5020 #define DAC_CH1EN_bp 3 /* Channel 1 Output Enable bit position. */
5021 
5022 #define DAC_CH0EN_bm 0x04 /* Channel 0 Output Enable bit mask. */
5023 #define DAC_CH0EN_bp 2 /* Channel 0 Output Enable bit position. */
5024 
5025 #define DAC_LPMODE_bm 0x02 /* Low Power Mode bit mask. */
5026 #define DAC_LPMODE_bp 1 /* Low Power Mode bit position. */
5027 
5028 #define DAC_ENABLE_bm 0x01 /* Enable bit mask. */
5029 #define DAC_ENABLE_bp 0 /* Enable bit position. */
5030 
5031 
5032 /* DAC.CTRLB bit masks and bit positions */
5033 #define DAC_CHSEL_gm 0x60 /* Channel Select group mask. */
5034 #define DAC_CHSEL_gp 5 /* Channel Select group position. */
5035 #define DAC_CHSEL0_bm (1<<5) /* Channel Select bit 0 mask. */
5036 #define DAC_CHSEL0_bp 5 /* Channel Select bit 0 position. */
5037 #define DAC_CHSEL1_bm (1<<6) /* Channel Select bit 1 mask. */
5038 #define DAC_CHSEL1_bp 6 /* Channel Select bit 1 position. */
5039 
5040 #define DAC_CH1TRIG_bm 0x02 /* Channel 1 Event Trig Enable bit mask. */
5041 #define DAC_CH1TRIG_bp 1 /* Channel 1 Event Trig Enable bit position. */
5042 
5043 #define DAC_CH0TRIG_bm 0x01 /* Channel 0 Event Trig Enable bit mask. */
5044 #define DAC_CH0TRIG_bp 0 /* Channel 0 Event Trig Enable bit position. */
5045 
5046 
5047 /* DAC.CTRLC bit masks and bit positions */
5048 #define DAC_REFSEL_gm 0x18 /* Reference Select group mask. */
5049 #define DAC_REFSEL_gp 3 /* Reference Select group position. */
5050 #define DAC_REFSEL0_bm (1<<3) /* Reference Select bit 0 mask. */
5051 #define DAC_REFSEL0_bp 3 /* Reference Select bit 0 position. */
5052 #define DAC_REFSEL1_bm (1<<4) /* Reference Select bit 1 mask. */
5053 #define DAC_REFSEL1_bp 4 /* Reference Select bit 1 position. */
5054 
5055 #define DAC_LEFTADJ_bm 0x01 /* Left-adjust Result bit mask. */
5056 #define DAC_LEFTADJ_bp 0 /* Left-adjust Result bit position. */
5057 
5058 
5059 /* DAC.EVCTRL bit masks and bit positions */
5060 #define DAC_EVSEL_gm 0x07 /* Event Input Selection group mask. */
5061 #define DAC_EVSEL_gp 0 /* Event Input Selection group position. */
5062 #define DAC_EVSEL0_bm (1<<0) /* Event Input Selection bit 0 mask. */
5063 #define DAC_EVSEL0_bp 0 /* Event Input Selection bit 0 position. */
5064 #define DAC_EVSEL1_bm (1<<1) /* Event Input Selection bit 1 mask. */
5065 #define DAC_EVSEL1_bp 1 /* Event Input Selection bit 1 position. */
5066 #define DAC_EVSEL2_bm (1<<2) /* Event Input Selection bit 2 mask. */
5067 #define DAC_EVSEL2_bp 2 /* Event Input Selection bit 2 position. */
5068 
5069 
5070 /* DAC.TIMCTRL bit masks and bit positions */
5071 #define DAC_CONINTVAL_gm 0x70 /* Conversion Intercal group mask. */
5072 #define DAC_CONINTVAL_gp 4 /* Conversion Intercal group position. */
5073 #define DAC_CONINTVAL0_bm (1<<4) /* Conversion Intercal bit 0 mask. */
5074 #define DAC_CONINTVAL0_bp 4 /* Conversion Intercal bit 0 position. */
5075 #define DAC_CONINTVAL1_bm (1<<5) /* Conversion Intercal bit 1 mask. */
5076 #define DAC_CONINTVAL1_bp 5 /* Conversion Intercal bit 1 position. */
5077 #define DAC_CONINTVAL2_bm (1<<6) /* Conversion Intercal bit 2 mask. */
5078 #define DAC_CONINTVAL2_bp 6 /* Conversion Intercal bit 2 position. */
5079 
5080 #define DAC_REFRESH_gm 0x0F /* Refresh Timing Control group mask. */
5081 #define DAC_REFRESH_gp 0 /* Refresh Timing Control group position. */
5082 #define DAC_REFRESH0_bm (1<<0) /* Refresh Timing Control bit 0 mask. */
5083 #define DAC_REFRESH0_bp 0 /* Refresh Timing Control bit 0 position. */
5084 #define DAC_REFRESH1_bm (1<<1) /* Refresh Timing Control bit 1 mask. */
5085 #define DAC_REFRESH1_bp 1 /* Refresh Timing Control bit 1 position. */
5086 #define DAC_REFRESH2_bm (1<<2) /* Refresh Timing Control bit 2 mask. */
5087 #define DAC_REFRESH2_bp 2 /* Refresh Timing Control bit 2 position. */
5088 #define DAC_REFRESH3_bm (1<<3) /* Refresh Timing Control bit 3 mask. */
5089 #define DAC_REFRESH3_bp 3 /* Refresh Timing Control bit 3 position. */
5090 
5091 
5092 /* DAC.STATUS bit masks and bit positions */
5093 #define DAC_CH1DRE_bm 0x02 /* Channel 1 Data Register Empty bit mask. */
5094 #define DAC_CH1DRE_bp 1 /* Channel 1 Data Register Empty bit position. */
5095 
5096 #define DAC_CH0DRE_bm 0x01 /* Channel 0 Data Register Empty bit mask. */
5097 #define DAC_CH0DRE_bp 0 /* Channel 0 Data Register Empty bit position. */
5098 
5099 
5100 /* RTC32 - 32-bit Real-Time Counter */
5101 /* RTC32.CTRL bit masks and bit positions */
5102 #define RTC32_ENABLE_bm 0x01 /* RTC enable bit mask. */
5103 #define RTC32_ENABLE_bp 0 /* RTC enable bit position. */
5104 
5105 
5106 /* RTC32.SYNCCTRL bit masks and bit positions */
5107 #define RTC32_SYNCCNT_bm 0x10 /* Synchronization Busy Flag bit mask. */
5108 #define RTC32_SYNCCNT_bp 4 /* Synchronization Busy Flag bit position. */
5109 
5110 #define RTC32_SYNCBUSY_bm 0x01 /* Synchronization Busy Flag bit mask. */
5111 #define RTC32_SYNCBUSY_bp 0 /* Synchronization Busy Flag bit position. */
5112 
5113 
5114 /* RTC32.INTCTRL bit masks and bit positions */
5115 #define RTC32_COMPINTLVL_gm 0x0C /* Compare Match Interrupt Level group mask. */
5116 #define RTC32_COMPINTLVL_gp 2 /* Compare Match Interrupt Level group position. */
5117 #define RTC32_COMPINTLVL0_bm (1<<2) /* Compare Match Interrupt Level bit 0 mask. */
5118 #define RTC32_COMPINTLVL0_bp 2 /* Compare Match Interrupt Level bit 0 position. */
5119 #define RTC32_COMPINTLVL1_bm (1<<3) /* Compare Match Interrupt Level bit 1 mask. */
5120 #define RTC32_COMPINTLVL1_bp 3 /* Compare Match Interrupt Level bit 1 position. */
5121 
5122 #define RTC32_OVFINTLVL_gm 0x03 /* Overflow Interrupt Level group mask. */
5123 #define RTC32_OVFINTLVL_gp 0 /* Overflow Interrupt Level group position. */
5124 #define RTC32_OVFINTLVL0_bm (1<<0) /* Overflow Interrupt Level bit 0 mask. */
5125 #define RTC32_OVFINTLVL0_bp 0 /* Overflow Interrupt Level bit 0 position. */
5126 #define RTC32_OVFINTLVL1_bm (1<<1) /* Overflow Interrupt Level bit 1 mask. */
5127 #define RTC32_OVFINTLVL1_bp 1 /* Overflow Interrupt Level bit 1 position. */
5128 
5129 
5130 /* RTC32.INTFLAGS bit masks and bit positions */
5131 #define RTC32_COMPIF_bm 0x02 /* Compare Match Interrupt Flag bit mask. */
5132 #define RTC32_COMPIF_bp 1 /* Compare Match Interrupt Flag bit position. */
5133 
5134 #define RTC32_OVFIF_bm 0x01 /* Overflow Interrupt Flag bit mask. */
5135 #define RTC32_OVFIF_bp 0 /* Overflow Interrupt Flag bit position. */
5136 
5137 
5138 /* EBI - External Bus Interface */
5139 /* EBI_CS.CTRLA bit masks and bit positions */
5140 #define EBI_CS_ASPACE_gm 0x7C /* Address Space group mask. */
5141 #define EBI_CS_ASPACE_gp 2 /* Address Space group position. */
5142 #define EBI_CS_ASPACE0_bm (1<<2) /* Address Space bit 0 mask. */
5143 #define EBI_CS_ASPACE0_bp 2 /* Address Space bit 0 position. */
5144 #define EBI_CS_ASPACE1_bm (1<<3) /* Address Space bit 1 mask. */
5145 #define EBI_CS_ASPACE1_bp 3 /* Address Space bit 1 position. */
5146 #define EBI_CS_ASPACE2_bm (1<<4) /* Address Space bit 2 mask. */
5147 #define EBI_CS_ASPACE2_bp 4 /* Address Space bit 2 position. */
5148 #define EBI_CS_ASPACE3_bm (1<<5) /* Address Space bit 3 mask. */
5149 #define EBI_CS_ASPACE3_bp 5 /* Address Space bit 3 position. */
5150 #define EBI_CS_ASPACE4_bm (1<<6) /* Address Space bit 4 mask. */
5151 #define EBI_CS_ASPACE4_bp 6 /* Address Space bit 4 position. */
5152 
5153 #define EBI_CS_MODE_gm 0x03 /* Memory Mode group mask. */
5154 #define EBI_CS_MODE_gp 0 /* Memory Mode group position. */
5155 #define EBI_CS_MODE0_bm (1<<0) /* Memory Mode bit 0 mask. */
5156 #define EBI_CS_MODE0_bp 0 /* Memory Mode bit 0 position. */
5157 #define EBI_CS_MODE1_bm (1<<1) /* Memory Mode bit 1 mask. */
5158 #define EBI_CS_MODE1_bp 1 /* Memory Mode bit 1 position. */
5159 
5160 
5161 /* EBI_CS.CTRLB bit masks and bit positions */
5162 #define EBI_CS_SRWS_gm 0x07 /* SRAM Wait State Cycles group mask. */
5163 #define EBI_CS_SRWS_gp 0 /* SRAM Wait State Cycles group position. */
5164 #define EBI_CS_SRWS0_bm (1<<0) /* SRAM Wait State Cycles bit 0 mask. */
5165 #define EBI_CS_SRWS0_bp 0 /* SRAM Wait State Cycles bit 0 position. */
5166 #define EBI_CS_SRWS1_bm (1<<1) /* SRAM Wait State Cycles bit 1 mask. */
5167 #define EBI_CS_SRWS1_bp 1 /* SRAM Wait State Cycles bit 1 position. */
5168 #define EBI_CS_SRWS2_bm (1<<2) /* SRAM Wait State Cycles bit 2 mask. */
5169 #define EBI_CS_SRWS2_bp 2 /* SRAM Wait State Cycles bit 2 position. */
5170 
5171 #define EBI_CS_SDINITDONE_bm 0x80 /* SDRAM Initialization Done bit mask. */
5172 #define EBI_CS_SDINITDONE_bp 7 /* SDRAM Initialization Done bit position. */
5173 
5174 #define EBI_CS_SDSREN_bm 0x04 /* SDRAM Self-refresh Enable bit mask. */
5175 #define EBI_CS_SDSREN_bp 2 /* SDRAM Self-refresh Enable bit position. */
5176 
5177 #define EBI_CS_SDMODE_gm 0x03 /* SDRAM Mode group mask. */
5178 #define EBI_CS_SDMODE_gp 0 /* SDRAM Mode group position. */
5179 #define EBI_CS_SDMODE0_bm (1<<0) /* SDRAM Mode bit 0 mask. */
5180 #define EBI_CS_SDMODE0_bp 0 /* SDRAM Mode bit 0 position. */
5181 #define EBI_CS_SDMODE1_bm (1<<1) /* SDRAM Mode bit 1 mask. */
5182 #define EBI_CS_SDMODE1_bp 1 /* SDRAM Mode bit 1 position. */
5183 
5184 
5185 /* EBI.CTRL bit masks and bit positions */
5186 #define EBI_SDDATAW_gm 0xC0 /* SDRAM Data Width Setting group mask. */
5187 #define EBI_SDDATAW_gp 6 /* SDRAM Data Width Setting group position. */
5188 #define EBI_SDDATAW0_bm (1<<6) /* SDRAM Data Width Setting bit 0 mask. */
5189 #define EBI_SDDATAW0_bp 6 /* SDRAM Data Width Setting bit 0 position. */
5190 #define EBI_SDDATAW1_bm (1<<7) /* SDRAM Data Width Setting bit 1 mask. */
5191 #define EBI_SDDATAW1_bp 7 /* SDRAM Data Width Setting bit 1 position. */
5192 
5193 #define EBI_LPCMODE_gm 0x30 /* SRAM LPC Mode group mask. */
5194 #define EBI_LPCMODE_gp 4 /* SRAM LPC Mode group position. */
5195 #define EBI_LPCMODE0_bm (1<<4) /* SRAM LPC Mode bit 0 mask. */
5196 #define EBI_LPCMODE0_bp 4 /* SRAM LPC Mode bit 0 position. */
5197 #define EBI_LPCMODE1_bm (1<<5) /* SRAM LPC Mode bit 1 mask. */
5198 #define EBI_LPCMODE1_bp 5 /* SRAM LPC Mode bit 1 position. */
5199 
5200 #define EBI_SRMODE_gm 0x0C /* SRAM Mode group mask. */
5201 #define EBI_SRMODE_gp 2 /* SRAM Mode group position. */
5202 #define EBI_SRMODE0_bm (1<<2) /* SRAM Mode bit 0 mask. */
5203 #define EBI_SRMODE0_bp 2 /* SRAM Mode bit 0 position. */
5204 #define EBI_SRMODE1_bm (1<<3) /* SRAM Mode bit 1 mask. */
5205 #define EBI_SRMODE1_bp 3 /* SRAM Mode bit 1 position. */
5206 
5207 #define EBI_IFMODE_gm 0x03 /* Interface Mode group mask. */
5208 #define EBI_IFMODE_gp 0 /* Interface Mode group position. */
5209 #define EBI_IFMODE0_bm (1<<0) /* Interface Mode bit 0 mask. */
5210 #define EBI_IFMODE0_bp 0 /* Interface Mode bit 0 position. */
5211 #define EBI_IFMODE1_bm (1<<1) /* Interface Mode bit 1 mask. */
5212 #define EBI_IFMODE1_bp 1 /* Interface Mode bit 1 position. */
5213 
5214 
5215 /* EBI.SDRAMCTRLA bit masks and bit positions */
5216 #define EBI_SDCAS_bm 0x08 /* SDRAM CAS Latency Setting bit mask. */
5217 #define EBI_SDCAS_bp 3 /* SDRAM CAS Latency Setting bit position. */
5218 
5219 #define EBI_SDROW_bm 0x04 /* SDRAM ROW Bits Setting bit mask. */
5220 #define EBI_SDROW_bp 2 /* SDRAM ROW Bits Setting bit position. */
5221 
5222 #define EBI_SDCOL_gm 0x03 /* SDRAM Column Bits Setting group mask. */
5223 #define EBI_SDCOL_gp 0 /* SDRAM Column Bits Setting group position. */
5224 #define EBI_SDCOL0_bm (1<<0) /* SDRAM Column Bits Setting bit 0 mask. */
5225 #define EBI_SDCOL0_bp 0 /* SDRAM Column Bits Setting bit 0 position. */
5226 #define EBI_SDCOL1_bm (1<<1) /* SDRAM Column Bits Setting bit 1 mask. */
5227 #define EBI_SDCOL1_bp 1 /* SDRAM Column Bits Setting bit 1 position. */
5228 
5229 
5230 /* EBI.SDRAMCTRLB bit masks and bit positions */
5231 #define EBI_MRDLY_gm 0xC0 /* SDRAM Mode Register Delay group mask. */
5232 #define EBI_MRDLY_gp 6 /* SDRAM Mode Register Delay group position. */
5233 #define EBI_MRDLY0_bm (1<<6) /* SDRAM Mode Register Delay bit 0 mask. */
5234 #define EBI_MRDLY0_bp 6 /* SDRAM Mode Register Delay bit 0 position. */
5235 #define EBI_MRDLY1_bm (1<<7) /* SDRAM Mode Register Delay bit 1 mask. */
5236 #define EBI_MRDLY1_bp 7 /* SDRAM Mode Register Delay bit 1 position. */
5237 
5238 #define EBI_ROWCYCDLY_gm 0x38 /* SDRAM Row Cycle Delay group mask. */
5239 #define EBI_ROWCYCDLY_gp 3 /* SDRAM Row Cycle Delay group position. */
5240 #define EBI_ROWCYCDLY0_bm (1<<3) /* SDRAM Row Cycle Delay bit 0 mask. */
5241 #define EBI_ROWCYCDLY0_bp 3 /* SDRAM Row Cycle Delay bit 0 position. */
5242 #define EBI_ROWCYCDLY1_bm (1<<4) /* SDRAM Row Cycle Delay bit 1 mask. */
5243 #define EBI_ROWCYCDLY1_bp 4 /* SDRAM Row Cycle Delay bit 1 position. */
5244 #define EBI_ROWCYCDLY2_bm (1<<5) /* SDRAM Row Cycle Delay bit 2 mask. */
5245 #define EBI_ROWCYCDLY2_bp 5 /* SDRAM Row Cycle Delay bit 2 position. */
5246 
5247 #define EBI_RPDLY_gm 0x07 /* SDRAM Row-to-Precharge Delay group mask. */
5248 #define EBI_RPDLY_gp 0 /* SDRAM Row-to-Precharge Delay group position. */
5249 #define EBI_RPDLY0_bm (1<<0) /* SDRAM Row-to-Precharge Delay bit 0 mask. */
5250 #define EBI_RPDLY0_bp 0 /* SDRAM Row-to-Precharge Delay bit 0 position. */
5251 #define EBI_RPDLY1_bm (1<<1) /* SDRAM Row-to-Precharge Delay bit 1 mask. */
5252 #define EBI_RPDLY1_bp 1 /* SDRAM Row-to-Precharge Delay bit 1 position. */
5253 #define EBI_RPDLY2_bm (1<<2) /* SDRAM Row-to-Precharge Delay bit 2 mask. */
5254 #define EBI_RPDLY2_bp 2 /* SDRAM Row-to-Precharge Delay bit 2 position. */
5255 
5256 
5257 /* EBI.SDRAMCTRLC bit masks and bit positions */
5258 #define EBI_WRDLY_gm 0xC0 /* SDRAM Write Recovery Delay group mask. */
5259 #define EBI_WRDLY_gp 6 /* SDRAM Write Recovery Delay group position. */
5260 #define EBI_WRDLY0_bm (1<<6) /* SDRAM Write Recovery Delay bit 0 mask. */
5261 #define EBI_WRDLY0_bp 6 /* SDRAM Write Recovery Delay bit 0 position. */
5262 #define EBI_WRDLY1_bm (1<<7) /* SDRAM Write Recovery Delay bit 1 mask. */
5263 #define EBI_WRDLY1_bp 7 /* SDRAM Write Recovery Delay bit 1 position. */
5264 
5265 #define EBI_ESRDLY_gm 0x38 /* SDRAM Exit-Self-refresh-to-Active Delay group mask. */
5266 #define EBI_ESRDLY_gp 3 /* SDRAM Exit-Self-refresh-to-Active Delay group position. */
5267 #define EBI_ESRDLY0_bm (1<<3) /* SDRAM Exit-Self-refresh-to-Active Delay bit 0 mask. */
5268 #define EBI_ESRDLY0_bp 3 /* SDRAM Exit-Self-refresh-to-Active Delay bit 0 position. */
5269 #define EBI_ESRDLY1_bm (1<<4) /* SDRAM Exit-Self-refresh-to-Active Delay bit 1 mask. */
5270 #define EBI_ESRDLY1_bp 4 /* SDRAM Exit-Self-refresh-to-Active Delay bit 1 position. */
5271 #define EBI_ESRDLY2_bm (1<<5) /* SDRAM Exit-Self-refresh-to-Active Delay bit 2 mask. */
5272 #define EBI_ESRDLY2_bp 5 /* SDRAM Exit-Self-refresh-to-Active Delay bit 2 position. */
5273 
5274 #define EBI_ROWCOLDLY_gm 0x07 /* SDRAM Row-to-Column Delay group mask. */
5275 #define EBI_ROWCOLDLY_gp 0 /* SDRAM Row-to-Column Delay group position. */
5276 #define EBI_ROWCOLDLY0_bm (1<<0) /* SDRAM Row-to-Column Delay bit 0 mask. */
5277 #define EBI_ROWCOLDLY0_bp 0 /* SDRAM Row-to-Column Delay bit 0 position. */
5278 #define EBI_ROWCOLDLY1_bm (1<<1) /* SDRAM Row-to-Column Delay bit 1 mask. */
5279 #define EBI_ROWCOLDLY1_bp 1 /* SDRAM Row-to-Column Delay bit 1 position. */
5280 #define EBI_ROWCOLDLY2_bm (1<<2) /* SDRAM Row-to-Column Delay bit 2 mask. */
5281 #define EBI_ROWCOLDLY2_bp 2 /* SDRAM Row-to-Column Delay bit 2 position. */
5282 
5283 
5284 /* TWI - Two-Wire Interface */
5285 /* TWI_MASTER.CTRLA bit masks and bit positions */
5286 #define TWI_MASTER_INTLVL_gm 0xC0 /* Interrupt Level group mask. */
5287 #define TWI_MASTER_INTLVL_gp 6 /* Interrupt Level group position. */
5288 #define TWI_MASTER_INTLVL0_bm (1<<6) /* Interrupt Level bit 0 mask. */
5289 #define TWI_MASTER_INTLVL0_bp 6 /* Interrupt Level bit 0 position. */
5290 #define TWI_MASTER_INTLVL1_bm (1<<7) /* Interrupt Level bit 1 mask. */
5291 #define TWI_MASTER_INTLVL1_bp 7 /* Interrupt Level bit 1 position. */
5292 
5293 #define TWI_MASTER_RIEN_bm 0x20 /* Read Interrupt Enable bit mask. */
5294 #define TWI_MASTER_RIEN_bp 5 /* Read Interrupt Enable bit position. */
5295 
5296 #define TWI_MASTER_WIEN_bm 0x10 /* Write Interrupt Enable bit mask. */
5297 #define TWI_MASTER_WIEN_bp 4 /* Write Interrupt Enable bit position. */
5298 
5299 #define TWI_MASTER_ENABLE_bm 0x08 /* Enable TWI Master bit mask. */
5300 #define TWI_MASTER_ENABLE_bp 3 /* Enable TWI Master bit position. */
5301 
5302 
5303 /* TWI_MASTER.CTRLB bit masks and bit positions */
5304 #define TWI_MASTER_TIMEOUT_gm 0x0C /* Inactive Bus Timeout group mask. */
5305 #define TWI_MASTER_TIMEOUT_gp 2 /* Inactive Bus Timeout group position. */
5306 #define TWI_MASTER_TIMEOUT0_bm (1<<2) /* Inactive Bus Timeout bit 0 mask. */
5307 #define TWI_MASTER_TIMEOUT0_bp 2 /* Inactive Bus Timeout bit 0 position. */
5308 #define TWI_MASTER_TIMEOUT1_bm (1<<3) /* Inactive Bus Timeout bit 1 mask. */
5309 #define TWI_MASTER_TIMEOUT1_bp 3 /* Inactive Bus Timeout bit 1 position. */
5310 
5311 #define TWI_MASTER_QCEN_bm 0x02 /* Quick Command Enable bit mask. */
5312 #define TWI_MASTER_QCEN_bp 1 /* Quick Command Enable bit position. */
5313 
5314 #define TWI_MASTER_SMEN_bm 0x01 /* Smart Mode Enable bit mask. */
5315 #define TWI_MASTER_SMEN_bp 0 /* Smart Mode Enable bit position. */
5316 
5317 
5318 /* TWI_MASTER.CTRLC bit masks and bit positions */
5319 #define TWI_MASTER_ACKACT_bm 0x04 /* Acknowledge Action bit mask. */
5320 #define TWI_MASTER_ACKACT_bp 2 /* Acknowledge Action bit position. */
5321 
5322 #define TWI_MASTER_CMD_gm 0x03 /* Command group mask. */
5323 #define TWI_MASTER_CMD_gp 0 /* Command group position. */
5324 #define TWI_MASTER_CMD0_bm (1<<0) /* Command bit 0 mask. */
5325 #define TWI_MASTER_CMD0_bp 0 /* Command bit 0 position. */
5326 #define TWI_MASTER_CMD1_bm (1<<1) /* Command bit 1 mask. */
5327 #define TWI_MASTER_CMD1_bp 1 /* Command bit 1 position. */
5328 
5329 
5330 /* TWI_MASTER.STATUS bit masks and bit positions */
5331 #define TWI_MASTER_RIF_bm 0x80 /* Read Interrupt Flag bit mask. */
5332 #define TWI_MASTER_RIF_bp 7 /* Read Interrupt Flag bit position. */
5333 
5334 #define TWI_MASTER_WIF_bm 0x40 /* Write Interrupt Flag bit mask. */
5335 #define TWI_MASTER_WIF_bp 6 /* Write Interrupt Flag bit position. */
5336 
5337 #define TWI_MASTER_CLKHOLD_bm 0x20 /* Clock Hold bit mask. */
5338 #define TWI_MASTER_CLKHOLD_bp 5 /* Clock Hold bit position. */
5339 
5340 #define TWI_MASTER_RXACK_bm 0x10 /* Received Acknowledge bit mask. */
5341 #define TWI_MASTER_RXACK_bp 4 /* Received Acknowledge bit position. */
5342 
5343 #define TWI_MASTER_ARBLOST_bm 0x08 /* Arbitration Lost bit mask. */
5344 #define TWI_MASTER_ARBLOST_bp 3 /* Arbitration Lost bit position. */
5345 
5346 #define TWI_MASTER_BUSERR_bm 0x04 /* Bus Error bit mask. */
5347 #define TWI_MASTER_BUSERR_bp 2 /* Bus Error bit position. */
5348 
5349 #define TWI_MASTER_BUSSTATE_gm 0x03 /* Bus State group mask. */
5350 #define TWI_MASTER_BUSSTATE_gp 0 /* Bus State group position. */
5351 #define TWI_MASTER_BUSSTATE0_bm (1<<0) /* Bus State bit 0 mask. */
5352 #define TWI_MASTER_BUSSTATE0_bp 0 /* Bus State bit 0 position. */
5353 #define TWI_MASTER_BUSSTATE1_bm (1<<1) /* Bus State bit 1 mask. */
5354 #define TWI_MASTER_BUSSTATE1_bp 1 /* Bus State bit 1 position. */
5355 
5356 
5357 /* TWI_SLAVE.CTRLA bit masks and bit positions */
5358 #define TWI_SLAVE_INTLVL_gm 0xC0 /* Interrupt Level group mask. */
5359 #define TWI_SLAVE_INTLVL_gp 6 /* Interrupt Level group position. */
5360 #define TWI_SLAVE_INTLVL0_bm (1<<6) /* Interrupt Level bit 0 mask. */
5361 #define TWI_SLAVE_INTLVL0_bp 6 /* Interrupt Level bit 0 position. */
5362 #define TWI_SLAVE_INTLVL1_bm (1<<7) /* Interrupt Level bit 1 mask. */
5363 #define TWI_SLAVE_INTLVL1_bp 7 /* Interrupt Level bit 1 position. */
5364 
5365 #define TWI_SLAVE_DIEN_bm 0x20 /* Data Interrupt Enable bit mask. */
5366 #define TWI_SLAVE_DIEN_bp 5 /* Data Interrupt Enable bit position. */
5367 
5368 #define TWI_SLAVE_APIEN_bm 0x10 /* Address/Stop Interrupt Enable bit mask. */
5369 #define TWI_SLAVE_APIEN_bp 4 /* Address/Stop Interrupt Enable bit position. */
5370 
5371 #define TWI_SLAVE_ENABLE_bm 0x08 /* Enable TWI Slave bit mask. */
5372 #define TWI_SLAVE_ENABLE_bp 3 /* Enable TWI Slave bit position. */
5373 
5374 #define TWI_SLAVE_PIEN_bm 0x04 /* Stop Interrupt Enable bit mask. */
5375 #define TWI_SLAVE_PIEN_bp 2 /* Stop Interrupt Enable bit position. */
5376 
5377 #define TWI_SLAVE_PMEN_bm 0x02 /* Promiscuous Mode Enable bit mask. */
5378 #define TWI_SLAVE_PMEN_bp 1 /* Promiscuous Mode Enable bit position. */
5379 
5380 #define TWI_SLAVE_SMEN_bm 0x01 /* Smart Mode Enable bit mask. */
5381 #define TWI_SLAVE_SMEN_bp 0 /* Smart Mode Enable bit position. */
5382 
5383 
5384 /* TWI_SLAVE.CTRLB bit masks and bit positions */
5385 #define TWI_SLAVE_ACKACT_bm 0x04 /* Acknowledge Action bit mask. */
5386 #define TWI_SLAVE_ACKACT_bp 2 /* Acknowledge Action bit position. */
5387 
5388 #define TWI_SLAVE_CMD_gm 0x03 /* Command group mask. */
5389 #define TWI_SLAVE_CMD_gp 0 /* Command group position. */
5390 #define TWI_SLAVE_CMD0_bm (1<<0) /* Command bit 0 mask. */
5391 #define TWI_SLAVE_CMD0_bp 0 /* Command bit 0 position. */
5392 #define TWI_SLAVE_CMD1_bm (1<<1) /* Command bit 1 mask. */
5393 #define TWI_SLAVE_CMD1_bp 1 /* Command bit 1 position. */
5394 
5395 
5396 /* TWI_SLAVE.STATUS bit masks and bit positions */
5397 #define TWI_SLAVE_DIF_bm 0x80 /* Data Interrupt Flag bit mask. */
5398 #define TWI_SLAVE_DIF_bp 7 /* Data Interrupt Flag bit position. */
5399 
5400 #define TWI_SLAVE_APIF_bm 0x40 /* Address/Stop Interrupt Flag bit mask. */
5401 #define TWI_SLAVE_APIF_bp 6 /* Address/Stop Interrupt Flag bit position. */
5402 
5403 #define TWI_SLAVE_CLKHOLD_bm 0x20 /* Clock Hold bit mask. */
5404 #define TWI_SLAVE_CLKHOLD_bp 5 /* Clock Hold bit position. */
5405 
5406 #define TWI_SLAVE_RXACK_bm 0x10 /* Received Acknowledge bit mask. */
5407 #define TWI_SLAVE_RXACK_bp 4 /* Received Acknowledge bit position. */
5408 
5409 #define TWI_SLAVE_COLL_bm 0x08 /* Collision bit mask. */
5410 #define TWI_SLAVE_COLL_bp 3 /* Collision bit position. */
5411 
5412 #define TWI_SLAVE_BUSERR_bm 0x04 /* Bus Error bit mask. */
5413 #define TWI_SLAVE_BUSERR_bp 2 /* Bus Error bit position. */
5414 
5415 #define TWI_SLAVE_DIR_bm 0x02 /* Read/Write Direction bit mask. */
5416 #define TWI_SLAVE_DIR_bp 1 /* Read/Write Direction bit position. */
5417 
5418 #define TWI_SLAVE_AP_bm 0x01 /* Slave Address or Stop bit mask. */
5419 #define TWI_SLAVE_AP_bp 0 /* Slave Address or Stop bit position. */
5420 
5421 
5422 /* TWI_SLAVE.ADDRMASK bit masks and bit positions */
5423 #define TWI_SLAVE_ADDRMASK_gm 0xFE /* Address Mask group mask. */
5424 #define TWI_SLAVE_ADDRMASK_gp 1 /* Address Mask group position. */
5425 #define TWI_SLAVE_ADDRMASK0_bm (1<<1) /* Address Mask bit 0 mask. */
5426 #define TWI_SLAVE_ADDRMASK0_bp 1 /* Address Mask bit 0 position. */
5427 #define TWI_SLAVE_ADDRMASK1_bm (1<<2) /* Address Mask bit 1 mask. */
5428 #define TWI_SLAVE_ADDRMASK1_bp 2 /* Address Mask bit 1 position. */
5429 #define TWI_SLAVE_ADDRMASK2_bm (1<<3) /* Address Mask bit 2 mask. */
5430 #define TWI_SLAVE_ADDRMASK2_bp 3 /* Address Mask bit 2 position. */
5431 #define TWI_SLAVE_ADDRMASK3_bm (1<<4) /* Address Mask bit 3 mask. */
5432 #define TWI_SLAVE_ADDRMASK3_bp 4 /* Address Mask bit 3 position. */
5433 #define TWI_SLAVE_ADDRMASK4_bm (1<<5) /* Address Mask bit 4 mask. */
5434 #define TWI_SLAVE_ADDRMASK4_bp 5 /* Address Mask bit 4 position. */
5435 #define TWI_SLAVE_ADDRMASK5_bm (1<<6) /* Address Mask bit 5 mask. */
5436 #define TWI_SLAVE_ADDRMASK5_bp 6 /* Address Mask bit 5 position. */
5437 #define TWI_SLAVE_ADDRMASK6_bm (1<<7) /* Address Mask bit 6 mask. */
5438 #define TWI_SLAVE_ADDRMASK6_bp 7 /* Address Mask bit 6 position. */
5439 
5440 #define TWI_SLAVE_ADDREN_bm 0x01 /* Address Enable bit mask. */
5441 #define TWI_SLAVE_ADDREN_bp 0 /* Address Enable bit position. */
5442 
5443 
5444 /* TWI.CTRL bit masks and bit positions */
5445 #define TWI_SDAHOLD_bm 0x02 /* SDA Hold Time Enable bit mask. */
5446 #define TWI_SDAHOLD_bp 1 /* SDA Hold Time Enable bit position. */
5447 
5448 #define TWI_EDIEN_bm 0x01 /* External Driver Interface Enable bit mask. */
5449 #define TWI_EDIEN_bp 0 /* External Driver Interface Enable bit position. */
5450 
5451 
5452 /* PORT - Port Configuration */
5453 /* PORTCFG.VPCTRLA bit masks and bit positions */
5454 #define PORTCFG_VP1MAP_gm 0xF0 /* Virtual Port 1 Mapping group mask. */
5455 #define PORTCFG_VP1MAP_gp 4 /* Virtual Port 1 Mapping group position. */
5456 #define PORTCFG_VP1MAP0_bm (1<<4) /* Virtual Port 1 Mapping bit 0 mask. */
5457 #define PORTCFG_VP1MAP0_bp 4 /* Virtual Port 1 Mapping bit 0 position. */
5458 #define PORTCFG_VP1MAP1_bm (1<<5) /* Virtual Port 1 Mapping bit 1 mask. */
5459 #define PORTCFG_VP1MAP1_bp 5 /* Virtual Port 1 Mapping bit 1 position. */
5460 #define PORTCFG_VP1MAP2_bm (1<<6) /* Virtual Port 1 Mapping bit 2 mask. */
5461 #define PORTCFG_VP1MAP2_bp 6 /* Virtual Port 1 Mapping bit 2 position. */
5462 #define PORTCFG_VP1MAP3_bm (1<<7) /* Virtual Port 1 Mapping bit 3 mask. */
5463 #define PORTCFG_VP1MAP3_bp 7 /* Virtual Port 1 Mapping bit 3 position. */
5464 
5465 #define PORTCFG_VP0MAP_gm 0x0F /* Virtual Port 0 Mapping group mask. */
5466 #define PORTCFG_VP0MAP_gp 0 /* Virtual Port 0 Mapping group position. */
5467 #define PORTCFG_VP0MAP0_bm (1<<0) /* Virtual Port 0 Mapping bit 0 mask. */
5468 #define PORTCFG_VP0MAP0_bp 0 /* Virtual Port 0 Mapping bit 0 position. */
5469 #define PORTCFG_VP0MAP1_bm (1<<1) /* Virtual Port 0 Mapping bit 1 mask. */
5470 #define PORTCFG_VP0MAP1_bp 1 /* Virtual Port 0 Mapping bit 1 position. */
5471 #define PORTCFG_VP0MAP2_bm (1<<2) /* Virtual Port 0 Mapping bit 2 mask. */
5472 #define PORTCFG_VP0MAP2_bp 2 /* Virtual Port 0 Mapping bit 2 position. */
5473 #define PORTCFG_VP0MAP3_bm (1<<3) /* Virtual Port 0 Mapping bit 3 mask. */
5474 #define PORTCFG_VP0MAP3_bp 3 /* Virtual Port 0 Mapping bit 3 position. */
5475 
5476 
5477 /* PORTCFG.VPCTRLB bit masks and bit positions */
5478 #define PORTCFG_VP3MAP_gm 0xF0 /* Virtual Port 3 Mapping group mask. */
5479 #define PORTCFG_VP3MAP_gp 4 /* Virtual Port 3 Mapping group position. */
5480 #define PORTCFG_VP3MAP0_bm (1<<4) /* Virtual Port 3 Mapping bit 0 mask. */
5481 #define PORTCFG_VP3MAP0_bp 4 /* Virtual Port 3 Mapping bit 0 position. */
5482 #define PORTCFG_VP3MAP1_bm (1<<5) /* Virtual Port 3 Mapping bit 1 mask. */
5483 #define PORTCFG_VP3MAP1_bp 5 /* Virtual Port 3 Mapping bit 1 position. */
5484 #define PORTCFG_VP3MAP2_bm (1<<6) /* Virtual Port 3 Mapping bit 2 mask. */
5485 #define PORTCFG_VP3MAP2_bp 6 /* Virtual Port 3 Mapping bit 2 position. */
5486 #define PORTCFG_VP3MAP3_bm (1<<7) /* Virtual Port 3 Mapping bit 3 mask. */
5487 #define PORTCFG_VP3MAP3_bp 7 /* Virtual Port 3 Mapping bit 3 position. */
5488 
5489 #define PORTCFG_VP2MAP_gm 0x0F /* Virtual Port 2 Mapping group mask. */
5490 #define PORTCFG_VP2MAP_gp 0 /* Virtual Port 2 Mapping group position. */
5491 #define PORTCFG_VP2MAP0_bm (1<<0) /* Virtual Port 2 Mapping bit 0 mask. */
5492 #define PORTCFG_VP2MAP0_bp 0 /* Virtual Port 2 Mapping bit 0 position. */
5493 #define PORTCFG_VP2MAP1_bm (1<<1) /* Virtual Port 2 Mapping bit 1 mask. */
5494 #define PORTCFG_VP2MAP1_bp 1 /* Virtual Port 2 Mapping bit 1 position. */
5495 #define PORTCFG_VP2MAP2_bm (1<<2) /* Virtual Port 2 Mapping bit 2 mask. */
5496 #define PORTCFG_VP2MAP2_bp 2 /* Virtual Port 2 Mapping bit 2 position. */
5497 #define PORTCFG_VP2MAP3_bm (1<<3) /* Virtual Port 2 Mapping bit 3 mask. */
5498 #define PORTCFG_VP2MAP3_bp 3 /* Virtual Port 2 Mapping bit 3 position. */
5499 
5500 
5501 /* PORTCFG.CLKEVOUT bit masks and bit positions */
5502 #define PORTCFG_CLKOUT_gm 0x03 /* Clock Output Port group mask. */
5503 #define PORTCFG_CLKOUT_gp 0 /* Clock Output Port group position. */
5504 #define PORTCFG_CLKOUT0_bm (1<<0) /* Clock Output Port bit 0 mask. */
5505 #define PORTCFG_CLKOUT0_bp 0 /* Clock Output Port bit 0 position. */
5506 #define PORTCFG_CLKOUT1_bm (1<<1) /* Clock Output Port bit 1 mask. */
5507 #define PORTCFG_CLKOUT1_bp 1 /* Clock Output Port bit 1 position. */
5508 
5509 #define PORTCFG_EVOUT_gm 0x30 /* Event Output Port group mask. */
5510 #define PORTCFG_EVOUT_gp 4 /* Event Output Port group position. */
5511 #define PORTCFG_EVOUT0_bm (1<<4) /* Event Output Port bit 0 mask. */
5512 #define PORTCFG_EVOUT0_bp 4 /* Event Output Port bit 0 position. */
5513 #define PORTCFG_EVOUT1_bm (1<<5) /* Event Output Port bit 1 mask. */
5514 #define PORTCFG_EVOUT1_bp 5 /* Event Output Port bit 1 position. */
5515 
5516 
5517 /* VPORT.INTFLAGS bit masks and bit positions */
5518 #define VPORT_INT1IF_bm 0x02 /* Port Interrupt 1 Flag bit mask. */
5519 #define VPORT_INT1IF_bp 1 /* Port Interrupt 1 Flag bit position. */
5520 
5521 #define VPORT_INT0IF_bm 0x01 /* Port Interrupt 0 Flag bit mask. */
5522 #define VPORT_INT0IF_bp 0 /* Port Interrupt 0 Flag bit position. */
5523 
5524 
5525 /* PORT.INTCTRL bit masks and bit positions */
5526 #define PORT_INT1LVL_gm 0x0C /* Port Interrupt 1 Level group mask. */
5527 #define PORT_INT1LVL_gp 2 /* Port Interrupt 1 Level group position. */
5528 #define PORT_INT1LVL0_bm (1<<2) /* Port Interrupt 1 Level bit 0 mask. */
5529 #define PORT_INT1LVL0_bp 2 /* Port Interrupt 1 Level bit 0 position. */
5530 #define PORT_INT1LVL1_bm (1<<3) /* Port Interrupt 1 Level bit 1 mask. */
5531 #define PORT_INT1LVL1_bp 3 /* Port Interrupt 1 Level bit 1 position. */
5532 
5533 #define PORT_INT0LVL_gm 0x03 /* Port Interrupt 0 Level group mask. */
5534 #define PORT_INT0LVL_gp 0 /* Port Interrupt 0 Level group position. */
5535 #define PORT_INT0LVL0_bm (1<<0) /* Port Interrupt 0 Level bit 0 mask. */
5536 #define PORT_INT0LVL0_bp 0 /* Port Interrupt 0 Level bit 0 position. */
5537 #define PORT_INT0LVL1_bm (1<<1) /* Port Interrupt 0 Level bit 1 mask. */
5538 #define PORT_INT0LVL1_bp 1 /* Port Interrupt 0 Level bit 1 position. */
5539 
5540 
5541 /* PORT.INTFLAGS bit masks and bit positions */
5542 #define PORT_INT1IF_bm 0x02 /* Port Interrupt 1 Flag bit mask. */
5543 #define PORT_INT1IF_bp 1 /* Port Interrupt 1 Flag bit position. */
5544 
5545 #define PORT_INT0IF_bm 0x01 /* Port Interrupt 0 Flag bit mask. */
5546 #define PORT_INT0IF_bp 0 /* Port Interrupt 0 Flag bit position. */
5547 
5548 
5549 /* PORT.PIN0CTRL bit masks and bit positions */
5550 #define PORT_SRLEN_bm 0x80 /* Slew Rate Enable bit mask. */
5551 #define PORT_SRLEN_bp 7 /* Slew Rate Enable bit position. */
5552 
5553 #define PORT_INVEN_bm 0x40 /* Inverted I/O Enable bit mask. */
5554 #define PORT_INVEN_bp 6 /* Inverted I/O Enable bit position. */
5555 
5556 #define PORT_OPC_gm 0x38 /* Output/Pull Configuration group mask. */
5557 #define PORT_OPC_gp 3 /* Output/Pull Configuration group position. */
5558 #define PORT_OPC0_bm (1<<3) /* Output/Pull Configuration bit 0 mask. */
5559 #define PORT_OPC0_bp 3 /* Output/Pull Configuration bit 0 position. */
5560 #define PORT_OPC1_bm (1<<4) /* Output/Pull Configuration bit 1 mask. */
5561 #define PORT_OPC1_bp 4 /* Output/Pull Configuration bit 1 position. */
5562 #define PORT_OPC2_bm (1<<5) /* Output/Pull Configuration bit 2 mask. */
5563 #define PORT_OPC2_bp 5 /* Output/Pull Configuration bit 2 position. */
5564 
5565 #define PORT_ISC_gm 0x07 /* Input/Sense Configuration group mask. */
5566 #define PORT_ISC_gp 0 /* Input/Sense Configuration group position. */
5567 #define PORT_ISC0_bm (1<<0) /* Input/Sense Configuration bit 0 mask. */
5568 #define PORT_ISC0_bp 0 /* Input/Sense Configuration bit 0 position. */
5569 #define PORT_ISC1_bm (1<<1) /* Input/Sense Configuration bit 1 mask. */
5570 #define PORT_ISC1_bp 1 /* Input/Sense Configuration bit 1 position. */
5571 #define PORT_ISC2_bm (1<<2) /* Input/Sense Configuration bit 2 mask. */
5572 #define PORT_ISC2_bp 2 /* Input/Sense Configuration bit 2 position. */
5573 
5574 
5575 /* PORT.PIN1CTRL bit masks and bit positions */
5576 /* PORT_SRLEN_bm Predefined. */
5577 /* PORT_SRLEN_bp Predefined. */
5578 
5579 /* PORT_INVEN_bm Predefined. */
5580 /* PORT_INVEN_bp Predefined. */
5581 
5582 /* PORT_OPC_gm Predefined. */
5583 /* PORT_OPC_gp Predefined. */
5584 /* PORT_OPC0_bm Predefined. */
5585 /* PORT_OPC0_bp Predefined. */
5586 /* PORT_OPC1_bm Predefined. */
5587 /* PORT_OPC1_bp Predefined. */
5588 /* PORT_OPC2_bm Predefined. */
5589 /* PORT_OPC2_bp Predefined. */
5590 
5591 /* PORT_ISC_gm Predefined. */
5592 /* PORT_ISC_gp Predefined. */
5593 /* PORT_ISC0_bm Predefined. */
5594 /* PORT_ISC0_bp Predefined. */
5595 /* PORT_ISC1_bm Predefined. */
5596 /* PORT_ISC1_bp Predefined. */
5597 /* PORT_ISC2_bm Predefined. */
5598 /* PORT_ISC2_bp Predefined. */
5599 
5600 
5601 /* PORT.PIN2CTRL bit masks and bit positions */
5602 /* PORT_SRLEN_bm Predefined. */
5603 /* PORT_SRLEN_bp Predefined. */
5604 
5605 /* PORT_INVEN_bm Predefined. */
5606 /* PORT_INVEN_bp Predefined. */
5607 
5608 /* PORT_OPC_gm Predefined. */
5609 /* PORT_OPC_gp Predefined. */
5610 /* PORT_OPC0_bm Predefined. */
5611 /* PORT_OPC0_bp Predefined. */
5612 /* PORT_OPC1_bm Predefined. */
5613 /* PORT_OPC1_bp Predefined. */
5614 /* PORT_OPC2_bm Predefined. */
5615 /* PORT_OPC2_bp Predefined. */
5616 
5617 /* PORT_ISC_gm Predefined. */
5618 /* PORT_ISC_gp Predefined. */
5619 /* PORT_ISC0_bm Predefined. */
5620 /* PORT_ISC0_bp Predefined. */
5621 /* PORT_ISC1_bm Predefined. */
5622 /* PORT_ISC1_bp Predefined. */
5623 /* PORT_ISC2_bm Predefined. */
5624 /* PORT_ISC2_bp Predefined. */
5625 
5626 
5627 /* PORT.PIN3CTRL bit masks and bit positions */
5628 /* PORT_SRLEN_bm Predefined. */
5629 /* PORT_SRLEN_bp Predefined. */
5630 
5631 /* PORT_INVEN_bm Predefined. */
5632 /* PORT_INVEN_bp Predefined. */
5633 
5634 /* PORT_OPC_gm Predefined. */
5635 /* PORT_OPC_gp Predefined. */
5636 /* PORT_OPC0_bm Predefined. */
5637 /* PORT_OPC0_bp Predefined. */
5638 /* PORT_OPC1_bm Predefined. */
5639 /* PORT_OPC1_bp Predefined. */
5640 /* PORT_OPC2_bm Predefined. */
5641 /* PORT_OPC2_bp Predefined. */
5642 
5643 /* PORT_ISC_gm Predefined. */
5644 /* PORT_ISC_gp Predefined. */
5645 /* PORT_ISC0_bm Predefined. */
5646 /* PORT_ISC0_bp Predefined. */
5647 /* PORT_ISC1_bm Predefined. */
5648 /* PORT_ISC1_bp Predefined. */
5649 /* PORT_ISC2_bm Predefined. */
5650 /* PORT_ISC2_bp Predefined. */
5651 
5652 
5653 /* PORT.PIN4CTRL bit masks and bit positions */
5654 /* PORT_SRLEN_bm Predefined. */
5655 /* PORT_SRLEN_bp Predefined. */
5656 
5657 /* PORT_INVEN_bm Predefined. */
5658 /* PORT_INVEN_bp Predefined. */
5659 
5660 /* PORT_OPC_gm Predefined. */
5661 /* PORT_OPC_gp Predefined. */
5662 /* PORT_OPC0_bm Predefined. */
5663 /* PORT_OPC0_bp Predefined. */
5664 /* PORT_OPC1_bm Predefined. */
5665 /* PORT_OPC1_bp Predefined. */
5666 /* PORT_OPC2_bm Predefined. */
5667 /* PORT_OPC2_bp Predefined. */
5668 
5669 /* PORT_ISC_gm Predefined. */
5670 /* PORT_ISC_gp Predefined. */
5671 /* PORT_ISC0_bm Predefined. */
5672 /* PORT_ISC0_bp Predefined. */
5673 /* PORT_ISC1_bm Predefined. */
5674 /* PORT_ISC1_bp Predefined. */
5675 /* PORT_ISC2_bm Predefined. */
5676 /* PORT_ISC2_bp Predefined. */
5677 
5678 
5679 /* PORT.PIN5CTRL bit masks and bit positions */
5680 /* PORT_SRLEN_bm Predefined. */
5681 /* PORT_SRLEN_bp Predefined. */
5682 
5683 /* PORT_INVEN_bm Predefined. */
5684 /* PORT_INVEN_bp Predefined. */
5685 
5686 /* PORT_OPC_gm Predefined. */
5687 /* PORT_OPC_gp Predefined. */
5688 /* PORT_OPC0_bm Predefined. */
5689 /* PORT_OPC0_bp Predefined. */
5690 /* PORT_OPC1_bm Predefined. */
5691 /* PORT_OPC1_bp Predefined. */
5692 /* PORT_OPC2_bm Predefined. */
5693 /* PORT_OPC2_bp Predefined. */
5694 
5695 /* PORT_ISC_gm Predefined. */
5696 /* PORT_ISC_gp Predefined. */
5697 /* PORT_ISC0_bm Predefined. */
5698 /* PORT_ISC0_bp Predefined. */
5699 /* PORT_ISC1_bm Predefined. */
5700 /* PORT_ISC1_bp Predefined. */
5701 /* PORT_ISC2_bm Predefined. */
5702 /* PORT_ISC2_bp Predefined. */
5703 
5704 
5705 /* PORT.PIN6CTRL bit masks and bit positions */
5706 /* PORT_SRLEN_bm Predefined. */
5707 /* PORT_SRLEN_bp Predefined. */
5708 
5709 /* PORT_INVEN_bm Predefined. */
5710 /* PORT_INVEN_bp Predefined. */
5711 
5712 /* PORT_OPC_gm Predefined. */
5713 /* PORT_OPC_gp Predefined. */
5714 /* PORT_OPC0_bm Predefined. */
5715 /* PORT_OPC0_bp Predefined. */
5716 /* PORT_OPC1_bm Predefined. */
5717 /* PORT_OPC1_bp Predefined. */
5718 /* PORT_OPC2_bm Predefined. */
5719 /* PORT_OPC2_bp Predefined. */
5720 
5721 /* PORT_ISC_gm Predefined. */
5722 /* PORT_ISC_gp Predefined. */
5723 /* PORT_ISC0_bm Predefined. */
5724 /* PORT_ISC0_bp Predefined. */
5725 /* PORT_ISC1_bm Predefined. */
5726 /* PORT_ISC1_bp Predefined. */
5727 /* PORT_ISC2_bm Predefined. */
5728 /* PORT_ISC2_bp Predefined. */
5729 
5730 
5731 /* PORT.PIN7CTRL bit masks and bit positions */
5732 /* PORT_SRLEN_bm Predefined. */
5733 /* PORT_SRLEN_bp Predefined. */
5734 
5735 /* PORT_INVEN_bm Predefined. */
5736 /* PORT_INVEN_bp Predefined. */
5737 
5738 /* PORT_OPC_gm Predefined. */
5739 /* PORT_OPC_gp Predefined. */
5740 /* PORT_OPC0_bm Predefined. */
5741 /* PORT_OPC0_bp Predefined. */
5742 /* PORT_OPC1_bm Predefined. */
5743 /* PORT_OPC1_bp Predefined. */
5744 /* PORT_OPC2_bm Predefined. */
5745 /* PORT_OPC2_bp Predefined. */
5746 
5747 /* PORT_ISC_gm Predefined. */
5748 /* PORT_ISC_gp Predefined. */
5749 /* PORT_ISC0_bm Predefined. */
5750 /* PORT_ISC0_bp Predefined. */
5751 /* PORT_ISC1_bm Predefined. */
5752 /* PORT_ISC1_bp Predefined. */
5753 /* PORT_ISC2_bm Predefined. */
5754 /* PORT_ISC2_bp Predefined. */
5755 
5756 
5757 /* TC - 16-bit Timer/Counter With PWM */
5758 /* TC0.CTRLA bit masks and bit positions */
5759 #define TC0_CLKSEL_gm 0x0F /* Clock Selection group mask. */
5760 #define TC0_CLKSEL_gp 0 /* Clock Selection group position. */
5761 #define TC0_CLKSEL0_bm (1<<0) /* Clock Selection bit 0 mask. */
5762 #define TC0_CLKSEL0_bp 0 /* Clock Selection bit 0 position. */
5763 #define TC0_CLKSEL1_bm (1<<1) /* Clock Selection bit 1 mask. */
5764 #define TC0_CLKSEL1_bp 1 /* Clock Selection bit 1 position. */
5765 #define TC0_CLKSEL2_bm (1<<2) /* Clock Selection bit 2 mask. */
5766 #define TC0_CLKSEL2_bp 2 /* Clock Selection bit 2 position. */
5767 #define TC0_CLKSEL3_bm (1<<3) /* Clock Selection bit 3 mask. */
5768 #define TC0_CLKSEL3_bp 3 /* Clock Selection bit 3 position. */
5769 
5770 
5771 /* TC0.CTRLB bit masks and bit positions */
5772 #define TC0_CCDEN_bm 0x80 /* Compare or Capture D Enable bit mask. */
5773 #define TC0_CCDEN_bp 7 /* Compare or Capture D Enable bit position. */
5774 
5775 #define TC0_CCCEN_bm 0x40 /* Compare or Capture C Enable bit mask. */
5776 #define TC0_CCCEN_bp 6 /* Compare or Capture C Enable bit position. */
5777 
5778 #define TC0_CCBEN_bm 0x20 /* Compare or Capture B Enable bit mask. */
5779 #define TC0_CCBEN_bp 5 /* Compare or Capture B Enable bit position. */
5780 
5781 #define TC0_CCAEN_bm 0x10 /* Compare or Capture A Enable bit mask. */
5782 #define TC0_CCAEN_bp 4 /* Compare or Capture A Enable bit position. */
5783 
5784 #define TC0_WGMODE_gm 0x07 /* Waveform generation mode group mask. */
5785 #define TC0_WGMODE_gp 0 /* Waveform generation mode group position. */
5786 #define TC0_WGMODE0_bm (1<<0) /* Waveform generation mode bit 0 mask. */
5787 #define TC0_WGMODE0_bp 0 /* Waveform generation mode bit 0 position. */
5788 #define TC0_WGMODE1_bm (1<<1) /* Waveform generation mode bit 1 mask. */
5789 #define TC0_WGMODE1_bp 1 /* Waveform generation mode bit 1 position. */
5790 #define TC0_WGMODE2_bm (1<<2) /* Waveform generation mode bit 2 mask. */
5791 #define TC0_WGMODE2_bp 2 /* Waveform generation mode bit 2 position. */
5792 
5793 
5794 /* TC0.CTRLC bit masks and bit positions */
5795 #define TC0_CMPD_bm 0x08 /* Compare D Output Value bit mask. */
5796 #define TC0_CMPD_bp 3 /* Compare D Output Value bit position. */
5797 
5798 #define TC0_CMPC_bm 0x04 /* Compare C Output Value bit mask. */
5799 #define TC0_CMPC_bp 2 /* Compare C Output Value bit position. */
5800 
5801 #define TC0_CMPB_bm 0x02 /* Compare B Output Value bit mask. */
5802 #define TC0_CMPB_bp 1 /* Compare B Output Value bit position. */
5803 
5804 #define TC0_CMPA_bm 0x01 /* Compare A Output Value bit mask. */
5805 #define TC0_CMPA_bp 0 /* Compare A Output Value bit position. */
5806 
5807 
5808 /* TC0.CTRLD bit masks and bit positions */
5809 #define TC0_EVACT_gm 0xE0 /* Event Action group mask. */
5810 #define TC0_EVACT_gp 5 /* Event Action group position. */
5811 #define TC0_EVACT0_bm (1<<5) /* Event Action bit 0 mask. */
5812 #define TC0_EVACT0_bp 5 /* Event Action bit 0 position. */
5813 #define TC0_EVACT1_bm (1<<6) /* Event Action bit 1 mask. */
5814 #define TC0_EVACT1_bp 6 /* Event Action bit 1 position. */
5815 #define TC0_EVACT2_bm (1<<7) /* Event Action bit 2 mask. */
5816 #define TC0_EVACT2_bp 7 /* Event Action bit 2 position. */
5817 
5818 #define TC0_EVDLY_bm 0x10 /* Event Delay bit mask. */
5819 #define TC0_EVDLY_bp 4 /* Event Delay bit position. */
5820 
5821 #define TC0_EVSEL_gm 0x0F /* Event Source Select group mask. */
5822 #define TC0_EVSEL_gp 0 /* Event Source Select group position. */
5823 #define TC0_EVSEL0_bm (1<<0) /* Event Source Select bit 0 mask. */
5824 #define TC0_EVSEL0_bp 0 /* Event Source Select bit 0 position. */
5825 #define TC0_EVSEL1_bm (1<<1) /* Event Source Select bit 1 mask. */
5826 #define TC0_EVSEL1_bp 1 /* Event Source Select bit 1 position. */
5827 #define TC0_EVSEL2_bm (1<<2) /* Event Source Select bit 2 mask. */
5828 #define TC0_EVSEL2_bp 2 /* Event Source Select bit 2 position. */
5829 #define TC0_EVSEL3_bm (1<<3) /* Event Source Select bit 3 mask. */
5830 #define TC0_EVSEL3_bp 3 /* Event Source Select bit 3 position. */
5831 
5832 
5833 /* TC0.CTRLE bit masks and bit positions */
5834 #define TC0_DTHM_bm 0x02 /* Dead Time Hold Mode bit mask. */
5835 #define TC0_DTHM_bp 1 /* Dead Time Hold Mode bit position. */
5836 
5837 #define TC0_BYTEM_bm 0x01 /* Byte Mode bit mask. */
5838 #define TC0_BYTEM_bp 0 /* Byte Mode bit position. */
5839 
5840 
5841 /* TC0.INTCTRLA bit masks and bit positions */
5842 #define TC0_ERRINTLVL_gm 0x0C /* Error Interrupt Level group mask. */
5843 #define TC0_ERRINTLVL_gp 2 /* Error Interrupt Level group position. */
5844 #define TC0_ERRINTLVL0_bm (1<<2) /* Error Interrupt Level bit 0 mask. */
5845 #define TC0_ERRINTLVL0_bp 2 /* Error Interrupt Level bit 0 position. */
5846 #define TC0_ERRINTLVL1_bm (1<<3) /* Error Interrupt Level bit 1 mask. */
5847 #define TC0_ERRINTLVL1_bp 3 /* Error Interrupt Level bit 1 position. */
5848 
5849 #define TC0_OVFINTLVL_gm 0x03 /* Overflow interrupt level group mask. */
5850 #define TC0_OVFINTLVL_gp 0 /* Overflow interrupt level group position. */
5851 #define TC0_OVFINTLVL0_bm (1<<0) /* Overflow interrupt level bit 0 mask. */
5852 #define TC0_OVFINTLVL0_bp 0 /* Overflow interrupt level bit 0 position. */
5853 #define TC0_OVFINTLVL1_bm (1<<1) /* Overflow interrupt level bit 1 mask. */
5854 #define TC0_OVFINTLVL1_bp 1 /* Overflow interrupt level bit 1 position. */
5855 
5856 
5857 /* TC0.INTCTRLB bit masks and bit positions */
5858 #define TC0_CCDINTLVL_gm 0xC0 /* Compare or Capture D Interrupt Level group mask. */
5859 #define TC0_CCDINTLVL_gp 6 /* Compare or Capture D Interrupt Level group position. */
5860 #define TC0_CCDINTLVL0_bm (1<<6) /* Compare or Capture D Interrupt Level bit 0 mask. */
5861 #define TC0_CCDINTLVL0_bp 6 /* Compare or Capture D Interrupt Level bit 0 position. */
5862 #define TC0_CCDINTLVL1_bm (1<<7) /* Compare or Capture D Interrupt Level bit 1 mask. */
5863 #define TC0_CCDINTLVL1_bp 7 /* Compare or Capture D Interrupt Level bit 1 position. */
5864 
5865 #define TC0_CCCINTLVL_gm 0x30 /* Compare or Capture C Interrupt Level group mask. */
5866 #define TC0_CCCINTLVL_gp 4 /* Compare or Capture C Interrupt Level group position. */
5867 #define TC0_CCCINTLVL0_bm (1<<4) /* Compare or Capture C Interrupt Level bit 0 mask. */
5868 #define TC0_CCCINTLVL0_bp 4 /* Compare or Capture C Interrupt Level bit 0 position. */
5869 #define TC0_CCCINTLVL1_bm (1<<5) /* Compare or Capture C Interrupt Level bit 1 mask. */
5870 #define TC0_CCCINTLVL1_bp 5 /* Compare or Capture C Interrupt Level bit 1 position. */
5871 
5872 #define TC0_CCBINTLVL_gm 0x0C /* Compare or Capture B Interrupt Level group mask. */
5873 #define TC0_CCBINTLVL_gp 2 /* Compare or Capture B Interrupt Level group position. */
5874 #define TC0_CCBINTLVL0_bm (1<<2) /* Compare or Capture B Interrupt Level bit 0 mask. */
5875 #define TC0_CCBINTLVL0_bp 2 /* Compare or Capture B Interrupt Level bit 0 position. */
5876 #define TC0_CCBINTLVL1_bm (1<<3) /* Compare or Capture B Interrupt Level bit 1 mask. */
5877 #define TC0_CCBINTLVL1_bp 3 /* Compare or Capture B Interrupt Level bit 1 position. */
5878 
5879 #define TC0_CCAINTLVL_gm 0x03 /* Compare or Capture A Interrupt Level group mask. */
5880 #define TC0_CCAINTLVL_gp 0 /* Compare or Capture A Interrupt Level group position. */
5881 #define TC0_CCAINTLVL0_bm (1<<0) /* Compare or Capture A Interrupt Level bit 0 mask. */
5882 #define TC0_CCAINTLVL0_bp 0 /* Compare or Capture A Interrupt Level bit 0 position. */
5883 #define TC0_CCAINTLVL1_bm (1<<1) /* Compare or Capture A Interrupt Level bit 1 mask. */
5884 #define TC0_CCAINTLVL1_bp 1 /* Compare or Capture A Interrupt Level bit 1 position. */
5885 
5886 
5887 /* TC0.CTRLFCLR bit masks and bit positions */
5888 #define TC0_CMD_gm 0x0C /* Command group mask. */
5889 #define TC0_CMD_gp 2 /* Command group position. */
5890 #define TC0_CMD0_bm (1<<2) /* Command bit 0 mask. */
5891 #define TC0_CMD0_bp 2 /* Command bit 0 position. */
5892 #define TC0_CMD1_bm (1<<3) /* Command bit 1 mask. */
5893 #define TC0_CMD1_bp 3 /* Command bit 1 position. */
5894 
5895 #define TC0_LUPD_bm 0x02 /* Lock Update bit mask. */
5896 #define TC0_LUPD_bp 1 /* Lock Update bit position. */
5897 
5898 #define TC0_DIR_bm 0x01 /* Direction bit mask. */
5899 #define TC0_DIR_bp 0 /* Direction bit position. */
5900 
5901 
5902 /* TC0.CTRLFSET bit masks and bit positions */
5903 /* TC0_CMD_gm Predefined. */
5904 /* TC0_CMD_gp Predefined. */
5905 /* TC0_CMD0_bm Predefined. */
5906 /* TC0_CMD0_bp Predefined. */
5907 /* TC0_CMD1_bm Predefined. */
5908 /* TC0_CMD1_bp Predefined. */
5909 
5910 /* TC0_LUPD_bm Predefined. */
5911 /* TC0_LUPD_bp Predefined. */
5912 
5913 /* TC0_DIR_bm Predefined. */
5914 /* TC0_DIR_bp Predefined. */
5915 
5916 
5917 /* TC0.CTRLGCLR bit masks and bit positions */
5918 #define TC0_CCDBV_bm 0x10 /* Compare or Capture D Buffer Valid bit mask. */
5919 #define TC0_CCDBV_bp 4 /* Compare or Capture D Buffer Valid bit position. */
5920 
5921 #define TC0_CCCBV_bm 0x08 /* Compare or Capture C Buffer Valid bit mask. */
5922 #define TC0_CCCBV_bp 3 /* Compare or Capture C Buffer Valid bit position. */
5923 
5924 #define TC0_CCBBV_bm 0x04 /* Compare or Capture B Buffer Valid bit mask. */
5925 #define TC0_CCBBV_bp 2 /* Compare or Capture B Buffer Valid bit position. */
5926 
5927 #define TC0_CCABV_bm 0x02 /* Compare or Capture A Buffer Valid bit mask. */
5928 #define TC0_CCABV_bp 1 /* Compare or Capture A Buffer Valid bit position. */
5929 
5930 #define TC0_PERBV_bm 0x01 /* Period Buffer Valid bit mask. */
5931 #define TC0_PERBV_bp 0 /* Period Buffer Valid bit position. */
5932 
5933 
5934 /* TC0.CTRLGSET bit masks and bit positions */
5935 /* TC0_CCDBV_bm Predefined. */
5936 /* TC0_CCDBV_bp Predefined. */
5937 
5938 /* TC0_CCCBV_bm Predefined. */
5939 /* TC0_CCCBV_bp Predefined. */
5940 
5941 /* TC0_CCBBV_bm Predefined. */
5942 /* TC0_CCBBV_bp Predefined. */
5943 
5944 /* TC0_CCABV_bm Predefined. */
5945 /* TC0_CCABV_bp Predefined. */
5946 
5947 /* TC0_PERBV_bm Predefined. */
5948 /* TC0_PERBV_bp Predefined. */
5949 
5950 
5951 /* TC0.INTFLAGS bit masks and bit positions */
5952 #define TC0_CCDIF_bm 0x80 /* Compare or Capture D Interrupt Flag bit mask. */
5953 #define TC0_CCDIF_bp 7 /* Compare or Capture D Interrupt Flag bit position. */
5954 
5955 #define TC0_CCCIF_bm 0x40 /* Compare or Capture C Interrupt Flag bit mask. */
5956 #define TC0_CCCIF_bp 6 /* Compare or Capture C Interrupt Flag bit position. */
5957 
5958 #define TC0_CCBIF_bm 0x20 /* Compare or Capture B Interrupt Flag bit mask. */
5959 #define TC0_CCBIF_bp 5 /* Compare or Capture B Interrupt Flag bit position. */
5960 
5961 #define TC0_CCAIF_bm 0x10 /* Compare or Capture A Interrupt Flag bit mask. */
5962 #define TC0_CCAIF_bp 4 /* Compare or Capture A Interrupt Flag bit position. */
5963 
5964 #define TC0_ERRIF_bm 0x02 /* Error Interrupt Flag bit mask. */
5965 #define TC0_ERRIF_bp 1 /* Error Interrupt Flag bit position. */
5966 
5967 #define TC0_OVFIF_bm 0x01 /* Overflow Interrupt Flag bit mask. */
5968 #define TC0_OVFIF_bp 0 /* Overflow Interrupt Flag bit position. */
5969 
5970 
5971 /* TC1.CTRLA bit masks and bit positions */
5972 #define TC1_CLKSEL_gm 0x0F /* Clock Selection group mask. */
5973 #define TC1_CLKSEL_gp 0 /* Clock Selection group position. */
5974 #define TC1_CLKSEL0_bm (1<<0) /* Clock Selection bit 0 mask. */
5975 #define TC1_CLKSEL0_bp 0 /* Clock Selection bit 0 position. */
5976 #define TC1_CLKSEL1_bm (1<<1) /* Clock Selection bit 1 mask. */
5977 #define TC1_CLKSEL1_bp 1 /* Clock Selection bit 1 position. */
5978 #define TC1_CLKSEL2_bm (1<<2) /* Clock Selection bit 2 mask. */
5979 #define TC1_CLKSEL2_bp 2 /* Clock Selection bit 2 position. */
5980 #define TC1_CLKSEL3_bm (1<<3) /* Clock Selection bit 3 mask. */
5981 #define TC1_CLKSEL3_bp 3 /* Clock Selection bit 3 position. */
5982 
5983 
5984 /* TC1.CTRLB bit masks and bit positions */
5985 #define TC1_CCBEN_bm 0x20 /* Compare or Capture B Enable bit mask. */
5986 #define TC1_CCBEN_bp 5 /* Compare or Capture B Enable bit position. */
5987 
5988 #define TC1_CCAEN_bm 0x10 /* Compare or Capture A Enable bit mask. */
5989 #define TC1_CCAEN_bp 4 /* Compare or Capture A Enable bit position. */
5990 
5991 #define TC1_WGMODE_gm 0x07 /* Waveform generation mode group mask. */
5992 #define TC1_WGMODE_gp 0 /* Waveform generation mode group position. */
5993 #define TC1_WGMODE0_bm (1<<0) /* Waveform generation mode bit 0 mask. */
5994 #define TC1_WGMODE0_bp 0 /* Waveform generation mode bit 0 position. */
5995 #define TC1_WGMODE1_bm (1<<1) /* Waveform generation mode bit 1 mask. */
5996 #define TC1_WGMODE1_bp 1 /* Waveform generation mode bit 1 position. */
5997 #define TC1_WGMODE2_bm (1<<2) /* Waveform generation mode bit 2 mask. */
5998 #define TC1_WGMODE2_bp 2 /* Waveform generation mode bit 2 position. */
5999 
6000 
6001 /* TC1.CTRLC bit masks and bit positions */
6002 #define TC1_CMPB_bm 0x02 /* Compare B Output Value bit mask. */
6003 #define TC1_CMPB_bp 1 /* Compare B Output Value bit position. */
6004 
6005 #define TC1_CMPA_bm 0x01 /* Compare A Output Value bit mask. */
6006 #define TC1_CMPA_bp 0 /* Compare A Output Value bit position. */
6007 
6008 
6009 /* TC1.CTRLD bit masks and bit positions */
6010 #define TC1_EVACT_gm 0xE0 /* Event Action group mask. */
6011 #define TC1_EVACT_gp 5 /* Event Action group position. */
6012 #define TC1_EVACT0_bm (1<<5) /* Event Action bit 0 mask. */
6013 #define TC1_EVACT0_bp 5 /* Event Action bit 0 position. */
6014 #define TC1_EVACT1_bm (1<<6) /* Event Action bit 1 mask. */
6015 #define TC1_EVACT1_bp 6 /* Event Action bit 1 position. */
6016 #define TC1_EVACT2_bm (1<<7) /* Event Action bit 2 mask. */
6017 #define TC1_EVACT2_bp 7 /* Event Action bit 2 position. */
6018 
6019 #define TC1_EVDLY_bm 0x10 /* Event Delay bit mask. */
6020 #define TC1_EVDLY_bp 4 /* Event Delay bit position. */
6021 
6022 #define TC1_EVSEL_gm 0x0F /* Event Source Select group mask. */
6023 #define TC1_EVSEL_gp 0 /* Event Source Select group position. */
6024 #define TC1_EVSEL0_bm (1<<0) /* Event Source Select bit 0 mask. */
6025 #define TC1_EVSEL0_bp 0 /* Event Source Select bit 0 position. */
6026 #define TC1_EVSEL1_bm (1<<1) /* Event Source Select bit 1 mask. */
6027 #define TC1_EVSEL1_bp 1 /* Event Source Select bit 1 position. */
6028 #define TC1_EVSEL2_bm (1<<2) /* Event Source Select bit 2 mask. */
6029 #define TC1_EVSEL2_bp 2 /* Event Source Select bit 2 position. */
6030 #define TC1_EVSEL3_bm (1<<3) /* Event Source Select bit 3 mask. */
6031 #define TC1_EVSEL3_bp 3 /* Event Source Select bit 3 position. */
6032 
6033 
6034 /* TC1.CTRLE bit masks and bit positions */
6035 #define TC1_DTHM_bm 0x02 /* Dead Time Hold Mode bit mask. */
6036 #define TC1_DTHM_bp 1 /* Dead Time Hold Mode bit position. */
6037 
6038 #define TC1_BYTEM_bm 0x01 /* Byte Mode bit mask. */
6039 #define TC1_BYTEM_bp 0 /* Byte Mode bit position. */
6040 
6041 
6042 /* TC1.INTCTRLA bit masks and bit positions */
6043 #define TC1_ERRINTLVL_gm 0x0C /* Error Interrupt Level group mask. */
6044 #define TC1_ERRINTLVL_gp 2 /* Error Interrupt Level group position. */
6045 #define TC1_ERRINTLVL0_bm (1<<2) /* Error Interrupt Level bit 0 mask. */
6046 #define TC1_ERRINTLVL0_bp 2 /* Error Interrupt Level bit 0 position. */
6047 #define TC1_ERRINTLVL1_bm (1<<3) /* Error Interrupt Level bit 1 mask. */
6048 #define TC1_ERRINTLVL1_bp 3 /* Error Interrupt Level bit 1 position. */
6049 
6050 #define TC1_OVFINTLVL_gm 0x03 /* Overflow interrupt level group mask. */
6051 #define TC1_OVFINTLVL_gp 0 /* Overflow interrupt level group position. */
6052 #define TC1_OVFINTLVL0_bm (1<<0) /* Overflow interrupt level bit 0 mask. */
6053 #define TC1_OVFINTLVL0_bp 0 /* Overflow interrupt level bit 0 position. */
6054 #define TC1_OVFINTLVL1_bm (1<<1) /* Overflow interrupt level bit 1 mask. */
6055 #define TC1_OVFINTLVL1_bp 1 /* Overflow interrupt level bit 1 position. */
6056 
6057 
6058 /* TC1.INTCTRLB bit masks and bit positions */
6059 #define TC1_CCBINTLVL_gm 0x0C /* Compare or Capture B Interrupt Level group mask. */
6060 #define TC1_CCBINTLVL_gp 2 /* Compare or Capture B Interrupt Level group position. */
6061 #define TC1_CCBINTLVL0_bm (1<<2) /* Compare or Capture B Interrupt Level bit 0 mask. */
6062 #define TC1_CCBINTLVL0_bp 2 /* Compare or Capture B Interrupt Level bit 0 position. */
6063 #define TC1_CCBINTLVL1_bm (1<<3) /* Compare or Capture B Interrupt Level bit 1 mask. */
6064 #define TC1_CCBINTLVL1_bp 3 /* Compare or Capture B Interrupt Level bit 1 position. */
6065 
6066 #define TC1_CCAINTLVL_gm 0x03 /* Compare or Capture A Interrupt Level group mask. */
6067 #define TC1_CCAINTLVL_gp 0 /* Compare or Capture A Interrupt Level group position. */
6068 #define TC1_CCAINTLVL0_bm (1<<0) /* Compare or Capture A Interrupt Level bit 0 mask. */
6069 #define TC1_CCAINTLVL0_bp 0 /* Compare or Capture A Interrupt Level bit 0 position. */
6070 #define TC1_CCAINTLVL1_bm (1<<1) /* Compare or Capture A Interrupt Level bit 1 mask. */
6071 #define TC1_CCAINTLVL1_bp 1 /* Compare or Capture A Interrupt Level bit 1 position. */
6072 
6073 
6074 /* TC1.CTRLFCLR bit masks and bit positions */
6075 #define TC1_CMD_gm 0x0C /* Command group mask. */
6076 #define TC1_CMD_gp 2 /* Command group position. */
6077 #define TC1_CMD0_bm (1<<2) /* Command bit 0 mask. */
6078 #define TC1_CMD0_bp 2 /* Command bit 0 position. */
6079 #define TC1_CMD1_bm (1<<3) /* Command bit 1 mask. */
6080 #define TC1_CMD1_bp 3 /* Command bit 1 position. */
6081 
6082 #define TC1_LUPD_bm 0x02 /* Lock Update bit mask. */
6083 #define TC1_LUPD_bp 1 /* Lock Update bit position. */
6084 
6085 #define TC1_DIR_bm 0x01 /* Direction bit mask. */
6086 #define TC1_DIR_bp 0 /* Direction bit position. */
6087 
6088 
6089 /* TC1.CTRLFSET bit masks and bit positions */
6090 /* TC1_CMD_gm Predefined. */
6091 /* TC1_CMD_gp Predefined. */
6092 /* TC1_CMD0_bm Predefined. */
6093 /* TC1_CMD0_bp Predefined. */
6094 /* TC1_CMD1_bm Predefined. */
6095 /* TC1_CMD1_bp Predefined. */
6096 
6097 /* TC1_LUPD_bm Predefined. */
6098 /* TC1_LUPD_bp Predefined. */
6099 
6100 /* TC1_DIR_bm Predefined. */
6101 /* TC1_DIR_bp Predefined. */
6102 
6103 
6104 /* TC1.CTRLGCLR bit masks and bit positions */
6105 #define TC1_CCBBV_bm 0x04 /* Compare or Capture B Buffer Valid bit mask. */
6106 #define TC1_CCBBV_bp 2 /* Compare or Capture B Buffer Valid bit position. */
6107 
6108 #define TC1_CCABV_bm 0x02 /* Compare or Capture A Buffer Valid bit mask. */
6109 #define TC1_CCABV_bp 1 /* Compare or Capture A Buffer Valid bit position. */
6110 
6111 #define TC1_PERBV_bm 0x01 /* Period Buffer Valid bit mask. */
6112 #define TC1_PERBV_bp 0 /* Period Buffer Valid bit position. */
6113 
6114 
6115 /* TC1.CTRLGSET bit masks and bit positions */
6116 /* TC1_CCBBV_bm Predefined. */
6117 /* TC1_CCBBV_bp Predefined. */
6118 
6119 /* TC1_CCABV_bm Predefined. */
6120 /* TC1_CCABV_bp Predefined. */
6121 
6122 /* TC1_PERBV_bm Predefined. */
6123 /* TC1_PERBV_bp Predefined. */
6124 
6125 
6126 /* TC1.INTFLAGS bit masks and bit positions */
6127 #define TC1_CCBIF_bm 0x20 /* Compare or Capture B Interrupt Flag bit mask. */
6128 #define TC1_CCBIF_bp 5 /* Compare or Capture B Interrupt Flag bit position. */
6129 
6130 #define TC1_CCAIF_bm 0x10 /* Compare or Capture A Interrupt Flag bit mask. */
6131 #define TC1_CCAIF_bp 4 /* Compare or Capture A Interrupt Flag bit position. */
6132 
6133 #define TC1_ERRIF_bm 0x02 /* Error Interrupt Flag bit mask. */
6134 #define TC1_ERRIF_bp 1 /* Error Interrupt Flag bit position. */
6135 
6136 #define TC1_OVFIF_bm 0x01 /* Overflow Interrupt Flag bit mask. */
6137 #define TC1_OVFIF_bp 0 /* Overflow Interrupt Flag bit position. */
6138 
6139 
6140 /* AWEX.CTRL bit masks and bit positions */
6141 #define AWEX_PGM_bm 0x20 /* Pattern Generation Mode bit mask. */
6142 #define AWEX_PGM_bp 5 /* Pattern Generation Mode bit position. */
6143 
6144 #define AWEX_CWCM_bm 0x10 /* Common Waveform Channel Mode bit mask. */
6145 #define AWEX_CWCM_bp 4 /* Common Waveform Channel Mode bit position. */
6146 
6147 #define AWEX_DTICCDEN_bm 0x08 /* Dead Time Insertion Compare Channel D Enable bit mask. */
6148 #define AWEX_DTICCDEN_bp 3 /* Dead Time Insertion Compare Channel D Enable bit position. */
6149 
6150 #define AWEX_DTICCCEN_bm 0x04 /* Dead Time Insertion Compare Channel C Enable bit mask. */
6151 #define AWEX_DTICCCEN_bp 2 /* Dead Time Insertion Compare Channel C Enable bit position. */
6152 
6153 #define AWEX_DTICCBEN_bm 0x02 /* Dead Time Insertion Compare Channel B Enable bit mask. */
6154 #define AWEX_DTICCBEN_bp 1 /* Dead Time Insertion Compare Channel B Enable bit position. */
6155 
6156 #define AWEX_DTICCAEN_bm 0x01 /* Dead Time Insertion Compare Channel A Enable bit mask. */
6157 #define AWEX_DTICCAEN_bp 0 /* Dead Time Insertion Compare Channel A Enable bit position. */
6158 
6159 
6160 /* AWEX.FDCTRL bit masks and bit positions */
6161 #define AWEX_FDDBD_bm 0x10 /* Fault Detect on Disable Break Disable bit mask. */
6162 #define AWEX_FDDBD_bp 4 /* Fault Detect on Disable Break Disable bit position. */
6163 
6164 #define AWEX_FDMODE_bm 0x04 /* Fault Detect Mode bit mask. */
6165 #define AWEX_FDMODE_bp 2 /* Fault Detect Mode bit position. */
6166 
6167 #define AWEX_FDACT_gm 0x03 /* Fault Detect Action group mask. */
6168 #define AWEX_FDACT_gp 0 /* Fault Detect Action group position. */
6169 #define AWEX_FDACT0_bm (1<<0) /* Fault Detect Action bit 0 mask. */
6170 #define AWEX_FDACT0_bp 0 /* Fault Detect Action bit 0 position. */
6171 #define AWEX_FDACT1_bm (1<<1) /* Fault Detect Action bit 1 mask. */
6172 #define AWEX_FDACT1_bp 1 /* Fault Detect Action bit 1 position. */
6173 
6174 
6175 /* AWEX.STATUS bit masks and bit positions */
6176 #define AWEX_FDF_bm 0x04 /* Fault Detect Flag bit mask. */
6177 #define AWEX_FDF_bp 2 /* Fault Detect Flag bit position. */
6178 
6179 #define AWEX_DTHSBUFV_bm 0x02 /* Dead Time High Side Buffer Valid bit mask. */
6180 #define AWEX_DTHSBUFV_bp 1 /* Dead Time High Side Buffer Valid bit position. */
6181 
6182 #define AWEX_DTLSBUFV_bm 0x01 /* Dead Time Low Side Buffer Valid bit mask. */
6183 #define AWEX_DTLSBUFV_bp 0 /* Dead Time Low Side Buffer Valid bit position. */
6184 
6185 
6186 /* HIRES.CTRL bit masks and bit positions */
6187 #define HIRES_HREN_gm 0x03 /* High Resolution Enable group mask. */
6188 #define HIRES_HREN_gp 0 /* High Resolution Enable group position. */
6189 #define HIRES_HREN0_bm (1<<0) /* High Resolution Enable bit 0 mask. */
6190 #define HIRES_HREN0_bp 0 /* High Resolution Enable bit 0 position. */
6191 #define HIRES_HREN1_bm (1<<1) /* High Resolution Enable bit 1 mask. */
6192 #define HIRES_HREN1_bp 1 /* High Resolution Enable bit 1 position. */
6193 
6194 
6195 /* USART - Universal Asynchronous Receiver-Transmitter */
6196 /* USART.STATUS bit masks and bit positions */
6197 #define USART_RXCIF_bm 0x80 /* Receive Interrupt Flag bit mask. */
6198 #define USART_RXCIF_bp 7 /* Receive Interrupt Flag bit position. */
6199 
6200 #define USART_TXCIF_bm 0x40 /* Transmit Interrupt Flag bit mask. */
6201 #define USART_TXCIF_bp 6 /* Transmit Interrupt Flag bit position. */
6202 
6203 #define USART_DREIF_bm 0x20 /* Data Register Empty Flag bit mask. */
6204 #define USART_DREIF_bp 5 /* Data Register Empty Flag bit position. */
6205 
6206 #define USART_FERR_bm 0x10 /* Frame Error bit mask. */
6207 #define USART_FERR_bp 4 /* Frame Error bit position. */
6208 
6209 #define USART_BUFOVF_bm 0x08 /* Buffer Overflow bit mask. */
6210 #define USART_BUFOVF_bp 3 /* Buffer Overflow bit position. */
6211 
6212 #define USART_PERR_bm 0x04 /* Parity Error bit mask. */
6213 #define USART_PERR_bp 2 /* Parity Error bit position. */
6214 
6215 #define USART_RXB8_bm 0x01 /* Receive Bit 8 bit mask. */
6216 #define USART_RXB8_bp 0 /* Receive Bit 8 bit position. */
6217 
6218 
6219 /* USART.CTRLA bit masks and bit positions */
6220 #define USART_RXCINTLVL_gm 0x30 /* Receive Interrupt Level group mask. */
6221 #define USART_RXCINTLVL_gp 4 /* Receive Interrupt Level group position. */
6222 #define USART_RXCINTLVL0_bm (1<<4) /* Receive Interrupt Level bit 0 mask. */
6223 #define USART_RXCINTLVL0_bp 4 /* Receive Interrupt Level bit 0 position. */
6224 #define USART_RXCINTLVL1_bm (1<<5) /* Receive Interrupt Level bit 1 mask. */
6225 #define USART_RXCINTLVL1_bp 5 /* Receive Interrupt Level bit 1 position. */
6226 
6227 #define USART_TXCINTLVL_gm 0x0C /* Transmit Interrupt Level group mask. */
6228 #define USART_TXCINTLVL_gp 2 /* Transmit Interrupt Level group position. */
6229 #define USART_TXCINTLVL0_bm (1<<2) /* Transmit Interrupt Level bit 0 mask. */
6230 #define USART_TXCINTLVL0_bp 2 /* Transmit Interrupt Level bit 0 position. */
6231 #define USART_TXCINTLVL1_bm (1<<3) /* Transmit Interrupt Level bit 1 mask. */
6232 #define USART_TXCINTLVL1_bp 3 /* Transmit Interrupt Level bit 1 position. */
6233 
6234 #define USART_DREINTLVL_gm 0x03 /* Data Register Empty Interrupt Level group mask. */
6235 #define USART_DREINTLVL_gp 0 /* Data Register Empty Interrupt Level group position. */
6236 #define USART_DREINTLVL0_bm (1<<0) /* Data Register Empty Interrupt Level bit 0 mask. */
6237 #define USART_DREINTLVL0_bp 0 /* Data Register Empty Interrupt Level bit 0 position. */
6238 #define USART_DREINTLVL1_bm (1<<1) /* Data Register Empty Interrupt Level bit 1 mask. */
6239 #define USART_DREINTLVL1_bp 1 /* Data Register Empty Interrupt Level bit 1 position. */
6240 
6241 
6242 /* USART.CTRLB bit masks and bit positions */
6243 #define USART_RXEN_bm 0x10 /* Receiver Enable bit mask. */
6244 #define USART_RXEN_bp 4 /* Receiver Enable bit position. */
6245 
6246 #define USART_TXEN_bm 0x08 /* Transmitter Enable bit mask. */
6247 #define USART_TXEN_bp 3 /* Transmitter Enable bit position. */
6248 
6249 #define USART_CLK2X_bm 0x04 /* Double transmission speed bit mask. */
6250 #define USART_CLK2X_bp 2 /* Double transmission speed bit position. */
6251 
6252 #define USART_MPCM_bm 0x02 /* Multi-processor Communication Mode bit mask. */
6253 #define USART_MPCM_bp 1 /* Multi-processor Communication Mode bit position. */
6254 
6255 #define USART_TXB8_bm 0x01 /* Transmit bit 8 bit mask. */
6256 #define USART_TXB8_bp 0 /* Transmit bit 8 bit position. */
6257 
6258 
6259 /* USART.CTRLC bit masks and bit positions */
6260 #define USART_CMODE_gm 0xC0 /* Communication Mode group mask. */
6261 #define USART_CMODE_gp 6 /* Communication Mode group position. */
6262 #define USART_CMODE0_bm (1<<6) /* Communication Mode bit 0 mask. */
6263 #define USART_CMODE0_bp 6 /* Communication Mode bit 0 position. */
6264 #define USART_CMODE1_bm (1<<7) /* Communication Mode bit 1 mask. */
6265 #define USART_CMODE1_bp 7 /* Communication Mode bit 1 position. */
6266 
6267 #define USART_PMODE_gm 0x30 /* Parity Mode group mask. */
6268 #define USART_PMODE_gp 4 /* Parity Mode group position. */
6269 #define USART_PMODE0_bm (1<<4) /* Parity Mode bit 0 mask. */
6270 #define USART_PMODE0_bp 4 /* Parity Mode bit 0 position. */
6271 #define USART_PMODE1_bm (1<<5) /* Parity Mode bit 1 mask. */
6272 #define USART_PMODE1_bp 5 /* Parity Mode bit 1 position. */
6273 
6274 #define USART_SBMODE_bm 0x08 /* Stop Bit Mode bit mask. */
6275 #define USART_SBMODE_bp 3 /* Stop Bit Mode bit position. */
6276 
6277 #define USART_CHSIZE_gm 0x07 /* Character Size group mask. */
6278 #define USART_CHSIZE_gp 0 /* Character Size group position. */
6279 #define USART_CHSIZE0_bm (1<<0) /* Character Size bit 0 mask. */
6280 #define USART_CHSIZE0_bp 0 /* Character Size bit 0 position. */
6281 #define USART_CHSIZE1_bm (1<<1) /* Character Size bit 1 mask. */
6282 #define USART_CHSIZE1_bp 1 /* Character Size bit 1 position. */
6283 #define USART_CHSIZE2_bm (1<<2) /* Character Size bit 2 mask. */
6284 #define USART_CHSIZE2_bp 2 /* Character Size bit 2 position. */
6285 
6286 
6287 /* USART.BAUDCTRLA bit masks and bit positions */
6288 #define USART_BSEL_gm 0xFF /* Baud Rate Selection Bits [7:0] group mask. */
6289 #define USART_BSEL_gp 0 /* Baud Rate Selection Bits [7:0] group position. */
6290 #define USART_BSEL0_bm (1<<0) /* Baud Rate Selection Bits [7:0] bit 0 mask. */
6291 #define USART_BSEL0_bp 0 /* Baud Rate Selection Bits [7:0] bit 0 position. */
6292 #define USART_BSEL1_bm (1<<1) /* Baud Rate Selection Bits [7:0] bit 1 mask. */
6293 #define USART_BSEL1_bp 1 /* Baud Rate Selection Bits [7:0] bit 1 position. */
6294 #define USART_BSEL2_bm (1<<2) /* Baud Rate Selection Bits [7:0] bit 2 mask. */
6295 #define USART_BSEL2_bp 2 /* Baud Rate Selection Bits [7:0] bit 2 position. */
6296 #define USART_BSEL3_bm (1<<3) /* Baud Rate Selection Bits [7:0] bit 3 mask. */
6297 #define USART_BSEL3_bp 3 /* Baud Rate Selection Bits [7:0] bit 3 position. */
6298 #define USART_BSEL4_bm (1<<4) /* Baud Rate Selection Bits [7:0] bit 4 mask. */
6299 #define USART_BSEL4_bp 4 /* Baud Rate Selection Bits [7:0] bit 4 position. */
6300 #define USART_BSEL5_bm (1<<5) /* Baud Rate Selection Bits [7:0] bit 5 mask. */
6301 #define USART_BSEL5_bp 5 /* Baud Rate Selection Bits [7:0] bit 5 position. */
6302 #define USART_BSEL6_bm (1<<6) /* Baud Rate Selection Bits [7:0] bit 6 mask. */
6303 #define USART_BSEL6_bp 6 /* Baud Rate Selection Bits [7:0] bit 6 position. */
6304 #define USART_BSEL7_bm (1<<7) /* Baud Rate Selection Bits [7:0] bit 7 mask. */
6305 #define USART_BSEL7_bp 7 /* Baud Rate Selection Bits [7:0] bit 7 position. */
6306 
6307 
6308 /* USART.BAUDCTRLB bit masks and bit positions */
6309 #define USART_BSCALE_gm 0xF0 /* Baud Rate Scale group mask. */
6310 #define USART_BSCALE_gp 4 /* Baud Rate Scale group position. */
6311 #define USART_BSCALE0_bm (1<<4) /* Baud Rate Scale bit 0 mask. */
6312 #define USART_BSCALE0_bp 4 /* Baud Rate Scale bit 0 position. */
6313 #define USART_BSCALE1_bm (1<<5) /* Baud Rate Scale bit 1 mask. */
6314 #define USART_BSCALE1_bp 5 /* Baud Rate Scale bit 1 position. */
6315 #define USART_BSCALE2_bm (1<<6) /* Baud Rate Scale bit 2 mask. */
6316 #define USART_BSCALE2_bp 6 /* Baud Rate Scale bit 2 position. */
6317 #define USART_BSCALE3_bm (1<<7) /* Baud Rate Scale bit 3 mask. */
6318 #define USART_BSCALE3_bp 7 /* Baud Rate Scale bit 3 position. */
6319 
6320 /* USART_BSEL_gm Predefined. */
6321 /* USART_BSEL_gp Predefined. */
6322 /* USART_BSEL0_bm Predefined. */
6323 /* USART_BSEL0_bp Predefined. */
6324 /* USART_BSEL1_bm Predefined. */
6325 /* USART_BSEL1_bp Predefined. */
6326 /* USART_BSEL2_bm Predefined. */
6327 /* USART_BSEL2_bp Predefined. */
6328 /* USART_BSEL3_bm Predefined. */
6329 /* USART_BSEL3_bp Predefined. */
6330 
6331 
6332 /* SPI - Serial Peripheral Interface */
6333 /* SPI.CTRL bit masks and bit positions */
6334 #define SPI_CLK2X_bm 0x80 /* Enable Double Speed bit mask. */
6335 #define SPI_CLK2X_bp 7 /* Enable Double Speed bit position. */
6336 
6337 #define SPI_ENABLE_bm 0x40 /* Enable Module bit mask. */
6338 #define SPI_ENABLE_bp 6 /* Enable Module bit position. */
6339 
6340 #define SPI_DORD_bm 0x20 /* Data Order Setting bit mask. */
6341 #define SPI_DORD_bp 5 /* Data Order Setting bit position. */
6342 
6343 #define SPI_MASTER_bm 0x10 /* Master Operation Enable bit mask. */
6344 #define SPI_MASTER_bp 4 /* Master Operation Enable bit position. */
6345 
6346 #define SPI_MODE_gm 0x0C /* SPI Mode group mask. */
6347 #define SPI_MODE_gp 2 /* SPI Mode group position. */
6348 #define SPI_MODE0_bm (1<<2) /* SPI Mode bit 0 mask. */
6349 #define SPI_MODE0_bp 2 /* SPI Mode bit 0 position. */
6350 #define SPI_MODE1_bm (1<<3) /* SPI Mode bit 1 mask. */
6351 #define SPI_MODE1_bp 3 /* SPI Mode bit 1 position. */
6352 
6353 #define SPI_PRESCALER_gm 0x03 /* Prescaler group mask. */
6354 #define SPI_PRESCALER_gp 0 /* Prescaler group position. */
6355 #define SPI_PRESCALER0_bm (1<<0) /* Prescaler bit 0 mask. */
6356 #define SPI_PRESCALER0_bp 0 /* Prescaler bit 0 position. */
6357 #define SPI_PRESCALER1_bm (1<<1) /* Prescaler bit 1 mask. */
6358 #define SPI_PRESCALER1_bp 1 /* Prescaler bit 1 position. */
6359 
6360 
6361 /* SPI.INTCTRL bit masks and bit positions */
6362 #define SPI_INTLVL_gm 0x03 /* Interrupt level group mask. */
6363 #define SPI_INTLVL_gp 0 /* Interrupt level group position. */
6364 #define SPI_INTLVL0_bm (1<<0) /* Interrupt level bit 0 mask. */
6365 #define SPI_INTLVL0_bp 0 /* Interrupt level bit 0 position. */
6366 #define SPI_INTLVL1_bm (1<<1) /* Interrupt level bit 1 mask. */
6367 #define SPI_INTLVL1_bp 1 /* Interrupt level bit 1 position. */
6368 
6369 
6370 /* SPI.STATUS bit masks and bit positions */
6371 #define SPI_IF_bm 0x80 /* Interrupt Flag bit mask. */
6372 #define SPI_IF_bp 7 /* Interrupt Flag bit position. */
6373 
6374 #define SPI_WRCOL_bm 0x40 /* Write Collision bit mask. */
6375 #define SPI_WRCOL_bp 6 /* Write Collision bit position. */
6376 
6377 
6378 /* IRCOM - IR Communication Module */
6379 /* IRCOM.CTRL bit masks and bit positions */
6380 #define IRCOM_EVSEL_gm 0x0F /* Event Channel Select group mask. */
6381 #define IRCOM_EVSEL_gp 0 /* Event Channel Select group position. */
6382 #define IRCOM_EVSEL0_bm (1<<0) /* Event Channel Select bit 0 mask. */
6383 #define IRCOM_EVSEL0_bp 0 /* Event Channel Select bit 0 position. */
6384 #define IRCOM_EVSEL1_bm (1<<1) /* Event Channel Select bit 1 mask. */
6385 #define IRCOM_EVSEL1_bp 1 /* Event Channel Select bit 1 position. */
6386 #define IRCOM_EVSEL2_bm (1<<2) /* Event Channel Select bit 2 mask. */
6387 #define IRCOM_EVSEL2_bp 2 /* Event Channel Select bit 2 position. */
6388 #define IRCOM_EVSEL3_bm (1<<3) /* Event Channel Select bit 3 mask. */
6389 #define IRCOM_EVSEL3_bp 3 /* Event Channel Select bit 3 position. */
6390 
6391 
6392 /* AES - AES Module */
6393 /* AES.CTRL bit masks and bit positions */
6394 #define AES_START_bm 0x80 /* Start/Run bit mask. */
6395 #define AES_START_bp 7 /* Start/Run bit position. */
6396 
6397 #define AES_AUTO_bm 0x40 /* Auto Start Trigger bit mask. */
6398 #define AES_AUTO_bp 6 /* Auto Start Trigger bit position. */
6399 
6400 #define AES_RESET_bm 0x20 /* AES Software Reset bit mask. */
6401 #define AES_RESET_bp 5 /* AES Software Reset bit position. */
6402 
6403 #define AES_DECRYPT_bm 0x10 /* Decryption / Direction bit mask. */
6404 #define AES_DECRYPT_bp 4 /* Decryption / Direction bit position. */
6405 
6406 #define AES_XOR_bm 0x04 /* State XOR Load Enable bit mask. */
6407 #define AES_XOR_bp 2 /* State XOR Load Enable bit position. */
6408 
6409 
6410 /* AES.STATUS bit masks and bit positions */
6411 #define AES_ERROR_bm 0x80 /* AES Error bit mask. */
6412 #define AES_ERROR_bp 7 /* AES Error bit position. */
6413 
6414 #define AES_SRIF_bm 0x01 /* State Ready Interrupt Flag bit mask. */
6415 #define AES_SRIF_bp 0 /* State Ready Interrupt Flag bit position. */
6416 
6417 
6418 /* AES.INTCTRL bit masks and bit positions */
6419 #define AES_INTLVL_gm 0x03 /* Interrupt level group mask. */
6420 #define AES_INTLVL_gp 0 /* Interrupt level group position. */
6421 #define AES_INTLVL0_bm (1<<0) /* Interrupt level bit 0 mask. */
6422 #define AES_INTLVL0_bp 0 /* Interrupt level bit 0 position. */
6423 #define AES_INTLVL1_bm (1<<1) /* Interrupt level bit 1 mask. */
6424 #define AES_INTLVL1_bp 1 /* Interrupt level bit 1 position. */
6425 
6426 
6427 /* VBAT - VBAT Battery Backup Module */
6428 /* VBAT.CTRL bit masks and bit positions */
6429 #define VBAT_XOSCSEL_bm 0x10 /* 32-kHz Crystal Oscillator Output Selection bit mask. */
6430 #define VBAT_XOSCSEL_bp 4 /* 32-kHz Crystal Oscillator Output Selection bit position. */
6431 
6432 #define VBAT_XOSCEN_bm 0x08 /* Crystal Oscillator Enable bit mask. */
6433 #define VBAT_XOSCEN_bp 3 /* Crystal Oscillator Enable bit position. */
6434 
6435 #define VBAT_XOSCFDEN_bm 0x04 /* Crystal Oscillator Failure Detection Monitor Enable bit mask. */
6436 #define VBAT_XOSCFDEN_bp 2 /* Crystal Oscillator Failure Detection Monitor Enable bit position. */
6437 
6438 #define VBAT_ACCEN_bm 0x02 /* Battery Backup Access Enable bit mask. */
6439 #define VBAT_ACCEN_bp 1 /* Battery Backup Access Enable bit position. */
6440 
6441 #define VBAT_RESET_bm 0x01 /* Battery Backup Reset bit mask. */
6442 #define VBAT_RESET_bp 0 /* Battery Backup Reset bit position. */
6443 
6444 
6445 /* VBAT.STATUS bit masks and bit positions */
6446 #define VBAT_BBPWR_bm 0x80 /* Battery backup Power bit mask. */
6447 #define VBAT_BBPWR_bp 7 /* Battery backup Power bit position. */
6448 
6449 #define VBAT_XOSCRDY_bm 0x08 /* Crystal Oscillator Ready bit mask. */
6450 #define VBAT_XOSCRDY_bp 3 /* Crystal Oscillator Ready bit position. */
6451 
6452 #define VBAT_XOSCFAIL_bm 0x04 /* Crystal Oscillator Failure bit mask. */
6453 #define VBAT_XOSCFAIL_bp 2 /* Crystal Oscillator Failure bit position. */
6454 
6455 #define VBAT_BBBORF_bm 0x02 /* Battery Backup Brown-Out Reset Flag bit mask. */
6456 #define VBAT_BBBORF_bp 1 /* Battery Backup Brown-Out Reset Flag bit position. */
6457 
6458 #define VBAT_BBPORF_bm 0x01 /* Battery Backup Power-On Reset Flag bit mask. */
6459 #define VBAT_BBPORF_bp 0 /* Battery Backup Power-On Reset Flag bit position. */
6460 
6461 
6462 
6463 // Generic Port Pins
6464 
6465 #define PIN0_bm 0x01
6466 #define PIN0_bp 0
6467 #define PIN1_bm 0x02
6468 #define PIN1_bp 1
6469 #define PIN2_bm 0x04
6470 #define PIN2_bp 2
6471 #define PIN3_bm 0x08
6472 #define PIN3_bp 3
6473 #define PIN4_bm 0x10
6474 #define PIN4_bp 4
6475 #define PIN5_bm 0x20
6476 #define PIN5_bp 5
6477 #define PIN6_bm 0x40
6478 #define PIN6_bp 6
6479 #define PIN7_bm 0x80
6480 #define PIN7_bp 7
6481 
6482 
6483 /* ========== Interrupt Vector Definitions ========== */
6484 /* Vector 0 is the reset vector */
6485 
6486 /* OSC interrupt vectors */
6487 #define OSC_XOSCF_vect_num 1
6488 #define OSC_XOSCF_vect _VECTOR(1) /* External Oscillator Failure Interrupt (NMI) */
6489 
6490 /* PORTC interrupt vectors */
6491 #define PORTC_INT0_vect_num 2
6492 #define PORTC_INT0_vect _VECTOR(2) /* External Interrupt 0 */
6493 #define PORTC_INT1_vect_num 3
6494 #define PORTC_INT1_vect _VECTOR(3) /* External Interrupt 1 */
6495 
6496 /* PORTR interrupt vectors */
6497 #define PORTR_INT0_vect_num 4
6498 #define PORTR_INT0_vect _VECTOR(4) /* External Interrupt 0 */
6499 #define PORTR_INT1_vect_num 5
6500 #define PORTR_INT1_vect _VECTOR(5) /* External Interrupt 1 */
6501 
6502 /* DMA interrupt vectors */
6503 #define DMA_CH0_vect_num 6
6504 #define DMA_CH0_vect _VECTOR(6) /* Channel 0 Interrupt */
6505 #define DMA_CH1_vect_num 7
6506 #define DMA_CH1_vect _VECTOR(7) /* Channel 1 Interrupt */
6507 #define DMA_CH2_vect_num 8
6508 #define DMA_CH2_vect _VECTOR(8) /* Channel 2 Interrupt */
6509 #define DMA_CH3_vect_num 9
6510 #define DMA_CH3_vect _VECTOR(9) /* Channel 3 Interrupt */
6511 
6512 /* RTC32 interrupt vectors */
6513 #define RTC32_OVF_vect_num 10
6514 #define RTC32_OVF_vect _VECTOR(10) /* Overflow Interrupt */
6515 #define RTC32_COMP_vect_num 11
6516 #define RTC32_COMP_vect _VECTOR(11) /* Compare Interrupt */
6517 
6518 /* TWIC interrupt vectors */
6519 #define TWIC_TWIS_vect_num 12
6520 #define TWIC_TWIS_vect _VECTOR(12) /* TWI Slave Interrupt */
6521 #define TWIC_TWIM_vect_num 13
6522 #define TWIC_TWIM_vect _VECTOR(13) /* TWI Master Interrupt */
6523 
6524 /* TCC0 interrupt vectors */
6525 #define TCC0_OVF_vect_num 14
6526 #define TCC0_OVF_vect _VECTOR(14) /* Overflow Interrupt */
6527 #define TCC0_ERR_vect_num 15
6528 #define TCC0_ERR_vect _VECTOR(15) /* Error Interrupt */
6529 #define TCC0_CCA_vect_num 16
6530 #define TCC0_CCA_vect _VECTOR(16) /* Compare or Capture A Interrupt */
6531 #define TCC0_CCB_vect_num 17
6532 #define TCC0_CCB_vect _VECTOR(17) /* Compare or Capture B Interrupt */
6533 #define TCC0_CCC_vect_num 18
6534 #define TCC0_CCC_vect _VECTOR(18) /* Compare or Capture C Interrupt */
6535 #define TCC0_CCD_vect_num 19
6536 #define TCC0_CCD_vect _VECTOR(19) /* Compare or Capture D Interrupt */
6537 
6538 /* TCC1 interrupt vectors */
6539 #define TCC1_OVF_vect_num 20
6540 #define TCC1_OVF_vect _VECTOR(20) /* Overflow Interrupt */
6541 #define TCC1_ERR_vect_num 21
6542 #define TCC1_ERR_vect _VECTOR(21) /* Error Interrupt */
6543 #define TCC1_CCA_vect_num 22
6544 #define TCC1_CCA_vect _VECTOR(22) /* Compare or Capture A Interrupt */
6545 #define TCC1_CCB_vect_num 23
6546 #define TCC1_CCB_vect _VECTOR(23) /* Compare or Capture B Interrupt */
6547 
6548 /* SPIC interrupt vectors */
6549 #define SPIC_INT_vect_num 24
6550 #define SPIC_INT_vect _VECTOR(24) /* SPI Interrupt */
6551 
6552 /* USARTC0 interrupt vectors */
6553 #define USARTC0_RXC_vect_num 25
6554 #define USARTC0_RXC_vect _VECTOR(25) /* Reception Complete Interrupt */
6555 #define USARTC0_DRE_vect_num 26
6556 #define USARTC0_DRE_vect _VECTOR(26) /* Data Register Empty Interrupt */
6557 #define USARTC0_TXC_vect_num 27
6558 #define USARTC0_TXC_vect _VECTOR(27) /* Transmission Complete Interrupt */
6559 
6560 /* USARTC1 interrupt vectors */
6561 #define USARTC1_RXC_vect_num 28
6562 #define USARTC1_RXC_vect _VECTOR(28) /* Reception Complete Interrupt */
6563 #define USARTC1_DRE_vect_num 29
6564 #define USARTC1_DRE_vect _VECTOR(29) /* Data Register Empty Interrupt */
6565 #define USARTC1_TXC_vect_num 30
6566 #define USARTC1_TXC_vect _VECTOR(30) /* Transmission Complete Interrupt */
6567 
6568 /* AES interrupt vectors */
6569 #define AES_INT_vect_num 31
6570 #define AES_INT_vect _VECTOR(31) /* AES Interrupt */
6571 
6572 /* NVM interrupt vectors */
6573 #define NVM_EE_vect_num 32
6574 #define NVM_EE_vect _VECTOR(32) /* EE Interrupt */
6575 #define NVM_SPM_vect_num 33
6576 #define NVM_SPM_vect _VECTOR(33) /* SPM Interrupt */
6577 
6578 /* PORTB interrupt vectors */
6579 #define PORTB_INT0_vect_num 34
6580 #define PORTB_INT0_vect _VECTOR(34) /* External Interrupt 0 */
6581 #define PORTB_INT1_vect_num 35
6582 #define PORTB_INT1_vect _VECTOR(35) /* External Interrupt 1 */
6583 
6584 /* ACB interrupt vectors */
6585 #define ACB_AC0_vect_num 36
6586 #define ACB_AC0_vect _VECTOR(36) /* AC0 Interrupt */
6587 #define ACB_AC1_vect_num 37
6588 #define ACB_AC1_vect _VECTOR(37) /* AC1 Interrupt */
6589 #define ACB_ACW_vect_num 38
6590 #define ACB_ACW_vect _VECTOR(38) /* ACW Window Mode Interrupt */
6591 
6592 /* ADCB interrupt vectors */
6593 #define ADCB_CH0_vect_num 39
6594 #define ADCB_CH0_vect _VECTOR(39) /* Interrupt 0 */
6595 #define ADCB_CH1_vect_num 40
6596 #define ADCB_CH1_vect _VECTOR(40) /* Interrupt 1 */
6597 #define ADCB_CH2_vect_num 41
6598 #define ADCB_CH2_vect _VECTOR(41) /* Interrupt 2 */
6599 #define ADCB_CH3_vect_num 42
6600 #define ADCB_CH3_vect _VECTOR(42) /* Interrupt 3 */
6601 
6602 /* PORTE interrupt vectors */
6603 #define PORTE_INT0_vect_num 43
6604 #define PORTE_INT0_vect _VECTOR(43) /* External Interrupt 0 */
6605 #define PORTE_INT1_vect_num 44
6606 #define PORTE_INT1_vect _VECTOR(44) /* External Interrupt 1 */
6607 
6608 /* TWIE interrupt vectors */
6609 #define TWIE_TWIS_vect_num 45
6610 #define TWIE_TWIS_vect _VECTOR(45) /* TWI Slave Interrupt */
6611 #define TWIE_TWIM_vect_num 46
6612 #define TWIE_TWIM_vect _VECTOR(46) /* TWI Master Interrupt */
6613 
6614 /* TCE0 interrupt vectors */
6615 #define TCE0_OVF_vect_num 47
6616 #define TCE0_OVF_vect _VECTOR(47) /* Overflow Interrupt */
6617 #define TCE0_ERR_vect_num 48
6618 #define TCE0_ERR_vect _VECTOR(48) /* Error Interrupt */
6619 #define TCE0_CCA_vect_num 49
6620 #define TCE0_CCA_vect _VECTOR(49) /* Compare or Capture A Interrupt */
6621 #define TCE0_CCB_vect_num 50
6622 #define TCE0_CCB_vect _VECTOR(50) /* Compare or Capture B Interrupt */
6623 #define TCE0_CCC_vect_num 51
6624 #define TCE0_CCC_vect _VECTOR(51) /* Compare or Capture C Interrupt */
6625 #define TCE0_CCD_vect_num 52
6626 #define TCE0_CCD_vect _VECTOR(52) /* Compare or Capture D Interrupt */
6627 
6628 /* TCE1 interrupt vectors */
6629 #define TCE1_OVF_vect_num 53
6630 #define TCE1_OVF_vect _VECTOR(53) /* Overflow Interrupt */
6631 #define TCE1_ERR_vect_num 54
6632 #define TCE1_ERR_vect _VECTOR(54) /* Error Interrupt */
6633 #define TCE1_CCA_vect_num 55
6634 #define TCE1_CCA_vect _VECTOR(55) /* Compare or Capture A Interrupt */
6635 #define TCE1_CCB_vect_num 56
6636 #define TCE1_CCB_vect _VECTOR(56) /* Compare or Capture B Interrupt */
6637 
6638 /* USARTE0 interrupt vectors */
6639 #define USARTE0_RXC_vect_num 58
6640 #define USARTE0_RXC_vect _VECTOR(58) /* Reception Complete Interrupt */
6641 #define USARTE0_DRE_vect_num 59
6642 #define USARTE0_DRE_vect _VECTOR(59) /* Data Register Empty Interrupt */
6643 #define USARTE0_TXC_vect_num 60
6644 #define USARTE0_TXC_vect _VECTOR(60) /* Transmission Complete Interrupt */
6645 
6646 /* PORTD interrupt vectors */
6647 #define PORTD_INT0_vect_num 64
6648 #define PORTD_INT0_vect _VECTOR(64) /* External Interrupt 0 */
6649 #define PORTD_INT1_vect_num 65
6650 #define PORTD_INT1_vect _VECTOR(65) /* External Interrupt 1 */
6651 
6652 /* PORTA interrupt vectors */
6653 #define PORTA_INT0_vect_num 66
6654 #define PORTA_INT0_vect _VECTOR(66) /* External Interrupt 0 */
6655 #define PORTA_INT1_vect_num 67
6656 #define PORTA_INT1_vect _VECTOR(67) /* External Interrupt 1 */
6657 
6658 /* ACA interrupt vectors */
6659 #define ACA_AC0_vect_num 68
6660 #define ACA_AC0_vect _VECTOR(68) /* AC0 Interrupt */
6661 #define ACA_AC1_vect_num 69
6662 #define ACA_AC1_vect _VECTOR(69) /* AC1 Interrupt */
6663 #define ACA_ACW_vect_num 70
6664 #define ACA_ACW_vect _VECTOR(70) /* ACW Window Mode Interrupt */
6665 
6666 /* ADCA interrupt vectors */
6667 #define ADCA_CH0_vect_num 71
6668 #define ADCA_CH0_vect _VECTOR(71) /* Interrupt 0 */
6669 #define ADCA_CH1_vect_num 72
6670 #define ADCA_CH1_vect _VECTOR(72) /* Interrupt 1 */
6671 #define ADCA_CH2_vect_num 73
6672 #define ADCA_CH2_vect _VECTOR(73) /* Interrupt 2 */
6673 #define ADCA_CH3_vect_num 74
6674 #define ADCA_CH3_vect _VECTOR(74) /* Interrupt 3 */
6675 
6676 /* TCD0 interrupt vectors */
6677 #define TCD0_OVF_vect_num 77
6678 #define TCD0_OVF_vect _VECTOR(77) /* Overflow Interrupt */
6679 #define TCD0_ERR_vect_num 78
6680 #define TCD0_ERR_vect _VECTOR(78) /* Error Interrupt */
6681 #define TCD0_CCA_vect_num 79
6682 #define TCD0_CCA_vect _VECTOR(79) /* Compare or Capture A Interrupt */
6683 #define TCD0_CCB_vect_num 80
6684 #define TCD0_CCB_vect _VECTOR(80) /* Compare or Capture B Interrupt */
6685 #define TCD0_CCC_vect_num 81
6686 #define TCD0_CCC_vect _VECTOR(81) /* Compare or Capture C Interrupt */
6687 #define TCD0_CCD_vect_num 82
6688 #define TCD0_CCD_vect _VECTOR(82) /* Compare or Capture D Interrupt */
6689 
6690 /* TCD1 interrupt vectors */
6691 #define TCD1_OVF_vect_num 83
6692 #define TCD1_OVF_vect _VECTOR(83) /* Overflow Interrupt */
6693 #define TCD1_ERR_vect_num 84
6694 #define TCD1_ERR_vect _VECTOR(84) /* Error Interrupt */
6695 #define TCD1_CCA_vect_num 85
6696 #define TCD1_CCA_vect _VECTOR(85) /* Compare or Capture A Interrupt */
6697 #define TCD1_CCB_vect_num 86
6698 #define TCD1_CCB_vect _VECTOR(86) /* Compare or Capture B Interrupt */
6699 
6700 /* SPID interrupt vectors */
6701 #define SPID_INT_vect_num 87
6702 #define SPID_INT_vect _VECTOR(87) /* SPI Interrupt */
6703 
6704 /* USARTD0 interrupt vectors */
6705 #define USARTD0_RXC_vect_num 88
6706 #define USARTD0_RXC_vect _VECTOR(88) /* Reception Complete Interrupt */
6707 #define USARTD0_DRE_vect_num 89
6708 #define USARTD0_DRE_vect _VECTOR(89) /* Data Register Empty Interrupt */
6709 #define USARTD0_TXC_vect_num 90
6710 #define USARTD0_TXC_vect _VECTOR(90) /* Transmission Complete Interrupt */
6711 
6712 /* USARTD1 interrupt vectors */
6713 #define USARTD1_RXC_vect_num 91
6714 #define USARTD1_RXC_vect _VECTOR(91) /* Reception Complete Interrupt */
6715 #define USARTD1_DRE_vect_num 92
6716 #define USARTD1_DRE_vect _VECTOR(92) /* Data Register Empty Interrupt */
6717 #define USARTD1_TXC_vect_num 93
6718 #define USARTD1_TXC_vect _VECTOR(93) /* Transmission Complete Interrupt */
6719 
6720 /* PORTF interrupt vectors */
6721 #define PORTF_INT0_vect_num 104
6722 #define PORTF_INT0_vect _VECTOR(104) /* External Interrupt 0 */
6723 #define PORTF_INT1_vect_num 105
6724 #define PORTF_INT1_vect _VECTOR(105) /* External Interrupt 1 */
6725 
6726 /* TCF0 interrupt vectors */
6727 #define TCF0_OVF_vect_num 108
6728 #define TCF0_OVF_vect _VECTOR(108) /* Overflow Interrupt */
6729 #define TCF0_ERR_vect_num 109
6730 #define TCF0_ERR_vect _VECTOR(109) /* Error Interrupt */
6731 #define TCF0_CCA_vect_num 110
6732 #define TCF0_CCA_vect _VECTOR(110) /* Compare or Capture A Interrupt */
6733 #define TCF0_CCB_vect_num 111
6734 #define TCF0_CCB_vect _VECTOR(111) /* Compare or Capture B Interrupt */
6735 #define TCF0_CCC_vect_num 112
6736 #define TCF0_CCC_vect _VECTOR(112) /* Compare or Capture C Interrupt */
6737 #define TCF0_CCD_vect_num 113
6738 #define TCF0_CCD_vect _VECTOR(113) /* Compare or Capture D Interrupt */
6739 
6740 /* USARTF0 interrupt vectors */
6741 #define USARTF0_RXC_vect_num 119
6742 #define USARTF0_RXC_vect _VECTOR(119) /* Reception Complete Interrupt */
6743 #define USARTF0_DRE_vect_num 120
6744 #define USARTF0_DRE_vect _VECTOR(120) /* Data Register Empty Interrupt */
6745 #define USARTF0_TXC_vect_num 121
6746 #define USARTF0_TXC_vect _VECTOR(121) /* Transmission Complete Interrupt */
6747 
6748 
6749 #define _VECTOR_SIZE 4 /* Size of individual vector. */
6750 #define _VECTORS_SIZE (122 * _VECTOR_SIZE)
6751 
6752 
6753 /* ========== Constants ========== */
6754 
6755 #define PROGMEM_START (0x0000)
6756 #define PROGMEM_SIZE (270336)
6757 #define PROGMEM_PAGE_SIZE (512)
6758 #define PROGMEM_END (PROGMEM_START + PROGMEM_SIZE - 1)
6759 
6760 #define APP_SECTION_START (0x0000)
6761 #define APP_SECTION_SIZE (262144)
6762 #define APP_SECTION_PAGE_SIZE (512)
6763 #define APP_SECTION_END (APP_SECTION_START + APP_SECTION_SIZE - 1)
6764 
6765 #define APPTABLE_SECTION_START (0x3E000)
6766 #define APPTABLE_SECTION_SIZE (8192)
6767 #define APPTABLE_SECTION_PAGE_SIZE (512)
6768 #define APPTABLE_SECTION_END (APPTABLE_SECTION_START + APPTABLE_SECTION_SIZE - 1)
6769 
6770 #define BOOT_SECTION_START (0x40000)
6771 #define BOOT_SECTION_SIZE (8192)
6772 #define BOOT_SECTION_PAGE_SIZE (512)
6773 #define BOOT_SECTION_END (BOOT_SECTION_START + BOOT_SECTION_SIZE - 1)
6774 
6775 #define DATAMEM_START (0x0000)
6776 #define DATAMEM_SIZE (24576)
6777 #define DATAMEM_PAGE_SIZE (0)
6778 #define DATAMEM_END (DATAMEM_START + DATAMEM_SIZE - 1)
6779 
6780 #define IO_START (0x0000)
6781 #define IO_SIZE (4096)
6782 #define IO_PAGE_SIZE (0)
6783 #define IO_END (IO_START + IO_SIZE - 1)
6784 
6785 #define MAPPED_EEPROM_START (0x1000)
6786 #define MAPPED_EEPROM_SIZE (4096)
6787 #define MAPPED_EEPROM_PAGE_SIZE (0)
6788 #define MAPPED_EEPROM_END (MAPPED_EEPROM_START + MAPPED_EEPROM_SIZE - 1)
6789 
6790 #define INTERNAL_SRAM_START (0x2000)
6791 #define INTERNAL_SRAM_SIZE (16384)
6792 #define INTERNAL_SRAM_PAGE_SIZE (0)
6793 #define INTERNAL_SRAM_END (INTERNAL_SRAM_START + INTERNAL_SRAM_SIZE - 1)
6794 
6795 #define EEPROM_START (0x0000)
6796 #define EEPROM_SIZE (4096)
6797 #define EEPROM_PAGE_SIZE (32)
6798 #define EEPROM_END (EEPROM_START + EEPROM_SIZE - 1)
6799 
6800 #define FUSE_START (0x0000)
6801 #define FUSE_SIZE (6)
6802 #define FUSE_PAGE_SIZE (0)
6803 #define FUSE_END (FUSE_START + FUSE_SIZE - 1)
6804 
6805 #define LOCKBIT_START (0x0000)
6806 #define LOCKBIT_SIZE (1)
6807 #define LOCKBIT_PAGE_SIZE (0)
6808 #define LOCKBIT_END (LOCKBIT_START + LOCKBIT_SIZE - 1)
6809 
6810 #define SIGNATURES_START (0x0000)
6811 #define SIGNATURES_SIZE (3)
6812 #define SIGNATURES_PAGE_SIZE (0)
6813 #define SIGNATURES_END (SIGNATURES_START + SIGNATURES_SIZE - 1)
6814 
6815 #define USER_SIGNATURES_START (0x0000)
6816 #define USER_SIGNATURES_SIZE (512)
6817 #define USER_SIGNATURES_PAGE_SIZE (0)
6818 #define USER_SIGNATURES_END (USER_SIGNATURES_START + USER_SIGNATURES_SIZE - 1)
6819 
6820 #define PROD_SIGNATURES_START (0x0000)
6821 #define PROD_SIGNATURES_SIZE (52)
6822 #define PROD_SIGNATURES_PAGE_SIZE (0)
6823 #define PROD_SIGNATURES_END (PROD_SIGNATURES_START + PROD_SIGNATURES_SIZE - 1)
6824 
6825 #define FLASHEND PROGMEM_END
6826 #define SPM_PAGESIZE PROGMEM_PAGE_SIZE
6827 #define RAMSTART INTERNAL_SRAM_START
6828 #define RAMSIZE INTERNAL_SRAM_SIZE
6829 #define RAMEND INTERNAL_SRAM_END
6830 #define XRAMSTART EXTERNAL_SRAM_START
6831 #define XRAMSIZE EXTERNAL_SRAM_SIZE
6832 #define XRAMEND INTERNAL_SRAM_END
6833 #define E2END EEPROM_END
6834 #define E2PAGESIZE EEPROM_PAGE_SIZE
6835 
6836 
6837 /* ========== Fuses ========== */
6838 #define FUSE_MEMORY_SIZE 6
6839 
6840 /* Fuse Byte 0 */
6841 #define FUSE_JTAGUSERID0 (unsigned char)~_BV(0) /* JTAG User ID Bit 0 */
6842 #define FUSE_JTAGUSERID1 (unsigned char)~_BV(1) /* JTAG User ID Bit 1 */
6843 #define FUSE_JTAGUSERID2 (unsigned char)~_BV(2) /* JTAG User ID Bit 2 */
6844 #define FUSE_JTAGUSERID3 (unsigned char)~_BV(3) /* JTAG User ID Bit 3 */
6845 #define FUSE_JTAGUSERID4 (unsigned char)~_BV(4) /* JTAG User ID Bit 4 */
6846 #define FUSE_JTAGUSERID5 (unsigned char)~_BV(5) /* JTAG User ID Bit 5 */
6847 #define FUSE_JTAGUSERID6 (unsigned char)~_BV(6) /* JTAG User ID Bit 6 */
6848 #define FUSE_JTAGUSERID7 (unsigned char)~_BV(7) /* JTAG User ID Bit 7 */
6849 #define FUSE0_DEFAULT (0xFF)
6850 
6851 /* Fuse Byte 1 */
6852 #define FUSE_WDP0 (unsigned char)~_BV(0) /* Watchdog Timeout Period Bit 0 */
6853 #define FUSE_WDP1 (unsigned char)~_BV(1) /* Watchdog Timeout Period Bit 1 */
6854 #define FUSE_WDP2 (unsigned char)~_BV(2) /* Watchdog Timeout Period Bit 2 */
6855 #define FUSE_WDP3 (unsigned char)~_BV(3) /* Watchdog Timeout Period Bit 3 */
6856 #define FUSE_WDWP0 (unsigned char)~_BV(4) /* Watchdog Window Timeout Period Bit 0 */
6857 #define FUSE_WDWP1 (unsigned char)~_BV(5) /* Watchdog Window Timeout Period Bit 1 */
6858 #define FUSE_WDWP2 (unsigned char)~_BV(6) /* Watchdog Window Timeout Period Bit 2 */
6859 #define FUSE_WDWP3 (unsigned char)~_BV(7) /* Watchdog Window Timeout Period Bit 3 */
6860 #define FUSE1_DEFAULT (0xFF)
6861 
6862 /* Fuse Byte 2 */
6863 #define FUSE_BODPD0 (unsigned char)~_BV(0) /* BOD Operation in Power-Down Mode Bit 0 */
6864 #define FUSE_BODPD1 (unsigned char)~_BV(1) /* BOD Operation in Power-Down Mode Bit 1 */
6865 #define FUSE_BOOTRST (unsigned char)~_BV(6) /* Boot Loader Section Reset Vector */
6866 #define FUSE_DVSDON (unsigned char)~_BV(7) /* Spike Detector Enable */
6867 #define FUSE2_DEFAULT (0xFF)
6868 
6869 /* Fuse Byte 3 Reserved */
6870 
6871 /* Fuse Byte 4 */
6872 #define FUSE_JTAGEN (unsigned char)~_BV(0) /* JTAG Interface Enable */
6873 #define FUSE_WDLOCK (unsigned char)~_BV(1) /* Watchdog Timer Lock */
6874 #define FUSE_SUT0 (unsigned char)~_BV(2) /* Start-up Time Bit 0 */
6875 #define FUSE_SUT1 (unsigned char)~_BV(3) /* Start-up Time Bit 1 */
6876 #define FUSE4_DEFAULT (0xFF)
6877 
6878 /* Fuse Byte 5 */
6879 #define FUSE_BODLVL0 (unsigned char)~_BV(0) /* Brown Out Detection Voltage Level Bit 0 */
6880 #define FUSE_BODLVL1 (unsigned char)~_BV(1) /* Brown Out Detection Voltage Level Bit 1 */
6881 #define FUSE_BODLVL2 (unsigned char)~_BV(2) /* Brown Out Detection Voltage Level Bit 2 */
6882 #define FUSE_EESAVE (unsigned char)~_BV(3) /* Preserve EEPROM Through Chip Erase */
6883 #define FUSE_BODACT0 (unsigned char)~_BV(4) /* BOD Operation in Active Mode Bit 0 */
6884 #define FUSE_BODACT1 (unsigned char)~_BV(5) /* BOD Operation in Active Mode Bit 1 */
6885 #define FUSE5_DEFAULT (0xFF)
6886 
6887 
6888 /* ========== Lock Bits ========== */
6889 #define __LOCK_BITS_EXIST
6890 #define __BOOT_LOCK_APPLICATION_TABLE_BITS_EXIST
6891 #define __BOOT_LOCK_APPLICATION_BITS_EXIST
6892 #define __BOOT_LOCK_BOOT_BITS_EXIST
6893 
6894 
6895 /* ========== Signature ========== */
6896 #define SIGNATURE_0 0x1E
6897 #define SIGNATURE_1 0x98
6898 #define SIGNATURE_2 0x43
6899 
6900 
6902 #endif /* _AVR_ATxmega256A3B_H_ */
Definition: iox128a1.h:237
Definition: iox128a1.h:905
Definition: iox128a1.h:1490
Definition: iox128a1.h:1853
Definition: iox128a1.h:428
Definition: iox128a1.h:260
Definition: iox128a1.h:1276
Definition: iox128a1.h:1647
Definition: iox128a1.h:1991
Definition: iox128a1.h:2326
Definition: iox128a1.h:413
Definition: iox128a1.h:171
Definition: iox128a1.h:454
Definition: iox128a1.h:697
Definition: iox128a1.h:1960
Definition: iox128a1.h:308
Definition: iox128a1.h:134
Definition: iox256a3b.h:1500
Definition: iox128a1.h:1661
Definition: iox128a1.h:328
Definition: iox128a1.h:962
Definition: iox128a1.h:2555
Definition: iox128a1.h:2238
Definition: iox256a3b.h:2528
Definition: iox128a1.h:2598
Definition: iox128a1.h:2174
Definition: iox128a1.h:2481
Definition: iox128a1.h:1871
Definition: iox128a1.h:156
Definition: iox128a1.h:1888
Definition: iox128a1.h:1179
Definition: iox128a1.h:1294
Definition: iox128a1.h:2628
Definition: iox128a1.h:389
Definition: iox128a1.h:342
Definition: iox128a1.h:933
Definition: iox128a1.h:2302
Definition: iox128a1.h:1976
Definition: iox128a1.h:945