RTEMS CPU Kit with SuperCore  4.11.3
iox64d3.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_ "iox64d3.h"
47 #else
48 # error "Attempt to include more than one <avr/ioXXX.h> file."
49 #endif
50 
51 
52 #ifndef _AVR_ATxmega64D3_H_
53 #define _AVR_ATxmega64D3_H_ 1
54 
62 /* Ungrouped common registers */
63 #define GPIOR0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */
64 #define GPIOR1 _SFR_MEM8(0x0001) /* General Purpose IO Register 1 */
65 #define GPIOR2 _SFR_MEM8(0x0002) /* General Purpose IO Register 2 */
66 #define GPIOR3 _SFR_MEM8(0x0003) /* General Purpose IO Register 3 */
67 #define GPIOR4 _SFR_MEM8(0x0004) /* General Purpose IO Register 4 */
68 #define GPIOR5 _SFR_MEM8(0x0005) /* General Purpose IO Register 5 */
69 #define GPIOR6 _SFR_MEM8(0x0006) /* General Purpose IO Register 6 */
70 #define GPIOR7 _SFR_MEM8(0x0007) /* General Purpose IO Register 7 */
71 #define GPIOR8 _SFR_MEM8(0x0008) /* General Purpose IO Register 8 */
72 #define GPIOR9 _SFR_MEM8(0x0009) /* General Purpose IO Register 9 */
73 #define GPIORA _SFR_MEM8(0x000A) /* General Purpose IO Register 10 */
74 #define GPIORB _SFR_MEM8(0x000B) /* General Purpose IO Register 11 */
75 #define GPIORC _SFR_MEM8(0x000C) /* General Purpose IO Register 12 */
76 #define GPIORD _SFR_MEM8(0x000D) /* General Purpose IO Register 13 */
77 #define GPIORE _SFR_MEM8(0x000E) /* General Purpose IO Register 14 */
78 #define GPIORF _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_125CLK_gc = (0x04<<2), /* 125 cycles (0.125s @ 3.3V) */
363  WDT_PER_250CLK_gc = (0x05<<2), /* 250 cycles (0.25s @ 3.3V) */
364  WDT_PER_500CLK_gc = (0x06<<2), /* 500 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_125CLK_gc = (0x04<<2), /* 125 cycles (0.125s @ 3.3V) */
379  WDT_WPER_250CLK_gc = (0x05<<2), /* 250 cycles (0.25s @ 3.3V) */
380  WDT_WPER_500CLK_gc = (0x06<<2), /* 500 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 EVSYS - Event System
430 --------------------------------------------------------------------------
431 */
432 
433 /* Event System */
434 typedef struct EVSYS_struct
435 {
436  register8_t CH0MUX; /* Event Channel 0 Multiplexer */
437  register8_t CH1MUX; /* Event Channel 1 Multiplexer */
438  register8_t CH2MUX; /* Event Channel 2 Multiplexer */
439  register8_t CH3MUX; /* Event Channel 3 Multiplexer */
440  register8_t CH0CTRL; /* Channel 0 Control Register */
441  register8_t CH1CTRL; /* Channel 1 Control Register */
442  register8_t CH2CTRL; /* Channel 2 Control Register */
443  register8_t CH3CTRL; /* Channel 3 Control Register */
444  register8_t STROBE; /* Event Strobe */
445  register8_t DATA; /* Event Data */
446 } EVSYS_t;
447 
448 /* Quadrature Decoder Index Recognition Mode */
449 typedef enum EVSYS_QDIRM_enum
450 {
451  EVSYS_QDIRM_00_gc = (0x00<<5), /* QDPH0 = 0, QDPH90 = 0 */
452  EVSYS_QDIRM_01_gc = (0x01<<5), /* QDPH0 = 0, QDPH90 = 1 */
453  EVSYS_QDIRM_10_gc = (0x02<<5), /* QDPH0 = 1, QDPH90 = 0 */
454  EVSYS_QDIRM_11_gc = (0x03<<5), /* QDPH0 = 1, QDPH90 = 1 */
455 } EVSYS_QDIRM_t;
456 
457 /* Digital filter coefficient */
458 typedef enum EVSYS_DIGFILT_enum
459 {
460  EVSYS_DIGFILT_1SAMPLE_gc = (0x00<<0), /* 1 SAMPLE */
461  EVSYS_DIGFILT_2SAMPLES_gc = (0x01<<0), /* 2 SAMPLES */
462  EVSYS_DIGFILT_3SAMPLES_gc = (0x02<<0), /* 3 SAMPLES */
463  EVSYS_DIGFILT_4SAMPLES_gc = (0x03<<0), /* 4 SAMPLES */
464  EVSYS_DIGFILT_5SAMPLES_gc = (0x04<<0), /* 5 SAMPLES */
465  EVSYS_DIGFILT_6SAMPLES_gc = (0x05<<0), /* 6 SAMPLES */
466  EVSYS_DIGFILT_7SAMPLES_gc = (0x06<<0), /* 7 SAMPLES */
467  EVSYS_DIGFILT_8SAMPLES_gc = (0x07<<0), /* 8 SAMPLES */
468 } EVSYS_DIGFILT_t;
469 
470 /* Event Channel multiplexer input selection */
471 typedef enum EVSYS_CHMUX_enum
472 {
473  EVSYS_CHMUX_OFF_gc = (0x00<<0), /* Off */
474  EVSYS_CHMUX_RTC_OVF_gc = (0x08<<0), /* RTC Overflow */
475  EVSYS_CHMUX_RTC_CMP_gc = (0x09<<0), /* RTC Compare Match */
476  EVSYS_CHMUX_ACA_CH0_gc = (0x10<<0), /* Analog Comparator A Channel 0 */
477  EVSYS_CHMUX_ACA_CH1_gc = (0x11<<0), /* Analog Comparator A Channel 1 */
478  EVSYS_CHMUX_ACA_WIN_gc = (0x12<<0), /* Analog Comparator A Window */
479  EVSYS_CHMUX_ADCA_CH0_gc = (0x20<<0), /* ADC A Channel 0 */
480  EVSYS_CHMUX_PORTA_PIN0_gc = (0x50<<0), /* Port A, Pin0 */
481  EVSYS_CHMUX_PORTA_PIN1_gc = (0x51<<0), /* Port A, Pin1 */
482  EVSYS_CHMUX_PORTA_PIN2_gc = (0x52<<0), /* Port A, Pin2 */
483  EVSYS_CHMUX_PORTA_PIN3_gc = (0x53<<0), /* Port A, Pin3 */
484  EVSYS_CHMUX_PORTA_PIN4_gc = (0x54<<0), /* Port A, Pin4 */
485  EVSYS_CHMUX_PORTA_PIN5_gc = (0x55<<0), /* Port A, Pin5 */
486  EVSYS_CHMUX_PORTA_PIN6_gc = (0x56<<0), /* Port A, Pin6 */
487  EVSYS_CHMUX_PORTA_PIN7_gc = (0x57<<0), /* Port A, Pin7 */
488  EVSYS_CHMUX_PORTB_PIN0_gc = (0x58<<0), /* Port B, Pin0 */
489  EVSYS_CHMUX_PORTB_PIN1_gc = (0x59<<0), /* Port B, Pin1 */
490  EVSYS_CHMUX_PORTB_PIN2_gc = (0x5A<<0), /* Port B, Pin2 */
491  EVSYS_CHMUX_PORTB_PIN3_gc = (0x5B<<0), /* Port B, Pin3 */
492  EVSYS_CHMUX_PORTB_PIN4_gc = (0x5C<<0), /* Port B, Pin4 */
493  EVSYS_CHMUX_PORTB_PIN5_gc = (0x5D<<0), /* Port B, Pin5 */
494  EVSYS_CHMUX_PORTB_PIN6_gc = (0x5E<<0), /* Port B, Pin6 */
495  EVSYS_CHMUX_PORTB_PIN7_gc = (0x5F<<0), /* Port B, Pin7 */
496  EVSYS_CHMUX_PORTC_PIN0_gc = (0x60<<0), /* Port C, Pin0 */
497  EVSYS_CHMUX_PORTC_PIN1_gc = (0x61<<0), /* Port C, Pin1 */
498  EVSYS_CHMUX_PORTC_PIN2_gc = (0x62<<0), /* Port C, Pin2 */
499  EVSYS_CHMUX_PORTC_PIN3_gc = (0x63<<0), /* Port C, Pin3 */
500  EVSYS_CHMUX_PORTC_PIN4_gc = (0x64<<0), /* Port C, Pin4 */
501  EVSYS_CHMUX_PORTC_PIN5_gc = (0x65<<0), /* Port C, Pin5 */
502  EVSYS_CHMUX_PORTC_PIN6_gc = (0x66<<0), /* Port C, Pin6 */
503  EVSYS_CHMUX_PORTC_PIN7_gc = (0x67<<0), /* Port C, Pin7 */
504  EVSYS_CHMUX_PORTD_PIN0_gc = (0x68<<0), /* Port D, Pin0 */
505  EVSYS_CHMUX_PORTD_PIN1_gc = (0x69<<0), /* Port D, Pin1 */
506  EVSYS_CHMUX_PORTD_PIN2_gc = (0x6A<<0), /* Port D, Pin2 */
507  EVSYS_CHMUX_PORTD_PIN3_gc = (0x6B<<0), /* Port D, Pin3 */
508  EVSYS_CHMUX_PORTD_PIN4_gc = (0x6C<<0), /* Port D, Pin4 */
509  EVSYS_CHMUX_PORTD_PIN5_gc = (0x6D<<0), /* Port D, Pin5 */
510  EVSYS_CHMUX_PORTD_PIN6_gc = (0x6E<<0), /* Port D, Pin6 */
511  EVSYS_CHMUX_PORTD_PIN7_gc = (0x6F<<0), /* Port D, Pin7 */
512  EVSYS_CHMUX_PORTE_PIN0_gc = (0x70<<0), /* Port E, Pin0 */
513  EVSYS_CHMUX_PORTE_PIN1_gc = (0x71<<0), /* Port E, Pin1 */
514  EVSYS_CHMUX_PORTE_PIN2_gc = (0x72<<0), /* Port E, Pin2 */
515  EVSYS_CHMUX_PORTE_PIN3_gc = (0x73<<0), /* Port E, Pin3 */
516  EVSYS_CHMUX_PORTE_PIN4_gc = (0x74<<0), /* Port E, Pin4 */
517  EVSYS_CHMUX_PORTE_PIN5_gc = (0x75<<0), /* Port E, Pin5 */
518  EVSYS_CHMUX_PORTE_PIN6_gc = (0x76<<0), /* Port E, Pin6 */
519  EVSYS_CHMUX_PORTE_PIN7_gc = (0x77<<0), /* Port E, Pin7 */
520  EVSYS_CHMUX_PORTF_PIN0_gc = (0x78<<0), /* Port F, Pin0 */
521  EVSYS_CHMUX_PORTF_PIN1_gc = (0x79<<0), /* Port F, Pin1 */
522  EVSYS_CHMUX_PORTF_PIN2_gc = (0x7A<<0), /* Port F, Pin2 */
523  EVSYS_CHMUX_PORTF_PIN3_gc = (0x7B<<0), /* Port F, Pin3 */
524  EVSYS_CHMUX_PORTF_PIN4_gc = (0x7C<<0), /* Port F, Pin4 */
525  EVSYS_CHMUX_PORTF_PIN5_gc = (0x7D<<0), /* Port F, Pin5 */
526  EVSYS_CHMUX_PORTF_PIN6_gc = (0x7E<<0), /* Port F, Pin6 */
527  EVSYS_CHMUX_PORTF_PIN7_gc = (0x7F<<0), /* Port F, Pin7 */
528  EVSYS_CHMUX_PRESCALER_1_gc = (0x80<<0), /* Prescaler, divide by 1 */
529  EVSYS_CHMUX_PRESCALER_2_gc = (0x81<<0), /* Prescaler, divide by 2 */
530  EVSYS_CHMUX_PRESCALER_4_gc = (0x82<<0), /* Prescaler, divide by 4 */
531  EVSYS_CHMUX_PRESCALER_8_gc = (0x83<<0), /* Prescaler, divide by 8 */
532  EVSYS_CHMUX_PRESCALER_16_gc = (0x84<<0), /* Prescaler, divide by 16 */
533  EVSYS_CHMUX_PRESCALER_32_gc = (0x85<<0), /* Prescaler, divide by 32 */
534  EVSYS_CHMUX_PRESCALER_64_gc = (0x86<<0), /* Prescaler, divide by 64 */
535  EVSYS_CHMUX_PRESCALER_128_gc = (0x87<<0), /* Prescaler, divide by 128 */
536  EVSYS_CHMUX_PRESCALER_256_gc = (0x88<<0), /* Prescaler, divide by 256 */
537  EVSYS_CHMUX_PRESCALER_512_gc = (0x89<<0), /* Prescaler, divide by 512 */
538  EVSYS_CHMUX_PRESCALER_1024_gc = (0x8A<<0), /* Prescaler, divide by 1024 */
539  EVSYS_CHMUX_PRESCALER_2048_gc = (0x8B<<0), /* Prescaler, divide by 2048 */
540  EVSYS_CHMUX_PRESCALER_4096_gc = (0x8C<<0), /* Prescaler, divide by 4096 */
541  EVSYS_CHMUX_PRESCALER_8192_gc = (0x8D<<0), /* Prescaler, divide by 8192 */
542  EVSYS_CHMUX_PRESCALER_16384_gc = (0x8E<<0), /* Prescaler, divide by 16384 */
543  EVSYS_CHMUX_PRESCALER_32768_gc = (0x8F<<0), /* Prescaler, divide by 32768 */
544  EVSYS_CHMUX_TCC0_OVF_gc = (0xC0<<0), /* Timer/Counter C0 Overflow */
545  EVSYS_CHMUX_TCC0_ERR_gc = (0xC1<<0), /* Timer/Counter C0 Error */
546  EVSYS_CHMUX_TCC0_CCA_gc = (0xC4<<0), /* Timer/Counter C0 Compare or Capture A */
547  EVSYS_CHMUX_TCC0_CCB_gc = (0xC5<<0), /* Timer/Counter C0 Compare or Capture B */
548  EVSYS_CHMUX_TCC0_CCC_gc = (0xC6<<0), /* Timer/Counter C0 Compare or Capture C */
549  EVSYS_CHMUX_TCC0_CCD_gc = (0xC7<<0), /* Timer/Counter C0 Compare or Capture D */
550  EVSYS_CHMUX_TCC1_OVF_gc = (0xC8<<0), /* Timer/Counter C1 Overflow */
551  EVSYS_CHMUX_TCC1_ERR_gc = (0xC9<<0), /* Timer/Counter C1 Error */
552  EVSYS_CHMUX_TCC1_CCA_gc = (0xCC<<0), /* Timer/Counter C1 Compare or Capture A */
553  EVSYS_CHMUX_TCC1_CCB_gc = (0xCD<<0), /* Timer/Counter C1 Compare or Capture B */
554  EVSYS_CHMUX_TCD0_OVF_gc = (0xD0<<0), /* Timer/Counter D0 Overflow */
555  EVSYS_CHMUX_TCD0_ERR_gc = (0xD1<<0), /* Timer/Counter D0 Error */
556  EVSYS_CHMUX_TCD0_CCA_gc = (0xD4<<0), /* Timer/Counter D0 Compare or Capture A */
557  EVSYS_CHMUX_TCD0_CCB_gc = (0xD5<<0), /* Timer/Counter D0 Compare or Capture B */
558  EVSYS_CHMUX_TCD0_CCC_gc = (0xD6<<0), /* Timer/Counter D0 Compare or Capture C */
559  EVSYS_CHMUX_TCD0_CCD_gc = (0xD7<<0), /* Timer/Counter D0 Compare or Capture D */
560  EVSYS_CHMUX_TCD1_OVF_gc = (0xD8<<0), /* Timer/Counter D1 Overflow */
561  EVSYS_CHMUX_TCD1_ERR_gc = (0xD9<<0), /* Timer/Counter D1 Error */
562  EVSYS_CHMUX_TCD1_CCA_gc = (0xDC<<0), /* Timer/Counter D1 Compare or Capture A */
563  EVSYS_CHMUX_TCD1_CCB_gc = (0xDD<<0), /* Timer/Counter D1 Compare or Capture B */
564  EVSYS_CHMUX_TCE0_OVF_gc = (0xE0<<0), /* Timer/Counter E0 Overflow */
565  EVSYS_CHMUX_TCE0_ERR_gc = (0xE1<<0), /* Timer/Counter E0 Error */
566  EVSYS_CHMUX_TCE0_CCA_gc = (0xE4<<0), /* Timer/Counter E0 Compare or Capture A */
567  EVSYS_CHMUX_TCE0_CCB_gc = (0xE5<<0), /* Timer/Counter E0 Compare or Capture B */
568  EVSYS_CHMUX_TCE0_CCC_gc = (0xE6<<0), /* Timer/Counter E0 Compare or Capture C */
569  EVSYS_CHMUX_TCE0_CCD_gc = (0xE7<<0), /* Timer/Counter E0 Compare or Capture D */
570  EVSYS_CHMUX_TCE1_OVF_gc = (0xE8<<0), /* Timer/Counter E1 Overflow */
571  EVSYS_CHMUX_TCE1_ERR_gc = (0xE9<<0), /* Timer/Counter E1 Error */
572  EVSYS_CHMUX_TCE1_CCA_gc = (0xEC<<0), /* Timer/Counter E1 Compare or Capture A */
573  EVSYS_CHMUX_TCE1_CCB_gc = (0xED<<0), /* Timer/Counter E1 Compare or Capture B */
574  EVSYS_CHMUX_TCF0_OVF_gc = (0xF0<<0), /* Timer/Counter F0 Overflow */
575  EVSYS_CHMUX_TCF0_ERR_gc = (0xF1<<0), /* Timer/Counter F0 Error */
576  EVSYS_CHMUX_TCF0_CCA_gc = (0xF4<<0), /* Timer/Counter F0 Compare or Capture A */
577  EVSYS_CHMUX_TCF0_CCB_gc = (0xF5<<0), /* Timer/Counter F0 Compare or Capture B */
578  EVSYS_CHMUX_TCF0_CCC_gc = (0xF6<<0), /* Timer/Counter F0 Compare or Capture C */
579  EVSYS_CHMUX_TCF0_CCD_gc = (0xF7<<0), /* Timer/Counter F0 Compare or Capture D */
580  EVSYS_CHMUX_TCF1_OVF_gc = (0xF8<<0), /* Timer/Counter F1 Overflow */
581  EVSYS_CHMUX_TCF1_ERR_gc = (0xF9<<0), /* Timer/Counter F1 Error */
582  EVSYS_CHMUX_TCF1_CCA_gc = (0xFC<<0), /* Timer/Counter F1 Compare or Capture A */
583  EVSYS_CHMUX_TCF1_CCB_gc = (0xFD<<0), /* Timer/Counter F1 Compare or Capture B */
584 } EVSYS_CHMUX_t;
585 
586 
587 /*
588 --------------------------------------------------------------------------
589 NVM - Non Volatile Memory Controller
590 --------------------------------------------------------------------------
591 */
592 
593 /* Non-volatile Memory Controller */
594 typedef struct NVM_struct
595 {
596  register8_t ADDR0; /* Address Register 0 */
597  register8_t ADDR1; /* Address Register 1 */
598  register8_t ADDR2; /* Address Register 2 */
599  register8_t reserved_0x03;
600  register8_t DATA0; /* Data Register 0 */
601  register8_t DATA1; /* Data Register 1 */
602  register8_t DATA2; /* Data Register 2 */
603  register8_t reserved_0x07;
604  register8_t reserved_0x08;
605  register8_t reserved_0x09;
606  register8_t CMD; /* Command */
607  register8_t CTRLA; /* Control Register A */
608  register8_t CTRLB; /* Control Register B */
609  register8_t INTCTRL; /* Interrupt Control */
610  register8_t reserved_0x0E;
611  register8_t STATUS; /* Status */
612  register8_t LOCKBITS; /* Lock Bits */
613 } NVM_t;
614 
615 /*
616 --------------------------------------------------------------------------
617 NVM - Non Volatile Memory Controller
618 --------------------------------------------------------------------------
619 */
620 
621 /* Lock Bits */
622 typedef struct NVM_LOCKBITS_struct
623 {
624  register8_t LOCKBITS; /* Lock Bits */
626 
627 /*
628 --------------------------------------------------------------------------
629 NVM - Non Volatile Memory Controller
630 --------------------------------------------------------------------------
631 */
632 
633 /* Fuses */
634 typedef struct NVM_FUSES_struct
635 {
636  register8_t FUSEBYTE0; /* User ID */
637  register8_t FUSEBYTE1; /* Watchdog Configuration */
638  register8_t FUSEBYTE2; /* Reset Configuration */
639  register8_t reserved_0x03;
640  register8_t FUSEBYTE4; /* Start-up Configuration */
641  register8_t FUSEBYTE5; /* EESAVE and BOD Level */
642 } NVM_FUSES_t;
643 
644 /*
645 --------------------------------------------------------------------------
646 NVM - Non Volatile Memory Controller
647 --------------------------------------------------------------------------
648 */
649 
650 /* Production Signatures */
651 typedef struct NVM_PROD_SIGNATURES_struct
652 {
653  register8_t RCOSC2M; /* RCOSC 2MHz Calibration Value */
654  register8_t reserved_0x01;
655  register8_t RCOSC32K; /* RCOSC 32kHz Calibration Value */
656  register8_t RCOSC32M; /* RCOSC 32MHz Calibration Value */
657  register8_t reserved_0x04;
658  register8_t reserved_0x05;
659  register8_t reserved_0x06;
660  register8_t reserved_0x07;
661  register8_t LOTNUM0; /* Lot Number Byte 0, ASCII */
662  register8_t LOTNUM1; /* Lot Number Byte 1, ASCII */
663  register8_t LOTNUM2; /* Lot Number Byte 2, ASCII */
664  register8_t LOTNUM3; /* Lot Number Byte 3, ASCII */
665  register8_t LOTNUM4; /* Lot Number Byte 4, ASCII */
666  register8_t LOTNUM5; /* Lot Number Byte 5, ASCII */
667  register8_t reserved_0x0E;
668  register8_t reserved_0x0F;
669  register8_t WAFNUM; /* Wafer Number */
670  register8_t reserved_0x11;
671  register8_t COORDX0; /* Wafer Coordinate X Byte 0 */
672  register8_t COORDX1; /* Wafer Coordinate X Byte 1 */
673  register8_t COORDY0; /* Wafer Coordinate Y Byte 0 */
674  register8_t COORDY1; /* Wafer Coordinate Y Byte 1 */
675  register8_t reserved_0x16;
676  register8_t reserved_0x17;
677  register8_t reserved_0x18;
678  register8_t reserved_0x19;
679  register8_t reserved_0x1A;
680  register8_t reserved_0x1B;
681  register8_t reserved_0x1C;
682  register8_t reserved_0x1D;
683  register8_t reserved_0x1E;
684  register8_t reserved_0x1F;
685  register8_t ADCACAL0; /* ADCA Calibration Byte 0 */
686  register8_t ADCACAL1; /* ADCA Calibration Byte 1 */
687  register8_t reserved_0x22;
688  register8_t reserved_0x23;
689  register8_t ADCBCAL0; /* ADCB Calibration Byte 0 */
690  register8_t ADCBCAL1; /* ADCB Calibration Byte 1 */
691  register8_t reserved_0x26;
692  register8_t reserved_0x27;
693  register8_t reserved_0x28;
694  register8_t reserved_0x29;
695  register8_t reserved_0x2A;
696  register8_t reserved_0x2B;
697  register8_t reserved_0x2C;
698  register8_t reserved_0x2D;
699  register8_t TEMPSENSE0; /* Temperature Sensor Calibration Byte 0 */
700  register8_t TEMPSENSE1; /* Temperature Sensor Calibration Byte 0 */
701  register8_t DACAOFFCAL; /* DACA Calibration Byte 0 */
702  register8_t DACAGAINCAL; /* DACA Calibration Byte 1 */
703  register8_t DACBOFFCAL; /* DACB Calibration Byte 0 */
704  register8_t DACBGAINCAL; /* DACB Calibration Byte 1 */
705  register8_t reserved_0x34;
706  register8_t reserved_0x35;
707  register8_t reserved_0x36;
708  register8_t reserved_0x37;
709  register8_t reserved_0x38;
710  register8_t reserved_0x39;
711  register8_t reserved_0x3A;
712  register8_t reserved_0x3B;
713  register8_t reserved_0x3C;
714  register8_t reserved_0x3D;
715  register8_t reserved_0x3E;
717 
718 /* NVM Command */
719 typedef enum NVM_CMD_enum
720 {
721  NVM_CMD_NO_OPERATION_gc = (0x00<<0), /* Noop/Ordinary LPM */
722  NVM_CMD_READ_CALIB_ROW_gc = (0x02<<0), /* Read calibration row */
723  NVM_CMD_READ_USER_SIG_ROW_gc = (0x01<<0), /* Read user signature row */
724  NVM_CMD_READ_EEPROM_gc = (0x06<<0), /* Read EEPROM */
725  NVM_CMD_READ_FUSES_gc = (0x07<<0), /* Read fuse byte */
726  NVM_CMD_WRITE_LOCK_BITS_gc = (0x08<<0), /* Write lock bits */
727  NVM_CMD_ERASE_USER_SIG_ROW_gc = (0x18<<0), /* Erase user signature row */
728  NVM_CMD_WRITE_USER_SIG_ROW_gc = (0x1A<<0), /* Write user signature row */
729  NVM_CMD_ERASE_APP_gc = (0x20<<0), /* Erase Application Section */
730  NVM_CMD_ERASE_APP_PAGE_gc = (0x22<<0), /* Erase Application Section page */
731  NVM_CMD_LOAD_FLASH_BUFFER_gc = (0x23<<0), /* Load Flash page buffer */
732  NVM_CMD_WRITE_APP_PAGE_gc = (0x24<<0), /* Write Application Section page */
733  NVM_CMD_ERASE_WRITE_APP_PAGE_gc = (0x25<<0), /* Erase-and-write Application Section page */
734  NVM_CMD_ERASE_FLASH_BUFFER_gc = (0x26<<0), /* Erase/flush Flash page buffer */
735  NVM_CMD_ERASE_BOOT_PAGE_gc = (0x2A<<0), /* Erase Boot Section page */
736  NVM_CMD_WRITE_BOOT_PAGE_gc = (0x2C<<0), /* Write Boot Section page */
737  NVM_CMD_ERASE_WRITE_BOOT_PAGE_gc = (0x2D<<0), /* Erase-and-write Boot Section page */
738  NVM_CMD_ERASE_EEPROM_gc = (0x30<<0), /* Erase EEPROM */
739  NVM_CMD_ERASE_EEPROM_PAGE_gc = (0x32<<0), /* Erase EEPROM page */
740  NVM_CMD_LOAD_EEPROM_BUFFER_gc = (0x33<<0), /* Load EEPROM page buffer */
741  NVM_CMD_WRITE_EEPROM_PAGE_gc = (0x34<<0), /* Write EEPROM page */
742  NVM_CMD_ERASE_WRITE_EEPROM_PAGE_gc = (0x35<<0), /* Erase-and-write EEPROM page */
743  NVM_CMD_ERASE_EEPROM_BUFFER_gc = (0x36<<0), /* Erase/flush EEPROM page buffer */
744  NVM_CMD_APP_CRC_gc = (0x38<<0), /* Generate Application section CRC */
745  NVM_CMD_BOOT_CRC_gc = (0x39<<0), /* Generate Boot Section CRC */
746  NVM_CMD_FLASH_RANGE_CRC_gc = (0x3A<<0), /* Generate Flash Range CRC */
747 } NVM_CMD_t;
748 
749 /* SPM ready interrupt level */
750 typedef enum NVM_SPMLVL_enum
751 {
752  NVM_SPMLVL_OFF_gc = (0x00<<2), /* Interrupt disabled */
753  NVM_SPMLVL_LO_gc = (0x01<<2), /* Low level */
754  NVM_SPMLVL_MED_gc = (0x02<<2), /* Medium level */
755  NVM_SPMLVL_HI_gc = (0x03<<2), /* High level */
756 } NVM_SPMLVL_t;
757 
758 /* EEPROM ready interrupt level */
759 typedef enum NVM_EELVL_enum
760 {
761  NVM_EELVL_OFF_gc = (0x00<<0), /* Interrupt disabled */
762  NVM_EELVL_LO_gc = (0x01<<0), /* Low level */
763  NVM_EELVL_MED_gc = (0x02<<0), /* Medium level */
764  NVM_EELVL_HI_gc = (0x03<<0), /* High level */
765 } NVM_EELVL_t;
766 
767 /* Boot lock bits - boot setcion */
768 typedef enum NVM_BLBB_enum
769 {
770  NVM_BLBB_NOLOCK_gc = (0x03<<6), /* No locks */
771  NVM_BLBB_WLOCK_gc = (0x02<<6), /* Write not allowed */
772  NVM_BLBB_RLOCK_gc = (0x01<<6), /* Read not allowed */
773  NVM_BLBB_RWLOCK_gc = (0x00<<6), /* Read and write not allowed */
774 } NVM_BLBB_t;
775 
776 /* Boot lock bits - application section */
777 typedef enum NVM_BLBA_enum
778 {
779  NVM_BLBA_NOLOCK_gc = (0x03<<4), /* No locks */
780  NVM_BLBA_WLOCK_gc = (0x02<<4), /* Write not allowed */
781  NVM_BLBA_RLOCK_gc = (0x01<<4), /* Read not allowed */
782  NVM_BLBA_RWLOCK_gc = (0x00<<4), /* Read and write not allowed */
783 } NVM_BLBA_t;
784 
785 /* Boot lock bits - application table section */
786 typedef enum NVM_BLBAT_enum
787 {
788  NVM_BLBAT_NOLOCK_gc = (0x03<<2), /* No locks */
789  NVM_BLBAT_WLOCK_gc = (0x02<<2), /* Write not allowed */
790  NVM_BLBAT_RLOCK_gc = (0x01<<2), /* Read not allowed */
791  NVM_BLBAT_RWLOCK_gc = (0x00<<2), /* Read and write not allowed */
792 } NVM_BLBAT_t;
793 
794 /* Lock bits */
795 typedef enum NVM_LB_enum
796 {
797  NVM_LB_NOLOCK_gc = (0x03<<0), /* No locks */
798  NVM_LB_WLOCK_gc = (0x02<<0), /* Write not allowed */
799  NVM_LB_RWLOCK_gc = (0x00<<0), /* Read and write not allowed */
800 } NVM_LB_t;
801 
802 /* Boot Loader Section Reset Vector */
803 typedef enum BOOTRST_enum
804 {
805  BOOTRST_BOOTLDR_gc = (0x00<<6), /* Boot Loader Reset */
806  BOOTRST_APPLICATION_gc = (0x01<<6), /* Application Reset */
807 } BOOTRST_t;
808 
809 /* BOD operation */
810 typedef enum BOD_enum
811 {
812  BOD_INSAMPLEDMODE_gc = (0x01<<0), /* BOD enabled in sampled mode */
813  BOD_CONTINOUSLY_gc = (0x02<<0), /* BOD enabled continuously */
814  BOD_DISABLED_gc = (0x03<<0), /* BOD Disabled */
815 } BOD_t;
816 
817 /* Watchdog (Window) Timeout Period */
818 typedef enum WD_enum
819 {
820  WD_8CLK_gc = (0x00<<4), /* 8 cycles (8ms @ 3.3V) */
821  WD_16CLK_gc = (0x01<<4), /* 16 cycles (16ms @ 3.3V) */
822  WD_32CLK_gc = (0x02<<4), /* 32 cycles (32ms @ 3.3V) */
823  WD_64CLK_gc = (0x03<<4), /* 64 cycles (64ms @ 3.3V) */
824  WD_128CLK_gc = (0x04<<4), /* 128 cycles (0.125s @ 3.3V) */
825  WD_256CLK_gc = (0x05<<4), /* 256 cycles (0.25s @ 3.3V) */
826  WD_512CLK_gc = (0x06<<4), /* 512 cycles (0.5s @ 3.3V) */
827  WD_1KCLK_gc = (0x07<<4), /* 1K cycles (1s @ 3.3V) */
828  WD_2KCLK_gc = (0x08<<4), /* 2K cycles (2s @ 3.3V) */
829  WD_4KCLK_gc = (0x09<<4), /* 4K cycles (4s @ 3.3V) */
830  WD_8KCLK_gc = (0x0A<<4), /* 8K cycles (8s @ 3.3V) */
831 } WD_t;
832 
833 /* Start-up Time */
834 typedef enum SUT_enum
835 {
836  SUT_0MS_gc = (0x03<<2), /* 0 ms */
837  SUT_4MS_gc = (0x01<<2), /* 4 ms */
838  SUT_64MS_gc = (0x00<<2), /* 64 ms */
839 } SUT_t;
840 
841 /* Brown Out Detection Voltage Level */
842 typedef enum BODLVL_enum
843 {
844  BODLVL_1V6_gc = (0x07<<0), /* 1.6 V */
845  BODLVL_1V9_gc = (0x06<<0), /* 1.8 V */
846  BODLVL_2V1_gc = (0x05<<0), /* 2.0 V */
847  BODLVL_2V4_gc = (0x04<<0), /* 2.2 V */
848  BODLVL_2V6_gc = (0x03<<0), /* 2.4 V */
849  BODLVL_2V9_gc = (0x02<<0), /* 2.7 V */
850  BODLVL_3V2_gc = (0x01<<0), /* 2.9 V */
851 } BODLVL_t;
852 
853 
854 /*
855 --------------------------------------------------------------------------
856 AC - Analog Comparator
857 --------------------------------------------------------------------------
858 */
859 
860 /* Analog Comparator */
861 typedef struct AC_struct
862 {
863  register8_t AC0CTRL; /* Comparator 0 Control */
864  register8_t AC1CTRL; /* Comparator 1 Control */
865  register8_t AC0MUXCTRL; /* Comparator 0 MUX Control */
866  register8_t AC1MUXCTRL; /* Comparator 1 MUX Control */
867  register8_t CTRLA; /* Control Register A */
868  register8_t CTRLB; /* Control Register B */
869  register8_t WINCTRL; /* Window Mode Control */
870  register8_t STATUS; /* Status */
871 } AC_t;
872 
873 /* Interrupt mode */
874 typedef enum AC_INTMODE_enum
875 {
876  AC_INTMODE_BOTHEDGES_gc = (0x00<<6), /* Interrupt on both edges */
877  AC_INTMODE_FALLING_gc = (0x02<<6), /* Interrupt on falling edge */
878  AC_INTMODE_RISING_gc = (0x03<<6), /* Interrupt on rising edge */
879 } AC_INTMODE_t;
880 
881 /* Interrupt level */
882 typedef enum AC_INTLVL_enum
883 {
884  AC_INTLVL_OFF_gc = (0x00<<4), /* Interrupt disabled */
885  AC_INTLVL_LO_gc = (0x01<<4), /* Low level */
886  AC_INTLVL_MED_gc = (0x02<<4), /* Medium level */
887  AC_INTLVL_HI_gc = (0x03<<4), /* High level */
888 } AC_INTLVL_t;
889 
890 /* Hysteresis mode selection */
891 typedef enum AC_HYSMODE_enum
892 {
893  AC_HYSMODE_NO_gc = (0x00<<1), /* No hysteresis */
894  AC_HYSMODE_SMALL_gc = (0x01<<1), /* Small hysteresis */
895  AC_HYSMODE_LARGE_gc = (0x02<<1), /* Large hysteresis */
896 } AC_HYSMODE_t;
897 
898 /* Positive input multiplexer selection */
899 typedef enum AC_MUXPOS_enum
900 {
901  AC_MUXPOS_PIN0_gc = (0x00<<3), /* Pin 0 */
902  AC_MUXPOS_PIN1_gc = (0x01<<3), /* Pin 1 */
903  AC_MUXPOS_PIN2_gc = (0x02<<3), /* Pin 2 */
904  AC_MUXPOS_PIN3_gc = (0x03<<3), /* Pin 3 */
905  AC_MUXPOS_PIN4_gc = (0x04<<3), /* Pin 4 */
906  AC_MUXPOS_PIN5_gc = (0x05<<3), /* Pin 5 */
907  AC_MUXPOS_PIN6_gc = (0x06<<3), /* Pin 6 */
908  AC_MUXPOS_DAC_gc = (0x07<<3), /* DAC output */
909 } AC_MUXPOS_t;
910 
911 /* Negative input multiplexer selection */
912 typedef enum AC_MUXNEG_enum
913 {
914  AC_MUXNEG_PIN0_gc = (0x00<<0), /* Pin 0 */
915  AC_MUXNEG_PIN1_gc = (0x01<<0), /* Pin 1 */
916  AC_MUXNEG_PIN3_gc = (0x02<<0), /* Pin 3 */
917  AC_MUXNEG_PIN5_gc = (0x03<<0), /* Pin 5 */
918  AC_MUXNEG_PIN7_gc = (0x04<<0), /* Pin 7 */
919  AC_MUXNEG_DAC_gc = (0x05<<0), /* DAC output */
920  AC_MUXNEG_BANDGAP_gc = (0x06<<0), /* Bandgap Reference */
921  AC_MUXNEG_SCALER_gc = (0x07<<0), /* Internal voltage scaler */
922 } AC_MUXNEG_t;
923 
924 /* Windows interrupt mode */
925 typedef enum AC_WINTMODE_enum
926 {
927  AC_WINTMODE_ABOVE_gc = (0x00<<2), /* Interrupt on above window */
928  AC_WINTMODE_INSIDE_gc = (0x01<<2), /* Interrupt on inside window */
929  AC_WINTMODE_BELOW_gc = (0x02<<2), /* Interrupt on below window */
930  AC_WINTMODE_OUTSIDE_gc = (0x03<<2), /* Interrupt on outside window */
931 } AC_WINTMODE_t;
932 
933 /* Window interrupt level */
934 typedef enum AC_WINTLVL_enum
935 {
936  AC_WINTLVL_OFF_gc = (0x00<<0), /* Interrupt disabled */
937  AC_WINTLVL_LO_gc = (0x01<<0), /* Low priority */
938  AC_WINTLVL_MED_gc = (0x02<<0), /* Medium priority */
939  AC_WINTLVL_HI_gc = (0x03<<0), /* High priority */
940 } AC_WINTLVL_t;
941 
942 /* Window mode state */
943 typedef enum AC_WSTATE_enum
944 {
945  AC_WSTATE_ABOVE_gc = (0x00<<6), /* Signal above window */
946  AC_WSTATE_INSIDE_gc = (0x01<<6), /* Signal inside window */
947  AC_WSTATE_BELOW_gc = (0x02<<6), /* Signal below window */
948 } AC_WSTATE_t;
949 
950 
951 /*
952 --------------------------------------------------------------------------
953 ADC - Analog/Digital Converter
954 --------------------------------------------------------------------------
955 */
956 
957 /* ADC Channel */
958 typedef struct ADC_CH_struct
959 {
960  register8_t CTRL; /* Control Register */
961  register8_t MUXCTRL; /* MUX Control */
962  register8_t INTCTRL; /* Channel Interrupt Control */
963  register8_t INTFLAGS; /* Interrupt Flags */
964  _WORDREGISTER(RES); /* Channel Result */
965  register8_t reserved_0x6;
966  register8_t reserved_0x7;
967 } ADC_CH_t;
968 
969 /*
970 --------------------------------------------------------------------------
971 ADC - Analog/Digital Converter
972 --------------------------------------------------------------------------
973 */
974 
975 /* Analog-to-Digital Converter */
976 typedef struct ADC_struct
977 {
978  register8_t CTRLA; /* Control Register A */
979  register8_t CTRLB; /* Control Register B */
980  register8_t REFCTRL; /* Reference Control */
981  register8_t EVCTRL; /* Event Control */
982  register8_t PRESCALER; /* Clock Prescaler */
983  register8_t CALCTRL; /* Calibration Control Register */
984  register8_t INTFLAGS; /* Interrupt Flags */
985  register8_t reserved_0x07;
986  register8_t reserved_0x08;
987  register8_t reserved_0x09;
988  register8_t reserved_0x0A;
989  register8_t reserved_0x0B;
990  _WORDREGISTER(CAL); /* Calibration Value */
991  register8_t reserved_0x0E;
992  register8_t reserved_0x0F;
993  _WORDREGISTER(CH0RES); /* Channel 0 Result */
994  _WORDREGISTER(CMP); /* Compare Value */
995  register8_t reserved_0x1A;
996  register8_t reserved_0x1B;
997  register8_t reserved_0x1C;
998  register8_t reserved_0x1D;
999  register8_t reserved_0x1E;
1000  register8_t reserved_0x1F;
1001  ADC_CH_t CH0; /* ADC Channel 0 */
1002 } ADC_t;
1003 
1004 /* Positive input multiplexer selection */
1005 typedef enum ADC_CH_MUXPOS_enum
1006 {
1007  ADC_CH_MUXPOS_PIN0_gc = (0x00<<3), /* Input pin 0 */
1008  ADC_CH_MUXPOS_PIN1_gc = (0x01<<3), /* Input pin 1 */
1009  ADC_CH_MUXPOS_PIN2_gc = (0x02<<3), /* Input pin 2 */
1010  ADC_CH_MUXPOS_PIN3_gc = (0x03<<3), /* Input pin 3 */
1011  ADC_CH_MUXPOS_PIN4_gc = (0x04<<3), /* Input pin 4 */
1012  ADC_CH_MUXPOS_PIN5_gc = (0x05<<3), /* Input pin 5 */
1013  ADC_CH_MUXPOS_PIN6_gc = (0x06<<3), /* Input pin 6 */
1014  ADC_CH_MUXPOS_PIN7_gc = (0x07<<3), /* Input pin 7 */
1015 } ADC_CH_MUXPOS_t;
1016 
1017 /* Internal input multiplexer selections */
1018 typedef enum ADC_CH_MUXINT_enum
1019 {
1020  ADC_CH_MUXINT_TEMP_gc = (0x00<<3), /* Temperature Reference */
1021  ADC_CH_MUXINT_BANDGAP_gc = (0x01<<3), /* Bandgap Reference */
1022  ADC_CH_MUXINT_SCALEDVCC_gc = (0x02<<3), /* 1/10 scaled VCC */
1023  ADC_CH_MUXINT_DAC_gc = (0x03<<3), /* DAC output */
1024 } ADC_CH_MUXINT_t;
1025 
1026 /* Negative input multiplexer selection */
1027 typedef enum ADC_CH_MUXNEG_enum
1028 {
1029  ADC_CH_MUXNEG_PIN0_gc = (0x00<<0), /* Input pin 0 */
1030  ADC_CH_MUXNEG_PIN1_gc = (0x01<<0), /* Input pin 1 */
1031  ADC_CH_MUXNEG_PIN2_gc = (0x02<<0), /* Input pin 2 */
1032  ADC_CH_MUXNEG_PIN3_gc = (0x03<<0), /* Input pin 3 */
1033  ADC_CH_MUXNEG_PIN4_gc = (0x04<<0), /* Input pin 4 */
1034  ADC_CH_MUXNEG_PIN5_gc = (0x05<<0), /* Input pin 5 */
1035  ADC_CH_MUXNEG_PIN6_gc = (0x06<<0), /* Input pin 6 */
1036  ADC_CH_MUXNEG_PIN7_gc = (0x07<<0), /* Input pin 7 */
1037 } ADC_CH_MUXNEG_t;
1038 
1039 /* Input mode */
1040 typedef enum ADC_CH_INPUTMODE_enum
1041 {
1042  ADC_CH_INPUTMODE_INTERNAL_gc = (0x00<<0), /* Internal inputs, no gain */
1043  ADC_CH_INPUTMODE_SINGLEENDED_gc = (0x01<<0), /* Single-ended input, no gain */
1044  ADC_CH_INPUTMODE_DIFF_gc = (0x02<<0), /* Differential input, no gain */
1045  ADC_CH_INPUTMODE_DIFFWGAIN_gc = (0x03<<0), /* Differential input, with gain */
1046 } ADC_CH_INPUTMODE_t;
1047 
1048 /* Gain factor */
1049 typedef enum ADC_CH_GAIN_enum
1050 {
1051  ADC_CH_GAIN_1X_gc = (0x00<<2), /* 1x gain */
1052  ADC_CH_GAIN_2X_gc = (0x01<<2), /* 2x gain */
1053  ADC_CH_GAIN_4X_gc = (0x02<<2), /* 4x gain */
1054  ADC_CH_GAIN_8X_gc = (0x03<<2), /* 8x gain */
1055  ADC_CH_GAIN_16X_gc = (0x04<<2), /* 16x gain */
1056  ADC_CH_GAIN_32X_gc = (0x05<<2), /* 32x gain */
1057  ADC_CH_GAIN_64X_gc = (0x06<<2), /* 64x gain */
1058 } ADC_CH_GAIN_t;
1059 
1060 /* Conversion result resolution */
1061 typedef enum ADC_RESOLUTION_enum
1062 {
1063  ADC_RESOLUTION_12BIT_gc = (0x00<<1), /* 12-bit right-adjusted result */
1064  ADC_RESOLUTION_8BIT_gc = (0x02<<1), /* 8-bit right-adjusted result */
1065  ADC_RESOLUTION_LEFT12BIT_gc = (0x03<<1), /* 12-bit left-adjusted result */
1066 } ADC_RESOLUTION_t;
1067 
1068 /* Voltage reference selection */
1069 typedef enum ADC_REFSEL_enum
1070 {
1071  ADC_REFSEL_INT1V_gc = (0x00<<4), /* Internal 1V */
1072  ADC_REFSEL_VCC_gc = (0x01<<4), /* Internal VCC/1.6V */
1073  ADC_REFSEL_AREFA_gc = (0x02<<4), /* External reference on PORT A */
1074  ADC_REFSEL_AREFB_gc = (0x03<<4), /* External reference on PORT B */
1075 } ADC_REFSEL_t;
1076 
1077 /* Channel sweep selection */
1078 typedef enum ADC_SWEEP_enum
1079 {
1080  ADC_SWEEP_0_gc = (0x00<<6), /* ADC Channel 0 */
1081 } ADC_SWEEP_t;
1082 
1083 /* Event channel input selection */
1084 typedef enum ADC_EVSEL_enum
1085 {
1086  ADC_EVSEL_0123_gc = (0x00<<3), /* Event Channel 0,1,2,3 */
1087  ADC_EVSEL_1234_gc = (0x01<<3), /* Event Channel 1,2,3,4 */
1088  ADC_EVSEL_2345_gc = (0x02<<3), /* Event Channel 2,3,4,5 */
1089  ADC_EVSEL_3456_gc = (0x03<<3), /* Event Channel 3,4,5,6 */
1090  ADC_EVSEL_4567_gc = (0x04<<3), /* Event Channel 4,5,6,7 */
1091  ADC_EVSEL_567_gc = (0x05<<3), /* Event Channel 5,6,7 */
1092  ADC_EVSEL_67_gc = (0x06<<3), /* Event Channel 6,7 */
1093  ADC_EVSEL_7_gc = (0x07<<3), /* Event Channel 7 */
1094 } ADC_EVSEL_t;
1095 
1096 /* Event action selection */
1097 typedef enum ADC_EVACT_enum
1098 {
1099  ADC_EVACT_NONE_gc = (0x00<<0), /* No event action */
1100  ADC_EVACT_CH0_gc = (0x01<<0), /* First event triggers channel 0 */
1101 } ADC_EVACT_t;
1102 
1103 /* Interupt mode */
1104 typedef enum ADC_CH_INTMODE_enum
1105 {
1106  ADC_CH_INTMODE_COMPLETE_gc = (0x00<<2), /* Interrupt on conversion complete */
1107  ADC_CH_INTMODE_BELOW_gc = (0x01<<2), /* Interrupt on result below compare value */
1108  ADC_CH_INTMODE_ABOVE_gc = (0x03<<2), /* Interrupt on result above compare value */
1109 } ADC_CH_INTMODE_t;
1110 
1111 /* Interrupt level */
1112 typedef enum ADC_CH_INTLVL_enum
1113 {
1114  ADC_CH_INTLVL_OFF_gc = (0x00<<0), /* Interrupt disabled */
1115  ADC_CH_INTLVL_LO_gc = (0x01<<0), /* Low level */
1116  ADC_CH_INTLVL_MED_gc = (0x02<<0), /* Medium level */
1117  ADC_CH_INTLVL_HI_gc = (0x03<<0), /* High level */
1118 } ADC_CH_INTLVL_t;
1119 
1120 /* Clock prescaler */
1121 typedef enum ADC_PRESCALER_enum
1122 {
1123  ADC_PRESCALER_DIV4_gc = (0x00<<0), /* Divide clock by 4 */
1124  ADC_PRESCALER_DIV8_gc = (0x01<<0), /* Divide clock by 8 */
1125  ADC_PRESCALER_DIV16_gc = (0x02<<0), /* Divide clock by 16 */
1126  ADC_PRESCALER_DIV32_gc = (0x03<<0), /* Divide clock by 32 */
1127  ADC_PRESCALER_DIV64_gc = (0x04<<0), /* Divide clock by 64 */
1128  ADC_PRESCALER_DIV128_gc = (0x05<<0), /* Divide clock by 128 */
1129  ADC_PRESCALER_DIV256_gc = (0x06<<0), /* Divide clock by 256 */
1130  ADC_PRESCALER_DIV512_gc = (0x07<<0), /* Divide clock by 512 */
1131 } ADC_PRESCALER_t;
1132 
1133 
1134 /*
1135 --------------------------------------------------------------------------
1136 RTC - Real-Time Clounter
1137 --------------------------------------------------------------------------
1138 */
1139 
1140 /* Real-Time Counter */
1141 typedef struct RTC_struct
1142 {
1143  register8_t CTRL; /* Control Register */
1144  register8_t STATUS; /* Status Register */
1145  register8_t INTCTRL; /* Interrupt Control Register */
1146  register8_t INTFLAGS; /* Interrupt Flags */
1147  register8_t TEMP; /* Temporary register */
1148  register8_t reserved_0x05;
1149  register8_t reserved_0x06;
1150  register8_t reserved_0x07;
1151  _WORDREGISTER(CNT); /* Count Register */
1152  _WORDREGISTER(PER); /* Period Register */
1153  _WORDREGISTER(COMP); /* Compare Register */
1154 } RTC_t;
1155 
1156 /* Prescaler Factor */
1157 typedef enum RTC_PRESCALER_enum
1158 {
1159  RTC_PRESCALER_OFF_gc = (0x00<<0), /* RTC Off */
1160  RTC_PRESCALER_DIV1_gc = (0x01<<0), /* RTC Clock */
1161  RTC_PRESCALER_DIV2_gc = (0x02<<0), /* RTC Clock / 2 */
1162  RTC_PRESCALER_DIV8_gc = (0x03<<0), /* RTC Clock / 8 */
1163  RTC_PRESCALER_DIV16_gc = (0x04<<0), /* RTC Clock / 16 */
1164  RTC_PRESCALER_DIV64_gc = (0x05<<0), /* RTC Clock / 64 */
1165  RTC_PRESCALER_DIV256_gc = (0x06<<0), /* RTC Clock / 256 */
1166  RTC_PRESCALER_DIV1024_gc = (0x07<<0), /* RTC Clock / 1024 */
1167 } RTC_PRESCALER_t;
1168 
1169 /* Compare Interrupt level */
1170 typedef enum RTC_COMPINTLVL_enum
1171 {
1172  RTC_COMPINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
1173  RTC_COMPINTLVL_LO_gc = (0x01<<2), /* Low Level */
1174  RTC_COMPINTLVL_MED_gc = (0x02<<2), /* Medium Level */
1175  RTC_COMPINTLVL_HI_gc = (0x03<<2), /* High Level */
1176 } RTC_COMPINTLVL_t;
1177 
1178 /* Overflow Interrupt level */
1179 typedef enum RTC_OVFINTLVL_enum
1180 {
1181  RTC_OVFINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
1182  RTC_OVFINTLVL_LO_gc = (0x01<<0), /* Low Level */
1183  RTC_OVFINTLVL_MED_gc = (0x02<<0), /* Medium Level */
1184  RTC_OVFINTLVL_HI_gc = (0x03<<0), /* High Level */
1185 } RTC_OVFINTLVL_t;
1186 
1187 
1188 /*
1189 --------------------------------------------------------------------------
1190 EBI - External Bus Interface
1191 --------------------------------------------------------------------------
1192 */
1193 
1194 /* EBI Chip Select Module */
1195 typedef struct EBI_CS_struct
1196 {
1197  register8_t CTRLA; /* Chip Select Control Register A */
1198  register8_t CTRLB; /* Chip Select Control Register B */
1199  _WORDREGISTER(BASEADDR); /* Chip Select Base Address */
1200 } EBI_CS_t;
1201 
1202 /*
1203 --------------------------------------------------------------------------
1204 EBI - External Bus Interface
1205 --------------------------------------------------------------------------
1206 */
1207 
1208 /* External Bus Interface */
1209 typedef struct EBI_struct
1210 {
1211  register8_t CTRL; /* Control */
1212  register8_t SDRAMCTRLA; /* SDRAM Control Register A */
1213  register8_t reserved_0x02;
1214  register8_t reserved_0x03;
1215  _WORDREGISTER(REFRESH); /* SDRAM Refresh Period */
1216  _WORDREGISTER(INITDLY); /* SDRAM Initialization Delay */
1217  register8_t SDRAMCTRLB; /* SDRAM Control Register B */
1218  register8_t SDRAMCTRLC; /* SDRAM Control Register C */
1219  register8_t reserved_0x0A;
1220  register8_t reserved_0x0B;
1221  register8_t reserved_0x0C;
1222  register8_t reserved_0x0D;
1223  register8_t reserved_0x0E;
1224  register8_t reserved_0x0F;
1225  EBI_CS_t CS0; /* Chip Select 0 */
1226  EBI_CS_t CS1; /* Chip Select 1 */
1227  EBI_CS_t CS2; /* Chip Select 2 */
1228  EBI_CS_t CS3; /* Chip Select 3 */
1229 } EBI_t;
1230 
1231 /* Chip Select adress space */
1232 typedef enum EBI_CS_ASPACE_enum
1233 {
1234  EBI_CS_ASPACE_256B_gc = (0x00<<2), /* 256 bytes */
1235  EBI_CS_ASPACE_512B_gc = (0x01<<2), /* 512 bytes */
1236  EBI_CS_ASPACE_1KB_gc = (0x02<<2), /* 1K bytes */
1237  EBI_CS_ASPACE_2KB_gc = (0x03<<2), /* 2K bytes */
1238  EBI_CS_ASPACE_4KB_gc = (0x04<<2), /* 4K bytes */
1239  EBI_CS_ASPACE_8KB_gc = (0x05<<2), /* 8K bytes */
1240  EBI_CS_ASPACE_16KB_gc = (0x06<<2), /* 16K bytes */
1241  EBI_CS_ASPACE_32KB_gc = (0x07<<2), /* 32K bytes */
1242  EBI_CS_ASPACE_64KB_gc = (0x08<<2), /* 64K bytes */
1243  EBI_CS_ASPACE_128KB_gc = (0x09<<2), /* 128K bytes */
1244  EBI_CS_ASPACE_256KB_gc = (0x0A<<2), /* 256K bytes */
1245  EBI_CS_ASPACE_512KB_gc = (0x0B<<2), /* 512K bytes */
1246  EBI_CS_ASPACE_1MB_gc = (0x0C<<2), /* 1M bytes */
1247  EBI_CS_ASPACE_2MB_gc = (0x0D<<2), /* 2M bytes */
1248  EBI_CS_ASPACE_4MB_gc = (0x0E<<2), /* 4M bytes */
1249  EBI_CS_ASPACE_8MB_gc = (0x0F<<2), /* 8M bytes */
1250  EBI_CS_ASPACE_16M_gc = (0x10<<2), /* 16M bytes */
1251 } EBI_CS_ASPACE_t;
1252 
1253 /* */
1254 typedef enum EBI_CS_SRWS_enum
1255 {
1256  EBI_CS_SRWS_0CLK_gc = (0x00<<0), /* 0 cycles */
1257  EBI_CS_SRWS_1CLK_gc = (0x01<<0), /* 1 cycle */
1258  EBI_CS_SRWS_2CLK_gc = (0x02<<0), /* 2 cycles */
1259  EBI_CS_SRWS_3CLK_gc = (0x03<<0), /* 3 cycles */
1260  EBI_CS_SRWS_4CLK_gc = (0x04<<0), /* 4 cycles */
1261  EBI_CS_SRWS_5CLK_gc = (0x05<<0), /* 5 cycle */
1262  EBI_CS_SRWS_6CLK_gc = (0x06<<0), /* 6 cycles */
1263  EBI_CS_SRWS_7CLK_gc = (0x07<<0), /* 7 cycles */
1264 } EBI_CS_SRWS_t;
1265 
1266 /* Chip Select address mode */
1267 typedef enum EBI_CS_MODE_enum
1268 {
1269  EBI_CS_MODE_DISABLED_gc = (0x00<<0), /* Chip Select Disabled */
1270  EBI_CS_MODE_SRAM_gc = (0x01<<0), /* Chip Select in SRAM mode */
1271  EBI_CS_MODE_LPC_gc = (0x02<<0), /* Chip Select in SRAM LPC mode */
1272  EBI_CS_MODE_SDRAM_gc = (0x03<<0), /* Chip Select in SDRAM mode */
1273 } EBI_CS_MODE_t;
1274 
1275 /* Chip Select SDRAM mode */
1276 typedef enum EBI_CS_SDMODE_enum
1277 {
1278  EBI_CS_SDMODE_NORMAL_gc = (0x00<<0), /* Normal mode */
1279  EBI_CS_SDMODE_LOAD_gc = (0x01<<0), /* Load Mode Register command mode */
1280 } EBI_CS_SDMODE_t;
1281 
1282 /* */
1283 typedef enum EBI_SDDATAW_enum
1284 {
1285  EBI_SDDATAW_4BIT_gc = (0x00<<6), /* 4-bit data bus */
1286  EBI_SDDATAW_8BIT_gc = (0x01<<6), /* 8-bit data bus */
1287 } EBI_SDDATAW_t;
1288 
1289 /* */
1290 typedef enum EBI_LPCMODE_enum
1291 {
1292  EBI_LPCMODE_ALE1_gc = (0x00<<4), /* Data muxed with addr byte 0 */
1293  EBI_LPCMODE_ALE12_gc = (0x02<<4), /* Data muxed with addr byte 0 and 1 */
1294 } EBI_LPCMODE_t;
1295 
1296 /* */
1297 typedef enum EBI_SRMODE_enum
1298 {
1299  EBI_SRMODE_ALE1_gc = (0x00<<2), /* Addr byte 0 muxed with 1 */
1300  EBI_SRMODE_ALE2_gc = (0x01<<2), /* Addr byte 0 muxed with 2 */
1301  EBI_SRMODE_ALE12_gc = (0x02<<2), /* Addr byte 0 muxed with 1 and 2 */
1302  EBI_SRMODE_NOALE_gc = (0x03<<2), /* No addr muxing */
1303 } EBI_SRMODE_t;
1304 
1305 /* */
1306 typedef enum EBI_IFMODE_enum
1307 {
1308  EBI_IFMODE_DISABLED_gc = (0x00<<0), /* EBI Disabled */
1309  EBI_IFMODE_3PORT_gc = (0x01<<0), /* 3-port mode */
1310  EBI_IFMODE_4PORT_gc = (0x02<<0), /* 4-port mode */
1311  EBI_IFMODE_2PORT_gc = (0x03<<0), /* 2-port mode */
1312 } EBI_IFMODE_t;
1313 
1314 /* */
1315 typedef enum EBI_SDCOL_enum
1316 {
1317  EBI_SDCOL_8BIT_gc = (0x00<<0), /* 8 column bits */
1318  EBI_SDCOL_9BIT_gc = (0x01<<0), /* 9 column bits */
1319  EBI_SDCOL_10BIT_gc = (0x02<<0), /* 10 column bits */
1320  EBI_SDCOL_11BIT_gc = (0x03<<0), /* 11 column bits */
1321 } EBI_SDCOL_t;
1322 
1323 /* */
1324 typedef enum EBI_MRDLY_enum
1325 {
1326  EBI_MRDLY_0CLK_gc = (0x00<<6), /* 0 cycles */
1327  EBI_MRDLY_1CLK_gc = (0x01<<6), /* 1 cycle */
1328  EBI_MRDLY_2CLK_gc = (0x02<<6), /* 2 cycles */
1329  EBI_MRDLY_3CLK_gc = (0x03<<6), /* 3 cycles */
1330 } EBI_MRDLY_t;
1331 
1332 /* */
1333 typedef enum EBI_ROWCYCDLY_enum
1334 {
1335  EBI_ROWCYCDLY_0CLK_gc = (0x00<<3), /* 0 cycles */
1336  EBI_ROWCYCDLY_1CLK_gc = (0x01<<3), /* 1 cycle */
1337  EBI_ROWCYCDLY_2CLK_gc = (0x02<<3), /* 2 cycles */
1338  EBI_ROWCYCDLY_3CLK_gc = (0x03<<3), /* 3 cycles */
1339  EBI_ROWCYCDLY_4CLK_gc = (0x04<<3), /* 4 cycles */
1340  EBI_ROWCYCDLY_5CLK_gc = (0x05<<3), /* 5 cycle */
1341  EBI_ROWCYCDLY_6CLK_gc = (0x06<<3), /* 6 cycles */
1342  EBI_ROWCYCDLY_7CLK_gc = (0x07<<3), /* 7 cycles */
1343 } EBI_ROWCYCDLY_t;
1344 
1345 /* */
1346 typedef enum EBI_RPDLY_enum
1347 {
1348  EBI_RPDLY_0CLK_gc = (0x00<<0), /* 0 cycles */
1349  EBI_RPDLY_1CLK_gc = (0x01<<0), /* 1 cycle */
1350  EBI_RPDLY_2CLK_gc = (0x02<<0), /* 2 cycles */
1351  EBI_RPDLY_3CLK_gc = (0x03<<0), /* 3 cycles */
1352  EBI_RPDLY_4CLK_gc = (0x04<<0), /* 4 cycles */
1353  EBI_RPDLY_5CLK_gc = (0x05<<0), /* 5 cycle */
1354  EBI_RPDLY_6CLK_gc = (0x06<<0), /* 6 cycles */
1355  EBI_RPDLY_7CLK_gc = (0x07<<0), /* 7 cycles */
1356 } EBI_RPDLY_t;
1357 
1358 /* */
1359 typedef enum EBI_WRDLY_enum
1360 {
1361  EBI_WRDLY_0CLK_gc = (0x00<<6), /* 0 cycles */
1362  EBI_WRDLY_1CLK_gc = (0x01<<6), /* 1 cycle */
1363  EBI_WRDLY_2CLK_gc = (0x02<<6), /* 2 cycles */
1364  EBI_WRDLY_3CLK_gc = (0x03<<6), /* 3 cycles */
1365 } EBI_WRDLY_t;
1366 
1367 /* */
1368 typedef enum EBI_ESRDLY_enum
1369 {
1370  EBI_ESRDLY_0CLK_gc = (0x00<<3), /* 0 cycles */
1371  EBI_ESRDLY_1CLK_gc = (0x01<<3), /* 1 cycle */
1372  EBI_ESRDLY_2CLK_gc = (0x02<<3), /* 2 cycles */
1373  EBI_ESRDLY_3CLK_gc = (0x03<<3), /* 3 cycles */
1374  EBI_ESRDLY_4CLK_gc = (0x04<<3), /* 4 cycles */
1375  EBI_ESRDLY_5CLK_gc = (0x05<<3), /* 5 cycle */
1376  EBI_ESRDLY_6CLK_gc = (0x06<<3), /* 6 cycles */
1377  EBI_ESRDLY_7CLK_gc = (0x07<<3), /* 7 cycles */
1378 } EBI_ESRDLY_t;
1379 
1380 /* */
1381 typedef enum EBI_ROWCOLDLY_enum
1382 {
1383  EBI_ROWCOLDLY_0CLK_gc = (0x00<<0), /* 0 cycles */
1384  EBI_ROWCOLDLY_1CLK_gc = (0x01<<0), /* 1 cycle */
1385  EBI_ROWCOLDLY_2CLK_gc = (0x02<<0), /* 2 cycles */
1386  EBI_ROWCOLDLY_3CLK_gc = (0x03<<0), /* 3 cycles */
1387  EBI_ROWCOLDLY_4CLK_gc = (0x04<<0), /* 4 cycles */
1388  EBI_ROWCOLDLY_5CLK_gc = (0x05<<0), /* 5 cycle */
1389  EBI_ROWCOLDLY_6CLK_gc = (0x06<<0), /* 6 cycles */
1390  EBI_ROWCOLDLY_7CLK_gc = (0x07<<0), /* 7 cycles */
1391 } EBI_ROWCOLDLY_t;
1392 
1393 
1394 /*
1395 --------------------------------------------------------------------------
1396 TWI - Two-Wire Interface
1397 --------------------------------------------------------------------------
1398 */
1399 
1400 /* */
1401 typedef struct TWI_MASTER_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 STATUS; /* Status Register */
1407  register8_t BAUD; /* Baurd Rate Control Register */
1408  register8_t ADDR; /* Address Register */
1409  register8_t DATA; /* Data Register */
1410 } TWI_MASTER_t;
1411 
1412 /*
1413 --------------------------------------------------------------------------
1414 TWI - Two-Wire Interface
1415 --------------------------------------------------------------------------
1416 */
1417 
1418 /* */
1419 typedef struct TWI_SLAVE_struct
1420 {
1421  register8_t CTRLA; /* Control Register A */
1422  register8_t CTRLB; /* Control Register B */
1423  register8_t STATUS; /* Status Register */
1424  register8_t ADDR; /* Address Register */
1425  register8_t DATA; /* Data Register */
1426  register8_t ADDRMASK; /* Address Mask Register */
1427 } TWI_SLAVE_t;
1428 
1429 /*
1430 --------------------------------------------------------------------------
1431 TWI - Two-Wire Interface
1432 --------------------------------------------------------------------------
1433 */
1434 
1435 /* Two-Wire Interface */
1436 typedef struct TWI_struct
1437 {
1438  register8_t CTRL; /* TWI Common Control Register */
1439  TWI_MASTER_t MASTER; /* TWI master module */
1440  TWI_SLAVE_t SLAVE; /* TWI slave module */
1441 } TWI_t;
1442 
1443 /* Master Interrupt Level */
1444 typedef enum TWI_MASTER_INTLVL_enum
1445 {
1446  TWI_MASTER_INTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */
1447  TWI_MASTER_INTLVL_LO_gc = (0x01<<6), /* Low Level */
1448  TWI_MASTER_INTLVL_MED_gc = (0x02<<6), /* Medium Level */
1449  TWI_MASTER_INTLVL_HI_gc = (0x03<<6), /* High Level */
1450 } TWI_MASTER_INTLVL_t;
1451 
1452 /* Inactive Timeout */
1453 typedef enum TWI_MASTER_TIMEOUT_enum
1454 {
1455  TWI_MASTER_TIMEOUT_DISABLED_gc = (0x00<<2), /* Bus Timeout Disabled */
1456  TWI_MASTER_TIMEOUT_50US_gc = (0x01<<2), /* 50 Microseconds */
1457  TWI_MASTER_TIMEOUT_100US_gc = (0x02<<2), /* 100 Microseconds */
1458  TWI_MASTER_TIMEOUT_200US_gc = (0x03<<2), /* 200 Microseconds */
1459 } TWI_MASTER_TIMEOUT_t;
1460 
1461 /* Master Command */
1462 typedef enum TWI_MASTER_CMD_enum
1463 {
1464  TWI_MASTER_CMD_NOACT_gc = (0x00<<0), /* No Action */
1465  TWI_MASTER_CMD_REPSTART_gc = (0x01<<0), /* Issue Repeated Start Condition */
1466  TWI_MASTER_CMD_RECVTRANS_gc = (0x02<<0), /* Receive or Transmit Data */
1467  TWI_MASTER_CMD_STOP_gc = (0x03<<0), /* Issue Stop Condition */
1468 } TWI_MASTER_CMD_t;
1469 
1470 /* Master Bus State */
1471 typedef enum TWI_MASTER_BUSSTATE_enum
1472 {
1473  TWI_MASTER_BUSSTATE_UNKNOWN_gc = (0x00<<0), /* Unknown Bus State */
1474  TWI_MASTER_BUSSTATE_IDLE_gc = (0x01<<0), /* Bus is Idle */
1475  TWI_MASTER_BUSSTATE_OWNER_gc = (0x02<<0), /* This Module Controls The Bus */
1476  TWI_MASTER_BUSSTATE_BUSY_gc = (0x03<<0), /* The Bus is Busy */
1477 } TWI_MASTER_BUSSTATE_t;
1478 
1479 /* Slave Interrupt Level */
1480 typedef enum TWI_SLAVE_INTLVL_enum
1481 {
1482  TWI_SLAVE_INTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */
1483  TWI_SLAVE_INTLVL_LO_gc = (0x01<<6), /* Low Level */
1484  TWI_SLAVE_INTLVL_MED_gc = (0x02<<6), /* Medium Level */
1485  TWI_SLAVE_INTLVL_HI_gc = (0x03<<6), /* High Level */
1486 } TWI_SLAVE_INTLVL_t;
1487 
1488 /* Slave Command */
1489 typedef enum TWI_SLAVE_CMD_enum
1490 {
1491  TWI_SLAVE_CMD_NOACT_gc = (0x00<<0), /* No Action */
1492  TWI_SLAVE_CMD_COMPTRANS_gc = (0x02<<0), /* Used To Complete a Transaction */
1493  TWI_SLAVE_CMD_RESPONSE_gc = (0x03<<0), /* Used in Response to Address/Data Interrupt */
1494 } TWI_SLAVE_CMD_t;
1495 
1496 
1497 /*
1498 --------------------------------------------------------------------------
1499 PORT - Port Configuration
1500 --------------------------------------------------------------------------
1501 */
1502 
1503 /* I/O port Configuration */
1504 typedef struct PORTCFG_struct
1505 {
1506  register8_t MPCMASK; /* Multi-pin Configuration Mask */
1507  register8_t reserved_0x01;
1508  register8_t VPCTRLA; /* Virtual Port Control Register A */
1509  register8_t VPCTRLB; /* Virtual Port Control Register B */
1510  register8_t CLKEVOUT; /* Clock and Event Out Register */
1511 } PORTCFG_t;
1512 
1513 /*
1514 --------------------------------------------------------------------------
1515 PORT - Port Configuration
1516 --------------------------------------------------------------------------
1517 */
1518 
1519 /* Virtual Port */
1520 typedef struct VPORT_struct
1521 {
1522  register8_t DIR; /* I/O Port Data Direction */
1523  register8_t OUT; /* I/O Port Output */
1524  register8_t IN; /* I/O Port Input */
1525  register8_t INTFLAGS; /* Interrupt Flag Register */
1526 } VPORT_t;
1527 
1528 /*
1529 --------------------------------------------------------------------------
1530 PORT - Port Configuration
1531 --------------------------------------------------------------------------
1532 */
1533 
1534 /* I/O Ports */
1535 typedef struct PORT_struct
1536 {
1537  register8_t DIR; /* I/O Port Data Direction */
1538  register8_t DIRSET; /* I/O Port Data Direction Set */
1539  register8_t DIRCLR; /* I/O Port Data Direction Clear */
1540  register8_t DIRTGL; /* I/O Port Data Direction Toggle */
1541  register8_t OUT; /* I/O Port Output */
1542  register8_t OUTSET; /* I/O Port Output Set */
1543  register8_t OUTCLR; /* I/O Port Output Clear */
1544  register8_t OUTTGL; /* I/O Port Output Toggle */
1545  register8_t IN; /* I/O port Input */
1546  register8_t INTCTRL; /* Interrupt Control Register */
1547  register8_t INT0MASK; /* Port Interrupt 0 Mask */
1548  register8_t INT1MASK; /* Port Interrupt 1 Mask */
1549  register8_t INTFLAGS; /* Interrupt Flag Register */
1550  register8_t reserved_0x0D;
1551  register8_t reserved_0x0E;
1552  register8_t reserved_0x0F;
1553  register8_t PIN0CTRL; /* Pin 0 Control Register */
1554  register8_t PIN1CTRL; /* Pin 1 Control Register */
1555  register8_t PIN2CTRL; /* Pin 2 Control Register */
1556  register8_t PIN3CTRL; /* Pin 3 Control Register */
1557  register8_t PIN4CTRL; /* Pin 4 Control Register */
1558  register8_t PIN5CTRL; /* Pin 5 Control Register */
1559  register8_t PIN6CTRL; /* Pin 6 Control Register */
1560  register8_t PIN7CTRL; /* Pin 7 Control Register */
1561 } PORT_t;
1562 
1563 /* Virtual Port 0 Mapping */
1564 typedef enum PORTCFG_VP0MAP_enum
1565 {
1566  PORTCFG_VP0MAP_PORTA_gc = (0x00<<0), /* Mapped To PORTA */
1567  PORTCFG_VP0MAP_PORTB_gc = (0x01<<0), /* Mapped To PORTB */
1568  PORTCFG_VP0MAP_PORTC_gc = (0x02<<0), /* Mapped To PORTC */
1569  PORTCFG_VP0MAP_PORTD_gc = (0x03<<0), /* Mapped To PORTD */
1570  PORTCFG_VP0MAP_PORTE_gc = (0x04<<0), /* Mapped To PORTE */
1571  PORTCFG_VP0MAP_PORTF_gc = (0x05<<0), /* Mapped To PORTF */
1572  PORTCFG_VP0MAP_PORTG_gc = (0x06<<0), /* Mapped To PORTG */
1573  PORTCFG_VP0MAP_PORTH_gc = (0x07<<0), /* Mapped To PORTH */
1574  PORTCFG_VP0MAP_PORTJ_gc = (0x08<<0), /* Mapped To PORTJ */
1575  PORTCFG_VP0MAP_PORTK_gc = (0x09<<0), /* Mapped To PORTK */
1576  PORTCFG_VP0MAP_PORTL_gc = (0x0A<<0), /* Mapped To PORTL */
1577  PORTCFG_VP0MAP_PORTM_gc = (0x0B<<0), /* Mapped To PORTM */
1578  PORTCFG_VP0MAP_PORTN_gc = (0x0C<<0), /* Mapped To PORTN */
1579  PORTCFG_VP0MAP_PORTP_gc = (0x0D<<0), /* Mapped To PORTP */
1580  PORTCFG_VP0MAP_PORTQ_gc = (0x0E<<0), /* Mapped To PORTQ */
1581  PORTCFG_VP0MAP_PORTR_gc = (0x0F<<0), /* Mapped To PORTR */
1582 } PORTCFG_VP0MAP_t;
1583 
1584 /* Virtual Port 1 Mapping */
1585 typedef enum PORTCFG_VP1MAP_enum
1586 {
1587  PORTCFG_VP1MAP_PORTA_gc = (0x00<<4), /* Mapped To PORTA */
1588  PORTCFG_VP1MAP_PORTB_gc = (0x01<<4), /* Mapped To PORTB */
1589  PORTCFG_VP1MAP_PORTC_gc = (0x02<<4), /* Mapped To PORTC */
1590  PORTCFG_VP1MAP_PORTD_gc = (0x03<<4), /* Mapped To PORTD */
1591  PORTCFG_VP1MAP_PORTE_gc = (0x04<<4), /* Mapped To PORTE */
1592  PORTCFG_VP1MAP_PORTF_gc = (0x05<<4), /* Mapped To PORTF */
1593  PORTCFG_VP1MAP_PORTG_gc = (0x06<<4), /* Mapped To PORTG */
1594  PORTCFG_VP1MAP_PORTH_gc = (0x07<<4), /* Mapped To PORTH */
1595  PORTCFG_VP1MAP_PORTJ_gc = (0x08<<4), /* Mapped To PORTJ */
1596  PORTCFG_VP1MAP_PORTK_gc = (0x09<<4), /* Mapped To PORTK */
1597  PORTCFG_VP1MAP_PORTL_gc = (0x0A<<4), /* Mapped To PORTL */
1598  PORTCFG_VP1MAP_PORTM_gc = (0x0B<<4), /* Mapped To PORTM */
1599  PORTCFG_VP1MAP_PORTN_gc = (0x0C<<4), /* Mapped To PORTN */
1600  PORTCFG_VP1MAP_PORTP_gc = (0x0D<<4), /* Mapped To PORTP */
1601  PORTCFG_VP1MAP_PORTQ_gc = (0x0E<<4), /* Mapped To PORTQ */
1602  PORTCFG_VP1MAP_PORTR_gc = (0x0F<<4), /* Mapped To PORTR */
1603 } PORTCFG_VP1MAP_t;
1604 
1605 /* Virtual Port 2 Mapping */
1606 typedef enum PORTCFG_VP2MAP_enum
1607 {
1608  PORTCFG_VP2MAP_PORTA_gc = (0x00<<0), /* Mapped To PORTA */
1609  PORTCFG_VP2MAP_PORTB_gc = (0x01<<0), /* Mapped To PORTB */
1610  PORTCFG_VP2MAP_PORTC_gc = (0x02<<0), /* Mapped To PORTC */
1611  PORTCFG_VP2MAP_PORTD_gc = (0x03<<0), /* Mapped To PORTD */
1612  PORTCFG_VP2MAP_PORTE_gc = (0x04<<0), /* Mapped To PORTE */
1613  PORTCFG_VP2MAP_PORTF_gc = (0x05<<0), /* Mapped To PORTF */
1614  PORTCFG_VP2MAP_PORTG_gc = (0x06<<0), /* Mapped To PORTG */
1615  PORTCFG_VP2MAP_PORTH_gc = (0x07<<0), /* Mapped To PORTH */
1616  PORTCFG_VP2MAP_PORTJ_gc = (0x08<<0), /* Mapped To PORTJ */
1617  PORTCFG_VP2MAP_PORTK_gc = (0x09<<0), /* Mapped To PORTK */
1618  PORTCFG_VP2MAP_PORTL_gc = (0x0A<<0), /* Mapped To PORTL */
1619  PORTCFG_VP2MAP_PORTM_gc = (0x0B<<0), /* Mapped To PORTM */
1620  PORTCFG_VP2MAP_PORTN_gc = (0x0C<<0), /* Mapped To PORTN */
1621  PORTCFG_VP2MAP_PORTP_gc = (0x0D<<0), /* Mapped To PORTP */
1622  PORTCFG_VP2MAP_PORTQ_gc = (0x0E<<0), /* Mapped To PORTQ */
1623  PORTCFG_VP2MAP_PORTR_gc = (0x0F<<0), /* Mapped To PORTR */
1624 } PORTCFG_VP2MAP_t;
1625 
1626 /* Virtual Port 3 Mapping */
1627 typedef enum PORTCFG_VP3MAP_enum
1628 {
1629  PORTCFG_VP3MAP_PORTA_gc = (0x00<<4), /* Mapped To PORTA */
1630  PORTCFG_VP3MAP_PORTB_gc = (0x01<<4), /* Mapped To PORTB */
1631  PORTCFG_VP3MAP_PORTC_gc = (0x02<<4), /* Mapped To PORTC */
1632  PORTCFG_VP3MAP_PORTD_gc = (0x03<<4), /* Mapped To PORTD */
1633  PORTCFG_VP3MAP_PORTE_gc = (0x04<<4), /* Mapped To PORTE */
1634  PORTCFG_VP3MAP_PORTF_gc = (0x05<<4), /* Mapped To PORTF */
1635  PORTCFG_VP3MAP_PORTG_gc = (0x06<<4), /* Mapped To PORTG */
1636  PORTCFG_VP3MAP_PORTH_gc = (0x07<<4), /* Mapped To PORTH */
1637  PORTCFG_VP3MAP_PORTJ_gc = (0x08<<4), /* Mapped To PORTJ */
1638  PORTCFG_VP3MAP_PORTK_gc = (0x09<<4), /* Mapped To PORTK */
1639  PORTCFG_VP3MAP_PORTL_gc = (0x0A<<4), /* Mapped To PORTL */
1640  PORTCFG_VP3MAP_PORTM_gc = (0x0B<<4), /* Mapped To PORTM */
1641  PORTCFG_VP3MAP_PORTN_gc = (0x0C<<4), /* Mapped To PORTN */
1642  PORTCFG_VP3MAP_PORTP_gc = (0x0D<<4), /* Mapped To PORTP */
1643  PORTCFG_VP3MAP_PORTQ_gc = (0x0E<<4), /* Mapped To PORTQ */
1644  PORTCFG_VP3MAP_PORTR_gc = (0x0F<<4), /* Mapped To PORTR */
1645 } PORTCFG_VP3MAP_t;
1646 
1647 /* Clock Output Port */
1648 typedef enum PORTCFG_CLKOUT_enum
1649 {
1650  PORTCFG_CLKOUT_OFF_gc = (0x00<<0), /* Clock Output Disabled */
1651  PORTCFG_CLKOUT_PC7_gc = (0x01<<0), /* Clock Output on Port C pin 7 */
1652  PORTCFG_CLKOUT_PD7_gc = (0x02<<0), /* Clock Output on Port D pin 7 */
1653  PORTCFG_CLKOUT_PE7_gc = (0x03<<0), /* Clock Output on Port E pin 7 */
1654 } PORTCFG_CLKOUT_t;
1655 
1656 /* Event Output Port */
1657 typedef enum PORTCFG_EVOUT_enum
1658 {
1659  PORTCFG_EVOUT_OFF_gc = (0x00<<4), /* Event Output Disabled */
1660  PORTCFG_EVOUT_PC7_gc = (0x01<<4), /* Event Channel 7 Output on Port C pin 7 */
1661  PORTCFG_EVOUT_PD7_gc = (0x02<<4), /* Event Channel 7 Output on Port D pin 7 */
1662  PORTCFG_EVOUT_PE7_gc = (0x03<<4), /* Event Channel 7 Output on Port E pin 7 */
1663 } PORTCFG_EVOUT_t;
1664 
1665 /* Port Interrupt 0 Level */
1666 typedef enum PORT_INT0LVL_enum
1667 {
1668  PORT_INT0LVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
1669  PORT_INT0LVL_LO_gc = (0x01<<0), /* Low Level */
1670  PORT_INT0LVL_MED_gc = (0x02<<0), /* Medium Level */
1671  PORT_INT0LVL_HI_gc = (0x03<<0), /* High Level */
1672 } PORT_INT0LVL_t;
1673 
1674 /* Port Interrupt 1 Level */
1675 typedef enum PORT_INT1LVL_enum
1676 {
1677  PORT_INT1LVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
1678  PORT_INT1LVL_LO_gc = (0x01<<2), /* Low Level */
1679  PORT_INT1LVL_MED_gc = (0x02<<2), /* Medium Level */
1680  PORT_INT1LVL_HI_gc = (0x03<<2), /* High Level */
1681 } PORT_INT1LVL_t;
1682 
1683 /* Output/Pull Configuration */
1684 typedef enum PORT_OPC_enum
1685 {
1686  PORT_OPC_TOTEM_gc = (0x00<<3), /* Totempole */
1687  PORT_OPC_BUSKEEPER_gc = (0x01<<3), /* Totempole w/ Bus keeper on Input and Output */
1688  PORT_OPC_PULLDOWN_gc = (0x02<<3), /* Totempole w/ Pull-down on Input */
1689  PORT_OPC_PULLUP_gc = (0x03<<3), /* Totempole w/ Pull-up on Input */
1690  PORT_OPC_WIREDOR_gc = (0x04<<3), /* Wired OR */
1691  PORT_OPC_WIREDAND_gc = (0x05<<3), /* Wired AND */
1692  PORT_OPC_WIREDORPULL_gc = (0x06<<3), /* Wired OR w/ Pull-down */
1693  PORT_OPC_WIREDANDPULL_gc = (0x07<<3), /* Wired AND w/ Pull-up */
1694 } PORT_OPC_t;
1695 
1696 /* Input/Sense Configuration */
1697 typedef enum PORT_ISC_enum
1698 {
1699  PORT_ISC_BOTHEDGES_gc = (0x00<<0), /* Sense Both Edges */
1700  PORT_ISC_RISING_gc = (0x01<<0), /* Sense Rising Edge */
1701  PORT_ISC_FALLING_gc = (0x02<<0), /* Sense Falling Edge */
1702  PORT_ISC_LEVEL_gc = (0x03<<0), /* Sense Level (Transparent For Events) */
1703  PORT_ISC_INPUT_DISABLE_gc = (0x07<<0), /* Disable Digital Input Buffer */
1704 } PORT_ISC_t;
1705 
1706 
1707 /*
1708 --------------------------------------------------------------------------
1709 TC - 16-bit Timer/Counter With PWM
1710 --------------------------------------------------------------------------
1711 */
1712 
1713 /* 16-bit Timer/Counter 0 */
1714 typedef struct TC0_struct
1715 {
1716  register8_t CTRLA; /* Control Register A */
1717  register8_t CTRLB; /* Control Register B */
1718  register8_t CTRLC; /* Control register C */
1719  register8_t CTRLD; /* Control Register D */
1720  register8_t CTRLE; /* Control Register E */
1721  register8_t reserved_0x05;
1722  register8_t INTCTRLA; /* Interrupt Control Register A */
1723  register8_t INTCTRLB; /* Interrupt Control Register B */
1724  register8_t CTRLFCLR; /* Control Register F Clear */
1725  register8_t CTRLFSET; /* Control Register F Set */
1726  register8_t CTRLGCLR; /* Control Register G Clear */
1727  register8_t CTRLGSET; /* Control Register G Set */
1728  register8_t INTFLAGS; /* Interrupt Flag Register */
1729  register8_t reserved_0x0D;
1730  register8_t reserved_0x0E;
1731  register8_t TEMP; /* Temporary Register For 16-bit Access */
1732  register8_t reserved_0x10;
1733  register8_t reserved_0x11;
1734  register8_t reserved_0x12;
1735  register8_t reserved_0x13;
1736  register8_t reserved_0x14;
1737  register8_t reserved_0x15;
1738  register8_t reserved_0x16;
1739  register8_t reserved_0x17;
1740  register8_t reserved_0x18;
1741  register8_t reserved_0x19;
1742  register8_t reserved_0x1A;
1743  register8_t reserved_0x1B;
1744  register8_t reserved_0x1C;
1745  register8_t reserved_0x1D;
1746  register8_t reserved_0x1E;
1747  register8_t reserved_0x1F;
1748  _WORDREGISTER(CNT); /* Count */
1749  register8_t reserved_0x22;
1750  register8_t reserved_0x23;
1751  register8_t reserved_0x24;
1752  register8_t reserved_0x25;
1753  _WORDREGISTER(PER); /* Period */
1754  _WORDREGISTER(CCA); /* Compare or Capture A */
1755  _WORDREGISTER(CCB); /* Compare or Capture B */
1756  _WORDREGISTER(CCC); /* Compare or Capture C */
1757  _WORDREGISTER(CCD); /* Compare or Capture D */
1758  register8_t reserved_0x30;
1759  register8_t reserved_0x31;
1760  register8_t reserved_0x32;
1761  register8_t reserved_0x33;
1762  register8_t reserved_0x34;
1763  register8_t reserved_0x35;
1764  _WORDREGISTER(PERBUF); /* Period Buffer */
1765  _WORDREGISTER(CCABUF); /* Compare Or Capture A Buffer */
1766  _WORDREGISTER(CCBBUF); /* Compare Or Capture B Buffer */
1767  _WORDREGISTER(CCCBUF); /* Compare Or Capture C Buffer */
1768  _WORDREGISTER(CCDBUF); /* Compare Or Capture D Buffer */
1769 } TC0_t;
1770 
1771 /*
1772 --------------------------------------------------------------------------
1773 TC - 16-bit Timer/Counter With PWM
1774 --------------------------------------------------------------------------
1775 */
1776 
1777 /* 16-bit Timer/Counter 1 */
1778 typedef struct TC1_struct
1779 {
1780  register8_t CTRLA; /* Control Register A */
1781  register8_t CTRLB; /* Control Register B */
1782  register8_t CTRLC; /* Control register C */
1783  register8_t CTRLD; /* Control Register D */
1784  register8_t CTRLE; /* Control Register E */
1785  register8_t reserved_0x05;
1786  register8_t INTCTRLA; /* Interrupt Control Register A */
1787  register8_t INTCTRLB; /* Interrupt Control Register B */
1788  register8_t CTRLFCLR; /* Control Register F Clear */
1789  register8_t CTRLFSET; /* Control Register F Set */
1790  register8_t CTRLGCLR; /* Control Register G Clear */
1791  register8_t CTRLGSET; /* Control Register G Set */
1792  register8_t INTFLAGS; /* Interrupt Flag Register */
1793  register8_t reserved_0x0D;
1794  register8_t reserved_0x0E;
1795  register8_t TEMP; /* Temporary Register For 16-bit Access */
1796  register8_t reserved_0x10;
1797  register8_t reserved_0x11;
1798  register8_t reserved_0x12;
1799  register8_t reserved_0x13;
1800  register8_t reserved_0x14;
1801  register8_t reserved_0x15;
1802  register8_t reserved_0x16;
1803  register8_t reserved_0x17;
1804  register8_t reserved_0x18;
1805  register8_t reserved_0x19;
1806  register8_t reserved_0x1A;
1807  register8_t reserved_0x1B;
1808  register8_t reserved_0x1C;
1809  register8_t reserved_0x1D;
1810  register8_t reserved_0x1E;
1811  register8_t reserved_0x1F;
1812  _WORDREGISTER(CNT); /* Count */
1813  register8_t reserved_0x22;
1814  register8_t reserved_0x23;
1815  register8_t reserved_0x24;
1816  register8_t reserved_0x25;
1817  _WORDREGISTER(PER); /* Period */
1818  _WORDREGISTER(CCA); /* Compare or Capture A */
1819  _WORDREGISTER(CCB); /* Compare or Capture B */
1820  register8_t reserved_0x2C;
1821  register8_t reserved_0x2D;
1822  register8_t reserved_0x2E;
1823  register8_t reserved_0x2F;
1824  register8_t reserved_0x30;
1825  register8_t reserved_0x31;
1826  register8_t reserved_0x32;
1827  register8_t reserved_0x33;
1828  register8_t reserved_0x34;
1829  register8_t reserved_0x35;
1830  _WORDREGISTER(PERBUF); /* Period Buffer */
1831  _WORDREGISTER(CCABUF); /* Compare Or Capture A Buffer */
1832  _WORDREGISTER(CCBBUF); /* Compare Or Capture B Buffer */
1833 } TC1_t;
1834 
1835 /*
1836 --------------------------------------------------------------------------
1837 TC - 16-bit Timer/Counter With PWM
1838 --------------------------------------------------------------------------
1839 */
1840 
1841 /* Advanced Waveform Extension */
1842 typedef struct AWEX_struct
1843 {
1844  register8_t CTRL; /* Control Register */
1845  register8_t reserved_0x01;
1846  register8_t FDEMASK; /* Fault Detection Event Mask */
1847  register8_t FDCTRL; /* Fault Detection Control Register */
1848  register8_t STATUS; /* Status Register */
1849  register8_t reserved_0x05;
1850  register8_t DTBOTH; /* Dead Time Both Sides */
1851  register8_t DTBOTHBUF; /* Dead Time Both Sides Buffer */
1852  register8_t DTLS; /* Dead Time Low Side */
1853  register8_t DTHS; /* Dead Time High Side */
1854  register8_t DTLSBUF; /* Dead Time Low Side Buffer */
1855  register8_t DTHSBUF; /* Dead Time High Side Buffer */
1856  register8_t OUTOVEN; /* Output Override Enable */
1857 } AWEX_t;
1858 
1859 /*
1860 --------------------------------------------------------------------------
1861 TC - 16-bit Timer/Counter With PWM
1862 --------------------------------------------------------------------------
1863 */
1864 
1865 /* High-Resolution Extension */
1866 typedef struct HIRES_struct
1867 {
1868  register8_t CTRLA; /* Control Register */
1869 } HIRES_t;
1870 
1871 /* Clock Selection */
1872 typedef enum TC_CLKSEL_enum
1873 {
1874  TC_CLKSEL_OFF_gc = (0x00<<0), /* Timer Off */
1875  TC_CLKSEL_DIV1_gc = (0x01<<0), /* System Clock */
1876  TC_CLKSEL_DIV2_gc = (0x02<<0), /* System Clock / 2 */
1877  TC_CLKSEL_DIV4_gc = (0x03<<0), /* System Clock / 4 */
1878  TC_CLKSEL_DIV8_gc = (0x04<<0), /* System Clock / 8 */
1879  TC_CLKSEL_DIV64_gc = (0x05<<0), /* System Clock / 64 */
1880  TC_CLKSEL_DIV256_gc = (0x06<<0), /* System Clock / 256 */
1881  TC_CLKSEL_DIV1024_gc = (0x07<<0), /* System Clock / 1024 */
1882  TC_CLKSEL_EVCH0_gc = (0x08<<0), /* Event Channel 0 */
1883  TC_CLKSEL_EVCH1_gc = (0x09<<0), /* Event Channel 1 */
1884  TC_CLKSEL_EVCH2_gc = (0x0A<<0), /* Event Channel 2 */
1885  TC_CLKSEL_EVCH3_gc = (0x0B<<0), /* Event Channel 3 */
1886  TC_CLKSEL_EVCH4_gc = (0x0C<<0), /* Event Channel 4 */
1887  TC_CLKSEL_EVCH5_gc = (0x0D<<0), /* Event Channel 5 */
1888  TC_CLKSEL_EVCH6_gc = (0x0E<<0), /* Event Channel 6 */
1889  TC_CLKSEL_EVCH7_gc = (0x0F<<0), /* Event Channel 7 */
1890 } TC_CLKSEL_t;
1891 
1892 /* Waveform Generation Mode */
1893 typedef enum TC_WGMODE_enum
1894 {
1895  TC_WGMODE_NORMAL_gc = (0x00<<0), /* Normal Mode */
1896  TC_WGMODE_FRQ_gc = (0x01<<0), /* Frequency Generation Mode */
1897  TC_WGMODE_SS_gc = (0x03<<0), /* Single Slope */
1898  TC_WGMODE_DS_T_gc = (0x05<<0), /* Dual Slope, Update on TOP */
1899  TC_WGMODE_DS_TB_gc = (0x06<<0), /* Dual Slope, Update on TOP and BOTTOM */
1900  TC_WGMODE_DS_B_gc = (0x07<<0), /* Dual Slope, Update on BOTTOM */
1901 } TC_WGMODE_t;
1902 
1903 /* Event Action */
1904 typedef enum TC_EVACT_enum
1905 {
1906  TC_EVACT_OFF_gc = (0x00<<5), /* No Event Action */
1907  TC_EVACT_CAPT_gc = (0x01<<5), /* Input Capture */
1908  TC_EVACT_UPDOWN_gc = (0x02<<5), /* Externally Controlled Up/Down Count */
1909  TC_EVACT_QDEC_gc = (0x03<<5), /* Quadrature Decode */
1910  TC_EVACT_RESTART_gc = (0x04<<5), /* Restart */
1911  TC_EVACT_FRQ_gc = (0x05<<5), /* Frequency Capture */
1912  TC_EVACT_PW_gc = (0x06<<5), /* Pulse-width Capture */
1913 } TC_EVACT_t;
1914 
1915 /* Event Selection */
1916 typedef enum TC_EVSEL_enum
1917 {
1918  TC_EVSEL_OFF_gc = (0x00<<0), /* No Event Source */
1919  TC_EVSEL_CH0_gc = (0x08<<0), /* Event Channel 0 */
1920  TC_EVSEL_CH1_gc = (0x09<<0), /* Event Channel 1 */
1921  TC_EVSEL_CH2_gc = (0x0A<<0), /* Event Channel 2 */
1922  TC_EVSEL_CH3_gc = (0x0B<<0), /* Event Channel 3 */
1923  TC_EVSEL_CH4_gc = (0x0C<<0), /* Event Channel 4 */
1924  TC_EVSEL_CH5_gc = (0x0D<<0), /* Event Channel 5 */
1925  TC_EVSEL_CH6_gc = (0x0E<<0), /* Event Channel 6 */
1926  TC_EVSEL_CH7_gc = (0x0F<<0), /* Event Channel 7 */
1927 } TC_EVSEL_t;
1928 
1929 /* Error Interrupt Level */
1930 typedef enum TC_ERRINTLVL_enum
1931 {
1932  TC_ERRINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
1933  TC_ERRINTLVL_LO_gc = (0x01<<2), /* Low Level */
1934  TC_ERRINTLVL_MED_gc = (0x02<<2), /* Medium Level */
1935  TC_ERRINTLVL_HI_gc = (0x03<<2), /* High Level */
1936 } TC_ERRINTLVL_t;
1937 
1938 /* Overflow Interrupt Level */
1939 typedef enum TC_OVFINTLVL_enum
1940 {
1941  TC_OVFINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
1942  TC_OVFINTLVL_LO_gc = (0x01<<0), /* Low Level */
1943  TC_OVFINTLVL_MED_gc = (0x02<<0), /* Medium Level */
1944  TC_OVFINTLVL_HI_gc = (0x03<<0), /* High Level */
1945 } TC_OVFINTLVL_t;
1946 
1947 /* Compare or Capture D Interrupt Level */
1948 typedef enum TC_CCDINTLVL_enum
1949 {
1950  TC_CCDINTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */
1951  TC_CCDINTLVL_LO_gc = (0x01<<6), /* Low Level */
1952  TC_CCDINTLVL_MED_gc = (0x02<<6), /* Medium Level */
1953  TC_CCDINTLVL_HI_gc = (0x03<<6), /* High Level */
1954 } TC_CCDINTLVL_t;
1955 
1956 /* Compare or Capture C Interrupt Level */
1957 typedef enum TC_CCCINTLVL_enum
1958 {
1959  TC_CCCINTLVL_OFF_gc = (0x00<<4), /* Interrupt Disabled */
1960  TC_CCCINTLVL_LO_gc = (0x01<<4), /* Low Level */
1961  TC_CCCINTLVL_MED_gc = (0x02<<4), /* Medium Level */
1962  TC_CCCINTLVL_HI_gc = (0x03<<4), /* High Level */
1963 } TC_CCCINTLVL_t;
1964 
1965 /* Compare or Capture B Interrupt Level */
1966 typedef enum TC_CCBINTLVL_enum
1967 {
1968  TC_CCBINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
1969  TC_CCBINTLVL_LO_gc = (0x01<<2), /* Low Level */
1970  TC_CCBINTLVL_MED_gc = (0x02<<2), /* Medium Level */
1971  TC_CCBINTLVL_HI_gc = (0x03<<2), /* High Level */
1972 } TC_CCBINTLVL_t;
1973 
1974 /* Compare or Capture A Interrupt Level */
1975 typedef enum TC_CCAINTLVL_enum
1976 {
1977  TC_CCAINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
1978  TC_CCAINTLVL_LO_gc = (0x01<<0), /* Low Level */
1979  TC_CCAINTLVL_MED_gc = (0x02<<0), /* Medium Level */
1980  TC_CCAINTLVL_HI_gc = (0x03<<0), /* High Level */
1981 } TC_CCAINTLVL_t;
1982 
1983 /* Timer/Counter Command */
1984 typedef enum TC_CMD_enum
1985 {
1986  TC_CMD_NONE_gc = (0x00<<2), /* No Command */
1987  TC_CMD_UPDATE_gc = (0x01<<2), /* Force Update */
1988  TC_CMD_RESTART_gc = (0x02<<2), /* Force Restart */
1989  TC_CMD_RESET_gc = (0x03<<2), /* Force Hard Reset */
1990 } TC_CMD_t;
1991 
1992 /* Fault Detect Action */
1993 typedef enum AWEX_FDACT_enum
1994 {
1995  AWEX_FDACT_NONE_gc = (0x00<<0), /* No Fault Protection */
1996  AWEX_FDACT_CLEAROE_gc = (0x01<<0), /* Clear Output Enable Bits */
1997  AWEX_FDACT_CLEARDIR_gc = (0x03<<0), /* Clear I/O Port Direction Bits */
1998 } AWEX_FDACT_t;
1999 
2000 /* High Resolution Enable */
2001 typedef enum HIRES_HREN_enum
2002 {
2003  HIRES_HREN_NONE_gc = (0x00<<0), /* No Fault Protection */
2004  HIRES_HREN_TC0_gc = (0x01<<0), /* Enable High Resolution on Timer/Counter 0 */
2005  HIRES_HREN_TC1_gc = (0x02<<0), /* Enable High Resolution on Timer/Counter 1 */
2006  HIRES_HREN_BOTH_gc = (0x03<<0), /* Enable High Resolution both Timer/Counters */
2007 } HIRES_HREN_t;
2008 
2009 
2010 /*
2011 --------------------------------------------------------------------------
2012 USART - Universal Asynchronous Receiver-Transmitter
2013 --------------------------------------------------------------------------
2014 */
2015 
2016 /* Universal Synchronous/Asynchronous Receiver/Transmitter */
2017 typedef struct USART_struct
2018 {
2019  register8_t DATA; /* Data Register */
2020  register8_t STATUS; /* Status Register */
2021  register8_t reserved_0x02;
2022  register8_t CTRLA; /* Control Register A */
2023  register8_t CTRLB; /* Control Register B */
2024  register8_t CTRLC; /* Control Register C */
2025  register8_t BAUDCTRLA; /* Baud Rate Control Register A */
2026  register8_t BAUDCTRLB; /* Baud Rate Control Register B */
2027 } USART_t;
2028 
2029 /* Receive Complete Interrupt level */
2030 typedef enum USART_RXCINTLVL_enum
2031 {
2032  USART_RXCINTLVL_OFF_gc = (0x00<<4), /* Interrupt Disabled */
2033  USART_RXCINTLVL_LO_gc = (0x01<<4), /* Low Level */
2034  USART_RXCINTLVL_MED_gc = (0x02<<4), /* Medium Level */
2035  USART_RXCINTLVL_HI_gc = (0x03<<4), /* High Level */
2036 } USART_RXCINTLVL_t;
2037 
2038 /* Transmit Complete Interrupt level */
2039 typedef enum USART_TXCINTLVL_enum
2040 {
2041  USART_TXCINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */
2042  USART_TXCINTLVL_LO_gc = (0x01<<2), /* Low Level */
2043  USART_TXCINTLVL_MED_gc = (0x02<<2), /* Medium Level */
2044  USART_TXCINTLVL_HI_gc = (0x03<<2), /* High Level */
2045 } USART_TXCINTLVL_t;
2046 
2047 /* Data Register Empty Interrupt level */
2048 typedef enum USART_DREINTLVL_enum
2049 {
2050  USART_DREINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
2051  USART_DREINTLVL_LO_gc = (0x01<<0), /* Low Level */
2052  USART_DREINTLVL_MED_gc = (0x02<<0), /* Medium Level */
2053  USART_DREINTLVL_HI_gc = (0x03<<0), /* High Level */
2054 } USART_DREINTLVL_t;
2055 
2056 /* Character Size */
2057 typedef enum USART_CHSIZE_enum
2058 {
2059  USART_CHSIZE_5BIT_gc = (0x00<<0), /* Character size: 5 bit */
2060  USART_CHSIZE_6BIT_gc = (0x01<<0), /* Character size: 6 bit */
2061  USART_CHSIZE_7BIT_gc = (0x02<<0), /* Character size: 7 bit */
2062  USART_CHSIZE_8BIT_gc = (0x03<<0), /* Character size: 8 bit */
2063  USART_CHSIZE_9BIT_gc = (0x07<<0), /* Character size: 9 bit */
2064 } USART_CHSIZE_t;
2065 
2066 /* Communication Mode */
2067 typedef enum USART_CMODE_enum
2068 {
2069  USART_CMODE_ASYNCHRONOUS_gc = (0x00<<6), /* Asynchronous Mode */
2070  USART_CMODE_SYNCHRONOUS_gc = (0x01<<6), /* Synchronous Mode */
2071  USART_CMODE_IRDA_gc = (0x02<<6), /* IrDA Mode */
2072  USART_CMODE_MSPI_gc = (0x03<<6), /* Master SPI Mode */
2073 } USART_CMODE_t;
2074 
2075 /* Parity Mode */
2076 typedef enum USART_PMODE_enum
2077 {
2078  USART_PMODE_DISABLED_gc = (0x00<<4), /* No Parity */
2079  USART_PMODE_EVEN_gc = (0x02<<4), /* Even Parity */
2080  USART_PMODE_ODD_gc = (0x03<<4), /* Odd Parity */
2081 } USART_PMODE_t;
2082 
2083 
2084 /*
2085 --------------------------------------------------------------------------
2086 SPI - Serial Peripheral Interface
2087 --------------------------------------------------------------------------
2088 */
2089 
2090 /* Serial Peripheral Interface */
2091 typedef struct SPI_struct
2092 {
2093  register8_t CTRL; /* Control Register */
2094  register8_t INTCTRL; /* Interrupt Control Register */
2095  register8_t STATUS; /* Status Register */
2096  register8_t DATA; /* Data Register */
2097 } SPI_t;
2098 
2099 /* SPI Mode */
2100 typedef enum SPI_MODE_enum
2101 {
2102  SPI_MODE_0_gc = (0x00<<2), /* SPI Mode 0 */
2103  SPI_MODE_1_gc = (0x01<<2), /* SPI Mode 1 */
2104  SPI_MODE_2_gc = (0x02<<2), /* SPI Mode 2 */
2105  SPI_MODE_3_gc = (0x03<<2), /* SPI Mode 3 */
2106 } SPI_MODE_t;
2107 
2108 /* Prescaler setting */
2109 typedef enum SPI_PRESCALER_enum
2110 {
2111  SPI_PRESCALER_DIV4_gc = (0x00<<0), /* System Clock / 4 */
2112  SPI_PRESCALER_DIV16_gc = (0x01<<0), /* System Clock / 16 */
2113  SPI_PRESCALER_DIV64_gc = (0x02<<0), /* System Clock / 64 */
2114  SPI_PRESCALER_DIV128_gc = (0x03<<0), /* System Clock / 128 */
2115 } SPI_PRESCALER_t;
2116 
2117 /* Interrupt level */
2118 typedef enum SPI_INTLVL_enum
2119 {
2120  SPI_INTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */
2121  SPI_INTLVL_LO_gc = (0x01<<0), /* Low Level */
2122  SPI_INTLVL_MED_gc = (0x02<<0), /* Medium Level */
2123  SPI_INTLVL_HI_gc = (0x03<<0), /* High Level */
2124 } SPI_INTLVL_t;
2125 
2126 
2127 /*
2128 --------------------------------------------------------------------------
2129 IRCOM - IR Communication Module
2130 --------------------------------------------------------------------------
2131 */
2132 
2133 /* IR Communication Module */
2134 typedef struct IRCOM_struct
2135 {
2136  register8_t TXPLCTRL; /* IrDA Transmitter Pulse Length Control Register */
2137  register8_t RXPLCTRL; /* IrDA Receiver Pulse Length Control Register */
2138  register8_t CTRL; /* Control Register */
2139 } IRCOM_t;
2140 
2141 /* Event channel selection */
2142 typedef enum IRDA_EVSEL_enum
2143 {
2144  IRDA_EVSEL_OFF_gc = (0x00<<0), /* No Event Source */
2145  IRDA_EVSEL_0_gc = (0x08<<0), /* Event Channel 0 */
2146  IRDA_EVSEL_1_gc = (0x09<<0), /* Event Channel 1 */
2147  IRDA_EVSEL_2_gc = (0x0A<<0), /* Event Channel 2 */
2148  IRDA_EVSEL_3_gc = (0x0B<<0), /* Event Channel 3 */
2149  IRDA_EVSEL_4_gc = (0x0C<<0), /* Event Channel 4 */
2150  IRDA_EVSEL_5_gc = (0x0D<<0), /* Event Channel 5 */
2151  IRDA_EVSEL_6_gc = (0x0E<<0), /* Event Channel 6 */
2152  IRDA_EVSEL_7_gc = (0x0F<<0), /* Event Channel 7 */
2153 } IRDA_EVSEL_t;
2154 
2155 
2156 
2157 /*
2158 ==========================================================================
2159 IO Module Instances. Mapped to memory.
2160 ==========================================================================
2161 */
2162 
2163 #define GPIO (*(GPIO_t *) 0x0000) /* General Purpose IO Registers */
2164 #define VPORT0 (*(VPORT_t *) 0x0010) /* Virtual Port 0 */
2165 #define VPORT1 (*(VPORT_t *) 0x0014) /* Virtual Port 1 */
2166 #define VPORT2 (*(VPORT_t *) 0x0018) /* Virtual Port 2 */
2167 #define VPORT3 (*(VPORT_t *) 0x001C) /* Virtual Port 3 */
2168 #define OCD (*(OCD_t *) 0x002E) /* On-Chip Debug System */
2169 #define CPU (*(CPU_t *) 0x0030) /* CPU Registers */
2170 #define CLK (*(CLK_t *) 0x0040) /* Clock System */
2171 #define SLEEP (*(SLEEP_t *) 0x0048) /* Sleep Controller */
2172 #define OSC (*(OSC_t *) 0x0050) /* Oscillator Control */
2173 #define DFLLRC32M (*(DFLL_t *) 0x0060) /* DFLL for 32MHz RC Oscillator */
2174 #define DFLLRC2M (*(DFLL_t *) 0x0068) /* DFLL for 2MHz RC Oscillator */
2175 #define PR (*(PR_t *) 0x0070) /* Power Reduction */
2176 #define RST (*(RST_t *) 0x0078) /* Reset Controller */
2177 #define WDT (*(WDT_t *) 0x0080) /* Watch-Dog Timer */
2178 #define MCU (*(MCU_t *) 0x0090) /* MCU Control */
2179 #define PMIC (*(PMIC_t *) 0x00A0) /* Programmable Interrupt Controller */
2180 #define PORTCFG (*(PORTCFG_t *) 0x00B0) /* Port Configuration */
2181 #define EVSYS (*(EVSYS_t *) 0x0180) /* Event System */
2182 #define NVM (*(NVM_t *) 0x01C0) /* Non Volatile Memory Controller */
2183 #define ADCA (*(ADC_t *) 0x0200) /* Analog to Digital Converter A */
2184 #define DACB (*(DAC_t *) 0x0320) /* Digital to Analog Converter B */
2185 #define ACA (*(AC_t *) 0x0380) /* Analog Comparator A */
2186 #define ACB (*(AC_t *) 0x0390) /* Analog Comparator B */
2187 #define RTC (*(RTC_t *) 0x0400) /* Real-Time Counter */
2188 #define TWIC (*(TWI_t *) 0x0480) /* Two-Wire Interface C */
2189 #define PORTA (*(PORT_t *) 0x0600) /* Port A */
2190 #define PORTB (*(PORT_t *) 0x0620) /* Port B */
2191 #define PORTC (*(PORT_t *) 0x0640) /* Port C */
2192 #define PORTD (*(PORT_t *) 0x0660) /* Port D */
2193 #define PORTE (*(PORT_t *) 0x0680) /* Port E */
2194 #define PORTF (*(PORT_t *) 0x06A0) /* Port F */
2195 #define PORTR (*(PORT_t *) 0x07E0) /* Port R */
2196 #define TCC0 (*(TC0_t *) 0x0800) /* Timer/Counter C0 */
2197 #define TCC1 (*(TC1_t *) 0x0840) /* Timer/Counter C1 */
2198 #define AWEXC (*(AWEX_t *) 0x0880) /* Advanced Waveform Extension C */
2199 #define HIRESC (*(HIRES_t *) 0x0890) /* High-Resolution Extension C */
2200 #define USARTC0 (*(USART_t *) 0x08A0) /* Universal Asynchronous Receiver-Transmitter C0 */
2201 #define SPIC (*(SPI_t *) 0x08C0) /* Serial Peripheral Interface C */
2202 #define IRCOM (*(IRCOM_t *) 0x08F8) /* IR Communication Module */
2203 #define TCD0 (*(TC0_t *) 0x0900) /* Timer/Counter D0 */
2204 #define USARTD0 (*(USART_t *) 0x09A0) /* Universal Asynchronous Receiver-Transmitter D0 */
2205 #define SPID (*(SPI_t *) 0x09C0) /* Serial Peripheral Interface D */
2206 #define TCE0 (*(TC0_t *) 0x0A00) /* Timer/Counter E0 */
2207 #define AWEXE (*(AWEX_t *) 0x0A80) /* Advanced Waveform Extension E */
2208 #define USARTE0 (*(USART_t *) 0x0AA0) /* Universal Asynchronous Receiver-Transmitter E0 */
2209 #define SPIE (*(SPI_t *) 0x0AC0) /* Serial Peripheral Interface E */
2210 #define TCF0 (*(TC0_t *) 0x0B00) /* Timer/Counter F0 */
2211 
2212 
2213 #endif /* !defined (__ASSEMBLER__) */
2214 
2215 
2216 /* ========== Flattened fully qualified IO register names ========== */
2217 
2218 /* GPIO - General Purpose IO Registers */
2219 #define GPIO_GPIOR0 _SFR_MEM8(0x0000)
2220 #define GPIO_GPIOR1 _SFR_MEM8(0x0001)
2221 #define GPIO_GPIOR2 _SFR_MEM8(0x0002)
2222 #define GPIO_GPIOR3 _SFR_MEM8(0x0003)
2223 #define GPIO_GPIOR4 _SFR_MEM8(0x0004)
2224 #define GPIO_GPIOR5 _SFR_MEM8(0x0005)
2225 #define GPIO_GPIOR6 _SFR_MEM8(0x0006)
2226 #define GPIO_GPIOR7 _SFR_MEM8(0x0007)
2227 #define GPIO_GPIOR8 _SFR_MEM8(0x0008)
2228 #define GPIO_GPIOR9 _SFR_MEM8(0x0009)
2229 #define GPIO_GPIORA _SFR_MEM8(0x000A)
2230 #define GPIO_GPIORB _SFR_MEM8(0x000B)
2231 #define GPIO_GPIORC _SFR_MEM8(0x000C)
2232 #define GPIO_GPIORD _SFR_MEM8(0x000D)
2233 #define GPIO_GPIORE _SFR_MEM8(0x000E)
2234 #define GPIO_GPIORF _SFR_MEM8(0x000F)
2235 
2236 /* VPORT0 - Virtual Port 0 */
2237 #define VPORT0_DIR _SFR_MEM8(0x0010)
2238 #define VPORT0_OUT _SFR_MEM8(0x0011)
2239 #define VPORT0_IN _SFR_MEM8(0x0012)
2240 #define VPORT0_INTFLAGS _SFR_MEM8(0x0013)
2241 
2242 /* VPORT1 - Virtual Port 1 */
2243 #define VPORT1_DIR _SFR_MEM8(0x0014)
2244 #define VPORT1_OUT _SFR_MEM8(0x0015)
2245 #define VPORT1_IN _SFR_MEM8(0x0016)
2246 #define VPORT1_INTFLAGS _SFR_MEM8(0x0017)
2247 
2248 /* VPORT2 - Virtual Port 2 */
2249 #define VPORT2_DIR _SFR_MEM8(0x0018)
2250 #define VPORT2_OUT _SFR_MEM8(0x0019)
2251 #define VPORT2_IN _SFR_MEM8(0x001A)
2252 #define VPORT2_INTFLAGS _SFR_MEM8(0x001B)
2253 
2254 /* VPORT3 - Virtual Port 3 */
2255 #define VPORT3_DIR _SFR_MEM8(0x001C)
2256 #define VPORT3_OUT _SFR_MEM8(0x001D)
2257 #define VPORT3_IN _SFR_MEM8(0x001E)
2258 #define VPORT3_INTFLAGS _SFR_MEM8(0x001F)
2259 
2260 /* OCD - On-Chip Debug System */
2261 #define OCD_OCDR0 _SFR_MEM8(0x002E)
2262 #define OCD_OCDR1 _SFR_MEM8(0x002F)
2263 
2264 /* CPU - CPU Registers */
2265 #define CPU_CCP _SFR_MEM8(0x0034)
2266 #define CPU_RAMPD _SFR_MEM8(0x0038)
2267 #define CPU_RAMPX _SFR_MEM8(0x0039)
2268 #define CPU_RAMPY _SFR_MEM8(0x003A)
2269 #define CPU_RAMPZ _SFR_MEM8(0x003B)
2270 #define CPU_EIND _SFR_MEM8(0x003C)
2271 #define CPU_SPL _SFR_MEM8(0x003D)
2272 #define CPU_SPH _SFR_MEM8(0x003E)
2273 #define CPU_SREG _SFR_MEM8(0x003F)
2274 
2275 /* CLK - Clock System */
2276 #define CLK_CTRL _SFR_MEM8(0x0040)
2277 #define CLK_PSCTRL _SFR_MEM8(0x0041)
2278 #define CLK_LOCK _SFR_MEM8(0x0042)
2279 #define CLK_RTCCTRL _SFR_MEM8(0x0043)
2280 
2281 /* SLEEP - Sleep Controller */
2282 #define SLEEP_CTRL _SFR_MEM8(0x0048)
2283 
2284 /* OSC - Oscillator Control */
2285 #define OSC_CTRL _SFR_MEM8(0x0050)
2286 #define OSC_STATUS _SFR_MEM8(0x0051)
2287 #define OSC_XOSCCTRL _SFR_MEM8(0x0052)
2288 #define OSC_XOSCFAIL _SFR_MEM8(0x0053)
2289 #define OSC_RC32KCAL _SFR_MEM8(0x0054)
2290 #define OSC_PLLCTRL _SFR_MEM8(0x0055)
2291 #define OSC_DFLLCTRL _SFR_MEM8(0x0056)
2292 
2293 /* DFLLRC32M - DFLL for 32MHz RC Oscillator */
2294 #define DFLLRC32M_CTRL _SFR_MEM8(0x0060)
2295 #define DFLLRC32M_CALA _SFR_MEM8(0x0062)
2296 #define DFLLRC32M_CALB _SFR_MEM8(0x0063)
2297 #define DFLLRC32M_COMP0 _SFR_MEM8(0x0064)
2298 #define DFLLRC32M_COMP1 _SFR_MEM8(0x0065)
2299 #define DFLLRC32M_COMP2 _SFR_MEM8(0x0066)
2300 
2301 /* DFLLRC2M - DFLL for 2MHz RC Oscillator */
2302 #define DFLLRC2M_CTRL _SFR_MEM8(0x0068)
2303 #define DFLLRC2M_CALA _SFR_MEM8(0x006A)
2304 #define DFLLRC2M_CALB _SFR_MEM8(0x006B)
2305 #define DFLLRC2M_COMP0 _SFR_MEM8(0x006C)
2306 #define DFLLRC2M_COMP1 _SFR_MEM8(0x006D)
2307 #define DFLLRC2M_COMP2 _SFR_MEM8(0x006E)
2308 
2309 /* PR - Power Reduction */
2310 #define PR_PRGEN _SFR_MEM8(0x0070)
2311 #define PR_PRPA _SFR_MEM8(0x0071)
2312 #define PR_PRPB _SFR_MEM8(0x0072)
2313 #define PR_PRPC _SFR_MEM8(0x0073)
2314 #define PR_PRPD _SFR_MEM8(0x0074)
2315 #define PR_PRPE _SFR_MEM8(0x0075)
2316 #define PR_PRPF _SFR_MEM8(0x0076)
2317 
2318 /* RST - Reset Controller */
2319 #define RST_STATUS _SFR_MEM8(0x0078)
2320 #define RST_CTRL _SFR_MEM8(0x0079)
2321 
2322 /* WDT - Watch-Dog Timer */
2323 #define WDT_CTRL _SFR_MEM8(0x0080)
2324 #define WDT_WINCTRL _SFR_MEM8(0x0081)
2325 #define WDT_STATUS _SFR_MEM8(0x0082)
2326 
2327 /* MCU - MCU Control */
2328 #define MCU_DEVID0 _SFR_MEM8(0x0090)
2329 #define MCU_DEVID1 _SFR_MEM8(0x0091)
2330 #define MCU_DEVID2 _SFR_MEM8(0x0092)
2331 #define MCU_REVID _SFR_MEM8(0x0093)
2332 #define MCU_JTAGUID _SFR_MEM8(0x0094)
2333 #define MCU_MCUCR _SFR_MEM8(0x0096)
2334 #define MCU_EVSYSLOCK _SFR_MEM8(0x0098)
2335 #define MCU_AWEXLOCK _SFR_MEM8(0x0099)
2336 
2337 /* PMIC - Programmable Interrupt Controller */
2338 #define PMIC_STATUS _SFR_MEM8(0x00A0)
2339 #define PMIC_INTPRI _SFR_MEM8(0x00A1)
2340 #define PMIC_CTRL _SFR_MEM8(0x00A2)
2341 
2342 /* PORTCFG - Port Configuration */
2343 #define PORTCFG_MPCMASK _SFR_MEM8(0x00B0)
2344 #define PORTCFG_VPCTRLA _SFR_MEM8(0x00B2)
2345 #define PORTCFG_VPCTRLB _SFR_MEM8(0x00B3)
2346 #define PORTCFG_CLKEVOUT _SFR_MEM8(0x00B4)
2347 
2348 /* EVSYS - Event System */
2349 #define EVSYS_CH0MUX _SFR_MEM8(0x0180)
2350 #define EVSYS_CH1MUX _SFR_MEM8(0x0181)
2351 #define EVSYS_CH2MUX _SFR_MEM8(0x0182)
2352 #define EVSYS_CH3MUX _SFR_MEM8(0x0183)
2353 #define EVSYS_CH0CTRL _SFR_MEM8(0x0188)
2354 #define EVSYS_CH1CTRL _SFR_MEM8(0x0189)
2355 #define EVSYS_CH2CTRL _SFR_MEM8(0x018A)
2356 #define EVSYS_CH3CTRL _SFR_MEM8(0x018B)
2357 #define EVSYS_STROBE _SFR_MEM8(0x0190)
2358 #define EVSYS_DATA _SFR_MEM8(0x0191)
2359 
2360 /* NVM - Non Volatile Memory Controller */
2361 #define NVM_ADDR0 _SFR_MEM8(0x01C0)
2362 #define NVM_ADDR1 _SFR_MEM8(0x01C1)
2363 #define NVM_ADDR2 _SFR_MEM8(0x01C2)
2364 #define NVM_DATA0 _SFR_MEM8(0x01C4)
2365 #define NVM_DATA1 _SFR_MEM8(0x01C5)
2366 #define NVM_DATA2 _SFR_MEM8(0x01C6)
2367 #define NVM_CMD _SFR_MEM8(0x01CA)
2368 #define NVM_CTRLA _SFR_MEM8(0x01CB)
2369 #define NVM_CTRLB _SFR_MEM8(0x01CC)
2370 #define NVM_INTCTRL _SFR_MEM8(0x01CD)
2371 #define NVM_STATUS _SFR_MEM8(0x01CF)
2372 #define NVM_LOCKBITS _SFR_MEM8(0x01D0)
2373 
2374 /* ADCA - Analog to Digital Converter A */
2375 #define ADCA_CTRLA _SFR_MEM8(0x0200)
2376 #define ADCA_CTRLB _SFR_MEM8(0x0201)
2377 #define ADCA_REFCTRL _SFR_MEM8(0x0202)
2378 #define ADCA_EVCTRL _SFR_MEM8(0x0203)
2379 #define ADCA_PRESCALER _SFR_MEM8(0x0204)
2380 #define ADCA_CALCTRL _SFR_MEM8(0x0205)
2381 #define ADCA_INTFLAGS _SFR_MEM8(0x0206)
2382 #define ADCA_CAL _SFR_MEM16(0x020C)
2383 #define ADCA_CH0RES _SFR_MEM16(0x0210)
2384 #define ADCA_CMP _SFR_MEM16(0x0218)
2385 #define ADCA_CH0_CTRL _SFR_MEM8(0x0220)
2386 #define ADCA_CH0_MUXCTRL _SFR_MEM8(0x0221)
2387 #define ADCA_CH0_INTCTRL _SFR_MEM8(0x0222)
2388 #define ADCA_CH0_INTFLAGS _SFR_MEM8(0x0223)
2389 #define ADCA_CH0_RES _SFR_MEM16(0x0224)
2390 
2391 /* DACB - Digital to Analog Converter B */
2392 
2393 /* ACA - Analog Comparator A */
2394 #define ACA_AC0CTRL _SFR_MEM8(0x0380)
2395 #define ACA_AC1CTRL _SFR_MEM8(0x0381)
2396 #define ACA_AC0MUXCTRL _SFR_MEM8(0x0382)
2397 #define ACA_AC1MUXCTRL _SFR_MEM8(0x0383)
2398 #define ACA_CTRLA _SFR_MEM8(0x0384)
2399 #define ACA_CTRLB _SFR_MEM8(0x0385)
2400 #define ACA_WINCTRL _SFR_MEM8(0x0386)
2401 #define ACA_STATUS _SFR_MEM8(0x0387)
2402 
2403 /* ACB - Analog Comparator B */
2404 #define ACB_AC0CTRL _SFR_MEM8(0x0390)
2405 #define ACB_AC1CTRL _SFR_MEM8(0x0391)
2406 #define ACB_AC0MUXCTRL _SFR_MEM8(0x0392)
2407 #define ACB_AC1MUXCTRL _SFR_MEM8(0x0393)
2408 #define ACB_CTRLA _SFR_MEM8(0x0394)
2409 #define ACB_CTRLB _SFR_MEM8(0x0395)
2410 #define ACB_WINCTRL _SFR_MEM8(0x0396)
2411 #define ACB_STATUS _SFR_MEM8(0x0397)
2412 
2413 /* RTC - Real-Time Counter */
2414 #define RTC_CTRL _SFR_MEM8(0x0400)
2415 #define RTC_STATUS _SFR_MEM8(0x0401)
2416 #define RTC_INTCTRL _SFR_MEM8(0x0402)
2417 #define RTC_INTFLAGS _SFR_MEM8(0x0403)
2418 #define RTC_TEMP _SFR_MEM8(0x0404)
2419 #define RTC_CNT _SFR_MEM16(0x0408)
2420 #define RTC_PER _SFR_MEM16(0x040A)
2421 #define RTC_COMP _SFR_MEM16(0x040C)
2422 
2423 /* TWIC - Two-Wire Interface C */
2424 #define TWIC_CTRL _SFR_MEM8(0x0480)
2425 #define TWIC_MASTER_CTRLA _SFR_MEM8(0x0482)
2426 #define TWIC_MASTER_CTRLB _SFR_MEM8(0x0483)
2427 #define TWIC_MASTER_CTRLC _SFR_MEM8(0x0484)
2428 #define TWIC_MASTER_STATUS _SFR_MEM8(0x0485)
2429 #define TWIC_MASTER_BAUD _SFR_MEM8(0x0486)
2430 #define TWIC_MASTER_ADDR _SFR_MEM8(0x0487)
2431 #define TWIC_MASTER_DATA _SFR_MEM8(0x0488)
2432 #define TWIC_SLAVE_CTRLA _SFR_MEM8(0x0488)
2433 #define TWIC_SLAVE_CTRLB _SFR_MEM8(0x0489)
2434 #define TWIC_SLAVE_STATUS _SFR_MEM8(0x048A)
2435 #define TWIC_SLAVE_ADDR _SFR_MEM8(0x048B)
2436 #define TWIC_SLAVE_DATA _SFR_MEM8(0x048C)
2437 #define TWIC_SLAVE_ADDRMASK _SFR_MEM8(0x048D)
2438 
2439 /* PORTA - Port A */
2440 #define PORTA_DIR _SFR_MEM8(0x0600)
2441 #define PORTA_DIRSET _SFR_MEM8(0x0601)
2442 #define PORTA_DIRCLR _SFR_MEM8(0x0602)
2443 #define PORTA_DIRTGL _SFR_MEM8(0x0603)
2444 #define PORTA_OUT _SFR_MEM8(0x0604)
2445 #define PORTA_OUTSET _SFR_MEM8(0x0605)
2446 #define PORTA_OUTCLR _SFR_MEM8(0x0606)
2447 #define PORTA_OUTTGL _SFR_MEM8(0x0607)
2448 #define PORTA_IN _SFR_MEM8(0x0608)
2449 #define PORTA_INTCTRL _SFR_MEM8(0x0609)
2450 #define PORTA_INT0MASK _SFR_MEM8(0x060A)
2451 #define PORTA_INT1MASK _SFR_MEM8(0x060B)
2452 #define PORTA_INTFLAGS _SFR_MEM8(0x060C)
2453 #define PORTA_PIN0CTRL _SFR_MEM8(0x0610)
2454 #define PORTA_PIN1CTRL _SFR_MEM8(0x0611)
2455 #define PORTA_PIN2CTRL _SFR_MEM8(0x0612)
2456 #define PORTA_PIN3CTRL _SFR_MEM8(0x0613)
2457 #define PORTA_PIN4CTRL _SFR_MEM8(0x0614)
2458 #define PORTA_PIN5CTRL _SFR_MEM8(0x0615)
2459 #define PORTA_PIN6CTRL _SFR_MEM8(0x0616)
2460 #define PORTA_PIN7CTRL _SFR_MEM8(0x0617)
2461 
2462 /* PORTB - Port B */
2463 #define PORTB_DIR _SFR_MEM8(0x0620)
2464 #define PORTB_DIRSET _SFR_MEM8(0x0621)
2465 #define PORTB_DIRCLR _SFR_MEM8(0x0622)
2466 #define PORTB_DIRTGL _SFR_MEM8(0x0623)
2467 #define PORTB_OUT _SFR_MEM8(0x0624)
2468 #define PORTB_OUTSET _SFR_MEM8(0x0625)
2469 #define PORTB_OUTCLR _SFR_MEM8(0x0626)
2470 #define PORTB_OUTTGL _SFR_MEM8(0x0627)
2471 #define PORTB_IN _SFR_MEM8(0x0628)
2472 #define PORTB_INTCTRL _SFR_MEM8(0x0629)
2473 #define PORTB_INT0MASK _SFR_MEM8(0x062A)
2474 #define PORTB_INT1MASK _SFR_MEM8(0x062B)
2475 #define PORTB_INTFLAGS _SFR_MEM8(0x062C)
2476 #define PORTB_PIN0CTRL _SFR_MEM8(0x0630)
2477 #define PORTB_PIN1CTRL _SFR_MEM8(0x0631)
2478 #define PORTB_PIN2CTRL _SFR_MEM8(0x0632)
2479 #define PORTB_PIN3CTRL _SFR_MEM8(0x0633)
2480 #define PORTB_PIN4CTRL _SFR_MEM8(0x0634)
2481 #define PORTB_PIN5CTRL _SFR_MEM8(0x0635)
2482 #define PORTB_PIN6CTRL _SFR_MEM8(0x0636)
2483 #define PORTB_PIN7CTRL _SFR_MEM8(0x0637)
2484 
2485 /* PORTC - Port C */
2486 #define PORTC_DIR _SFR_MEM8(0x0640)
2487 #define PORTC_DIRSET _SFR_MEM8(0x0641)
2488 #define PORTC_DIRCLR _SFR_MEM8(0x0642)
2489 #define PORTC_DIRTGL _SFR_MEM8(0x0643)
2490 #define PORTC_OUT _SFR_MEM8(0x0644)
2491 #define PORTC_OUTSET _SFR_MEM8(0x0645)
2492 #define PORTC_OUTCLR _SFR_MEM8(0x0646)
2493 #define PORTC_OUTTGL _SFR_MEM8(0x0647)
2494 #define PORTC_IN _SFR_MEM8(0x0648)
2495 #define PORTC_INTCTRL _SFR_MEM8(0x0649)
2496 #define PORTC_INT0MASK _SFR_MEM8(0x064A)
2497 #define PORTC_INT1MASK _SFR_MEM8(0x064B)
2498 #define PORTC_INTFLAGS _SFR_MEM8(0x064C)
2499 #define PORTC_PIN0CTRL _SFR_MEM8(0x0650)
2500 #define PORTC_PIN1CTRL _SFR_MEM8(0x0651)
2501 #define PORTC_PIN2CTRL _SFR_MEM8(0x0652)
2502 #define PORTC_PIN3CTRL _SFR_MEM8(0x0653)
2503 #define PORTC_PIN4CTRL _SFR_MEM8(0x0654)
2504 #define PORTC_PIN5CTRL _SFR_MEM8(0x0655)
2505 #define PORTC_PIN6CTRL _SFR_MEM8(0x0656)
2506 #define PORTC_PIN7CTRL _SFR_MEM8(0x0657)
2507 
2508 /* PORTD - Port D */
2509 #define PORTD_DIR _SFR_MEM8(0x0660)
2510 #define PORTD_DIRSET _SFR_MEM8(0x0661)
2511 #define PORTD_DIRCLR _SFR_MEM8(0x0662)
2512 #define PORTD_DIRTGL _SFR_MEM8(0x0663)
2513 #define PORTD_OUT _SFR_MEM8(0x0664)
2514 #define PORTD_OUTSET _SFR_MEM8(0x0665)
2515 #define PORTD_OUTCLR _SFR_MEM8(0x0666)
2516 #define PORTD_OUTTGL _SFR_MEM8(0x0667)
2517 #define PORTD_IN _SFR_MEM8(0x0668)
2518 #define PORTD_INTCTRL _SFR_MEM8(0x0669)
2519 #define PORTD_INT0MASK _SFR_MEM8(0x066A)
2520 #define PORTD_INT1MASK _SFR_MEM8(0x066B)
2521 #define PORTD_INTFLAGS _SFR_MEM8(0x066C)
2522 #define PORTD_PIN0CTRL _SFR_MEM8(0x0670)
2523 #define PORTD_PIN1CTRL _SFR_MEM8(0x0671)
2524 #define PORTD_PIN2CTRL _SFR_MEM8(0x0672)
2525 #define PORTD_PIN3CTRL _SFR_MEM8(0x0673)
2526 #define PORTD_PIN4CTRL _SFR_MEM8(0x0674)
2527 #define PORTD_PIN5CTRL _SFR_MEM8(0x0675)
2528 #define PORTD_PIN6CTRL _SFR_MEM8(0x0676)
2529 #define PORTD_PIN7CTRL _SFR_MEM8(0x0677)
2530 
2531 /* PORTE - Port E */
2532 #define PORTE_DIR _SFR_MEM8(0x0680)
2533 #define PORTE_DIRSET _SFR_MEM8(0x0681)
2534 #define PORTE_DIRCLR _SFR_MEM8(0x0682)
2535 #define PORTE_DIRTGL _SFR_MEM8(0x0683)
2536 #define PORTE_OUT _SFR_MEM8(0x0684)
2537 #define PORTE_OUTSET _SFR_MEM8(0x0685)
2538 #define PORTE_OUTCLR _SFR_MEM8(0x0686)
2539 #define PORTE_OUTTGL _SFR_MEM8(0x0687)
2540 #define PORTE_IN _SFR_MEM8(0x0688)
2541 #define PORTE_INTCTRL _SFR_MEM8(0x0689)
2542 #define PORTE_INT0MASK _SFR_MEM8(0x068A)
2543 #define PORTE_INT1MASK _SFR_MEM8(0x068B)
2544 #define PORTE_INTFLAGS _SFR_MEM8(0x068C)
2545 #define PORTE_PIN0CTRL _SFR_MEM8(0x0690)
2546 #define PORTE_PIN1CTRL _SFR_MEM8(0x0691)
2547 #define PORTE_PIN2CTRL _SFR_MEM8(0x0692)
2548 #define PORTE_PIN3CTRL _SFR_MEM8(0x0693)
2549 #define PORTE_PIN4CTRL _SFR_MEM8(0x0694)
2550 #define PORTE_PIN5CTRL _SFR_MEM8(0x0695)
2551 #define PORTE_PIN6CTRL _SFR_MEM8(0x0696)
2552 #define PORTE_PIN7CTRL _SFR_MEM8(0x0697)
2553 
2554 /* PORTF - Port F */
2555 #define PORTF_DIR _SFR_MEM8(0x06A0)
2556 #define PORTF_DIRSET _SFR_MEM8(0x06A1)
2557 #define PORTF_DIRCLR _SFR_MEM8(0x06A2)
2558 #define PORTF_DIRTGL _SFR_MEM8(0x06A3)
2559 #define PORTF_OUT _SFR_MEM8(0x06A4)
2560 #define PORTF_OUTSET _SFR_MEM8(0x06A5)
2561 #define PORTF_OUTCLR _SFR_MEM8(0x06A6)
2562 #define PORTF_OUTTGL _SFR_MEM8(0x06A7)
2563 #define PORTF_IN _SFR_MEM8(0x06A8)
2564 #define PORTF_INTCTRL _SFR_MEM8(0x06A9)
2565 #define PORTF_INT0MASK _SFR_MEM8(0x06AA)
2566 #define PORTF_INT1MASK _SFR_MEM8(0x06AB)
2567 #define PORTF_INTFLAGS _SFR_MEM8(0x06AC)
2568 #define PORTF_PIN0CTRL _SFR_MEM8(0x06B0)
2569 #define PORTF_PIN1CTRL _SFR_MEM8(0x06B1)
2570 #define PORTF_PIN2CTRL _SFR_MEM8(0x06B2)
2571 #define PORTF_PIN3CTRL _SFR_MEM8(0x06B3)
2572 #define PORTF_PIN4CTRL _SFR_MEM8(0x06B4)
2573 #define PORTF_PIN5CTRL _SFR_MEM8(0x06B5)
2574 #define PORTF_PIN6CTRL _SFR_MEM8(0x06B6)
2575 #define PORTF_PIN7CTRL _SFR_MEM8(0x06B7)
2576 
2577 /* PORTR - Port R */
2578 #define PORTR_DIR _SFR_MEM8(0x07E0)
2579 #define PORTR_DIRSET _SFR_MEM8(0x07E1)
2580 #define PORTR_DIRCLR _SFR_MEM8(0x07E2)
2581 #define PORTR_DIRTGL _SFR_MEM8(0x07E3)
2582 #define PORTR_OUT _SFR_MEM8(0x07E4)
2583 #define PORTR_OUTSET _SFR_MEM8(0x07E5)
2584 #define PORTR_OUTCLR _SFR_MEM8(0x07E6)
2585 #define PORTR_OUTTGL _SFR_MEM8(0x07E7)
2586 #define PORTR_IN _SFR_MEM8(0x07E8)
2587 #define PORTR_INTCTRL _SFR_MEM8(0x07E9)
2588 #define PORTR_INT0MASK _SFR_MEM8(0x07EA)
2589 #define PORTR_INT1MASK _SFR_MEM8(0x07EB)
2590 #define PORTR_INTFLAGS _SFR_MEM8(0x07EC)
2591 #define PORTR_PIN0CTRL _SFR_MEM8(0x07F0)
2592 #define PORTR_PIN1CTRL _SFR_MEM8(0x07F1)
2593 #define PORTR_PIN2CTRL _SFR_MEM8(0x07F2)
2594 #define PORTR_PIN3CTRL _SFR_MEM8(0x07F3)
2595 #define PORTR_PIN4CTRL _SFR_MEM8(0x07F4)
2596 #define PORTR_PIN5CTRL _SFR_MEM8(0x07F5)
2597 #define PORTR_PIN6CTRL _SFR_MEM8(0x07F6)
2598 #define PORTR_PIN7CTRL _SFR_MEM8(0x07F7)
2599 
2600 /* TCC0 - Timer/Counter C0 */
2601 #define TCC0_CTRLA _SFR_MEM8(0x0800)
2602 #define TCC0_CTRLB _SFR_MEM8(0x0801)
2603 #define TCC0_CTRLC _SFR_MEM8(0x0802)
2604 #define TCC0_CTRLD _SFR_MEM8(0x0803)
2605 #define TCC0_CTRLE _SFR_MEM8(0x0804)
2606 #define TCC0_INTCTRLA _SFR_MEM8(0x0806)
2607 #define TCC0_INTCTRLB _SFR_MEM8(0x0807)
2608 #define TCC0_CTRLFCLR _SFR_MEM8(0x0808)
2609 #define TCC0_CTRLFSET _SFR_MEM8(0x0809)
2610 #define TCC0_CTRLGCLR _SFR_MEM8(0x080A)
2611 #define TCC0_CTRLGSET _SFR_MEM8(0x080B)
2612 #define TCC0_INTFLAGS _SFR_MEM8(0x080C)
2613 #define TCC0_TEMP _SFR_MEM8(0x080F)
2614 #define TCC0_CNT _SFR_MEM16(0x0820)
2615 #define TCC0_PER _SFR_MEM16(0x0826)
2616 #define TCC0_CCA _SFR_MEM16(0x0828)
2617 #define TCC0_CCB _SFR_MEM16(0x082A)
2618 #define TCC0_CCC _SFR_MEM16(0x082C)
2619 #define TCC0_CCD _SFR_MEM16(0x082E)
2620 #define TCC0_PERBUF _SFR_MEM16(0x0836)
2621 #define TCC0_CCABUF _SFR_MEM16(0x0838)
2622 #define TCC0_CCBBUF _SFR_MEM16(0x083A)
2623 #define TCC0_CCCBUF _SFR_MEM16(0x083C)
2624 #define TCC0_CCDBUF _SFR_MEM16(0x083E)
2625 
2626 /* TCC1 - Timer/Counter C1 */
2627 #define TCC1_CTRLA _SFR_MEM8(0x0840)
2628 #define TCC1_CTRLB _SFR_MEM8(0x0841)
2629 #define TCC1_CTRLC _SFR_MEM8(0x0842)
2630 #define TCC1_CTRLD _SFR_MEM8(0x0843)
2631 #define TCC1_CTRLE _SFR_MEM8(0x0844)
2632 #define TCC1_INTCTRLA _SFR_MEM8(0x0846)
2633 #define TCC1_INTCTRLB _SFR_MEM8(0x0847)
2634 #define TCC1_CTRLFCLR _SFR_MEM8(0x0848)
2635 #define TCC1_CTRLFSET _SFR_MEM8(0x0849)
2636 #define TCC1_CTRLGCLR _SFR_MEM8(0x084A)
2637 #define TCC1_CTRLGSET _SFR_MEM8(0x084B)
2638 #define TCC1_INTFLAGS _SFR_MEM8(0x084C)
2639 #define TCC1_TEMP _SFR_MEM8(0x084F)
2640 #define TCC1_CNT _SFR_MEM16(0x0860)
2641 #define TCC1_PER _SFR_MEM16(0x0866)
2642 #define TCC1_CCA _SFR_MEM16(0x0868)
2643 #define TCC1_CCB _SFR_MEM16(0x086A)
2644 #define TCC1_PERBUF _SFR_MEM16(0x0876)
2645 #define TCC1_CCABUF _SFR_MEM16(0x0878)
2646 #define TCC1_CCBBUF _SFR_MEM16(0x087A)
2647 
2648 /* AWEXC - Advanced Waveform Extension C */
2649 #define AWEXC_CTRL _SFR_MEM8(0x0880)
2650 #define AWEXC_FDEMASK _SFR_MEM8(0x0882)
2651 #define AWEXC_FDCTRL _SFR_MEM8(0x0883)
2652 #define AWEXC_STATUS _SFR_MEM8(0x0884)
2653 #define AWEXC_DTBOTH _SFR_MEM8(0x0886)
2654 #define AWEXC_DTBOTHBUF _SFR_MEM8(0x0887)
2655 #define AWEXC_DTLS _SFR_MEM8(0x0888)
2656 #define AWEXC_DTHS _SFR_MEM8(0x0889)
2657 #define AWEXC_DTLSBUF _SFR_MEM8(0x088A)
2658 #define AWEXC_DTHSBUF _SFR_MEM8(0x088B)
2659 #define AWEXC_OUTOVEN _SFR_MEM8(0x088C)
2660 
2661 /* HIRESC - High-Resolution Extension C */
2662 #define HIRESC_CTRLA _SFR_MEM8(0x0890)
2663 
2664 /* USARTC0 - Universal Asynchronous Receiver-Transmitter C0 */
2665 #define USARTC0_DATA _SFR_MEM8(0x08A0)
2666 #define USARTC0_STATUS _SFR_MEM8(0x08A1)
2667 #define USARTC0_CTRLA _SFR_MEM8(0x08A3)
2668 #define USARTC0_CTRLB _SFR_MEM8(0x08A4)
2669 #define USARTC0_CTRLC _SFR_MEM8(0x08A5)
2670 #define USARTC0_BAUDCTRLA _SFR_MEM8(0x08A6)
2671 #define USARTC0_BAUDCTRLB _SFR_MEM8(0x08A7)
2672 
2673 /* SPIC - Serial Peripheral Interface C */
2674 #define SPIC_CTRL _SFR_MEM8(0x08C0)
2675 #define SPIC_INTCTRL _SFR_MEM8(0x08C1)
2676 #define SPIC_STATUS _SFR_MEM8(0x08C2)
2677 #define SPIC_DATA _SFR_MEM8(0x08C3)
2678 
2679 /* IRCOM - IR Communication Module */
2680 #define IRCOM_TXPLCTRL _SFR_MEM8(0x08F8)
2681 #define IRCOM_RXPLCTRL _SFR_MEM8(0x08F9)
2682 #define IRCOM_CTRL _SFR_MEM8(0x08FA)
2683 
2684 /* TCD0 - Timer/Counter D0 */
2685 #define TCD0_CTRLA _SFR_MEM8(0x0900)
2686 #define TCD0_CTRLB _SFR_MEM8(0x0901)
2687 #define TCD0_CTRLC _SFR_MEM8(0x0902)
2688 #define TCD0_CTRLD _SFR_MEM8(0x0903)
2689 #define TCD0_CTRLE _SFR_MEM8(0x0904)
2690 #define TCD0_INTCTRLA _SFR_MEM8(0x0906)
2691 #define TCD0_INTCTRLB _SFR_MEM8(0x0907)
2692 #define TCD0_CTRLFCLR _SFR_MEM8(0x0908)
2693 #define TCD0_CTRLFSET _SFR_MEM8(0x0909)
2694 #define TCD0_CTRLGCLR _SFR_MEM8(0x090A)
2695 #define TCD0_CTRLGSET _SFR_MEM8(0x090B)
2696 #define TCD0_INTFLAGS _SFR_MEM8(0x090C)
2697 #define TCD0_TEMP _SFR_MEM8(0x090F)
2698 #define TCD0_CNT _SFR_MEM16(0x0920)
2699 #define TCD0_PER _SFR_MEM16(0x0926)
2700 #define TCD0_CCA _SFR_MEM16(0x0928)
2701 #define TCD0_CCB _SFR_MEM16(0x092A)
2702 #define TCD0_CCC _SFR_MEM16(0x092C)
2703 #define TCD0_CCD _SFR_MEM16(0x092E)
2704 #define TCD0_PERBUF _SFR_MEM16(0x0936)
2705 #define TCD0_CCABUF _SFR_MEM16(0x0938)
2706 #define TCD0_CCBBUF _SFR_MEM16(0x093A)
2707 #define TCD0_CCCBUF _SFR_MEM16(0x093C)
2708 #define TCD0_CCDBUF _SFR_MEM16(0x093E)
2709 
2710 /* USARTD0 - Universal Asynchronous Receiver-Transmitter D0 */
2711 #define USARTD0_DATA _SFR_MEM8(0x09A0)
2712 #define USARTD0_STATUS _SFR_MEM8(0x09A1)
2713 #define USARTD0_CTRLA _SFR_MEM8(0x09A3)
2714 #define USARTD0_CTRLB _SFR_MEM8(0x09A4)
2715 #define USARTD0_CTRLC _SFR_MEM8(0x09A5)
2716 #define USARTD0_BAUDCTRLA _SFR_MEM8(0x09A6)
2717 #define USARTD0_BAUDCTRLB _SFR_MEM8(0x09A7)
2718 
2719 /* SPID - Serial Peripheral Interface D */
2720 #define SPID_CTRL _SFR_MEM8(0x09C0)
2721 #define SPID_INTCTRL _SFR_MEM8(0x09C1)
2722 #define SPID_STATUS _SFR_MEM8(0x09C2)
2723 #define SPID_DATA _SFR_MEM8(0x09C3)
2724 
2725 /* TCE0 - Timer/Counter E0 */
2726 #define TCE0_CTRLA _SFR_MEM8(0x0A00)
2727 #define TCE0_CTRLB _SFR_MEM8(0x0A01)
2728 #define TCE0_CTRLC _SFR_MEM8(0x0A02)
2729 #define TCE0_CTRLD _SFR_MEM8(0x0A03)
2730 #define TCE0_CTRLE _SFR_MEM8(0x0A04)
2731 #define TCE0_INTCTRLA _SFR_MEM8(0x0A06)
2732 #define TCE0_INTCTRLB _SFR_MEM8(0x0A07)
2733 #define TCE0_CTRLFCLR _SFR_MEM8(0x0A08)
2734 #define TCE0_CTRLFSET _SFR_MEM8(0x0A09)
2735 #define TCE0_CTRLGCLR _SFR_MEM8(0x0A0A)
2736 #define TCE0_CTRLGSET _SFR_MEM8(0x0A0B)
2737 #define TCE0_INTFLAGS _SFR_MEM8(0x0A0C)
2738 #define TCE0_TEMP _SFR_MEM8(0x0A0F)
2739 #define TCE0_CNT _SFR_MEM16(0x0A20)
2740 #define TCE0_PER _SFR_MEM16(0x0A26)
2741 #define TCE0_CCA _SFR_MEM16(0x0A28)
2742 #define TCE0_CCB _SFR_MEM16(0x0A2A)
2743 #define TCE0_CCC _SFR_MEM16(0x0A2C)
2744 #define TCE0_CCD _SFR_MEM16(0x0A2E)
2745 #define TCE0_PERBUF _SFR_MEM16(0x0A36)
2746 #define TCE0_CCABUF _SFR_MEM16(0x0A38)
2747 #define TCE0_CCBBUF _SFR_MEM16(0x0A3A)
2748 #define TCE0_CCCBUF _SFR_MEM16(0x0A3C)
2749 #define TCE0_CCDBUF _SFR_MEM16(0x0A3E)
2750 
2751 /* AWEXE - Advanced Waveform Extension E */
2752 #define AWEXE_CTRL _SFR_MEM8(0x0A80)
2753 #define AWEXE_FDEMASK _SFR_MEM8(0x0A82)
2754 #define AWEXE_FDCTRL _SFR_MEM8(0x0A83)
2755 #define AWEXE_STATUS _SFR_MEM8(0x0A84)
2756 #define AWEXE_DTBOTH _SFR_MEM8(0x0A86)
2757 #define AWEXE_DTBOTHBUF _SFR_MEM8(0x0A87)
2758 #define AWEXE_DTLS _SFR_MEM8(0x0A88)
2759 #define AWEXE_DTHS _SFR_MEM8(0x0A89)
2760 #define AWEXE_DTLSBUF _SFR_MEM8(0x0A8A)
2761 #define AWEXE_DTHSBUF _SFR_MEM8(0x0A8B)
2762 #define AWEXE_OUTOVEN _SFR_MEM8(0x0A8C)
2763 
2764 /* USARTE0 - Universal Asynchronous Receiver-Transmitter E0 */
2765 #define USARTE0_DATA _SFR_MEM8(0x0AA0)
2766 #define USARTE0_STATUS _SFR_MEM8(0x0AA1)
2767 #define USARTE0_CTRLA _SFR_MEM8(0x0AA3)
2768 #define USARTE0_CTRLB _SFR_MEM8(0x0AA4)
2769 #define USARTE0_CTRLC _SFR_MEM8(0x0AA5)
2770 #define USARTE0_BAUDCTRLA _SFR_MEM8(0x0AA6)
2771 #define USARTE0_BAUDCTRLB _SFR_MEM8(0x0AA7)
2772 
2773 /* SPIE - Serial Peripheral Interface E */
2774 #define SPIE_CTRL _SFR_MEM8(0x0AC0)
2775 #define SPIE_INTCTRL _SFR_MEM8(0x0AC1)
2776 #define SPIE_STATUS _SFR_MEM8(0x0AC2)
2777 #define SPIE_DATA _SFR_MEM8(0x0AC3)
2778 
2779 /* TCF0 - Timer/Counter F0 */
2780 #define TCF0_CTRLA _SFR_MEM8(0x0B00)
2781 #define TCF0_CTRLB _SFR_MEM8(0x0B01)
2782 #define TCF0_CTRLC _SFR_MEM8(0x0B02)
2783 #define TCF0_CTRLD _SFR_MEM8(0x0B03)
2784 #define TCF0_CTRLE _SFR_MEM8(0x0B04)
2785 #define TCF0_INTCTRLA _SFR_MEM8(0x0B06)
2786 #define TCF0_INTCTRLB _SFR_MEM8(0x0B07)
2787 #define TCF0_CTRLFCLR _SFR_MEM8(0x0B08)
2788 #define TCF0_CTRLFSET _SFR_MEM8(0x0B09)
2789 #define TCF0_CTRLGCLR _SFR_MEM8(0x0B0A)
2790 #define TCF0_CTRLGSET _SFR_MEM8(0x0B0B)
2791 #define TCF0_INTFLAGS _SFR_MEM8(0x0B0C)
2792 #define TCF0_TEMP _SFR_MEM8(0x0B0F)
2793 #define TCF0_CNT _SFR_MEM16(0x0B20)
2794 #define TCF0_PER _SFR_MEM16(0x0B26)
2795 #define TCF0_CCA _SFR_MEM16(0x0B28)
2796 #define TCF0_CCB _SFR_MEM16(0x0B2A)
2797 #define TCF0_CCC _SFR_MEM16(0x0B2C)
2798 #define TCF0_CCD _SFR_MEM16(0x0B2E)
2799 #define TCF0_PERBUF _SFR_MEM16(0x0B36)
2800 #define TCF0_CCABUF _SFR_MEM16(0x0B38)
2801 #define TCF0_CCBBUF _SFR_MEM16(0x0B3A)
2802 #define TCF0_CCCBUF _SFR_MEM16(0x0B3C)
2803 #define TCF0_CCDBUF _SFR_MEM16(0x0B3E)
2804 
2805 
2806 
2807 /*================== Bitfield Definitions ================== */
2808 
2809 /* XOCD - On-Chip Debug System */
2810 /* OCD.OCDR1 bit masks and bit positions */
2811 #define OCD_OCDRD_bm 0x01 /* OCDR Dirty bit mask. */
2812 #define OCD_OCDRD_bp 0 /* OCDR Dirty bit position. */
2813 
2814 
2815 /* CPU - CPU */
2816 /* CPU.CCP bit masks and bit positions */
2817 #define CPU_CCP_gm 0xFF /* CCP signature group mask. */
2818 #define CPU_CCP_gp 0 /* CCP signature group position. */
2819 #define CPU_CCP0_bm (1<<0) /* CCP signature bit 0 mask. */
2820 #define CPU_CCP0_bp 0 /* CCP signature bit 0 position. */
2821 #define CPU_CCP1_bm (1<<1) /* CCP signature bit 1 mask. */
2822 #define CPU_CCP1_bp 1 /* CCP signature bit 1 position. */
2823 #define CPU_CCP2_bm (1<<2) /* CCP signature bit 2 mask. */
2824 #define CPU_CCP2_bp 2 /* CCP signature bit 2 position. */
2825 #define CPU_CCP3_bm (1<<3) /* CCP signature bit 3 mask. */
2826 #define CPU_CCP3_bp 3 /* CCP signature bit 3 position. */
2827 #define CPU_CCP4_bm (1<<4) /* CCP signature bit 4 mask. */
2828 #define CPU_CCP4_bp 4 /* CCP signature bit 4 position. */
2829 #define CPU_CCP5_bm (1<<5) /* CCP signature bit 5 mask. */
2830 #define CPU_CCP5_bp 5 /* CCP signature bit 5 position. */
2831 #define CPU_CCP6_bm (1<<6) /* CCP signature bit 6 mask. */
2832 #define CPU_CCP6_bp 6 /* CCP signature bit 6 position. */
2833 #define CPU_CCP7_bm (1<<7) /* CCP signature bit 7 mask. */
2834 #define CPU_CCP7_bp 7 /* CCP signature bit 7 position. */
2835 
2836 
2837 /* CPU.SREG bit masks and bit positions */
2838 #define CPU_I_bm 0x80 /* Global Interrupt Enable Flag bit mask. */
2839 #define CPU_I_bp 7 /* Global Interrupt Enable Flag bit position. */
2840 
2841 #define CPU_T_bm 0x40 /* Transfer Bit bit mask. */
2842 #define CPU_T_bp 6 /* Transfer Bit bit position. */
2843 
2844 #define CPU_H_bm 0x20 /* Half Carry Flag bit mask. */
2845 #define CPU_H_bp 5 /* Half Carry Flag bit position. */
2846 
2847 #define CPU_S_bm 0x10 /* N Exclusive Or V Flag bit mask. */
2848 #define CPU_S_bp 4 /* N Exclusive Or V Flag bit position. */
2849 
2850 #define CPU_V_bm 0x08 /* Two's Complement Overflow Flag bit mask. */
2851 #define CPU_V_bp 3 /* Two's Complement Overflow Flag bit position. */
2852 
2853 #define CPU_N_bm 0x04 /* Negative Flag bit mask. */
2854 #define CPU_N_bp 2 /* Negative Flag bit position. */
2855 
2856 #define CPU_Z_bm 0x02 /* Zero Flag bit mask. */
2857 #define CPU_Z_bp 1 /* Zero Flag bit position. */
2858 
2859 #define CPU_C_bm 0x01 /* Carry Flag bit mask. */
2860 #define CPU_C_bp 0 /* Carry Flag bit position. */
2861 
2862 
2863 /* CLK - Clock System */
2864 /* CLK.CTRL bit masks and bit positions */
2865 #define CLK_SCLKSEL_gm 0x07 /* System Clock Selection group mask. */
2866 #define CLK_SCLKSEL_gp 0 /* System Clock Selection group position. */
2867 #define CLK_SCLKSEL0_bm (1<<0) /* System Clock Selection bit 0 mask. */
2868 #define CLK_SCLKSEL0_bp 0 /* System Clock Selection bit 0 position. */
2869 #define CLK_SCLKSEL1_bm (1<<1) /* System Clock Selection bit 1 mask. */
2870 #define CLK_SCLKSEL1_bp 1 /* System Clock Selection bit 1 position. */
2871 #define CLK_SCLKSEL2_bm (1<<2) /* System Clock Selection bit 2 mask. */
2872 #define CLK_SCLKSEL2_bp 2 /* System Clock Selection bit 2 position. */
2873 
2874 
2875 /* CLK.PSCTRL bit masks and bit positions */
2876 #define CLK_PSADIV_gm 0x7C /* Prescaler A Division Factor group mask. */
2877 #define CLK_PSADIV_gp 2 /* Prescaler A Division Factor group position. */
2878 #define CLK_PSADIV0_bm (1<<2) /* Prescaler A Division Factor bit 0 mask. */
2879 #define CLK_PSADIV0_bp 2 /* Prescaler A Division Factor bit 0 position. */
2880 #define CLK_PSADIV1_bm (1<<3) /* Prescaler A Division Factor bit 1 mask. */
2881 #define CLK_PSADIV1_bp 3 /* Prescaler A Division Factor bit 1 position. */
2882 #define CLK_PSADIV2_bm (1<<4) /* Prescaler A Division Factor bit 2 mask. */
2883 #define CLK_PSADIV2_bp 4 /* Prescaler A Division Factor bit 2 position. */
2884 #define CLK_PSADIV3_bm (1<<5) /* Prescaler A Division Factor bit 3 mask. */
2885 #define CLK_PSADIV3_bp 5 /* Prescaler A Division Factor bit 3 position. */
2886 #define CLK_PSADIV4_bm (1<<6) /* Prescaler A Division Factor bit 4 mask. */
2887 #define CLK_PSADIV4_bp 6 /* Prescaler A Division Factor bit 4 position. */
2888 
2889 #define CLK_PSBCDIV_gm 0x03 /* Prescaler B and C Division factor group mask. */
2890 #define CLK_PSBCDIV_gp 0 /* Prescaler B and C Division factor group position. */
2891 #define CLK_PSBCDIV0_bm (1<<0) /* Prescaler B and C Division factor bit 0 mask. */
2892 #define CLK_PSBCDIV0_bp 0 /* Prescaler B and C Division factor bit 0 position. */
2893 #define CLK_PSBCDIV1_bm (1<<1) /* Prescaler B and C Division factor bit 1 mask. */
2894 #define CLK_PSBCDIV1_bp 1 /* Prescaler B and C Division factor bit 1 position. */
2895 
2896 
2897 /* CLK.LOCK bit masks and bit positions */
2898 #define CLK_LOCK_bm 0x01 /* Clock System Lock bit mask. */
2899 #define CLK_LOCK_bp 0 /* Clock System Lock bit position. */
2900 
2901 
2902 /* CLK.RTCCTRL bit masks and bit positions */
2903 #define CLK_RTCSRC_gm 0x0E /* Clock Source group mask. */
2904 #define CLK_RTCSRC_gp 1 /* Clock Source group position. */
2905 #define CLK_RTCSRC0_bm (1<<1) /* Clock Source bit 0 mask. */
2906 #define CLK_RTCSRC0_bp 1 /* Clock Source bit 0 position. */
2907 #define CLK_RTCSRC1_bm (1<<2) /* Clock Source bit 1 mask. */
2908 #define CLK_RTCSRC1_bp 2 /* Clock Source bit 1 position. */
2909 #define CLK_RTCSRC2_bm (1<<3) /* Clock Source bit 2 mask. */
2910 #define CLK_RTCSRC2_bp 3 /* Clock Source bit 2 position. */
2911 
2912 #define CLK_RTCEN_bm 0x01 /* RTC Clock Source Enable bit mask. */
2913 #define CLK_RTCEN_bp 0 /* RTC Clock Source Enable bit position. */
2914 
2915 
2916 /* PR.PRGEN bit masks and bit positions */
2917 #define PR_AES_bm 0x10 /* AES bit mask. */
2918 #define PR_AES_bp 4 /* AES bit position. */
2919 
2920 #define PR_EBI_bm 0x08 /* External Bus Interface bit mask. */
2921 #define PR_EBI_bp 3 /* External Bus Interface bit position. */
2922 
2923 #define PR_RTC_bm 0x04 /* Real-time Counter bit mask. */
2924 #define PR_RTC_bp 2 /* Real-time Counter bit position. */
2925 
2926 #define PR_EVSYS_bm 0x02 /* Event System bit mask. */
2927 #define PR_EVSYS_bp 1 /* Event System bit position. */
2928 
2929 #define PR_DMA_bm 0x01 /* DMA-Controller bit mask. */
2930 #define PR_DMA_bp 0 /* DMA-Controller bit position. */
2931 
2932 
2933 /* PR.PRPA bit masks and bit positions */
2934 #define PR_DAC_bm 0x04 /* Port A DAC bit mask. */
2935 #define PR_DAC_bp 2 /* Port A DAC bit position. */
2936 
2937 #define PR_ADC_bm 0x02 /* Port A ADC bit mask. */
2938 #define PR_ADC_bp 1 /* Port A ADC bit position. */
2939 
2940 #define PR_AC_bm 0x01 /* Port A Analog Comparator bit mask. */
2941 #define PR_AC_bp 0 /* Port A Analog Comparator bit position. */
2942 
2943 
2944 /* PR.PRPB bit masks and bit positions */
2945 /* PR_DAC_bm Predefined. */
2946 /* PR_DAC_bp Predefined. */
2947 
2948 /* PR_ADC_bm Predefined. */
2949 /* PR_ADC_bp Predefined. */
2950 
2951 /* PR_AC_bm Predefined. */
2952 /* PR_AC_bp Predefined. */
2953 
2954 
2955 /* PR.PRPC bit masks and bit positions */
2956 #define PR_TWI_bm 0x40 /* Port C Two-wire Interface bit mask. */
2957 #define PR_TWI_bp 6 /* Port C Two-wire Interface bit position. */
2958 
2959 #define PR_USART1_bm 0x20 /* Port C USART1 bit mask. */
2960 #define PR_USART1_bp 5 /* Port C USART1 bit position. */
2961 
2962 #define PR_USART0_bm 0x10 /* Port C USART0 bit mask. */
2963 #define PR_USART0_bp 4 /* Port C USART0 bit position. */
2964 
2965 #define PR_SPI_bm 0x08 /* Port C SPI bit mask. */
2966 #define PR_SPI_bp 3 /* Port C SPI bit position. */
2967 
2968 #define PR_HIRES_bm 0x04 /* Port C AWEX bit mask. */
2969 #define PR_HIRES_bp 2 /* Port C AWEX bit position. */
2970 
2971 #define PR_TC1_bm 0x02 /* Port C Timer/Counter1 bit mask. */
2972 #define PR_TC1_bp 1 /* Port C Timer/Counter1 bit position. */
2973 
2974 #define PR_TC0_bm 0x01 /* Port C Timer/Counter0 bit mask. */
2975 #define PR_TC0_bp 0 /* Port C Timer/Counter0 bit position. */
2976 
2977 
2978 /* PR.PRPD bit masks and bit positions */
2979 /* PR_TWI_bm Predefined. */
2980 /* PR_TWI_bp Predefined. */
2981 
2982 /* PR_USART1_bm Predefined. */
2983 /* PR_USART1_bp Predefined. */
2984 
2985 /* PR_USART0_bm Predefined. */
2986 /* PR_USART0_bp Predefined. */
2987 
2988 /* PR_SPI_bm Predefined. */
2989 /* PR_SPI_bp Predefined. */
2990 
2991 /* PR_HIRES_bm Predefined. */
2992 /* PR_HIRES_bp Predefined. */
2993 
2994 /* PR_TC1_bm Predefined. */
2995 /* PR_TC1_bp Predefined. */
2996 
2997 /* PR_TC0_bm Predefined. */
2998 /* PR_TC0_bp Predefined. */
2999 
3000 
3001 /* PR.PRPE bit masks and bit positions */
3002 /* PR_TWI_bm Predefined. */
3003 /* PR_TWI_bp Predefined. */
3004 
3005 /* PR_USART1_bm Predefined. */
3006 /* PR_USART1_bp Predefined. */
3007 
3008 /* PR_USART0_bm Predefined. */
3009 /* PR_USART0_bp Predefined. */
3010 
3011 /* PR_SPI_bm Predefined. */
3012 /* PR_SPI_bp Predefined. */
3013 
3014 /* PR_HIRES_bm Predefined. */
3015 /* PR_HIRES_bp Predefined. */
3016 
3017 /* PR_TC1_bm Predefined. */
3018 /* PR_TC1_bp Predefined. */
3019 
3020 /* PR_TC0_bm Predefined. */
3021 /* PR_TC0_bp Predefined. */
3022 
3023 
3024 /* PR.PRPF bit masks and bit positions */
3025 /* PR_TWI_bm Predefined. */
3026 /* PR_TWI_bp Predefined. */
3027 
3028 /* PR_USART1_bm Predefined. */
3029 /* PR_USART1_bp Predefined. */
3030 
3031 /* PR_USART0_bm Predefined. */
3032 /* PR_USART0_bp Predefined. */
3033 
3034 /* PR_SPI_bm Predefined. */
3035 /* PR_SPI_bp Predefined. */
3036 
3037 /* PR_HIRES_bm Predefined. */
3038 /* PR_HIRES_bp Predefined. */
3039 
3040 /* PR_TC1_bm Predefined. */
3041 /* PR_TC1_bp Predefined. */
3042 
3043 /* PR_TC0_bm Predefined. */
3044 /* PR_TC0_bp Predefined. */
3045 
3046 
3047 /* SLEEP - Sleep Controller */
3048 /* SLEEP.CTRL bit masks and bit positions */
3049 #define SLEEP_SMODE_gm 0x0E /* Sleep Mode group mask. */
3050 #define SLEEP_SMODE_gp 1 /* Sleep Mode group position. */
3051 #define SLEEP_SMODE0_bm (1<<1) /* Sleep Mode bit 0 mask. */
3052 #define SLEEP_SMODE0_bp 1 /* Sleep Mode bit 0 position. */
3053 #define SLEEP_SMODE1_bm (1<<2) /* Sleep Mode bit 1 mask. */
3054 #define SLEEP_SMODE1_bp 2 /* Sleep Mode bit 1 position. */
3055 #define SLEEP_SMODE2_bm (1<<3) /* Sleep Mode bit 2 mask. */
3056 #define SLEEP_SMODE2_bp 3 /* Sleep Mode bit 2 position. */
3057 
3058 #define SLEEP_SEN_bm 0x01 /* Sleep Enable bit mask. */
3059 #define SLEEP_SEN_bp 0 /* Sleep Enable bit position. */
3060 
3061 
3062 /* OSC - Oscillator */
3063 /* OSC.CTRL bit masks and bit positions */
3064 #define OSC_PLLEN_bm 0x10 /* PLL Enable bit mask. */
3065 #define OSC_PLLEN_bp 4 /* PLL Enable bit position. */
3066 
3067 #define OSC_XOSCEN_bm 0x08 /* External Oscillator Enable bit mask. */
3068 #define OSC_XOSCEN_bp 3 /* External Oscillator Enable bit position. */
3069 
3070 #define OSC_RC32KEN_bm 0x04 /* Internal 32kHz RC Oscillator Enable bit mask. */
3071 #define OSC_RC32KEN_bp 2 /* Internal 32kHz RC Oscillator Enable bit position. */
3072 
3073 #define OSC_RC32MEN_bm 0x02 /* Internal 32MHz RC Oscillator Enable bit mask. */
3074 #define OSC_RC32MEN_bp 1 /* Internal 32MHz RC Oscillator Enable bit position. */
3075 
3076 #define OSC_RC2MEN_bm 0x01 /* Internal 2MHz RC Oscillator Enable bit mask. */
3077 #define OSC_RC2MEN_bp 0 /* Internal 2MHz RC Oscillator Enable bit position. */
3078 
3079 
3080 /* OSC.STATUS bit masks and bit positions */
3081 #define OSC_PLLRDY_bm 0x10 /* PLL Ready bit mask. */
3082 #define OSC_PLLRDY_bp 4 /* PLL Ready bit position. */
3083 
3084 #define OSC_XOSCRDY_bm 0x08 /* External Oscillator Ready bit mask. */
3085 #define OSC_XOSCRDY_bp 3 /* External Oscillator Ready bit position. */
3086 
3087 #define OSC_RC32KRDY_bm 0x04 /* Internal 32kHz RC Oscillator Ready bit mask. */
3088 #define OSC_RC32KRDY_bp 2 /* Internal 32kHz RC Oscillator Ready bit position. */
3089 
3090 #define OSC_RC32MRDY_bm 0x02 /* Internal 32MHz RC Oscillator Ready bit mask. */
3091 #define OSC_RC32MRDY_bp 1 /* Internal 32MHz RC Oscillator Ready bit position. */
3092 
3093 #define OSC_RC2MRDY_bm 0x01 /* Internal 2MHz RC Oscillator Ready bit mask. */
3094 #define OSC_RC2MRDY_bp 0 /* Internal 2MHz RC Oscillator Ready bit position. */
3095 
3096 
3097 /* OSC.XOSCCTRL bit masks and bit positions */
3098 #define OSC_FRQRANGE_gm 0xC0 /* Frequency Range group mask. */
3099 #define OSC_FRQRANGE_gp 6 /* Frequency Range group position. */
3100 #define OSC_FRQRANGE0_bm (1<<6) /* Frequency Range bit 0 mask. */
3101 #define OSC_FRQRANGE0_bp 6 /* Frequency Range bit 0 position. */
3102 #define OSC_FRQRANGE1_bm (1<<7) /* Frequency Range bit 1 mask. */
3103 #define OSC_FRQRANGE1_bp 7 /* Frequency Range bit 1 position. */
3104 
3105 #define OSC_X32KLPM_bm 0x20 /* 32kHz XTAL OSC Low-power Mode bit mask. */
3106 #define OSC_X32KLPM_bp 5 /* 32kHz XTAL OSC Low-power Mode bit position. */
3107 
3108 #define OSC_XOSCSEL_gm 0x0F /* External Oscillator Selection and Startup Time group mask. */
3109 #define OSC_XOSCSEL_gp 0 /* External Oscillator Selection and Startup Time group position. */
3110 #define OSC_XOSCSEL0_bm (1<<0) /* External Oscillator Selection and Startup Time bit 0 mask. */
3111 #define OSC_XOSCSEL0_bp 0 /* External Oscillator Selection and Startup Time bit 0 position. */
3112 #define OSC_XOSCSEL1_bm (1<<1) /* External Oscillator Selection and Startup Time bit 1 mask. */
3113 #define OSC_XOSCSEL1_bp 1 /* External Oscillator Selection and Startup Time bit 1 position. */
3114 #define OSC_XOSCSEL2_bm (1<<2) /* External Oscillator Selection and Startup Time bit 2 mask. */
3115 #define OSC_XOSCSEL2_bp 2 /* External Oscillator Selection and Startup Time bit 2 position. */
3116 #define OSC_XOSCSEL3_bm (1<<3) /* External Oscillator Selection and Startup Time bit 3 mask. */
3117 #define OSC_XOSCSEL3_bp 3 /* External Oscillator Selection and Startup Time bit 3 position. */
3118 
3119 
3120 /* OSC.XOSCFAIL bit masks and bit positions */
3121 #define OSC_XOSCFDIF_bm 0x02 /* Failure Detection Interrupt Flag bit mask. */
3122 #define OSC_XOSCFDIF_bp 1 /* Failure Detection Interrupt Flag bit position. */
3123 
3124 #define OSC_XOSCFDEN_bm 0x01 /* Failure Detection Enable bit mask. */
3125 #define OSC_XOSCFDEN_bp 0 /* Failure Detection Enable bit position. */
3126 
3127 
3128 /* OSC.PLLCTRL bit masks and bit positions */
3129 #define OSC_PLLSRC_gm 0xC0 /* Clock Source group mask. */
3130 #define OSC_PLLSRC_gp 6 /* Clock Source group position. */
3131 #define OSC_PLLSRC0_bm (1<<6) /* Clock Source bit 0 mask. */
3132 #define OSC_PLLSRC0_bp 6 /* Clock Source bit 0 position. */
3133 #define OSC_PLLSRC1_bm (1<<7) /* Clock Source bit 1 mask. */
3134 #define OSC_PLLSRC1_bp 7 /* Clock Source bit 1 position. */
3135 
3136 #define OSC_PLLFAC_gm 0x1F /* Multiplication Factor group mask. */
3137 #define OSC_PLLFAC_gp 0 /* Multiplication Factor group position. */
3138 #define OSC_PLLFAC0_bm (1<<0) /* Multiplication Factor bit 0 mask. */
3139 #define OSC_PLLFAC0_bp 0 /* Multiplication Factor bit 0 position. */
3140 #define OSC_PLLFAC1_bm (1<<1) /* Multiplication Factor bit 1 mask. */
3141 #define OSC_PLLFAC1_bp 1 /* Multiplication Factor bit 1 position. */
3142 #define OSC_PLLFAC2_bm (1<<2) /* Multiplication Factor bit 2 mask. */
3143 #define OSC_PLLFAC2_bp 2 /* Multiplication Factor bit 2 position. */
3144 #define OSC_PLLFAC3_bm (1<<3) /* Multiplication Factor bit 3 mask. */
3145 #define OSC_PLLFAC3_bp 3 /* Multiplication Factor bit 3 position. */
3146 #define OSC_PLLFAC4_bm (1<<4) /* Multiplication Factor bit 4 mask. */
3147 #define OSC_PLLFAC4_bp 4 /* Multiplication Factor bit 4 position. */
3148 
3149 
3150 /* OSC.DFLLCTRL bit masks and bit positions */
3151 #define OSC_RC32MCREF_bm 0x02 /* 32MHz Calibration Reference bit mask. */
3152 #define OSC_RC32MCREF_bp 1 /* 32MHz Calibration Reference bit position. */
3153 
3154 #define OSC_RC2MCREF_bm 0x01 /* 2MHz Calibration Reference bit mask. */
3155 #define OSC_RC2MCREF_bp 0 /* 2MHz Calibration Reference bit position. */
3156 
3157 
3158 /* DFLL - DFLL */
3159 /* DFLL.CTRL bit masks and bit positions */
3160 #define DFLL_ENABLE_bm 0x01 /* DFLL Enable bit mask. */
3161 #define DFLL_ENABLE_bp 0 /* DFLL Enable bit position. */
3162 
3163 
3164 /* DFLL.CALA bit masks and bit positions */
3165 #define DFLL_CALL_gm 0x7F /* DFLL Calibration bits [6:0] group mask. */
3166 #define DFLL_CALL_gp 0 /* DFLL Calibration bits [6:0] group position. */
3167 #define DFLL_CALL0_bm (1<<0) /* DFLL Calibration bits [6:0] bit 0 mask. */
3168 #define DFLL_CALL0_bp 0 /* DFLL Calibration bits [6:0] bit 0 position. */
3169 #define DFLL_CALL1_bm (1<<1) /* DFLL Calibration bits [6:0] bit 1 mask. */
3170 #define DFLL_CALL1_bp 1 /* DFLL Calibration bits [6:0] bit 1 position. */
3171 #define DFLL_CALL2_bm (1<<2) /* DFLL Calibration bits [6:0] bit 2 mask. */
3172 #define DFLL_CALL2_bp 2 /* DFLL Calibration bits [6:0] bit 2 position. */
3173 #define DFLL_CALL3_bm (1<<3) /* DFLL Calibration bits [6:0] bit 3 mask. */
3174 #define DFLL_CALL3_bp 3 /* DFLL Calibration bits [6:0] bit 3 position. */
3175 #define DFLL_CALL4_bm (1<<4) /* DFLL Calibration bits [6:0] bit 4 mask. */
3176 #define DFLL_CALL4_bp 4 /* DFLL Calibration bits [6:0] bit 4 position. */
3177 #define DFLL_CALL5_bm (1<<5) /* DFLL Calibration bits [6:0] bit 5 mask. */
3178 #define DFLL_CALL5_bp 5 /* DFLL Calibration bits [6:0] bit 5 position. */
3179 #define DFLL_CALL6_bm (1<<6) /* DFLL Calibration bits [6:0] bit 6 mask. */
3180 #define DFLL_CALL6_bp 6 /* DFLL Calibration bits [6:0] bit 6 position. */
3181 
3182 
3183 /* DFLL.CALB bit masks and bit positions */
3184 #define DFLL_CALH_gm 0x3F /* DFLL Calibration bits [12:7] group mask. */
3185 #define DFLL_CALH_gp 0 /* DFLL Calibration bits [12:7] group position. */
3186 #define DFLL_CALH0_bm (1<<0) /* DFLL Calibration bits [12:7] bit 0 mask. */
3187 #define DFLL_CALH0_bp 0 /* DFLL Calibration bits [12:7] bit 0 position. */
3188 #define DFLL_CALH1_bm (1<<1) /* DFLL Calibration bits [12:7] bit 1 mask. */
3189 #define DFLL_CALH1_bp 1 /* DFLL Calibration bits [12:7] bit 1 position. */
3190 #define DFLL_CALH2_bm (1<<2) /* DFLL Calibration bits [12:7] bit 2 mask. */
3191 #define DFLL_CALH2_bp 2 /* DFLL Calibration bits [12:7] bit 2 position. */
3192 #define DFLL_CALH3_bm (1<<3) /* DFLL Calibration bits [12:7] bit 3 mask. */
3193 #define DFLL_CALH3_bp 3 /* DFLL Calibration bits [12:7] bit 3 position. */
3194 #define DFLL_CALH4_bm (1<<4) /* DFLL Calibration bits [12:7] bit 4 mask. */
3195 #define DFLL_CALH4_bp 4 /* DFLL Calibration bits [12:7] bit 4 position. */
3196 #define DFLL_CALH5_bm (1<<5) /* DFLL Calibration bits [12:7] bit 5 mask. */
3197 #define DFLL_CALH5_bp 5 /* DFLL Calibration bits [12:7] bit 5 position. */
3198 
3199 
3200 /* RST - Reset */
3201 /* RST.STATUS bit masks and bit positions */
3202 #define RST_SDRF_bm 0x40 /* Spike Detection Reset Flag bit mask. */
3203 #define RST_SDRF_bp 6 /* Spike Detection Reset Flag bit position. */
3204 
3205 #define RST_SRF_bm 0x20 /* Software Reset Flag bit mask. */
3206 #define RST_SRF_bp 5 /* Software Reset Flag bit position. */
3207 
3208 #define RST_PDIRF_bm 0x10 /* Programming and Debug Interface Interface Reset Flag bit mask. */
3209 #define RST_PDIRF_bp 4 /* Programming and Debug Interface Interface Reset Flag bit position. */
3210 
3211 #define RST_WDRF_bm 0x08 /* Watchdog Reset Flag bit mask. */
3212 #define RST_WDRF_bp 3 /* Watchdog Reset Flag bit position. */
3213 
3214 #define RST_BORF_bm 0x04 /* Brown-out Reset Flag bit mask. */
3215 #define RST_BORF_bp 2 /* Brown-out Reset Flag bit position. */
3216 
3217 #define RST_EXTRF_bm 0x02 /* External Reset Flag bit mask. */
3218 #define RST_EXTRF_bp 1 /* External Reset Flag bit position. */
3219 
3220 #define RST_PORF_bm 0x01 /* Power-on Reset Flag bit mask. */
3221 #define RST_PORF_bp 0 /* Power-on Reset Flag bit position. */
3222 
3223 
3224 /* RST.CTRL bit masks and bit positions */
3225 #define RST_SWRST_bm 0x01 /* Software Reset bit mask. */
3226 #define RST_SWRST_bp 0 /* Software Reset bit position. */
3227 
3228 
3229 /* WDT - Watch-Dog Timer */
3230 /* WDT.CTRL bit masks and bit positions */
3231 #define WDT_PER_gm 0x3C /* Period group mask. */
3232 #define WDT_PER_gp 2 /* Period group position. */
3233 #define WDT_PER0_bm (1<<2) /* Period bit 0 mask. */
3234 #define WDT_PER0_bp 2 /* Period bit 0 position. */
3235 #define WDT_PER1_bm (1<<3) /* Period bit 1 mask. */
3236 #define WDT_PER1_bp 3 /* Period bit 1 position. */
3237 #define WDT_PER2_bm (1<<4) /* Period bit 2 mask. */
3238 #define WDT_PER2_bp 4 /* Period bit 2 position. */
3239 #define WDT_PER3_bm (1<<5) /* Period bit 3 mask. */
3240 #define WDT_PER3_bp 5 /* Period bit 3 position. */
3241 
3242 #define WDT_ENABLE_bm 0x02 /* Enable bit mask. */
3243 #define WDT_ENABLE_bp 1 /* Enable bit position. */
3244 
3245 #define WDT_CEN_bm 0x01 /* Change Enable bit mask. */
3246 #define WDT_CEN_bp 0 /* Change Enable bit position. */
3247 
3248 
3249 /* WDT.WINCTRL bit masks and bit positions */
3250 #define WDT_WPER_gm 0x3C /* Windowed Mode Period group mask. */
3251 #define WDT_WPER_gp 2 /* Windowed Mode Period group position. */
3252 #define WDT_WPER0_bm (1<<2) /* Windowed Mode Period bit 0 mask. */
3253 #define WDT_WPER0_bp 2 /* Windowed Mode Period bit 0 position. */
3254 #define WDT_WPER1_bm (1<<3) /* Windowed Mode Period bit 1 mask. */
3255 #define WDT_WPER1_bp 3 /* Windowed Mode Period bit 1 position. */
3256 #define WDT_WPER2_bm (1<<4) /* Windowed Mode Period bit 2 mask. */
3257 #define WDT_WPER2_bp 4 /* Windowed Mode Period bit 2 position. */
3258 #define WDT_WPER3_bm (1<<5) /* Windowed Mode Period bit 3 mask. */
3259 #define WDT_WPER3_bp 5 /* Windowed Mode Period bit 3 position. */
3260 
3261 #define WDT_WEN_bm 0x02 /* Windowed Mode Enable bit mask. */
3262 #define WDT_WEN_bp 1 /* Windowed Mode Enable bit position. */
3263 
3264 #define WDT_WCEN_bm 0x01 /* Windowed Mode Change Enable bit mask. */
3265 #define WDT_WCEN_bp 0 /* Windowed Mode Change Enable bit position. */
3266 
3267 
3268 /* WDT.STATUS bit masks and bit positions */
3269 #define WDT_SYNCBUSY_bm 0x01 /* Syncronization busy bit mask. */
3270 #define WDT_SYNCBUSY_bp 0 /* Syncronization busy bit position. */
3271 
3272 
3273 /* MCU - MCU Control */
3274 /* MCU.MCUCR bit masks and bit positions */
3275 #define MCU_JTAGD_bm 0x01 /* JTAG Disable bit mask. */
3276 #define MCU_JTAGD_bp 0 /* JTAG Disable bit position. */
3277 
3278 
3279 /* MCU.EVSYSLOCK bit masks and bit positions */
3280 #define MCU_EVSYS1LOCK_bm 0x10 /* Event Channel 4-7 Lock bit mask. */
3281 #define MCU_EVSYS1LOCK_bp 4 /* Event Channel 4-7 Lock bit position. */
3282 
3283 #define MCU_EVSYS0LOCK_bm 0x01 /* Event Channel 0-3 Lock bit mask. */
3284 #define MCU_EVSYS0LOCK_bp 0 /* Event Channel 0-3 Lock bit position. */
3285 
3286 
3287 /* MCU.AWEXLOCK bit masks and bit positions */
3288 #define MCU_AWEXELOCK_bm 0x04 /* AWeX on T/C E0 Lock bit mask. */
3289 #define MCU_AWEXELOCK_bp 2 /* AWeX on T/C E0 Lock bit position. */
3290 
3291 #define MCU_AWEXCLOCK_bm 0x01 /* AWeX on T/C C0 Lock bit mask. */
3292 #define MCU_AWEXCLOCK_bp 0 /* AWeX on T/C C0 Lock bit position. */
3293 
3294 
3295 /* PMIC - Programmable Multi-level Interrupt Controller */
3296 /* PMIC.STATUS bit masks and bit positions */
3297 #define PMIC_NMIEX_bm 0x80 /* Non-maskable Interrupt Executing bit mask. */
3298 #define PMIC_NMIEX_bp 7 /* Non-maskable Interrupt Executing bit position. */
3299 
3300 #define PMIC_HILVLEX_bm 0x04 /* High Level Interrupt Executing bit mask. */
3301 #define PMIC_HILVLEX_bp 2 /* High Level Interrupt Executing bit position. */
3302 
3303 #define PMIC_MEDLVLEX_bm 0x02 /* Medium Level Interrupt Executing bit mask. */
3304 #define PMIC_MEDLVLEX_bp 1 /* Medium Level Interrupt Executing bit position. */
3305 
3306 #define PMIC_LOLVLEX_bm 0x01 /* Low Level Interrupt Executing bit mask. */
3307 #define PMIC_LOLVLEX_bp 0 /* Low Level Interrupt Executing bit position. */
3308 
3309 
3310 /* PMIC.CTRL bit masks and bit positions */
3311 #define PMIC_RREN_bm 0x80 /* Round-Robin Priority Enable bit mask. */
3312 #define PMIC_RREN_bp 7 /* Round-Robin Priority Enable bit position. */
3313 
3314 #define PMIC_IVSEL_bm 0x40 /* Interrupt Vector Select bit mask. */
3315 #define PMIC_IVSEL_bp 6 /* Interrupt Vector Select bit position. */
3316 
3317 #define PMIC_HILVLEN_bm 0x04 /* High Level Enable bit mask. */
3318 #define PMIC_HILVLEN_bp 2 /* High Level Enable bit position. */
3319 
3320 #define PMIC_MEDLVLEN_bm 0x02 /* Medium Level Enable bit mask. */
3321 #define PMIC_MEDLVLEN_bp 1 /* Medium Level Enable bit position. */
3322 
3323 #define PMIC_LOLVLEN_bm 0x01 /* Low Level Enable bit mask. */
3324 #define PMIC_LOLVLEN_bp 0 /* Low Level Enable bit position. */
3325 
3326 
3327 /* EVSYS - Event System */
3328 /* EVSYS.CH0MUX bit masks and bit positions */
3329 #define EVSYS_CHMUX_gm 0xFF /* Event Channel 0 Multiplexer group mask. */
3330 #define EVSYS_CHMUX_gp 0 /* Event Channel 0 Multiplexer group position. */
3331 #define EVSYS_CHMUX0_bm (1<<0) /* Event Channel 0 Multiplexer bit 0 mask. */
3332 #define EVSYS_CHMUX0_bp 0 /* Event Channel 0 Multiplexer bit 0 position. */
3333 #define EVSYS_CHMUX1_bm (1<<1) /* Event Channel 0 Multiplexer bit 1 mask. */
3334 #define EVSYS_CHMUX1_bp 1 /* Event Channel 0 Multiplexer bit 1 position. */
3335 #define EVSYS_CHMUX2_bm (1<<2) /* Event Channel 0 Multiplexer bit 2 mask. */
3336 #define EVSYS_CHMUX2_bp 2 /* Event Channel 0 Multiplexer bit 2 position. */
3337 #define EVSYS_CHMUX3_bm (1<<3) /* Event Channel 0 Multiplexer bit 3 mask. */
3338 #define EVSYS_CHMUX3_bp 3 /* Event Channel 0 Multiplexer bit 3 position. */
3339 #define EVSYS_CHMUX4_bm (1<<4) /* Event Channel 0 Multiplexer bit 4 mask. */
3340 #define EVSYS_CHMUX4_bp 4 /* Event Channel 0 Multiplexer bit 4 position. */
3341 #define EVSYS_CHMUX5_bm (1<<5) /* Event Channel 0 Multiplexer bit 5 mask. */
3342 #define EVSYS_CHMUX5_bp 5 /* Event Channel 0 Multiplexer bit 5 position. */
3343 #define EVSYS_CHMUX6_bm (1<<6) /* Event Channel 0 Multiplexer bit 6 mask. */
3344 #define EVSYS_CHMUX6_bp 6 /* Event Channel 0 Multiplexer bit 6 position. */
3345 #define EVSYS_CHMUX7_bm (1<<7) /* Event Channel 0 Multiplexer bit 7 mask. */
3346 #define EVSYS_CHMUX7_bp 7 /* Event Channel 0 Multiplexer bit 7 position. */
3347 
3348 
3349 /* EVSYS.CH1MUX bit masks and bit positions */
3350 /* EVSYS_CHMUX_gm Predefined. */
3351 /* EVSYS_CHMUX_gp Predefined. */
3352 /* EVSYS_CHMUX0_bm Predefined. */
3353 /* EVSYS_CHMUX0_bp Predefined. */
3354 /* EVSYS_CHMUX1_bm Predefined. */
3355 /* EVSYS_CHMUX1_bp Predefined. */
3356 /* EVSYS_CHMUX2_bm Predefined. */
3357 /* EVSYS_CHMUX2_bp Predefined. */
3358 /* EVSYS_CHMUX3_bm Predefined. */
3359 /* EVSYS_CHMUX3_bp Predefined. */
3360 /* EVSYS_CHMUX4_bm Predefined. */
3361 /* EVSYS_CHMUX4_bp Predefined. */
3362 /* EVSYS_CHMUX5_bm Predefined. */
3363 /* EVSYS_CHMUX5_bp Predefined. */
3364 /* EVSYS_CHMUX6_bm Predefined. */
3365 /* EVSYS_CHMUX6_bp Predefined. */
3366 /* EVSYS_CHMUX7_bm Predefined. */
3367 /* EVSYS_CHMUX7_bp Predefined. */
3368 
3369 
3370 /* EVSYS.CH2MUX bit masks and bit positions */
3371 /* EVSYS_CHMUX_gm Predefined. */
3372 /* EVSYS_CHMUX_gp Predefined. */
3373 /* EVSYS_CHMUX0_bm Predefined. */
3374 /* EVSYS_CHMUX0_bp Predefined. */
3375 /* EVSYS_CHMUX1_bm Predefined. */
3376 /* EVSYS_CHMUX1_bp Predefined. */
3377 /* EVSYS_CHMUX2_bm Predefined. */
3378 /* EVSYS_CHMUX2_bp Predefined. */
3379 /* EVSYS_CHMUX3_bm Predefined. */
3380 /* EVSYS_CHMUX3_bp Predefined. */
3381 /* EVSYS_CHMUX4_bm Predefined. */
3382 /* EVSYS_CHMUX4_bp Predefined. */
3383 /* EVSYS_CHMUX5_bm Predefined. */
3384 /* EVSYS_CHMUX5_bp Predefined. */
3385 /* EVSYS_CHMUX6_bm Predefined. */
3386 /* EVSYS_CHMUX6_bp Predefined. */
3387 /* EVSYS_CHMUX7_bm Predefined. */
3388 /* EVSYS_CHMUX7_bp Predefined. */
3389 
3390 
3391 /* EVSYS.CH3MUX bit masks and bit positions */
3392 /* EVSYS_CHMUX_gm Predefined. */
3393 /* EVSYS_CHMUX_gp Predefined. */
3394 /* EVSYS_CHMUX0_bm Predefined. */
3395 /* EVSYS_CHMUX0_bp Predefined. */
3396 /* EVSYS_CHMUX1_bm Predefined. */
3397 /* EVSYS_CHMUX1_bp Predefined. */
3398 /* EVSYS_CHMUX2_bm Predefined. */
3399 /* EVSYS_CHMUX2_bp Predefined. */
3400 /* EVSYS_CHMUX3_bm Predefined. */
3401 /* EVSYS_CHMUX3_bp Predefined. */
3402 /* EVSYS_CHMUX4_bm Predefined. */
3403 /* EVSYS_CHMUX4_bp Predefined. */
3404 /* EVSYS_CHMUX5_bm Predefined. */
3405 /* EVSYS_CHMUX5_bp Predefined. */
3406 /* EVSYS_CHMUX6_bm Predefined. */
3407 /* EVSYS_CHMUX6_bp Predefined. */
3408 /* EVSYS_CHMUX7_bm Predefined. */
3409 /* EVSYS_CHMUX7_bp Predefined. */
3410 
3411 
3412 /* EVSYS.CH0CTRL bit masks and bit positions */
3413 #define EVSYS_QDIRM_gm 0x60 /* Quadrature Decoder Index Recognition Mode group mask. */
3414 #define EVSYS_QDIRM_gp 5 /* Quadrature Decoder Index Recognition Mode group position. */
3415 #define EVSYS_QDIRM0_bm (1<<5) /* Quadrature Decoder Index Recognition Mode bit 0 mask. */
3416 #define EVSYS_QDIRM0_bp 5 /* Quadrature Decoder Index Recognition Mode bit 0 position. */
3417 #define EVSYS_QDIRM1_bm (1<<6) /* Quadrature Decoder Index Recognition Mode bit 1 mask. */
3418 #define EVSYS_QDIRM1_bp 6 /* Quadrature Decoder Index Recognition Mode bit 1 position. */
3419 
3420 #define EVSYS_QDIEN_bm 0x10 /* Quadrature Decoder Index Enable bit mask. */
3421 #define EVSYS_QDIEN_bp 4 /* Quadrature Decoder Index Enable bit position. */
3422 
3423 #define EVSYS_QDEN_bm 0x08 /* Quadrature Decoder Enable bit mask. */
3424 #define EVSYS_QDEN_bp 3 /* Quadrature Decoder Enable bit position. */
3425 
3426 #define EVSYS_DIGFILT_gm 0x07 /* Digital Filter group mask. */
3427 #define EVSYS_DIGFILT_gp 0 /* Digital Filter group position. */
3428 #define EVSYS_DIGFILT0_bm (1<<0) /* Digital Filter bit 0 mask. */
3429 #define EVSYS_DIGFILT0_bp 0 /* Digital Filter bit 0 position. */
3430 #define EVSYS_DIGFILT1_bm (1<<1) /* Digital Filter bit 1 mask. */
3431 #define EVSYS_DIGFILT1_bp 1 /* Digital Filter bit 1 position. */
3432 #define EVSYS_DIGFILT2_bm (1<<2) /* Digital Filter bit 2 mask. */
3433 #define EVSYS_DIGFILT2_bp 2 /* Digital Filter bit 2 position. */
3434 
3435 
3436 /* EVSYS.CH1CTRL bit masks and bit positions */
3437 /* EVSYS_DIGFILT_gm Predefined. */
3438 /* EVSYS_DIGFILT_gp Predefined. */
3439 /* EVSYS_DIGFILT0_bm Predefined. */
3440 /* EVSYS_DIGFILT0_bp Predefined. */
3441 /* EVSYS_DIGFILT1_bm Predefined. */
3442 /* EVSYS_DIGFILT1_bp Predefined. */
3443 /* EVSYS_DIGFILT2_bm Predefined. */
3444 /* EVSYS_DIGFILT2_bp Predefined. */
3445 
3446 
3447 /* EVSYS.CH2CTRL bit masks and bit positions */
3448 /* EVSYS_QDIRM_gm Predefined. */
3449 /* EVSYS_QDIRM_gp Predefined. */
3450 /* EVSYS_QDIRM0_bm Predefined. */
3451 /* EVSYS_QDIRM0_bp Predefined. */
3452 /* EVSYS_QDIRM1_bm Predefined. */
3453 /* EVSYS_QDIRM1_bp Predefined. */
3454 
3455 /* EVSYS_QDIEN_bm Predefined. */
3456 /* EVSYS_QDIEN_bp Predefined. */
3457 
3458 /* EVSYS_QDEN_bm Predefined. */
3459 /* EVSYS_QDEN_bp Predefined. */
3460 
3461 /* EVSYS_DIGFILT_gm Predefined. */
3462 /* EVSYS_DIGFILT_gp Predefined. */
3463 /* EVSYS_DIGFILT0_bm Predefined. */
3464 /* EVSYS_DIGFILT0_bp Predefined. */
3465 /* EVSYS_DIGFILT1_bm Predefined. */
3466 /* EVSYS_DIGFILT1_bp Predefined. */
3467 /* EVSYS_DIGFILT2_bm Predefined. */
3468 /* EVSYS_DIGFILT2_bp Predefined. */
3469 
3470 
3471 /* EVSYS.CH3CTRL bit masks and bit positions */
3472 /* EVSYS_DIGFILT_gm Predefined. */
3473 /* EVSYS_DIGFILT_gp Predefined. */
3474 /* EVSYS_DIGFILT0_bm Predefined. */
3475 /* EVSYS_DIGFILT0_bp Predefined. */
3476 /* EVSYS_DIGFILT1_bm Predefined. */
3477 /* EVSYS_DIGFILT1_bp Predefined. */
3478 /* EVSYS_DIGFILT2_bm Predefined. */
3479 /* EVSYS_DIGFILT2_bp Predefined. */
3480 
3481 
3482 /* NVM - Non Volatile Memory Controller */
3483 /* NVM.CMD bit masks and bit positions */
3484 #define NVM_CMD_gm 0xFF /* Command group mask. */
3485 #define NVM_CMD_gp 0 /* Command group position. */
3486 #define NVM_CMD0_bm (1<<0) /* Command bit 0 mask. */
3487 #define NVM_CMD0_bp 0 /* Command bit 0 position. */
3488 #define NVM_CMD1_bm (1<<1) /* Command bit 1 mask. */
3489 #define NVM_CMD1_bp 1 /* Command bit 1 position. */
3490 #define NVM_CMD2_bm (1<<2) /* Command bit 2 mask. */
3491 #define NVM_CMD2_bp 2 /* Command bit 2 position. */
3492 #define NVM_CMD3_bm (1<<3) /* Command bit 3 mask. */
3493 #define NVM_CMD3_bp 3 /* Command bit 3 position. */
3494 #define NVM_CMD4_bm (1<<4) /* Command bit 4 mask. */
3495 #define NVM_CMD4_bp 4 /* Command bit 4 position. */
3496 #define NVM_CMD5_bm (1<<5) /* Command bit 5 mask. */
3497 #define NVM_CMD5_bp 5 /* Command bit 5 position. */
3498 #define NVM_CMD6_bm (1<<6) /* Command bit 6 mask. */
3499 #define NVM_CMD6_bp 6 /* Command bit 6 position. */
3500 #define NVM_CMD7_bm (1<<7) /* Command bit 7 mask. */
3501 #define NVM_CMD7_bp 7 /* Command bit 7 position. */
3502 
3503 
3504 /* NVM.CTRLA bit masks and bit positions */
3505 #define NVM_CMDEX_bm 0x01 /* Command Execute bit mask. */
3506 #define NVM_CMDEX_bp 0 /* Command Execute bit position. */
3507 
3508 
3509 /* NVM.CTRLB bit masks and bit positions */
3510 #define NVM_EEMAPEN_bm 0x08 /* EEPROM Mapping Enable bit mask. */
3511 #define NVM_EEMAPEN_bp 3 /* EEPROM Mapping Enable bit position. */
3512 
3513 #define NVM_FPRM_bm 0x04 /* Flash Power Reduction Enable bit mask. */
3514 #define NVM_FPRM_bp 2 /* Flash Power Reduction Enable bit position. */
3515 
3516 #define NVM_EPRM_bm 0x02 /* EEPROM Power Reduction Enable bit mask. */
3517 #define NVM_EPRM_bp 1 /* EEPROM Power Reduction Enable bit position. */
3518 
3519 #define NVM_SPMLOCK_bm 0x01 /* SPM Lock bit mask. */
3520 #define NVM_SPMLOCK_bp 0 /* SPM Lock bit position. */
3521 
3522 
3523 /* NVM.INTCTRL bit masks and bit positions */
3524 #define NVM_SPMLVL_gm 0x0C /* SPM Interrupt Level group mask. */
3525 #define NVM_SPMLVL_gp 2 /* SPM Interrupt Level group position. */
3526 #define NVM_SPMLVL0_bm (1<<2) /* SPM Interrupt Level bit 0 mask. */
3527 #define NVM_SPMLVL0_bp 2 /* SPM Interrupt Level bit 0 position. */
3528 #define NVM_SPMLVL1_bm (1<<3) /* SPM Interrupt Level bit 1 mask. */
3529 #define NVM_SPMLVL1_bp 3 /* SPM Interrupt Level bit 1 position. */
3530 
3531 #define NVM_EELVL_gm 0x03 /* EEPROM Interrupt Level group mask. */
3532 #define NVM_EELVL_gp 0 /* EEPROM Interrupt Level group position. */
3533 #define NVM_EELVL0_bm (1<<0) /* EEPROM Interrupt Level bit 0 mask. */
3534 #define NVM_EELVL0_bp 0 /* EEPROM Interrupt Level bit 0 position. */
3535 #define NVM_EELVL1_bm (1<<1) /* EEPROM Interrupt Level bit 1 mask. */
3536 #define NVM_EELVL1_bp 1 /* EEPROM Interrupt Level bit 1 position. */
3537 
3538 
3539 /* NVM.STATUS bit masks and bit positions */
3540 #define NVM_NVMBUSY_bm 0x80 /* Non-volatile Memory Busy bit mask. */
3541 #define NVM_NVMBUSY_bp 7 /* Non-volatile Memory Busy bit position. */
3542 
3543 #define NVM_FBUSY_bm 0x40 /* Flash Memory Busy bit mask. */
3544 #define NVM_FBUSY_bp 6 /* Flash Memory Busy bit position. */
3545 
3546 #define NVM_EELOAD_bm 0x02 /* EEPROM Page Buffer Active Loading bit mask. */
3547 #define NVM_EELOAD_bp 1 /* EEPROM Page Buffer Active Loading bit position. */
3548 
3549 #define NVM_FLOAD_bm 0x01 /* Flash Page Buffer Active Loading bit mask. */
3550 #define NVM_FLOAD_bp 0 /* Flash Page Buffer Active Loading bit position. */
3551 
3552 
3553 /* NVM.LOCKBITS bit masks and bit positions */
3554 #define NVM_BLBB_gm 0xC0 /* Boot Lock Bits - Boot Section group mask. */
3555 #define NVM_BLBB_gp 6 /* Boot Lock Bits - Boot Section group position. */
3556 #define NVM_BLBB0_bm (1<<6) /* Boot Lock Bits - Boot Section bit 0 mask. */
3557 #define NVM_BLBB0_bp 6 /* Boot Lock Bits - Boot Section bit 0 position. */
3558 #define NVM_BLBB1_bm (1<<7) /* Boot Lock Bits - Boot Section bit 1 mask. */
3559 #define NVM_BLBB1_bp 7 /* Boot Lock Bits - Boot Section bit 1 position. */
3560 
3561 #define NVM_BLBA_gm 0x30 /* Boot Lock Bits - Application Section group mask. */
3562 #define NVM_BLBA_gp 4 /* Boot Lock Bits - Application Section group position. */
3563 #define NVM_BLBA0_bm (1<<4) /* Boot Lock Bits - Application Section bit 0 mask. */
3564 #define NVM_BLBA0_bp 4 /* Boot Lock Bits - Application Section bit 0 position. */
3565 #define NVM_BLBA1_bm (1<<5) /* Boot Lock Bits - Application Section bit 1 mask. */
3566 #define NVM_BLBA1_bp 5 /* Boot Lock Bits - Application Section bit 1 position. */
3567 
3568 #define NVM_BLBAT_gm 0x0C /* Boot Lock Bits - Application Table group mask. */
3569 #define NVM_BLBAT_gp 2 /* Boot Lock Bits - Application Table group position. */
3570 #define NVM_BLBAT0_bm (1<<2) /* Boot Lock Bits - Application Table bit 0 mask. */
3571 #define NVM_BLBAT0_bp 2 /* Boot Lock Bits - Application Table bit 0 position. */
3572 #define NVM_BLBAT1_bm (1<<3) /* Boot Lock Bits - Application Table bit 1 mask. */
3573 #define NVM_BLBAT1_bp 3 /* Boot Lock Bits - Application Table bit 1 position. */
3574 
3575 #define NVM_LB_gm 0x03 /* Lock Bits group mask. */
3576 #define NVM_LB_gp 0 /* Lock Bits group position. */
3577 #define NVM_LB0_bm (1<<0) /* Lock Bits bit 0 mask. */
3578 #define NVM_LB0_bp 0 /* Lock Bits bit 0 position. */
3579 #define NVM_LB1_bm (1<<1) /* Lock Bits bit 1 mask. */
3580 #define NVM_LB1_bp 1 /* Lock Bits bit 1 position. */
3581 
3582 
3583 /* NVM_LOCKBITS.LOCKBITS bit masks and bit positions */
3584 #define NVM_LOCKBITS_BLBB_gm 0xC0 /* Boot Lock Bits - Boot Section group mask. */
3585 #define NVM_LOCKBITS_BLBB_gp 6 /* Boot Lock Bits - Boot Section group position. */
3586 #define NVM_LOCKBITS_BLBB0_bm (1<<6) /* Boot Lock Bits - Boot Section bit 0 mask. */
3587 #define NVM_LOCKBITS_BLBB0_bp 6 /* Boot Lock Bits - Boot Section bit 0 position. */
3588 #define NVM_LOCKBITS_BLBB1_bm (1<<7) /* Boot Lock Bits - Boot Section bit 1 mask. */
3589 #define NVM_LOCKBITS_BLBB1_bp 7 /* Boot Lock Bits - Boot Section bit 1 position. */
3590 
3591 #define NVM_LOCKBITS_BLBA_gm 0x30 /* Boot Lock Bits - Application Section group mask. */
3592 #define NVM_LOCKBITS_BLBA_gp 4 /* Boot Lock Bits - Application Section group position. */
3593 #define NVM_LOCKBITS_BLBA0_bm (1<<4) /* Boot Lock Bits - Application Section bit 0 mask. */
3594 #define NVM_LOCKBITS_BLBA0_bp 4 /* Boot Lock Bits - Application Section bit 0 position. */
3595 #define NVM_LOCKBITS_BLBA1_bm (1<<5) /* Boot Lock Bits - Application Section bit 1 mask. */
3596 #define NVM_LOCKBITS_BLBA1_bp 5 /* Boot Lock Bits - Application Section bit 1 position. */
3597 
3598 #define NVM_LOCKBITS_BLBAT_gm 0x0C /* Boot Lock Bits - Application Table group mask. */
3599 #define NVM_LOCKBITS_BLBAT_gp 2 /* Boot Lock Bits - Application Table group position. */
3600 #define NVM_LOCKBITS_BLBAT0_bm (1<<2) /* Boot Lock Bits - Application Table bit 0 mask. */
3601 #define NVM_LOCKBITS_BLBAT0_bp 2 /* Boot Lock Bits - Application Table bit 0 position. */
3602 #define NVM_LOCKBITS_BLBAT1_bm (1<<3) /* Boot Lock Bits - Application Table bit 1 mask. */
3603 #define NVM_LOCKBITS_BLBAT1_bp 3 /* Boot Lock Bits - Application Table bit 1 position. */
3604 
3605 #define NVM_LOCKBITS_LB_gm 0x03 /* Lock Bits group mask. */
3606 #define NVM_LOCKBITS_LB_gp 0 /* Lock Bits group position. */
3607 #define NVM_LOCKBITS_LB0_bm (1<<0) /* Lock Bits bit 0 mask. */
3608 #define NVM_LOCKBITS_LB0_bp 0 /* Lock Bits bit 0 position. */
3609 #define NVM_LOCKBITS_LB1_bm (1<<1) /* Lock Bits bit 1 mask. */
3610 #define NVM_LOCKBITS_LB1_bp 1 /* Lock Bits bit 1 position. */
3611 
3612 
3613 /* NVM_FUSES.FUSEBYTE0 bit masks and bit positions */
3614 #define NVM_FUSES_USERID_gm 0xFF /* User ID group mask. */
3615 #define NVM_FUSES_USERID_gp 0 /* User ID group position. */
3616 #define NVM_FUSES_USERID0_bm (1<<0) /* User ID bit 0 mask. */
3617 #define NVM_FUSES_USERID0_bp 0 /* User ID bit 0 position. */
3618 #define NVM_FUSES_USERID1_bm (1<<1) /* User ID bit 1 mask. */
3619 #define NVM_FUSES_USERID1_bp 1 /* User ID bit 1 position. */
3620 #define NVM_FUSES_USERID2_bm (1<<2) /* User ID bit 2 mask. */
3621 #define NVM_FUSES_USERID2_bp 2 /* User ID bit 2 position. */
3622 #define NVM_FUSES_USERID3_bm (1<<3) /* User ID bit 3 mask. */
3623 #define NVM_FUSES_USERID3_bp 3 /* User ID bit 3 position. */
3624 #define NVM_FUSES_USERID4_bm (1<<4) /* User ID bit 4 mask. */
3625 #define NVM_FUSES_USERID4_bp 4 /* User ID bit 4 position. */
3626 #define NVM_FUSES_USERID5_bm (1<<5) /* User ID bit 5 mask. */
3627 #define NVM_FUSES_USERID5_bp 5 /* User ID bit 5 position. */
3628 #define NVM_FUSES_USERID6_bm (1<<6) /* User ID bit 6 mask. */
3629 #define NVM_FUSES_USERID6_bp 6 /* User ID bit 6 position. */
3630 #define NVM_FUSES_USERID7_bm (1<<7) /* User ID bit 7 mask. */
3631 #define NVM_FUSES_USERID7_bp 7 /* User ID bit 7 position. */
3632 
3633 
3634 /* NVM_FUSES.FUSEBYTE1 bit masks and bit positions */
3635 #define NVM_FUSES_WDWP_gm 0xF0 /* Watchdog Window Timeout Period group mask. */
3636 #define NVM_FUSES_WDWP_gp 4 /* Watchdog Window Timeout Period group position. */
3637 #define NVM_FUSES_WDWP0_bm (1<<4) /* Watchdog Window Timeout Period bit 0 mask. */
3638 #define NVM_FUSES_WDWP0_bp 4 /* Watchdog Window Timeout Period bit 0 position. */
3639 #define NVM_FUSES_WDWP1_bm (1<<5) /* Watchdog Window Timeout Period bit 1 mask. */
3640 #define NVM_FUSES_WDWP1_bp 5 /* Watchdog Window Timeout Period bit 1 position. */
3641 #define NVM_FUSES_WDWP2_bm (1<<6) /* Watchdog Window Timeout Period bit 2 mask. */
3642 #define NVM_FUSES_WDWP2_bp 6 /* Watchdog Window Timeout Period bit 2 position. */
3643 #define NVM_FUSES_WDWP3_bm (1<<7) /* Watchdog Window Timeout Period bit 3 mask. */
3644 #define NVM_FUSES_WDWP3_bp 7 /* Watchdog Window Timeout Period bit 3 position. */
3645 
3646 #define NVM_FUSES_WDP_gm 0x0F /* Watchdog Timeout Period group mask. */
3647 #define NVM_FUSES_WDP_gp 0 /* Watchdog Timeout Period group position. */
3648 #define NVM_FUSES_WDP0_bm (1<<0) /* Watchdog Timeout Period bit 0 mask. */
3649 #define NVM_FUSES_WDP0_bp 0 /* Watchdog Timeout Period bit 0 position. */
3650 #define NVM_FUSES_WDP1_bm (1<<1) /* Watchdog Timeout Period bit 1 mask. */
3651 #define NVM_FUSES_WDP1_bp 1 /* Watchdog Timeout Period bit 1 position. */
3652 #define NVM_FUSES_WDP2_bm (1<<2) /* Watchdog Timeout Period bit 2 mask. */
3653 #define NVM_FUSES_WDP2_bp 2 /* Watchdog Timeout Period bit 2 position. */
3654 #define NVM_FUSES_WDP3_bm (1<<3) /* Watchdog Timeout Period bit 3 mask. */
3655 #define NVM_FUSES_WDP3_bp 3 /* Watchdog Timeout Period bit 3 position. */
3656 
3657 
3658 /* NVM_FUSES.FUSEBYTE2 bit masks and bit positions */
3659 #define NVM_FUSES_DVSDON_bm 0x80 /* Spike Detector Enable bit mask. */
3660 #define NVM_FUSES_DVSDON_bp 7 /* Spike Detector Enable bit position. */
3661 
3662 #define NVM_FUSES_BOOTRST_bm 0x40 /* Boot Loader Section Reset Vector bit mask. */
3663 #define NVM_FUSES_BOOTRST_bp 6 /* Boot Loader Section Reset Vector bit position. */
3664 
3665 #define NVM_FUSES_BODPD_gm 0x03 /* BOD Operation in Power-Down Mode group mask. */
3666 #define NVM_FUSES_BODPD_gp 0 /* BOD Operation in Power-Down Mode group position. */
3667 #define NVM_FUSES_BODPD0_bm (1<<0) /* BOD Operation in Power-Down Mode bit 0 mask. */
3668 #define NVM_FUSES_BODPD0_bp 0 /* BOD Operation in Power-Down Mode bit 0 position. */
3669 #define NVM_FUSES_BODPD1_bm (1<<1) /* BOD Operation in Power-Down Mode bit 1 mask. */
3670 #define NVM_FUSES_BODPD1_bp 1 /* BOD Operation in Power-Down Mode bit 1 position. */
3671 
3672 
3673 /* NVM_FUSES.FUSEBYTE4 bit masks and bit positions */
3674 #define NVM_FUSES_SUT_gm 0x0C /* Start-up Time group mask. */
3675 #define NVM_FUSES_SUT_gp 2 /* Start-up Time group position. */
3676 #define NVM_FUSES_SUT0_bm (1<<2) /* Start-up Time bit 0 mask. */
3677 #define NVM_FUSES_SUT0_bp 2 /* Start-up Time bit 0 position. */
3678 #define NVM_FUSES_SUT1_bm (1<<3) /* Start-up Time bit 1 mask. */
3679 #define NVM_FUSES_SUT1_bp 3 /* Start-up Time bit 1 position. */
3680 
3681 #define NVM_FUSES_WDLOCK_bm 0x02 /* Watchdog Timer Lock bit mask. */
3682 #define NVM_FUSES_WDLOCK_bp 1 /* Watchdog Timer Lock bit position. */
3683 
3684 
3685 /* NVM_FUSES.FUSEBYTE5 bit masks and bit positions */
3686 #define NVM_FUSES_BODACT_gm 0x30 /* BOD Operation in Active Mode group mask. */
3687 #define NVM_FUSES_BODACT_gp 4 /* BOD Operation in Active Mode group position. */
3688 #define NVM_FUSES_BODACT0_bm (1<<4) /* BOD Operation in Active Mode bit 0 mask. */
3689 #define NVM_FUSES_BODACT0_bp 4 /* BOD Operation in Active Mode bit 0 position. */
3690 #define NVM_FUSES_BODACT1_bm (1<<5) /* BOD Operation in Active Mode bit 1 mask. */
3691 #define NVM_FUSES_BODACT1_bp 5 /* BOD Operation in Active Mode bit 1 position. */
3692 
3693 #define NVM_FUSES_EESAVE_bm 0x08 /* Preserve EEPROM Through Chip Erase bit mask. */
3694 #define NVM_FUSES_EESAVE_bp 3 /* Preserve EEPROM Through Chip Erase bit position. */
3695 
3696 #define NVM_FUSES_BODLVL_gm 0x07 /* Brown Out Detection Voltage Level group mask. */
3697 #define NVM_FUSES_BODLVL_gp 0 /* Brown Out Detection Voltage Level group position. */
3698 #define NVM_FUSES_BODLVL0_bm (1<<0) /* Brown Out Detection Voltage Level bit 0 mask. */
3699 #define NVM_FUSES_BODLVL0_bp 0 /* Brown Out Detection Voltage Level bit 0 position. */
3700 #define NVM_FUSES_BODLVL1_bm (1<<1) /* Brown Out Detection Voltage Level bit 1 mask. */
3701 #define NVM_FUSES_BODLVL1_bp 1 /* Brown Out Detection Voltage Level bit 1 position. */
3702 #define NVM_FUSES_BODLVL2_bm (1<<2) /* Brown Out Detection Voltage Level bit 2 mask. */
3703 #define NVM_FUSES_BODLVL2_bp 2 /* Brown Out Detection Voltage Level bit 2 position. */
3704 
3705 
3706 /* AC - Analog Comparator */
3707 /* AC.AC0CTRL bit masks and bit positions */
3708 #define AC_INTMODE_gm 0xC0 /* Interrupt Mode group mask. */
3709 #define AC_INTMODE_gp 6 /* Interrupt Mode group position. */
3710 #define AC_INTMODE0_bm (1<<6) /* Interrupt Mode bit 0 mask. */
3711 #define AC_INTMODE0_bp 6 /* Interrupt Mode bit 0 position. */
3712 #define AC_INTMODE1_bm (1<<7) /* Interrupt Mode bit 1 mask. */
3713 #define AC_INTMODE1_bp 7 /* Interrupt Mode bit 1 position. */
3714 
3715 #define AC_INTLVL_gm 0x30 /* Interrupt Level group mask. */
3716 #define AC_INTLVL_gp 4 /* Interrupt Level group position. */
3717 #define AC_INTLVL0_bm (1<<4) /* Interrupt Level bit 0 mask. */
3718 #define AC_INTLVL0_bp 4 /* Interrupt Level bit 0 position. */
3719 #define AC_INTLVL1_bm (1<<5) /* Interrupt Level bit 1 mask. */
3720 #define AC_INTLVL1_bp 5 /* Interrupt Level bit 1 position. */
3721 
3722 #define AC_HSMODE_bm 0x08 /* High-speed Mode bit mask. */
3723 #define AC_HSMODE_bp 3 /* High-speed Mode bit position. */
3724 
3725 #define AC_HYSMODE_gm 0x06 /* Hysteresis Mode group mask. */
3726 #define AC_HYSMODE_gp 1 /* Hysteresis Mode group position. */
3727 #define AC_HYSMODE0_bm (1<<1) /* Hysteresis Mode bit 0 mask. */
3728 #define AC_HYSMODE0_bp 1 /* Hysteresis Mode bit 0 position. */
3729 #define AC_HYSMODE1_bm (1<<2) /* Hysteresis Mode bit 1 mask. */
3730 #define AC_HYSMODE1_bp 2 /* Hysteresis Mode bit 1 position. */
3731 
3732 #define AC_ENABLE_bm 0x01 /* Enable bit mask. */
3733 #define AC_ENABLE_bp 0 /* Enable bit position. */
3734 
3735 
3736 /* AC.AC1CTRL bit masks and bit positions */
3737 /* AC_INTMODE_gm Predefined. */
3738 /* AC_INTMODE_gp Predefined. */
3739 /* AC_INTMODE0_bm Predefined. */
3740 /* AC_INTMODE0_bp Predefined. */
3741 /* AC_INTMODE1_bm Predefined. */
3742 /* AC_INTMODE1_bp Predefined. */
3743 
3744 /* AC_INTLVL_gm Predefined. */
3745 /* AC_INTLVL_gp Predefined. */
3746 /* AC_INTLVL0_bm Predefined. */
3747 /* AC_INTLVL0_bp Predefined. */
3748 /* AC_INTLVL1_bm Predefined. */
3749 /* AC_INTLVL1_bp Predefined. */
3750 
3751 /* AC_HSMODE_bm Predefined. */
3752 /* AC_HSMODE_bp Predefined. */
3753 
3754 /* AC_HYSMODE_gm Predefined. */
3755 /* AC_HYSMODE_gp Predefined. */
3756 /* AC_HYSMODE0_bm Predefined. */
3757 /* AC_HYSMODE0_bp Predefined. */
3758 /* AC_HYSMODE1_bm Predefined. */
3759 /* AC_HYSMODE1_bp Predefined. */
3760 
3761 /* AC_ENABLE_bm Predefined. */
3762 /* AC_ENABLE_bp Predefined. */
3763 
3764 
3765 /* AC.AC0MUXCTRL bit masks and bit positions */
3766 #define AC_MUXPOS_gm 0x38 /* MUX Positive Input group mask. */
3767 #define AC_MUXPOS_gp 3 /* MUX Positive Input group position. */
3768 #define AC_MUXPOS0_bm (1<<3) /* MUX Positive Input bit 0 mask. */
3769 #define AC_MUXPOS0_bp 3 /* MUX Positive Input bit 0 position. */
3770 #define AC_MUXPOS1_bm (1<<4) /* MUX Positive Input bit 1 mask. */
3771 #define AC_MUXPOS1_bp 4 /* MUX Positive Input bit 1 position. */
3772 #define AC_MUXPOS2_bm (1<<5) /* MUX Positive Input bit 2 mask. */
3773 #define AC_MUXPOS2_bp 5 /* MUX Positive Input bit 2 position. */
3774 
3775 #define AC_MUXNEG_gm 0x07 /* MUX Negative Input group mask. */
3776 #define AC_MUXNEG_gp 0 /* MUX Negative Input group position. */
3777 #define AC_MUXNEG0_bm (1<<0) /* MUX Negative Input bit 0 mask. */
3778 #define AC_MUXNEG0_bp 0 /* MUX Negative Input bit 0 position. */
3779 #define AC_MUXNEG1_bm (1<<1) /* MUX Negative Input bit 1 mask. */
3780 #define AC_MUXNEG1_bp 1 /* MUX Negative Input bit 1 position. */
3781 #define AC_MUXNEG2_bm (1<<2) /* MUX Negative Input bit 2 mask. */
3782 #define AC_MUXNEG2_bp 2 /* MUX Negative Input bit 2 position. */
3783 
3784 
3785 /* AC.AC1MUXCTRL bit masks and bit positions */
3786 /* AC_MUXPOS_gm Predefined. */
3787 /* AC_MUXPOS_gp Predefined. */
3788 /* AC_MUXPOS0_bm Predefined. */
3789 /* AC_MUXPOS0_bp Predefined. */
3790 /* AC_MUXPOS1_bm Predefined. */
3791 /* AC_MUXPOS1_bp Predefined. */
3792 /* AC_MUXPOS2_bm Predefined. */
3793 /* AC_MUXPOS2_bp Predefined. */
3794 
3795 /* AC_MUXNEG_gm Predefined. */
3796 /* AC_MUXNEG_gp Predefined. */
3797 /* AC_MUXNEG0_bm Predefined. */
3798 /* AC_MUXNEG0_bp Predefined. */
3799 /* AC_MUXNEG1_bm Predefined. */
3800 /* AC_MUXNEG1_bp Predefined. */
3801 /* AC_MUXNEG2_bm Predefined. */
3802 /* AC_MUXNEG2_bp Predefined. */
3803 
3804 
3805 /* AC.CTRLA bit masks and bit positions */
3806 #define AC_AC0OUT_bm 0x01 /* Comparator 0 Output Enable bit mask. */
3807 #define AC_AC0OUT_bp 0 /* Comparator 0 Output Enable bit position. */
3808 
3809 
3810 /* AC.CTRLB bit masks and bit positions */
3811 #define AC_SCALEFAC_gm 0x3F /* VCC Voltage Scaler Factor group mask. */
3812 #define AC_SCALEFAC_gp 0 /* VCC Voltage Scaler Factor group position. */
3813 #define AC_SCALEFAC0_bm (1<<0) /* VCC Voltage Scaler Factor bit 0 mask. */
3814 #define AC_SCALEFAC0_bp 0 /* VCC Voltage Scaler Factor bit 0 position. */
3815 #define AC_SCALEFAC1_bm (1<<1) /* VCC Voltage Scaler Factor bit 1 mask. */
3816 #define AC_SCALEFAC1_bp 1 /* VCC Voltage Scaler Factor bit 1 position. */
3817 #define AC_SCALEFAC2_bm (1<<2) /* VCC Voltage Scaler Factor bit 2 mask. */
3818 #define AC_SCALEFAC2_bp 2 /* VCC Voltage Scaler Factor bit 2 position. */
3819 #define AC_SCALEFAC3_bm (1<<3) /* VCC Voltage Scaler Factor bit 3 mask. */
3820 #define AC_SCALEFAC3_bp 3 /* VCC Voltage Scaler Factor bit 3 position. */
3821 #define AC_SCALEFAC4_bm (1<<4) /* VCC Voltage Scaler Factor bit 4 mask. */
3822 #define AC_SCALEFAC4_bp 4 /* VCC Voltage Scaler Factor bit 4 position. */
3823 #define AC_SCALEFAC5_bm (1<<5) /* VCC Voltage Scaler Factor bit 5 mask. */
3824 #define AC_SCALEFAC5_bp 5 /* VCC Voltage Scaler Factor bit 5 position. */
3825 
3826 
3827 /* AC.WINCTRL bit masks and bit positions */
3828 #define AC_WEN_bm 0x10 /* Window Mode Enable bit mask. */
3829 #define AC_WEN_bp 4 /* Window Mode Enable bit position. */
3830 
3831 #define AC_WINTMODE_gm 0x0C /* Window Interrupt Mode group mask. */
3832 #define AC_WINTMODE_gp 2 /* Window Interrupt Mode group position. */
3833 #define AC_WINTMODE0_bm (1<<2) /* Window Interrupt Mode bit 0 mask. */
3834 #define AC_WINTMODE0_bp 2 /* Window Interrupt Mode bit 0 position. */
3835 #define AC_WINTMODE1_bm (1<<3) /* Window Interrupt Mode bit 1 mask. */
3836 #define AC_WINTMODE1_bp 3 /* Window Interrupt Mode bit 1 position. */
3837 
3838 #define AC_WINTLVL_gm 0x03 /* Window Interrupt Level group mask. */
3839 #define AC_WINTLVL_gp 0 /* Window Interrupt Level group position. */
3840 #define AC_WINTLVL0_bm (1<<0) /* Window Interrupt Level bit 0 mask. */
3841 #define AC_WINTLVL0_bp 0 /* Window Interrupt Level bit 0 position. */
3842 #define AC_WINTLVL1_bm (1<<1) /* Window Interrupt Level bit 1 mask. */
3843 #define AC_WINTLVL1_bp 1 /* Window Interrupt Level bit 1 position. */
3844 
3845 
3846 /* AC.STATUS bit masks and bit positions */
3847 #define AC_WSTATE_gm 0xC0 /* Window Mode State group mask. */
3848 #define AC_WSTATE_gp 6 /* Window Mode State group position. */
3849 #define AC_WSTATE0_bm (1<<6) /* Window Mode State bit 0 mask. */
3850 #define AC_WSTATE0_bp 6 /* Window Mode State bit 0 position. */
3851 #define AC_WSTATE1_bm (1<<7) /* Window Mode State bit 1 mask. */
3852 #define AC_WSTATE1_bp 7 /* Window Mode State bit 1 position. */
3853 
3854 #define AC_AC1STATE_bm 0x20 /* Comparator 1 State bit mask. */
3855 #define AC_AC1STATE_bp 5 /* Comparator 1 State bit position. */
3856 
3857 #define AC_AC0STATE_bm 0x10 /* Comparator 0 State bit mask. */
3858 #define AC_AC0STATE_bp 4 /* Comparator 0 State bit position. */
3859 
3860 #define AC_WIF_bm 0x04 /* Window Mode Interrupt Flag bit mask. */
3861 #define AC_WIF_bp 2 /* Window Mode Interrupt Flag bit position. */
3862 
3863 #define AC_AC1IF_bm 0x02 /* Comparator 1 Interrupt Flag bit mask. */
3864 #define AC_AC1IF_bp 1 /* Comparator 1 Interrupt Flag bit position. */
3865 
3866 #define AC_AC0IF_bm 0x01 /* Comparator 0 Interrupt Flag bit mask. */
3867 #define AC_AC0IF_bp 0 /* Comparator 0 Interrupt Flag bit position. */
3868 
3869 
3870 /* ADC - Analog/Digital Converter */
3871 /* ADC_CH.CTRL bit masks and bit positions */
3872 #define ADC_CH_START_bm 0x80 /* Channel Start Conversion bit mask. */
3873 #define ADC_CH_START_bp 7 /* Channel Start Conversion bit position. */
3874 
3875 #define ADC_CH_GAINFAC_gm 0x1C /* Gain Factor group mask. */
3876 #define ADC_CH_GAINFAC_gp 2 /* Gain Factor group position. */
3877 #define ADC_CH_GAINFAC0_bm (1<<2) /* Gain Factor bit 0 mask. */
3878 #define ADC_CH_GAINFAC0_bp 2 /* Gain Factor bit 0 position. */
3879 #define ADC_CH_GAINFAC1_bm (1<<3) /* Gain Factor bit 1 mask. */
3880 #define ADC_CH_GAINFAC1_bp 3 /* Gain Factor bit 1 position. */
3881 #define ADC_CH_GAINFAC2_bm (1<<4) /* Gain Factor bit 2 mask. */
3882 #define ADC_CH_GAINFAC2_bp 4 /* Gain Factor bit 2 position. */
3883 
3884 #define ADC_CH_INPUTMODE_gm 0x03 /* Input Mode Select group mask. */
3885 #define ADC_CH_INPUTMODE_gp 0 /* Input Mode Select group position. */
3886 #define ADC_CH_INPUTMODE0_bm (1<<0) /* Input Mode Select bit 0 mask. */
3887 #define ADC_CH_INPUTMODE0_bp 0 /* Input Mode Select bit 0 position. */
3888 #define ADC_CH_INPUTMODE1_bm (1<<1) /* Input Mode Select bit 1 mask. */
3889 #define ADC_CH_INPUTMODE1_bp 1 /* Input Mode Select bit 1 position. */
3890 
3891 
3892 /* ADC_CH.MUXCTRL bit masks and bit positions */
3893 #define ADC_CH_MUXPOS_gm 0x78 /* Positive Input Select group mask. */
3894 #define ADC_CH_MUXPOS_gp 3 /* Positive Input Select group position. */
3895 #define ADC_CH_MUXPOS0_bm (1<<3) /* Positive Input Select bit 0 mask. */
3896 #define ADC_CH_MUXPOS0_bp 3 /* Positive Input Select bit 0 position. */
3897 #define ADC_CH_MUXPOS1_bm (1<<4) /* Positive Input Select bit 1 mask. */
3898 #define ADC_CH_MUXPOS1_bp 4 /* Positive Input Select bit 1 position. */
3899 #define ADC_CH_MUXPOS2_bm (1<<5) /* Positive Input Select bit 2 mask. */
3900 #define ADC_CH_MUXPOS2_bp 5 /* Positive Input Select bit 2 position. */
3901 #define ADC_CH_MUXPOS3_bm (1<<6) /* Positive Input Select bit 3 mask. */
3902 #define ADC_CH_MUXPOS3_bp 6 /* Positive Input Select bit 3 position. */
3903 
3904 #define ADC_CH_MUXINT_gm 0x78 /* Internal Input Select group mask. */
3905 #define ADC_CH_MUXINT_gp 3 /* Internal Input Select group position. */
3906 #define ADC_CH_MUXINT0_bm (1<<3) /* Internal Input Select bit 0 mask. */
3907 #define ADC_CH_MUXINT0_bp 3 /* Internal Input Select bit 0 position. */
3908 #define ADC_CH_MUXINT1_bm (1<<4) /* Internal Input Select bit 1 mask. */
3909 #define ADC_CH_MUXINT1_bp 4 /* Internal Input Select bit 1 position. */
3910 #define ADC_CH_MUXINT2_bm (1<<5) /* Internal Input Select bit 2 mask. */
3911 #define ADC_CH_MUXINT2_bp 5 /* Internal Input Select bit 2 position. */
3912 #define ADC_CH_MUXINT3_bm (1<<6) /* Internal Input Select bit 3 mask. */
3913 #define ADC_CH_MUXINT3_bp 6 /* Internal Input Select bit 3 position. */
3914 
3915 #define ADC_CH_MUXNEG_gm 0x03 /* Negative Input Select group mask. */
3916 #define ADC_CH_MUXNEG_gp 0 /* Negative Input Select group position. */
3917 #define ADC_CH_MUXNEG0_bm (1<<0) /* Negative Input Select bit 0 mask. */
3918 #define ADC_CH_MUXNEG0_bp 0 /* Negative Input Select bit 0 position. */
3919 #define ADC_CH_MUXNEG1_bm (1<<1) /* Negative Input Select bit 1 mask. */
3920 #define ADC_CH_MUXNEG1_bp 1 /* Negative Input Select bit 1 position. */
3921 
3922 
3923 /* ADC_CH.INTCTRL bit masks and bit positions */
3924 #define ADC_CH_INTMODE_gm 0x0C /* Interrupt Mode group mask. */
3925 #define ADC_CH_INTMODE_gp 2 /* Interrupt Mode group position. */
3926 #define ADC_CH_INTMODE0_bm (1<<2) /* Interrupt Mode bit 0 mask. */
3927 #define ADC_CH_INTMODE0_bp 2 /* Interrupt Mode bit 0 position. */
3928 #define ADC_CH_INTMODE1_bm (1<<3) /* Interrupt Mode bit 1 mask. */
3929 #define ADC_CH_INTMODE1_bp 3 /* Interrupt Mode bit 1 position. */
3930 
3931 #define ADC_CH_INTLVL_gm 0x03 /* Interrupt Level group mask. */
3932 #define ADC_CH_INTLVL_gp 0 /* Interrupt Level group position. */
3933 #define ADC_CH_INTLVL0_bm (1<<0) /* Interrupt Level bit 0 mask. */
3934 #define ADC_CH_INTLVL0_bp 0 /* Interrupt Level bit 0 position. */
3935 #define ADC_CH_INTLVL1_bm (1<<1) /* Interrupt Level bit 1 mask. */
3936 #define ADC_CH_INTLVL1_bp 1 /* Interrupt Level bit 1 position. */
3937 
3938 
3939 /* ADC_CH.INTFLAGS bit masks and bit positions */
3940 #define ADC_CH_CHIF_bm 0x01 /* Channel Interrupt Flag bit mask. */
3941 #define ADC_CH_CHIF_bp 0 /* Channel Interrupt Flag bit position. */
3942 
3943 
3944 /* ADC.CTRLA bit masks and bit positions */
3945 #define ADC_CH0START_bm 0x04 /* Channel 0 Start Conversion bit mask. */
3946 #define ADC_CH0START_bp 2 /* Channel 0 Start Conversion bit position. */
3947 
3948 #define ADC_ENABLE_bm 0x01 /* Enable ADC bit mask. */
3949 #define ADC_ENABLE_bp 0 /* Enable ADC bit position. */
3950 
3951 
3952 /* ADC.CTRLB bit masks and bit positions */
3953 #define ADC_CONMODE_bm 0x10 /* Conversion Mode bit mask. */
3954 #define ADC_CONMODE_bp 4 /* Conversion Mode bit position. */
3955 
3956 #define ADC_FREERUN_bm 0x08 /* Free Running Mode Enable bit mask. */
3957 #define ADC_FREERUN_bp 3 /* Free Running Mode Enable bit position. */
3958 
3959 #define ADC_RESOLUTION_gm 0x06 /* Result Resolution group mask. */
3960 #define ADC_RESOLUTION_gp 1 /* Result Resolution group position. */
3961 #define ADC_RESOLUTION0_bm (1<<1) /* Result Resolution bit 0 mask. */
3962 #define ADC_RESOLUTION0_bp 1 /* Result Resolution bit 0 position. */
3963 #define ADC_RESOLUTION1_bm (1<<2) /* Result Resolution bit 1 mask. */
3964 #define ADC_RESOLUTION1_bp 2 /* Result Resolution bit 1 position. */
3965 
3966 
3967 /* ADC.REFCTRL bit masks and bit positions */
3968 #define ADC_REFSEL_gm 0x30 /* Reference Selection group mask. */
3969 #define ADC_REFSEL_gp 4 /* Reference Selection group position. */
3970 #define ADC_REFSEL0_bm (1<<4) /* Reference Selection bit 0 mask. */
3971 #define ADC_REFSEL0_bp 4 /* Reference Selection bit 0 position. */
3972 #define ADC_REFSEL1_bm (1<<5) /* Reference Selection bit 1 mask. */
3973 #define ADC_REFSEL1_bp 5 /* Reference Selection bit 1 position. */
3974 
3975 #define ADC_BANDGAP_bm 0x02 /* Bandgap enable bit mask. */
3976 #define ADC_BANDGAP_bp 1 /* Bandgap enable bit position. */
3977 
3978 #define ADC_TEMPREF_bm 0x01 /* Temperature Reference Enable bit mask. */
3979 #define ADC_TEMPREF_bp 0 /* Temperature Reference Enable bit position. */
3980 
3981 
3982 /* ADC.EVCTRL bit masks and bit positions */
3983 #define ADC_SWEEP_gm 0xC0 /* Channel Sweep Selection group mask. */
3984 #define ADC_SWEEP_gp 6 /* Channel Sweep Selection group position. */
3985 #define ADC_SWEEP0_bm (1<<6) /* Channel Sweep Selection bit 0 mask. */
3986 #define ADC_SWEEP0_bp 6 /* Channel Sweep Selection bit 0 position. */
3987 #define ADC_SWEEP1_bm (1<<7) /* Channel Sweep Selection bit 1 mask. */
3988 #define ADC_SWEEP1_bp 7 /* Channel Sweep Selection bit 1 position. */
3989 
3990 #define ADC_EVSEL_gm 0x38 /* Event Input Select group mask. */
3991 #define ADC_EVSEL_gp 3 /* Event Input Select group position. */
3992 #define ADC_EVSEL0_bm (1<<3) /* Event Input Select bit 0 mask. */
3993 #define ADC_EVSEL0_bp 3 /* Event Input Select bit 0 position. */
3994 #define ADC_EVSEL1_bm (1<<4) /* Event Input Select bit 1 mask. */
3995 #define ADC_EVSEL1_bp 4 /* Event Input Select bit 1 position. */
3996 #define ADC_EVSEL2_bm (1<<5) /* Event Input Select bit 2 mask. */
3997 #define ADC_EVSEL2_bp 5 /* Event Input Select bit 2 position. */
3998 
3999 #define ADC_EVACT_gm 0x07 /* Event Action Select group mask. */
4000 #define ADC_EVACT_gp 0 /* Event Action Select group position. */
4001 #define ADC_EVACT0_bm (1<<0) /* Event Action Select bit 0 mask. */
4002 #define ADC_EVACT0_bp 0 /* Event Action Select bit 0 position. */
4003 #define ADC_EVACT1_bm (1<<1) /* Event Action Select bit 1 mask. */
4004 #define ADC_EVACT1_bp 1 /* Event Action Select bit 1 position. */
4005 #define ADC_EVACT2_bm (1<<2) /* Event Action Select bit 2 mask. */
4006 #define ADC_EVACT2_bp 2 /* Event Action Select bit 2 position. */
4007 
4008 
4009 /* ADC.PRESCALER bit masks and bit positions */
4010 #define ADC_PRESCALER_gm 0x07 /* Clock Prescaler Selection group mask. */
4011 #define ADC_PRESCALER_gp 0 /* Clock Prescaler Selection group position. */
4012 #define ADC_PRESCALER0_bm (1<<0) /* Clock Prescaler Selection bit 0 mask. */
4013 #define ADC_PRESCALER0_bp 0 /* Clock Prescaler Selection bit 0 position. */
4014 #define ADC_PRESCALER1_bm (1<<1) /* Clock Prescaler Selection bit 1 mask. */
4015 #define ADC_PRESCALER1_bp 1 /* Clock Prescaler Selection bit 1 position. */
4016 #define ADC_PRESCALER2_bm (1<<2) /* Clock Prescaler Selection bit 2 mask. */
4017 #define ADC_PRESCALER2_bp 2 /* Clock Prescaler Selection bit 2 position. */
4018 
4019 
4020 /* ADC.CALCTRL bit masks and bit positions */
4021 #define ADC_CAL_bm 0x01 /* ADC Calibration Start bit mask. */
4022 #define ADC_CAL_bp 0 /* ADC Calibration Start bit position. */
4023 
4024 
4025 /* ADC.INTFLAGS bit masks and bit positions */
4026 #define ADC_CH0IF_bm 0x01 /* Channel 0 Interrupt Flag bit mask. */
4027 #define ADC_CH0IF_bp 0 /* Channel 0 Interrupt Flag bit position. */
4028 
4029 
4030 /* RTC - Real-Time Clounter */
4031 /* RTC.CTRL bit masks and bit positions */
4032 #define RTC_PRESCALER_gm 0x07 /* Prescaling Factor group mask. */
4033 #define RTC_PRESCALER_gp 0 /* Prescaling Factor group position. */
4034 #define RTC_PRESCALER0_bm (1<<0) /* Prescaling Factor bit 0 mask. */
4035 #define RTC_PRESCALER0_bp 0 /* Prescaling Factor bit 0 position. */
4036 #define RTC_PRESCALER1_bm (1<<1) /* Prescaling Factor bit 1 mask. */
4037 #define RTC_PRESCALER1_bp 1 /* Prescaling Factor bit 1 position. */
4038 #define RTC_PRESCALER2_bm (1<<2) /* Prescaling Factor bit 2 mask. */
4039 #define RTC_PRESCALER2_bp 2 /* Prescaling Factor bit 2 position. */
4040 
4041 
4042 /* RTC.STATUS bit masks and bit positions */
4043 #define RTC_SYNCBUSY_bm 0x01 /* Synchronization Busy Flag bit mask. */
4044 #define RTC_SYNCBUSY_bp 0 /* Synchronization Busy Flag bit position. */
4045 
4046 
4047 /* RTC.INTCTRL bit masks and bit positions */
4048 #define RTC_COMPINTLVL_gm 0x0C /* Compare Match Interrupt Level group mask. */
4049 #define RTC_COMPINTLVL_gp 2 /* Compare Match Interrupt Level group position. */
4050 #define RTC_COMPINTLVL0_bm (1<<2) /* Compare Match Interrupt Level bit 0 mask. */
4051 #define RTC_COMPINTLVL0_bp 2 /* Compare Match Interrupt Level bit 0 position. */
4052 #define RTC_COMPINTLVL1_bm (1<<3) /* Compare Match Interrupt Level bit 1 mask. */
4053 #define RTC_COMPINTLVL1_bp 3 /* Compare Match Interrupt Level bit 1 position. */
4054 
4055 #define RTC_OVFINTLVL_gm 0x03 /* Overflow Interrupt Level group mask. */
4056 #define RTC_OVFINTLVL_gp 0 /* Overflow Interrupt Level group position. */
4057 #define RTC_OVFINTLVL0_bm (1<<0) /* Overflow Interrupt Level bit 0 mask. */
4058 #define RTC_OVFINTLVL0_bp 0 /* Overflow Interrupt Level bit 0 position. */
4059 #define RTC_OVFINTLVL1_bm (1<<1) /* Overflow Interrupt Level bit 1 mask. */
4060 #define RTC_OVFINTLVL1_bp 1 /* Overflow Interrupt Level bit 1 position. */
4061 
4062 
4063 /* RTC.INTFLAGS bit masks and bit positions */
4064 #define RTC_COMPIF_bm 0x02 /* Compare Match Interrupt Flag bit mask. */
4065 #define RTC_COMPIF_bp 1 /* Compare Match Interrupt Flag bit position. */
4066 
4067 #define RTC_OVFIF_bm 0x01 /* Overflow Interrupt Flag bit mask. */
4068 #define RTC_OVFIF_bp 0 /* Overflow Interrupt Flag bit position. */
4069 
4070 
4071 /* EBI - External Bus Interface */
4072 /* EBI_CS.CTRLA bit masks and bit positions */
4073 #define EBI_CS_ASPACE_gm 0x7C /* Address Space group mask. */
4074 #define EBI_CS_ASPACE_gp 2 /* Address Space group position. */
4075 #define EBI_CS_ASPACE0_bm (1<<2) /* Address Space bit 0 mask. */
4076 #define EBI_CS_ASPACE0_bp 2 /* Address Space bit 0 position. */
4077 #define EBI_CS_ASPACE1_bm (1<<3) /* Address Space bit 1 mask. */
4078 #define EBI_CS_ASPACE1_bp 3 /* Address Space bit 1 position. */
4079 #define EBI_CS_ASPACE2_bm (1<<4) /* Address Space bit 2 mask. */
4080 #define EBI_CS_ASPACE2_bp 4 /* Address Space bit 2 position. */
4081 #define EBI_CS_ASPACE3_bm (1<<5) /* Address Space bit 3 mask. */
4082 #define EBI_CS_ASPACE3_bp 5 /* Address Space bit 3 position. */
4083 #define EBI_CS_ASPACE4_bm (1<<6) /* Address Space bit 4 mask. */
4084 #define EBI_CS_ASPACE4_bp 6 /* Address Space bit 4 position. */
4085 
4086 #define EBI_CS_MODE_gm 0x03 /* Memory Mode group mask. */
4087 #define EBI_CS_MODE_gp 0 /* Memory Mode group position. */
4088 #define EBI_CS_MODE0_bm (1<<0) /* Memory Mode bit 0 mask. */
4089 #define EBI_CS_MODE0_bp 0 /* Memory Mode bit 0 position. */
4090 #define EBI_CS_MODE1_bm (1<<1) /* Memory Mode bit 1 mask. */
4091 #define EBI_CS_MODE1_bp 1 /* Memory Mode bit 1 position. */
4092 
4093 
4094 /* EBI_CS.CTRLB bit masks and bit positions */
4095 #define EBI_CS_SRWS_gm 0x07 /* SRAM Wait State Cycles group mask. */
4096 #define EBI_CS_SRWS_gp 0 /* SRAM Wait State Cycles group position. */
4097 #define EBI_CS_SRWS0_bm (1<<0) /* SRAM Wait State Cycles bit 0 mask. */
4098 #define EBI_CS_SRWS0_bp 0 /* SRAM Wait State Cycles bit 0 position. */
4099 #define EBI_CS_SRWS1_bm (1<<1) /* SRAM Wait State Cycles bit 1 mask. */
4100 #define EBI_CS_SRWS1_bp 1 /* SRAM Wait State Cycles bit 1 position. */
4101 #define EBI_CS_SRWS2_bm (1<<2) /* SRAM Wait State Cycles bit 2 mask. */
4102 #define EBI_CS_SRWS2_bp 2 /* SRAM Wait State Cycles bit 2 position. */
4103 
4104 #define EBI_CS_SDINITDONE_bm 0x80 /* SDRAM Initialization Done bit mask. */
4105 #define EBI_CS_SDINITDONE_bp 7 /* SDRAM Initialization Done bit position. */
4106 
4107 #define EBI_CS_SDSREN_bm 0x04 /* SDRAM Self-refresh Enable bit mask. */
4108 #define EBI_CS_SDSREN_bp 2 /* SDRAM Self-refresh Enable bit position. */
4109 
4110 #define EBI_CS_SDMODE_gm 0x03 /* SDRAM Mode group mask. */
4111 #define EBI_CS_SDMODE_gp 0 /* SDRAM Mode group position. */
4112 #define EBI_CS_SDMODE0_bm (1<<0) /* SDRAM Mode bit 0 mask. */
4113 #define EBI_CS_SDMODE0_bp 0 /* SDRAM Mode bit 0 position. */
4114 #define EBI_CS_SDMODE1_bm (1<<1) /* SDRAM Mode bit 1 mask. */
4115 #define EBI_CS_SDMODE1_bp 1 /* SDRAM Mode bit 1 position. */
4116 
4117 
4118 /* EBI.CTRL bit masks and bit positions */
4119 #define EBI_SDDATAW_gm 0xC0 /* SDRAM Data Width Setting group mask. */
4120 #define EBI_SDDATAW_gp 6 /* SDRAM Data Width Setting group position. */
4121 #define EBI_SDDATAW0_bm (1<<6) /* SDRAM Data Width Setting bit 0 mask. */
4122 #define EBI_SDDATAW0_bp 6 /* SDRAM Data Width Setting bit 0 position. */
4123 #define EBI_SDDATAW1_bm (1<<7) /* SDRAM Data Width Setting bit 1 mask. */
4124 #define EBI_SDDATAW1_bp 7 /* SDRAM Data Width Setting bit 1 position. */
4125 
4126 #define EBI_LPCMODE_gm 0x30 /* SRAM LPC Mode group mask. */
4127 #define EBI_LPCMODE_gp 4 /* SRAM LPC Mode group position. */
4128 #define EBI_LPCMODE0_bm (1<<4) /* SRAM LPC Mode bit 0 mask. */
4129 #define EBI_LPCMODE0_bp 4 /* SRAM LPC Mode bit 0 position. */
4130 #define EBI_LPCMODE1_bm (1<<5) /* SRAM LPC Mode bit 1 mask. */
4131 #define EBI_LPCMODE1_bp 5 /* SRAM LPC Mode bit 1 position. */
4132 
4133 #define EBI_SRMODE_gm 0x0C /* SRAM Mode group mask. */
4134 #define EBI_SRMODE_gp 2 /* SRAM Mode group position. */
4135 #define EBI_SRMODE0_bm (1<<2) /* SRAM Mode bit 0 mask. */
4136 #define EBI_SRMODE0_bp 2 /* SRAM Mode bit 0 position. */
4137 #define EBI_SRMODE1_bm (1<<3) /* SRAM Mode bit 1 mask. */
4138 #define EBI_SRMODE1_bp 3 /* SRAM Mode bit 1 position. */
4139 
4140 #define EBI_IFMODE_gm 0x03 /* Interface Mode group mask. */
4141 #define EBI_IFMODE_gp 0 /* Interface Mode group position. */
4142 #define EBI_IFMODE0_bm (1<<0) /* Interface Mode bit 0 mask. */
4143 #define EBI_IFMODE0_bp 0 /* Interface Mode bit 0 position. */
4144 #define EBI_IFMODE1_bm (1<<1) /* Interface Mode bit 1 mask. */
4145 #define EBI_IFMODE1_bp 1 /* Interface Mode bit 1 position. */
4146 
4147 
4148 /* EBI.SDRAMCTRLA bit masks and bit positions */
4149 #define EBI_SDCAS_bm 0x08 /* SDRAM CAS Latency Setting bit mask. */
4150 #define EBI_SDCAS_bp 3 /* SDRAM CAS Latency Setting bit position. */
4151 
4152 #define EBI_SDROW_bm 0x04 /* SDRAM ROW Bits Setting bit mask. */
4153 #define EBI_SDROW_bp 2 /* SDRAM ROW Bits Setting bit position. */
4154 
4155 #define EBI_SDCOL_gm 0x03 /* SDRAM Column Bits Setting group mask. */
4156 #define EBI_SDCOL_gp 0 /* SDRAM Column Bits Setting group position. */
4157 #define EBI_SDCOL0_bm (1<<0) /* SDRAM Column Bits Setting bit 0 mask. */
4158 #define EBI_SDCOL0_bp 0 /* SDRAM Column Bits Setting bit 0 position. */
4159 #define EBI_SDCOL1_bm (1<<1) /* SDRAM Column Bits Setting bit 1 mask. */
4160 #define EBI_SDCOL1_bp 1 /* SDRAM Column Bits Setting bit 1 position. */
4161 
4162 
4163 /* EBI.SDRAMCTRLB bit masks and bit positions */
4164 #define EBI_MRDLY_gm 0xC0 /* SDRAM Mode Register Delay group mask. */
4165 #define EBI_MRDLY_gp 6 /* SDRAM Mode Register Delay group position. */
4166 #define EBI_MRDLY0_bm (1<<6) /* SDRAM Mode Register Delay bit 0 mask. */
4167 #define EBI_MRDLY0_bp 6 /* SDRAM Mode Register Delay bit 0 position. */
4168 #define EBI_MRDLY1_bm (1<<7) /* SDRAM Mode Register Delay bit 1 mask. */
4169 #define EBI_MRDLY1_bp 7 /* SDRAM Mode Register Delay bit 1 position. */
4170 
4171 #define EBI_ROWCYCDLY_gm 0x38 /* SDRAM Row Cycle Delay group mask. */
4172 #define EBI_ROWCYCDLY_gp 3 /* SDRAM Row Cycle Delay group position. */
4173 #define EBI_ROWCYCDLY0_bm (1<<3) /* SDRAM Row Cycle Delay bit 0 mask. */
4174 #define EBI_ROWCYCDLY0_bp 3 /* SDRAM Row Cycle Delay bit 0 position. */
4175 #define EBI_ROWCYCDLY1_bm (1<<4) /* SDRAM Row Cycle Delay bit 1 mask. */
4176 #define EBI_ROWCYCDLY1_bp 4 /* SDRAM Row Cycle Delay bit 1 position. */
4177 #define EBI_ROWCYCDLY2_bm (1<<5) /* SDRAM Row Cycle Delay bit 2 mask. */
4178 #define EBI_ROWCYCDLY2_bp 5 /* SDRAM Row Cycle Delay bit 2 position. */
4179 
4180 #define EBI_RPDLY_gm 0x07 /* SDRAM Row-to-Precharge Delay group mask. */
4181 #define EBI_RPDLY_gp 0 /* SDRAM Row-to-Precharge Delay group position. */
4182 #define EBI_RPDLY0_bm (1<<0) /* SDRAM Row-to-Precharge Delay bit 0 mask. */
4183 #define EBI_RPDLY0_bp 0 /* SDRAM Row-to-Precharge Delay bit 0 position. */
4184 #define EBI_RPDLY1_bm (1<<1) /* SDRAM Row-to-Precharge Delay bit 1 mask. */
4185 #define EBI_RPDLY1_bp 1 /* SDRAM Row-to-Precharge Delay bit 1 position. */
4186 #define EBI_RPDLY2_bm (1<<2) /* SDRAM Row-to-Precharge Delay bit 2 mask. */
4187 #define EBI_RPDLY2_bp 2 /* SDRAM Row-to-Precharge Delay bit 2 position. */
4188 
4189 
4190 /* EBI.SDRAMCTRLC bit masks and bit positions */
4191 #define EBI_WRDLY_gm 0xC0 /* SDRAM Write Recovery Delay group mask. */
4192 #define EBI_WRDLY_gp 6 /* SDRAM Write Recovery Delay group position. */
4193 #define EBI_WRDLY0_bm (1<<6) /* SDRAM Write Recovery Delay bit 0 mask. */
4194 #define EBI_WRDLY0_bp 6 /* SDRAM Write Recovery Delay bit 0 position. */
4195 #define EBI_WRDLY1_bm (1<<7) /* SDRAM Write Recovery Delay bit 1 mask. */
4196 #define EBI_WRDLY1_bp 7 /* SDRAM Write Recovery Delay bit 1 position. */
4197 
4198 #define EBI_ESRDLY_gm 0x38 /* SDRAM Exit-Self-refresh-to-Active Delay group mask. */
4199 #define EBI_ESRDLY_gp 3 /* SDRAM Exit-Self-refresh-to-Active Delay group position. */
4200 #define EBI_ESRDLY0_bm (1<<3) /* SDRAM Exit-Self-refresh-to-Active Delay bit 0 mask. */
4201 #define EBI_ESRDLY0_bp 3 /* SDRAM Exit-Self-refresh-to-Active Delay bit 0 position. */
4202 #define EBI_ESRDLY1_bm (1<<4) /* SDRAM Exit-Self-refresh-to-Active Delay bit 1 mask. */
4203 #define EBI_ESRDLY1_bp 4 /* SDRAM Exit-Self-refresh-to-Active Delay bit 1 position. */
4204 #define EBI_ESRDLY2_bm (1<<5) /* SDRAM Exit-Self-refresh-to-Active Delay bit 2 mask. */
4205 #define EBI_ESRDLY2_bp 5 /* SDRAM Exit-Self-refresh-to-Active Delay bit 2 position. */
4206 
4207 #define EBI_ROWCOLDLY_gm 0x07 /* SDRAM Row-to-Column Delay group mask. */
4208 #define EBI_ROWCOLDLY_gp 0 /* SDRAM Row-to-Column Delay group position. */
4209 #define EBI_ROWCOLDLY0_bm (1<<0) /* SDRAM Row-to-Column Delay bit 0 mask. */
4210 #define EBI_ROWCOLDLY0_bp 0 /* SDRAM Row-to-Column Delay bit 0 position. */
4211 #define EBI_ROWCOLDLY1_bm (1<<1) /* SDRAM Row-to-Column Delay bit 1 mask. */
4212 #define EBI_ROWCOLDLY1_bp 1 /* SDRAM Row-to-Column Delay bit 1 position. */
4213 #define EBI_ROWCOLDLY2_bm (1<<2) /* SDRAM Row-to-Column Delay bit 2 mask. */
4214 #define EBI_ROWCOLDLY2_bp 2 /* SDRAM Row-to-Column Delay bit 2 position. */
4215 
4216 
4217 /* TWI - Two-Wire Interface */
4218 /* TWI_MASTER.CTRLA bit masks and bit positions */
4219 #define TWI_MASTER_INTLVL_gm 0xC0 /* Interrupt Level group mask. */
4220 #define TWI_MASTER_INTLVL_gp 6 /* Interrupt Level group position. */
4221 #define TWI_MASTER_INTLVL0_bm (1<<6) /* Interrupt Level bit 0 mask. */
4222 #define TWI_MASTER_INTLVL0_bp 6 /* Interrupt Level bit 0 position. */
4223 #define TWI_MASTER_INTLVL1_bm (1<<7) /* Interrupt Level bit 1 mask. */
4224 #define TWI_MASTER_INTLVL1_bp 7 /* Interrupt Level bit 1 position. */
4225 
4226 #define TWI_MASTER_RIEN_bm 0x20 /* Read Interrupt Enable bit mask. */
4227 #define TWI_MASTER_RIEN_bp 5 /* Read Interrupt Enable bit position. */
4228 
4229 #define TWI_MASTER_WIEN_bm 0x10 /* Write Interrupt Enable bit mask. */
4230 #define TWI_MASTER_WIEN_bp 4 /* Write Interrupt Enable bit position. */
4231 
4232 #define TWI_MASTER_ENABLE_bm 0x08 /* Enable TWI Master bit mask. */
4233 #define TWI_MASTER_ENABLE_bp 3 /* Enable TWI Master bit position. */
4234 
4235 
4236 /* TWI_MASTER.CTRLB bit masks and bit positions */
4237 #define TWI_MASTER_TIMEOUT_gm 0x0C /* Inactive Bus Timeout group mask. */
4238 #define TWI_MASTER_TIMEOUT_gp 2 /* Inactive Bus Timeout group position. */
4239 #define TWI_MASTER_TIMEOUT0_bm (1<<2) /* Inactive Bus Timeout bit 0 mask. */
4240 #define TWI_MASTER_TIMEOUT0_bp 2 /* Inactive Bus Timeout bit 0 position. */
4241 #define TWI_MASTER_TIMEOUT1_bm (1<<3) /* Inactive Bus Timeout bit 1 mask. */
4242 #define TWI_MASTER_TIMEOUT1_bp 3 /* Inactive Bus Timeout bit 1 position. */
4243 
4244 #define TWI_MASTER_QCEN_bm 0x02 /* Quick Command Enable bit mask. */
4245 #define TWI_MASTER_QCEN_bp 1 /* Quick Command Enable bit position. */
4246 
4247 #define TWI_MASTER_SMEN_bm 0x01 /* Smart Mode Enable bit mask. */
4248 #define TWI_MASTER_SMEN_bp 0 /* Smart Mode Enable bit position. */
4249 
4250 
4251 /* TWI_MASTER.CTRLC bit masks and bit positions */
4252 #define TWI_MASTER_ACKACT_bm 0x04 /* Acknowledge Action bit mask. */
4253 #define TWI_MASTER_ACKACT_bp 2 /* Acknowledge Action bit position. */
4254 
4255 #define TWI_MASTER_CMD_gm 0x03 /* Command group mask. */
4256 #define TWI_MASTER_CMD_gp 0 /* Command group position. */
4257 #define TWI_MASTER_CMD0_bm (1<<0) /* Command bit 0 mask. */
4258 #define TWI_MASTER_CMD0_bp 0 /* Command bit 0 position. */
4259 #define TWI_MASTER_CMD1_bm (1<<1) /* Command bit 1 mask. */
4260 #define TWI_MASTER_CMD1_bp 1 /* Command bit 1 position. */
4261 
4262 
4263 /* TWI_MASTER.STATUS bit masks and bit positions */
4264 #define TWI_MASTER_RIF_bm 0x80 /* Read Interrupt Flag bit mask. */
4265 #define TWI_MASTER_RIF_bp 7 /* Read Interrupt Flag bit position. */
4266 
4267 #define TWI_MASTER_WIF_bm 0x40 /* Write Interrupt Flag bit mask. */
4268 #define TWI_MASTER_WIF_bp 6 /* Write Interrupt Flag bit position. */
4269 
4270 #define TWI_MASTER_CLKHOLD_bm 0x20 /* Clock Hold bit mask. */
4271 #define TWI_MASTER_CLKHOLD_bp 5 /* Clock Hold bit position. */
4272 
4273 #define TWI_MASTER_RXACK_bm 0x10 /* Received Acknowledge bit mask. */
4274 #define TWI_MASTER_RXACK_bp 4 /* Received Acknowledge bit position. */
4275 
4276 #define TWI_MASTER_ARBLOST_bm 0x08 /* Arbitration Lost bit mask. */
4277 #define TWI_MASTER_ARBLOST_bp 3 /* Arbitration Lost bit position. */
4278 
4279 #define TWI_MASTER_BUSERR_bm 0x04 /* Bus Error bit mask. */
4280 #define TWI_MASTER_BUSERR_bp 2 /* Bus Error bit position. */
4281 
4282 #define TWI_MASTER_BUSSTATE_gm 0x03 /* Bus State group mask. */
4283 #define TWI_MASTER_BUSSTATE_gp 0 /* Bus State group position. */
4284 #define TWI_MASTER_BUSSTATE0_bm (1<<0) /* Bus State bit 0 mask. */
4285 #define TWI_MASTER_BUSSTATE0_bp 0 /* Bus State bit 0 position. */
4286 #define TWI_MASTER_BUSSTATE1_bm (1<<1) /* Bus State bit 1 mask. */
4287 #define TWI_MASTER_BUSSTATE1_bp 1 /* Bus State bit 1 position. */
4288 
4289 
4290 /* TWI_SLAVE.CTRLA bit masks and bit positions */
4291 #define TWI_SLAVE_INTLVL_gm 0xC0 /* Interrupt Level group mask. */
4292 #define TWI_SLAVE_INTLVL_gp 6 /* Interrupt Level group position. */
4293 #define TWI_SLAVE_INTLVL0_bm (1<<6) /* Interrupt Level bit 0 mask. */
4294 #define TWI_SLAVE_INTLVL0_bp 6 /* Interrupt Level bit 0 position. */
4295 #define TWI_SLAVE_INTLVL1_bm (1<<7) /* Interrupt Level bit 1 mask. */
4296 #define TWI_SLAVE_INTLVL1_bp 7 /* Interrupt Level bit 1 position. */
4297 
4298 #define TWI_SLAVE_DIEN_bm 0x20 /* Data Interrupt Enable bit mask. */
4299 #define TWI_SLAVE_DIEN_bp 5 /* Data Interrupt Enable bit position. */
4300 
4301 #define TWI_SLAVE_APIEN_bm 0x10 /* Address/Stop Interrupt Enable bit mask. */
4302 #define TWI_SLAVE_APIEN_bp 4 /* Address/Stop Interrupt Enable bit position. */
4303 
4304 #define TWI_SLAVE_ENABLE_bm 0x08 /* Enable TWI Slave bit mask. */
4305 #define TWI_SLAVE_ENABLE_bp 3 /* Enable TWI Slave bit position. */
4306 
4307 #define TWI_SLAVE_PIEN_bm 0x04 /* Stop Interrupt Enable bit mask. */
4308 #define TWI_SLAVE_PIEN_bp 2 /* Stop Interrupt Enable bit position. */
4309 
4310 #define TWI_SLAVE_PMEN_bm 0x02 /* Promiscuous Mode Enable bit mask. */
4311 #define TWI_SLAVE_PMEN_bp 1 /* Promiscuous Mode Enable bit position. */
4312 
4313 #define TWI_SLAVE_SMEN_bm 0x01 /* Smart Mode Enable bit mask. */
4314 #define TWI_SLAVE_SMEN_bp 0 /* Smart Mode Enable bit position. */
4315 
4316 
4317 /* TWI_SLAVE.CTRLB bit masks and bit positions */
4318 #define TWI_SLAVE_ACKACT_bm 0x04 /* Acknowledge Action bit mask. */
4319 #define TWI_SLAVE_ACKACT_bp 2 /* Acknowledge Action bit position. */
4320 
4321 #define TWI_SLAVE_CMD_gm 0x03 /* Command group mask. */
4322 #define TWI_SLAVE_CMD_gp 0 /* Command group position. */
4323 #define TWI_SLAVE_CMD0_bm (1<<0) /* Command bit 0 mask. */
4324 #define TWI_SLAVE_CMD0_bp 0 /* Command bit 0 position. */
4325 #define TWI_SLAVE_CMD1_bm (1<<1) /* Command bit 1 mask. */
4326 #define TWI_SLAVE_CMD1_bp 1 /* Command bit 1 position. */
4327 
4328 
4329 /* TWI_SLAVE.STATUS bit masks and bit positions */
4330 #define TWI_SLAVE_DIF_bm 0x80 /* Data Interrupt Flag bit mask. */
4331 #define TWI_SLAVE_DIF_bp 7 /* Data Interrupt Flag bit position. */
4332 
4333 #define TWI_SLAVE_APIF_bm 0x40 /* Address/Stop Interrupt Flag bit mask. */
4334 #define TWI_SLAVE_APIF_bp 6 /* Address/Stop Interrupt Flag bit position. */
4335 
4336 #define TWI_SLAVE_CLKHOLD_bm 0x20 /* Clock Hold bit mask. */
4337 #define TWI_SLAVE_CLKHOLD_bp 5 /* Clock Hold bit position. */
4338 
4339 #define TWI_SLAVE_RXACK_bm 0x10 /* Received Acknowledge bit mask. */
4340 #define TWI_SLAVE_RXACK_bp 4 /* Received Acknowledge bit position. */
4341 
4342 #define TWI_SLAVE_COLL_bm 0x08 /* Collision bit mask. */
4343 #define TWI_SLAVE_COLL_bp 3 /* Collision bit position. */
4344 
4345 #define TWI_SLAVE_BUSERR_bm 0x04 /* Bus Error bit mask. */
4346 #define TWI_SLAVE_BUSERR_bp 2 /* Bus Error bit position. */
4347 
4348 #define TWI_SLAVE_DIR_bm 0x02 /* Read/Write Direction bit mask. */
4349 #define TWI_SLAVE_DIR_bp 1 /* Read/Write Direction bit position. */
4350 
4351 #define TWI_SLAVE_AP_bm 0x01 /* Slave Address or Stop bit mask. */
4352 #define TWI_SLAVE_AP_bp 0 /* Slave Address or Stop bit position. */
4353 
4354 
4355 /* TWI_SLAVE.ADDRMASK bit masks and bit positions */
4356 #define TWI_SLAVE_ADDRMASK_gm 0xFE /* Address Mask group mask. */
4357 #define TWI_SLAVE_ADDRMASK_gp 1 /* Address Mask group position. */
4358 #define TWI_SLAVE_ADDRMASK0_bm (1<<1) /* Address Mask bit 0 mask. */
4359 #define TWI_SLAVE_ADDRMASK0_bp 1 /* Address Mask bit 0 position. */
4360 #define TWI_SLAVE_ADDRMASK1_bm (1<<2) /* Address Mask bit 1 mask. */
4361 #define TWI_SLAVE_ADDRMASK1_bp 2 /* Address Mask bit 1 position. */
4362 #define TWI_SLAVE_ADDRMASK2_bm (1<<3) /* Address Mask bit 2 mask. */
4363 #define TWI_SLAVE_ADDRMASK2_bp 3 /* Address Mask bit 2 position. */
4364 #define TWI_SLAVE_ADDRMASK3_bm (1<<4) /* Address Mask bit 3 mask. */
4365 #define TWI_SLAVE_ADDRMASK3_bp 4 /* Address Mask bit 3 position. */
4366 #define TWI_SLAVE_ADDRMASK4_bm (1<<5) /* Address Mask bit 4 mask. */
4367 #define TWI_SLAVE_ADDRMASK4_bp 5 /* Address Mask bit 4 position. */
4368 #define TWI_SLAVE_ADDRMASK5_bm (1<<6) /* Address Mask bit 5 mask. */
4369 #define TWI_SLAVE_ADDRMASK5_bp 6 /* Address Mask bit 5 position. */
4370 #define TWI_SLAVE_ADDRMASK6_bm (1<<7) /* Address Mask bit 6 mask. */
4371 #define TWI_SLAVE_ADDRMASK6_bp 7 /* Address Mask bit 6 position. */
4372 
4373 #define TWI_SLAVE_ADDREN_bm 0x01 /* Address Enable bit mask. */
4374 #define TWI_SLAVE_ADDREN_bp 0 /* Address Enable bit position. */
4375 
4376 
4377 /* TWI.CTRL bit masks and bit positions */
4378 #define TWI_SDAHOLD_bm 0x02 /* SDA Hold Time Enable bit mask. */
4379 #define TWI_SDAHOLD_bp 1 /* SDA Hold Time Enable bit position. */
4380 
4381 #define TWI_EDIEN_bm 0x01 /* External Driver Interface Enable bit mask. */
4382 #define TWI_EDIEN_bp 0 /* External Driver Interface Enable bit position. */
4383 
4384 
4385 /* PORT - Port Configuration */
4386 /* PORTCFG.VPCTRLA bit masks and bit positions */
4387 #define PORTCFG_VP1MAP_gm 0xF0 /* Virtual Port 1 Mapping group mask. */
4388 #define PORTCFG_VP1MAP_gp 4 /* Virtual Port 1 Mapping group position. */
4389 #define PORTCFG_VP1MAP0_bm (1<<4) /* Virtual Port 1 Mapping bit 0 mask. */
4390 #define PORTCFG_VP1MAP0_bp 4 /* Virtual Port 1 Mapping bit 0 position. */
4391 #define PORTCFG_VP1MAP1_bm (1<<5) /* Virtual Port 1 Mapping bit 1 mask. */
4392 #define PORTCFG_VP1MAP1_bp 5 /* Virtual Port 1 Mapping bit 1 position. */
4393 #define PORTCFG_VP1MAP2_bm (1<<6) /* Virtual Port 1 Mapping bit 2 mask. */
4394 #define PORTCFG_VP1MAP2_bp 6 /* Virtual Port 1 Mapping bit 2 position. */
4395 #define PORTCFG_VP1MAP3_bm (1<<7) /* Virtual Port 1 Mapping bit 3 mask. */
4396 #define PORTCFG_VP1MAP3_bp 7 /* Virtual Port 1 Mapping bit 3 position. */
4397 
4398 #define PORTCFG_VP0MAP_gm 0x0F /* Virtual Port 0 Mapping group mask. */
4399 #define PORTCFG_VP0MAP_gp 0 /* Virtual Port 0 Mapping group position. */
4400 #define PORTCFG_VP0MAP0_bm (1<<0) /* Virtual Port 0 Mapping bit 0 mask. */
4401 #define PORTCFG_VP0MAP0_bp 0 /* Virtual Port 0 Mapping bit 0 position. */
4402 #define PORTCFG_VP0MAP1_bm (1<<1) /* Virtual Port 0 Mapping bit 1 mask. */
4403 #define PORTCFG_VP0MAP1_bp 1 /* Virtual Port 0 Mapping bit 1 position. */
4404 #define PORTCFG_VP0MAP2_bm (1<<2) /* Virtual Port 0 Mapping bit 2 mask. */
4405 #define PORTCFG_VP0MAP2_bp 2 /* Virtual Port 0 Mapping bit 2 position. */
4406 #define PORTCFG_VP0MAP3_bm (1<<3) /* Virtual Port 0 Mapping bit 3 mask. */
4407 #define PORTCFG_VP0MAP3_bp 3 /* Virtual Port 0 Mapping bit 3 position. */
4408 
4409 
4410 /* PORTCFG.VPCTRLB bit masks and bit positions */
4411 #define PORTCFG_VP3MAP_gm 0xF0 /* Virtual Port 3 Mapping group mask. */
4412 #define PORTCFG_VP3MAP_gp 4 /* Virtual Port 3 Mapping group position. */
4413 #define PORTCFG_VP3MAP0_bm (1<<4) /* Virtual Port 3 Mapping bit 0 mask. */
4414 #define PORTCFG_VP3MAP0_bp 4 /* Virtual Port 3 Mapping bit 0 position. */
4415 #define PORTCFG_VP3MAP1_bm (1<<5) /* Virtual Port 3 Mapping bit 1 mask. */
4416 #define PORTCFG_VP3MAP1_bp 5 /* Virtual Port 3 Mapping bit 1 position. */
4417 #define PORTCFG_VP3MAP2_bm (1<<6) /* Virtual Port 3 Mapping bit 2 mask. */
4418 #define PORTCFG_VP3MAP2_bp 6 /* Virtual Port 3 Mapping bit 2 position. */
4419 #define PORTCFG_VP3MAP3_bm (1<<7) /* Virtual Port 3 Mapping bit 3 mask. */
4420 #define PORTCFG_VP3MAP3_bp 7 /* Virtual Port 3 Mapping bit 3 position. */
4421 
4422 #define PORTCFG_VP2MAP_gm 0x0F /* Virtual Port 2 Mapping group mask. */
4423 #define PORTCFG_VP2MAP_gp 0 /* Virtual Port 2 Mapping group position. */
4424 #define PORTCFG_VP2MAP0_bm (1<<0) /* Virtual Port 2 Mapping bit 0 mask. */
4425 #define PORTCFG_VP2MAP0_bp 0 /* Virtual Port 2 Mapping bit 0 position. */
4426 #define PORTCFG_VP2MAP1_bm (1<<1) /* Virtual Port 2 Mapping bit 1 mask. */
4427 #define PORTCFG_VP2MAP1_bp 1 /* Virtual Port 2 Mapping bit 1 position. */
4428 #define PORTCFG_VP2MAP2_bm (1<<2) /* Virtual Port 2 Mapping bit 2 mask. */
4429 #define PORTCFG_VP2MAP2_bp 2 /* Virtual Port 2 Mapping bit 2 position. */
4430 #define PORTCFG_VP2MAP3_bm (1<<3) /* Virtual Port 2 Mapping bit 3 mask. */
4431 #define PORTCFG_VP2MAP3_bp 3 /* Virtual Port 2 Mapping bit 3 position. */
4432 
4433 
4434 /* PORTCFG.CLKEVOUT bit masks and bit positions */
4435 #define PORTCFG_CLKOUT_gm 0x03 /* Clock Output Port group mask. */
4436 #define PORTCFG_CLKOUT_gp 0 /* Clock Output Port group position. */
4437 #define PORTCFG_CLKOUT0_bm (1<<0) /* Clock Output Port bit 0 mask. */
4438 #define PORTCFG_CLKOUT0_bp 0 /* Clock Output Port bit 0 position. */
4439 #define PORTCFG_CLKOUT1_bm (1<<1) /* Clock Output Port bit 1 mask. */
4440 #define PORTCFG_CLKOUT1_bp 1 /* Clock Output Port bit 1 position. */
4441 
4442 #define PORTCFG_EVOUT_gm 0x30 /* Event Output Port group mask. */
4443 #define PORTCFG_EVOUT_gp 4 /* Event Output Port group position. */
4444 #define PORTCFG_EVOUT0_bm (1<<4) /* Event Output Port bit 0 mask. */
4445 #define PORTCFG_EVOUT0_bp 4 /* Event Output Port bit 0 position. */
4446 #define PORTCFG_EVOUT1_bm (1<<5) /* Event Output Port bit 1 mask. */
4447 #define PORTCFG_EVOUT1_bp 5 /* Event Output Port bit 1 position. */
4448 
4449 
4450 /* VPORT.INTFLAGS bit masks and bit positions */
4451 #define VPORT_INT1IF_bm 0x02 /* Port Interrupt 1 Flag bit mask. */
4452 #define VPORT_INT1IF_bp 1 /* Port Interrupt 1 Flag bit position. */
4453 
4454 #define VPORT_INT0IF_bm 0x01 /* Port Interrupt 0 Flag bit mask. */
4455 #define VPORT_INT0IF_bp 0 /* Port Interrupt 0 Flag bit position. */
4456 
4457 
4458 /* PORT.INTCTRL bit masks and bit positions */
4459 #define PORT_INT1LVL_gm 0x0C /* Port Interrupt 1 Level group mask. */
4460 #define PORT_INT1LVL_gp 2 /* Port Interrupt 1 Level group position. */
4461 #define PORT_INT1LVL0_bm (1<<2) /* Port Interrupt 1 Level bit 0 mask. */
4462 #define PORT_INT1LVL0_bp 2 /* Port Interrupt 1 Level bit 0 position. */
4463 #define PORT_INT1LVL1_bm (1<<3) /* Port Interrupt 1 Level bit 1 mask. */
4464 #define PORT_INT1LVL1_bp 3 /* Port Interrupt 1 Level bit 1 position. */
4465 
4466 #define PORT_INT0LVL_gm 0x03 /* Port Interrupt 0 Level group mask. */
4467 #define PORT_INT0LVL_gp 0 /* Port Interrupt 0 Level group position. */
4468 #define PORT_INT0LVL0_bm (1<<0) /* Port Interrupt 0 Level bit 0 mask. */
4469 #define PORT_INT0LVL0_bp 0 /* Port Interrupt 0 Level bit 0 position. */
4470 #define PORT_INT0LVL1_bm (1<<1) /* Port Interrupt 0 Level bit 1 mask. */
4471 #define PORT_INT0LVL1_bp 1 /* Port Interrupt 0 Level bit 1 position. */
4472 
4473 
4474 /* PORT.INTFLAGS bit masks and bit positions */
4475 #define PORT_INT1IF_bm 0x02 /* Port Interrupt 1 Flag bit mask. */
4476 #define PORT_INT1IF_bp 1 /* Port Interrupt 1 Flag bit position. */
4477 
4478 #define PORT_INT0IF_bm 0x01 /* Port Interrupt 0 Flag bit mask. */
4479 #define PORT_INT0IF_bp 0 /* Port Interrupt 0 Flag bit position. */
4480 
4481 
4482 /* PORT.PIN0CTRL bit masks and bit positions */
4483 #define PORT_SRLEN_bm 0x80 /* Slew Rate Enable bit mask. */
4484 #define PORT_SRLEN_bp 7 /* Slew Rate Enable bit position. */
4485 
4486 #define PORT_INVEN_bm 0x40 /* Inverted I/O Enable bit mask. */
4487 #define PORT_INVEN_bp 6 /* Inverted I/O Enable bit position. */
4488 
4489 #define PORT_OPC_gm 0x38 /* Output/Pull Configuration group mask. */
4490 #define PORT_OPC_gp 3 /* Output/Pull Configuration group position. */
4491 #define PORT_OPC0_bm (1<<3) /* Output/Pull Configuration bit 0 mask. */
4492 #define PORT_OPC0_bp 3 /* Output/Pull Configuration bit 0 position. */
4493 #define PORT_OPC1_bm (1<<4) /* Output/Pull Configuration bit 1 mask. */
4494 #define PORT_OPC1_bp 4 /* Output/Pull Configuration bit 1 position. */
4495 #define PORT_OPC2_bm (1<<5) /* Output/Pull Configuration bit 2 mask. */
4496 #define PORT_OPC2_bp 5 /* Output/Pull Configuration bit 2 position. */
4497 
4498 #define PORT_ISC_gm 0x07 /* Input/Sense Configuration group mask. */
4499 #define PORT_ISC_gp 0 /* Input/Sense Configuration group position. */
4500 #define PORT_ISC0_bm (1<<0) /* Input/Sense Configuration bit 0 mask. */
4501 #define PORT_ISC0_bp 0 /* Input/Sense Configuration bit 0 position. */
4502 #define PORT_ISC1_bm (1<<1) /* Input/Sense Configuration bit 1 mask. */
4503 #define PORT_ISC1_bp 1 /* Input/Sense Configuration bit 1 position. */
4504 #define PORT_ISC2_bm (1<<2) /* Input/Sense Configuration bit 2 mask. */
4505 #define PORT_ISC2_bp 2 /* Input/Sense Configuration bit 2 position. */
4506 
4507 
4508 /* PORT.PIN1CTRL bit masks and bit positions */
4509 /* PORT_SRLEN_bm Predefined. */
4510 /* PORT_SRLEN_bp Predefined. */
4511 
4512 /* PORT_INVEN_bm Predefined. */
4513 /* PORT_INVEN_bp Predefined. */
4514 
4515 /* PORT_OPC_gm Predefined. */
4516 /* PORT_OPC_gp Predefined. */
4517 /* PORT_OPC0_bm Predefined. */
4518 /* PORT_OPC0_bp Predefined. */
4519 /* PORT_OPC1_bm Predefined. */
4520 /* PORT_OPC1_bp Predefined. */
4521 /* PORT_OPC2_bm Predefined. */
4522 /* PORT_OPC2_bp Predefined. */
4523 
4524 /* PORT_ISC_gm Predefined. */
4525 /* PORT_ISC_gp Predefined. */
4526 /* PORT_ISC0_bm Predefined. */
4527 /* PORT_ISC0_bp Predefined. */
4528 /* PORT_ISC1_bm Predefined. */
4529 /* PORT_ISC1_bp Predefined. */
4530 /* PORT_ISC2_bm Predefined. */
4531 /* PORT_ISC2_bp Predefined. */
4532 
4533 
4534 /* PORT.PIN2CTRL bit masks and bit positions */
4535 /* PORT_SRLEN_bm Predefined. */
4536 /* PORT_SRLEN_bp Predefined. */
4537 
4538 /* PORT_INVEN_bm Predefined. */
4539 /* PORT_INVEN_bp Predefined. */
4540 
4541 /* PORT_OPC_gm Predefined. */
4542 /* PORT_OPC_gp Predefined. */
4543 /* PORT_OPC0_bm Predefined. */
4544 /* PORT_OPC0_bp Predefined. */
4545 /* PORT_OPC1_bm Predefined. */
4546 /* PORT_OPC1_bp Predefined. */
4547 /* PORT_OPC2_bm Predefined. */
4548 /* PORT_OPC2_bp Predefined. */
4549 
4550 /* PORT_ISC_gm Predefined. */
4551 /* PORT_ISC_gp Predefined. */
4552 /* PORT_ISC0_bm Predefined. */
4553 /* PORT_ISC0_bp Predefined. */
4554 /* PORT_ISC1_bm Predefined. */
4555 /* PORT_ISC1_bp Predefined. */
4556 /* PORT_ISC2_bm Predefined. */
4557 /* PORT_ISC2_bp Predefined. */
4558 
4559 
4560 /* PORT.PIN3CTRL bit masks and bit positions */
4561 /* PORT_SRLEN_bm Predefined. */
4562 /* PORT_SRLEN_bp Predefined. */
4563 
4564 /* PORT_INVEN_bm Predefined. */
4565 /* PORT_INVEN_bp Predefined. */
4566 
4567 /* PORT_OPC_gm Predefined. */
4568 /* PORT_OPC_gp Predefined. */
4569 /* PORT_OPC0_bm Predefined. */
4570 /* PORT_OPC0_bp Predefined. */
4571 /* PORT_OPC1_bm Predefined. */
4572 /* PORT_OPC1_bp Predefined. */
4573 /* PORT_OPC2_bm Predefined. */
4574 /* PORT_OPC2_bp Predefined. */
4575 
4576 /* PORT_ISC_gm Predefined. */
4577 /* PORT_ISC_gp Predefined. */
4578 /* PORT_ISC0_bm Predefined. */
4579 /* PORT_ISC0_bp Predefined. */
4580 /* PORT_ISC1_bm Predefined. */
4581 /* PORT_ISC1_bp Predefined. */
4582 /* PORT_ISC2_bm Predefined. */
4583 /* PORT_ISC2_bp Predefined. */
4584 
4585 
4586 /* PORT.PIN4CTRL bit masks and bit positions */
4587 /* PORT_SRLEN_bm Predefined. */
4588 /* PORT_SRLEN_bp Predefined. */
4589 
4590 /* PORT_INVEN_bm Predefined. */
4591 /* PORT_INVEN_bp Predefined. */
4592 
4593 /* PORT_OPC_gm Predefined. */
4594 /* PORT_OPC_gp Predefined. */
4595 /* PORT_OPC0_bm Predefined. */
4596 /* PORT_OPC0_bp Predefined. */
4597 /* PORT_OPC1_bm Predefined. */
4598 /* PORT_OPC1_bp Predefined. */
4599 /* PORT_OPC2_bm Predefined. */
4600 /* PORT_OPC2_bp Predefined. */
4601 
4602 /* PORT_ISC_gm Predefined. */
4603 /* PORT_ISC_gp Predefined. */
4604 /* PORT_ISC0_bm Predefined. */
4605 /* PORT_ISC0_bp Predefined. */
4606 /* PORT_ISC1_bm Predefined. */
4607 /* PORT_ISC1_bp Predefined. */
4608 /* PORT_ISC2_bm Predefined. */
4609 /* PORT_ISC2_bp Predefined. */
4610 
4611 
4612 /* PORT.PIN5CTRL bit masks and bit positions */
4613 /* PORT_SRLEN_bm Predefined. */
4614 /* PORT_SRLEN_bp Predefined. */
4615 
4616 /* PORT_INVEN_bm Predefined. */
4617 /* PORT_INVEN_bp Predefined. */
4618 
4619 /* PORT_OPC_gm Predefined. */
4620 /* PORT_OPC_gp Predefined. */
4621 /* PORT_OPC0_bm Predefined. */
4622 /* PORT_OPC0_bp Predefined. */
4623 /* PORT_OPC1_bm Predefined. */
4624 /* PORT_OPC1_bp Predefined. */
4625 /* PORT_OPC2_bm Predefined. */
4626 /* PORT_OPC2_bp Predefined. */
4627 
4628 /* PORT_ISC_gm Predefined. */
4629 /* PORT_ISC_gp Predefined. */
4630 /* PORT_ISC0_bm Predefined. */
4631 /* PORT_ISC0_bp Predefined. */
4632 /* PORT_ISC1_bm Predefined. */
4633 /* PORT_ISC1_bp Predefined. */
4634 /* PORT_ISC2_bm Predefined. */
4635 /* PORT_ISC2_bp Predefined. */
4636 
4637 
4638 /* PORT.PIN6CTRL bit masks and bit positions */
4639 /* PORT_SRLEN_bm Predefined. */
4640 /* PORT_SRLEN_bp Predefined. */
4641 
4642 /* PORT_INVEN_bm Predefined. */
4643 /* PORT_INVEN_bp Predefined. */
4644 
4645 /* PORT_OPC_gm Predefined. */
4646 /* PORT_OPC_gp Predefined. */
4647 /* PORT_OPC0_bm Predefined. */
4648 /* PORT_OPC0_bp Predefined. */
4649 /* PORT_OPC1_bm Predefined. */
4650 /* PORT_OPC1_bp Predefined. */
4651 /* PORT_OPC2_bm Predefined. */
4652 /* PORT_OPC2_bp Predefined. */
4653 
4654 /* PORT_ISC_gm Predefined. */
4655 /* PORT_ISC_gp Predefined. */
4656 /* PORT_ISC0_bm Predefined. */
4657 /* PORT_ISC0_bp Predefined. */
4658 /* PORT_ISC1_bm Predefined. */
4659 /* PORT_ISC1_bp Predefined. */
4660 /* PORT_ISC2_bm Predefined. */
4661 /* PORT_ISC2_bp Predefined. */
4662 
4663 
4664 /* PORT.PIN7CTRL bit masks and bit positions */
4665 /* PORT_SRLEN_bm Predefined. */
4666 /* PORT_SRLEN_bp Predefined. */
4667 
4668 /* PORT_INVEN_bm Predefined. */
4669 /* PORT_INVEN_bp Predefined. */
4670 
4671 /* PORT_OPC_gm Predefined. */
4672 /* PORT_OPC_gp Predefined. */
4673 /* PORT_OPC0_bm Predefined. */
4674 /* PORT_OPC0_bp Predefined. */
4675 /* PORT_OPC1_bm Predefined. */
4676 /* PORT_OPC1_bp Predefined. */
4677 /* PORT_OPC2_bm Predefined. */
4678 /* PORT_OPC2_bp Predefined. */
4679 
4680 /* PORT_ISC_gm Predefined. */
4681 /* PORT_ISC_gp Predefined. */
4682 /* PORT_ISC0_bm Predefined. */
4683 /* PORT_ISC0_bp Predefined. */
4684 /* PORT_ISC1_bm Predefined. */
4685 /* PORT_ISC1_bp Predefined. */
4686 /* PORT_ISC2_bm Predefined. */
4687 /* PORT_ISC2_bp Predefined. */
4688 
4689 
4690 /* TC - 16-bit Timer/Counter With PWM */
4691 /* TC0.CTRLA bit masks and bit positions */
4692 #define TC0_CLKSEL_gm 0x0F /* Clock Selection group mask. */
4693 #define TC0_CLKSEL_gp 0 /* Clock Selection group position. */
4694 #define TC0_CLKSEL0_bm (1<<0) /* Clock Selection bit 0 mask. */
4695 #define TC0_CLKSEL0_bp 0 /* Clock Selection bit 0 position. */
4696 #define TC0_CLKSEL1_bm (1<<1) /* Clock Selection bit 1 mask. */
4697 #define TC0_CLKSEL1_bp 1 /* Clock Selection bit 1 position. */
4698 #define TC0_CLKSEL2_bm (1<<2) /* Clock Selection bit 2 mask. */
4699 #define TC0_CLKSEL2_bp 2 /* Clock Selection bit 2 position. */
4700 #define TC0_CLKSEL3_bm (1<<3) /* Clock Selection bit 3 mask. */
4701 #define TC0_CLKSEL3_bp 3 /* Clock Selection bit 3 position. */
4702 
4703 
4704 /* TC0.CTRLB bit masks and bit positions */
4705 #define TC0_CCDEN_bm 0x80 /* Compare or Capture D Enable bit mask. */
4706 #define TC0_CCDEN_bp 7 /* Compare or Capture D Enable bit position. */
4707 
4708 #define TC0_CCCEN_bm 0x40 /* Compare or Capture C Enable bit mask. */
4709 #define TC0_CCCEN_bp 6 /* Compare or Capture C Enable bit position. */
4710 
4711 #define TC0_CCBEN_bm 0x20 /* Compare or Capture B Enable bit mask. */
4712 #define TC0_CCBEN_bp 5 /* Compare or Capture B Enable bit position. */
4713 
4714 #define TC0_CCAEN_bm 0x10 /* Compare or Capture A Enable bit mask. */
4715 #define TC0_CCAEN_bp 4 /* Compare or Capture A Enable bit position. */
4716 
4717 #define TC0_WGMODE_gm 0x07 /* Waveform generation mode group mask. */
4718 #define TC0_WGMODE_gp 0 /* Waveform generation mode group position. */
4719 #define TC0_WGMODE0_bm (1<<0) /* Waveform generation mode bit 0 mask. */
4720 #define TC0_WGMODE0_bp 0 /* Waveform generation mode bit 0 position. */
4721 #define TC0_WGMODE1_bm (1<<1) /* Waveform generation mode bit 1 mask. */
4722 #define TC0_WGMODE1_bp 1 /* Waveform generation mode bit 1 position. */
4723 #define TC0_WGMODE2_bm (1<<2) /* Waveform generation mode bit 2 mask. */
4724 #define TC0_WGMODE2_bp 2 /* Waveform generation mode bit 2 position. */
4725 
4726 
4727 /* TC0.CTRLC bit masks and bit positions */
4728 #define TC0_CMPD_bm 0x08 /* Compare D Output Value bit mask. */
4729 #define TC0_CMPD_bp 3 /* Compare D Output Value bit position. */
4730 
4731 #define TC0_CMPC_bm 0x04 /* Compare C Output Value bit mask. */
4732 #define TC0_CMPC_bp 2 /* Compare C Output Value bit position. */
4733 
4734 #define TC0_CMPB_bm 0x02 /* Compare B Output Value bit mask. */
4735 #define TC0_CMPB_bp 1 /* Compare B Output Value bit position. */
4736 
4737 #define TC0_CMPA_bm 0x01 /* Compare A Output Value bit mask. */
4738 #define TC0_CMPA_bp 0 /* Compare A Output Value bit position. */
4739 
4740 
4741 /* TC0.CTRLD bit masks and bit positions */
4742 #define TC0_EVACT_gm 0xE0 /* Event Action group mask. */
4743 #define TC0_EVACT_gp 5 /* Event Action group position. */
4744 #define TC0_EVACT0_bm (1<<5) /* Event Action bit 0 mask. */
4745 #define TC0_EVACT0_bp 5 /* Event Action bit 0 position. */
4746 #define TC0_EVACT1_bm (1<<6) /* Event Action bit 1 mask. */
4747 #define TC0_EVACT1_bp 6 /* Event Action bit 1 position. */
4748 #define TC0_EVACT2_bm (1<<7) /* Event Action bit 2 mask. */
4749 #define TC0_EVACT2_bp 7 /* Event Action bit 2 position. */
4750 
4751 #define TC0_EVDLY_bm 0x10 /* Event Delay bit mask. */
4752 #define TC0_EVDLY_bp 4 /* Event Delay bit position. */
4753 
4754 #define TC0_EVSEL_gm 0x0F /* Event Source Select group mask. */
4755 #define TC0_EVSEL_gp 0 /* Event Source Select group position. */
4756 #define TC0_EVSEL0_bm (1<<0) /* Event Source Select bit 0 mask. */
4757 #define TC0_EVSEL0_bp 0 /* Event Source Select bit 0 position. */
4758 #define TC0_EVSEL1_bm (1<<1) /* Event Source Select bit 1 mask. */
4759 #define TC0_EVSEL1_bp 1 /* Event Source Select bit 1 position. */
4760 #define TC0_EVSEL2_bm (1<<2) /* Event Source Select bit 2 mask. */
4761 #define TC0_EVSEL2_bp 2 /* Event Source Select bit 2 position. */
4762 #define TC0_EVSEL3_bm (1<<3) /* Event Source Select bit 3 mask. */
4763 #define TC0_EVSEL3_bp 3 /* Event Source Select bit 3 position. */
4764 
4765 
4766 /* TC0.CTRLE bit masks and bit positions */
4767 #define TC0_BYTEM_bm 0x01 /* Byte Mode bit mask. */
4768 #define TC0_BYTEM_bp 0 /* Byte Mode bit position. */
4769 
4770 
4771 /* TC0.INTCTRLA bit masks and bit positions */
4772 #define TC0_ERRINTLVL_gm 0x0C /* Error Interrupt Level group mask. */
4773 #define TC0_ERRINTLVL_gp 2 /* Error Interrupt Level group position. */
4774 #define TC0_ERRINTLVL0_bm (1<<2) /* Error Interrupt Level bit 0 mask. */
4775 #define TC0_ERRINTLVL0_bp 2 /* Error Interrupt Level bit 0 position. */
4776 #define TC0_ERRINTLVL1_bm (1<<3) /* Error Interrupt Level bit 1 mask. */
4777 #define TC0_ERRINTLVL1_bp 3 /* Error Interrupt Level bit 1 position. */
4778 
4779 #define TC0_OVFINTLVL_gm 0x03 /* Overflow interrupt level group mask. */
4780 #define TC0_OVFINTLVL_gp 0 /* Overflow interrupt level group position. */
4781 #define TC0_OVFINTLVL0_bm (1<<0) /* Overflow interrupt level bit 0 mask. */
4782 #define TC0_OVFINTLVL0_bp 0 /* Overflow interrupt level bit 0 position. */
4783 #define TC0_OVFINTLVL1_bm (1<<1) /* Overflow interrupt level bit 1 mask. */
4784 #define TC0_OVFINTLVL1_bp 1 /* Overflow interrupt level bit 1 position. */
4785 
4786 
4787 /* TC0.INTCTRLB bit masks and bit positions */
4788 #define TC0_CCDINTLVL_gm 0xC0 /* Compare or Capture D Interrupt Level group mask. */
4789 #define TC0_CCDINTLVL_gp 6 /* Compare or Capture D Interrupt Level group position. */
4790 #define TC0_CCDINTLVL0_bm (1<<6) /* Compare or Capture D Interrupt Level bit 0 mask. */
4791 #define TC0_CCDINTLVL0_bp 6 /* Compare or Capture D Interrupt Level bit 0 position. */
4792 #define TC0_CCDINTLVL1_bm (1<<7) /* Compare or Capture D Interrupt Level bit 1 mask. */
4793 #define TC0_CCDINTLVL1_bp 7 /* Compare or Capture D Interrupt Level bit 1 position. */
4794 
4795 #define TC0_CCCINTLVL_gm 0x30 /* Compare or Capture C Interrupt Level group mask. */
4796 #define TC0_CCCINTLVL_gp 4 /* Compare or Capture C Interrupt Level group position. */
4797 #define TC0_CCCINTLVL0_bm (1<<4) /* Compare or Capture C Interrupt Level bit 0 mask. */
4798 #define TC0_CCCINTLVL0_bp 4 /* Compare or Capture C Interrupt Level bit 0 position. */
4799 #define TC0_CCCINTLVL1_bm (1<<5) /* Compare or Capture C Interrupt Level bit 1 mask. */
4800 #define TC0_CCCINTLVL1_bp 5 /* Compare or Capture C Interrupt Level bit 1 position. */
4801 
4802 #define TC0_CCBINTLVL_gm 0x0C /* Compare or Capture B Interrupt Level group mask. */
4803 #define TC0_CCBINTLVL_gp 2 /* Compare or Capture B Interrupt Level group position. */
4804 #define TC0_CCBINTLVL0_bm (1<<2) /* Compare or Capture B Interrupt Level bit 0 mask. */
4805 #define TC0_CCBINTLVL0_bp 2 /* Compare or Capture B Interrupt Level bit 0 position. */
4806 #define TC0_CCBINTLVL1_bm (1<<3) /* Compare or Capture B Interrupt Level bit 1 mask. */
4807 #define TC0_CCBINTLVL1_bp 3 /* Compare or Capture B Interrupt Level bit 1 position. */
4808 
4809 #define TC0_CCAINTLVL_gm 0x03 /* Compare or Capture A Interrupt Level group mask. */
4810 #define TC0_CCAINTLVL_gp 0 /* Compare or Capture A Interrupt Level group position. */
4811 #define TC0_CCAINTLVL0_bm (1<<0) /* Compare or Capture A Interrupt Level bit 0 mask. */
4812 #define TC0_CCAINTLVL0_bp 0 /* Compare or Capture A Interrupt Level bit 0 position. */
4813 #define TC0_CCAINTLVL1_bm (1<<1) /* Compare or Capture A Interrupt Level bit 1 mask. */
4814 #define TC0_CCAINTLVL1_bp 1 /* Compare or Capture A Interrupt Level bit 1 position. */
4815 
4816 
4817 /* TC0.CTRLFCLR bit masks and bit positions */
4818 #define TC0_CMD_gm 0x0C /* Command group mask. */
4819 #define TC0_CMD_gp 2 /* Command group position. */
4820 #define TC0_CMD0_bm (1<<2) /* Command bit 0 mask. */
4821 #define TC0_CMD0_bp 2 /* Command bit 0 position. */
4822 #define TC0_CMD1_bm (1<<3) /* Command bit 1 mask. */
4823 #define TC0_CMD1_bp 3 /* Command bit 1 position. */
4824 
4825 #define TC0_LUPD_bm 0x02 /* Lock Update bit mask. */
4826 #define TC0_LUPD_bp 1 /* Lock Update bit position. */
4827 
4828 #define TC0_DIR_bm 0x01 /* Direction bit mask. */
4829 #define TC0_DIR_bp 0 /* Direction bit position. */
4830 
4831 
4832 /* TC0.CTRLFSET bit masks and bit positions */
4833 /* TC0_CMD_gm Predefined. */
4834 /* TC0_CMD_gp Predefined. */
4835 /* TC0_CMD0_bm Predefined. */
4836 /* TC0_CMD0_bp Predefined. */
4837 /* TC0_CMD1_bm Predefined. */
4838 /* TC0_CMD1_bp Predefined. */
4839 
4840 /* TC0_LUPD_bm Predefined. */
4841 /* TC0_LUPD_bp Predefined. */
4842 
4843 /* TC0_DIR_bm Predefined. */
4844 /* TC0_DIR_bp Predefined. */
4845 
4846 
4847 /* TC0.CTRLGCLR bit masks and bit positions */
4848 #define TC0_CCDBV_bm 0x10 /* Compare or Capture D Buffer Valid bit mask. */
4849 #define TC0_CCDBV_bp 4 /* Compare or Capture D Buffer Valid bit position. */
4850 
4851 #define TC0_CCCBV_bm 0x08 /* Compare or Capture C Buffer Valid bit mask. */
4852 #define TC0_CCCBV_bp 3 /* Compare or Capture C Buffer Valid bit position. */
4853 
4854 #define TC0_CCBBV_bm 0x04 /* Compare or Capture B Buffer Valid bit mask. */
4855 #define TC0_CCBBV_bp 2 /* Compare or Capture B Buffer Valid bit position. */
4856 
4857 #define TC0_CCABV_bm 0x02 /* Compare or Capture A Buffer Valid bit mask. */
4858 #define TC0_CCABV_bp 1 /* Compare or Capture A Buffer Valid bit position. */
4859 
4860 #define TC0_PERBV_bm 0x01 /* Period Buffer Valid bit mask. */
4861 #define TC0_PERBV_bp 0 /* Period Buffer Valid bit position. */
4862 
4863 
4864 /* TC0.CTRLGSET bit masks and bit positions */
4865 /* TC0_CCDBV_bm Predefined. */
4866 /* TC0_CCDBV_bp Predefined. */
4867 
4868 /* TC0_CCCBV_bm Predefined. */
4869 /* TC0_CCCBV_bp Predefined. */
4870 
4871 /* TC0_CCBBV_bm Predefined. */
4872 /* TC0_CCBBV_bp Predefined. */
4873 
4874 /* TC0_CCABV_bm Predefined. */
4875 /* TC0_CCABV_bp Predefined. */
4876 
4877 /* TC0_PERBV_bm Predefined. */
4878 /* TC0_PERBV_bp Predefined. */
4879 
4880 
4881 /* TC0.INTFLAGS bit masks and bit positions */
4882 #define TC0_CCDIF_bm 0x80 /* Compare or Capture D Interrupt Flag bit mask. */
4883 #define TC0_CCDIF_bp 7 /* Compare or Capture D Interrupt Flag bit position. */
4884 
4885 #define TC0_CCCIF_bm 0x40 /* Compare or Capture C Interrupt Flag bit mask. */
4886 #define TC0_CCCIF_bp 6 /* Compare or Capture C Interrupt Flag bit position. */
4887 
4888 #define TC0_CCBIF_bm 0x20 /* Compare or Capture B Interrupt Flag bit mask. */
4889 #define TC0_CCBIF_bp 5 /* Compare or Capture B Interrupt Flag bit position. */
4890 
4891 #define TC0_CCAIF_bm 0x10 /* Compare or Capture A Interrupt Flag bit mask. */
4892 #define TC0_CCAIF_bp 4 /* Compare or Capture A Interrupt Flag bit position. */
4893 
4894 #define TC0_ERRIF_bm 0x02 /* Error Interrupt Flag bit mask. */
4895 #define TC0_ERRIF_bp 1 /* Error Interrupt Flag bit position. */
4896 
4897 #define TC0_OVFIF_bm 0x01 /* Overflow Interrupt Flag bit mask. */
4898 #define TC0_OVFIF_bp 0 /* Overflow Interrupt Flag bit position. */
4899 
4900 
4901 /* TC1.CTRLA bit masks and bit positions */
4902 #define TC1_CLKSEL_gm 0x0F /* Clock Selection group mask. */
4903 #define TC1_CLKSEL_gp 0 /* Clock Selection group position. */
4904 #define TC1_CLKSEL0_bm (1<<0) /* Clock Selection bit 0 mask. */
4905 #define TC1_CLKSEL0_bp 0 /* Clock Selection bit 0 position. */
4906 #define TC1_CLKSEL1_bm (1<<1) /* Clock Selection bit 1 mask. */
4907 #define TC1_CLKSEL1_bp 1 /* Clock Selection bit 1 position. */
4908 #define TC1_CLKSEL2_bm (1<<2) /* Clock Selection bit 2 mask. */
4909 #define TC1_CLKSEL2_bp 2 /* Clock Selection bit 2 position. */
4910 #define TC1_CLKSEL3_bm (1<<3) /* Clock Selection bit 3 mask. */
4911 #define TC1_CLKSEL3_bp 3 /* Clock Selection bit 3 position. */
4912 
4913 
4914 /* TC1.CTRLB bit masks and bit positions */
4915 #define TC1_CCBEN_bm 0x20 /* Compare or Capture B Enable bit mask. */
4916 #define TC1_CCBEN_bp 5 /* Compare or Capture B Enable bit position. */
4917 
4918 #define TC1_CCAEN_bm 0x10 /* Compare or Capture A Enable bit mask. */
4919 #define TC1_CCAEN_bp 4 /* Compare or Capture A Enable bit position. */
4920 
4921 #define TC1_WGMODE_gm 0x07 /* Waveform generation mode group mask. */
4922 #define TC1_WGMODE_gp 0 /* Waveform generation mode group position. */
4923 #define TC1_WGMODE0_bm (1<<0) /* Waveform generation mode bit 0 mask. */
4924 #define TC1_WGMODE0_bp 0 /* Waveform generation mode bit 0 position. */
4925 #define TC1_WGMODE1_bm (1<<1) /* Waveform generation mode bit 1 mask. */
4926 #define TC1_WGMODE1_bp 1 /* Waveform generation mode bit 1 position. */
4927 #define TC1_WGMODE2_bm (1<<2) /* Waveform generation mode bit 2 mask. */
4928 #define TC1_WGMODE2_bp 2 /* Waveform generation mode bit 2 position. */
4929 
4930 
4931 /* TC1.CTRLC bit masks and bit positions */
4932 #define TC1_CMPB_bm 0x02 /* Compare B Output Value bit mask. */
4933 #define TC1_CMPB_bp 1 /* Compare B Output Value bit position. */
4934 
4935 #define TC1_CMPA_bm 0x01 /* Compare A Output Value bit mask. */
4936 #define TC1_CMPA_bp 0 /* Compare A Output Value bit position. */
4937 
4938 
4939 /* TC1.CTRLD bit masks and bit positions */
4940 #define TC1_EVACT_gm 0xE0 /* Event Action group mask. */
4941 #define TC1_EVACT_gp 5 /* Event Action group position. */
4942 #define TC1_EVACT0_bm (1<<5) /* Event Action bit 0 mask. */
4943 #define TC1_EVACT0_bp 5 /* Event Action bit 0 position. */
4944 #define TC1_EVACT1_bm (1<<6) /* Event Action bit 1 mask. */
4945 #define TC1_EVACT1_bp 6 /* Event Action bit 1 position. */
4946 #define TC1_EVACT2_bm (1<<7) /* Event Action bit 2 mask. */
4947 #define TC1_EVACT2_bp 7 /* Event Action bit 2 position. */
4948 
4949 #define TC1_EVDLY_bm 0x10 /* Event Delay bit mask. */
4950 #define TC1_EVDLY_bp 4 /* Event Delay bit position. */
4951 
4952 #define TC1_EVSEL_gm 0x0F /* Event Source Select group mask. */
4953 #define TC1_EVSEL_gp 0 /* Event Source Select group position. */
4954 #define TC1_EVSEL0_bm (1<<0) /* Event Source Select bit 0 mask. */
4955 #define TC1_EVSEL0_bp 0 /* Event Source Select bit 0 position. */
4956 #define TC1_EVSEL1_bm (1<<1) /* Event Source Select bit 1 mask. */
4957 #define TC1_EVSEL1_bp 1 /* Event Source Select bit 1 position. */
4958 #define TC1_EVSEL2_bm (1<<2) /* Event Source Select bit 2 mask. */
4959 #define TC1_EVSEL2_bp 2 /* Event Source Select bit 2 position. */
4960 #define TC1_EVSEL3_bm (1<<3) /* Event Source Select bit 3 mask. */
4961 #define TC1_EVSEL3_bp 3 /* Event Source Select bit 3 position. */
4962 
4963 
4964 /* TC1.CTRLE bit masks and bit positions */
4965 #define TC1_BYTEM_bm 0x01 /* Byte Mode bit mask. */
4966 #define TC1_BYTEM_bp 0 /* Byte Mode bit position. */
4967 
4968 
4969 /* TC1.INTCTRLA bit masks and bit positions */
4970 #define TC1_ERRINTLVL_gm 0x0C /* Error Interrupt Level group mask. */
4971 #define TC1_ERRINTLVL_gp 2 /* Error Interrupt Level group position. */
4972 #define TC1_ERRINTLVL0_bm (1<<2) /* Error Interrupt Level bit 0 mask. */
4973 #define TC1_ERRINTLVL0_bp 2 /* Error Interrupt Level bit 0 position. */
4974 #define TC1_ERRINTLVL1_bm (1<<3) /* Error Interrupt Level bit 1 mask. */
4975 #define TC1_ERRINTLVL1_bp 3 /* Error Interrupt Level bit 1 position. */
4976 
4977 #define TC1_OVFINTLVL_gm 0x03 /* Overflow interrupt level group mask. */
4978 #define TC1_OVFINTLVL_gp 0 /* Overflow interrupt level group position. */
4979 #define TC1_OVFINTLVL0_bm (1<<0) /* Overflow interrupt level bit 0 mask. */
4980 #define TC1_OVFINTLVL0_bp 0 /* Overflow interrupt level bit 0 position. */
4981 #define TC1_OVFINTLVL1_bm (1<<1) /* Overflow interrupt level bit 1 mask. */
4982 #define TC1_OVFINTLVL1_bp 1 /* Overflow interrupt level bit 1 position. */
4983 
4984 
4985 /* TC1.INTCTRLB bit masks and bit positions */
4986 #define TC1_CCBINTLVL_gm 0x0C /* Compare or Capture B Interrupt Level group mask. */
4987 #define TC1_CCBINTLVL_gp 2 /* Compare or Capture B Interrupt Level group position. */
4988 #define TC1_CCBINTLVL0_bm (1<<2) /* Compare or Capture B Interrupt Level bit 0 mask. */
4989 #define TC1_CCBINTLVL0_bp 2 /* Compare or Capture B Interrupt Level bit 0 position. */
4990 #define TC1_CCBINTLVL1_bm (1<<3) /* Compare or Capture B Interrupt Level bit 1 mask. */
4991 #define TC1_CCBINTLVL1_bp 3 /* Compare or Capture B Interrupt Level bit 1 position. */
4992 
4993 #define TC1_CCAINTLVL_gm 0x03 /* Compare or Capture A Interrupt Level group mask. */
4994 #define TC1_CCAINTLVL_gp 0 /* Compare or Capture A Interrupt Level group position. */
4995 #define TC1_CCAINTLVL0_bm (1<<0) /* Compare or Capture A Interrupt Level bit 0 mask. */
4996 #define TC1_CCAINTLVL0_bp 0 /* Compare or Capture A Interrupt Level bit 0 position. */
4997 #define TC1_CCAINTLVL1_bm (1<<1) /* Compare or Capture A Interrupt Level bit 1 mask. */
4998 #define TC1_CCAINTLVL1_bp 1 /* Compare or Capture A Interrupt Level bit 1 position. */
4999 
5000 
5001 /* TC1.CTRLFCLR bit masks and bit positions */
5002 #define TC1_CMD_gm 0x0C /* Command group mask. */
5003 #define TC1_CMD_gp 2 /* Command group position. */
5004 #define TC1_CMD0_bm (1<<2) /* Command bit 0 mask. */
5005 #define TC1_CMD0_bp 2 /* Command bit 0 position. */
5006 #define TC1_CMD1_bm (1<<3) /* Command bit 1 mask. */
5007 #define TC1_CMD1_bp 3 /* Command bit 1 position. */
5008 
5009 #define TC1_LUPD_bm 0x02 /* Lock Update bit mask. */
5010 #define TC1_LUPD_bp 1 /* Lock Update bit position. */
5011 
5012 #define TC1_DIR_bm 0x01 /* Direction bit mask. */
5013 #define TC1_DIR_bp 0 /* Direction bit position. */
5014 
5015 
5016 /* TC1.CTRLFSET bit masks and bit positions */
5017 /* TC1_CMD_gm Predefined. */
5018 /* TC1_CMD_gp Predefined. */
5019 /* TC1_CMD0_bm Predefined. */
5020 /* TC1_CMD0_bp Predefined. */
5021 /* TC1_CMD1_bm Predefined. */
5022 /* TC1_CMD1_bp Predefined. */
5023 
5024 /* TC1_LUPD_bm Predefined. */
5025 /* TC1_LUPD_bp Predefined. */
5026 
5027 /* TC1_DIR_bm Predefined. */
5028 /* TC1_DIR_bp Predefined. */
5029 
5030 
5031 /* TC1.CTRLGCLR bit masks and bit positions */
5032 #define TC1_CCBBV_bm 0x04 /* Compare or Capture B Buffer Valid bit mask. */
5033 #define TC1_CCBBV_bp 2 /* Compare or Capture B Buffer Valid bit position. */
5034 
5035 #define TC1_CCABV_bm 0x02 /* Compare or Capture A Buffer Valid bit mask. */
5036 #define TC1_CCABV_bp 1 /* Compare or Capture A Buffer Valid bit position. */
5037 
5038 #define TC1_PERBV_bm 0x01 /* Period Buffer Valid bit mask. */
5039 #define TC1_PERBV_bp 0 /* Period Buffer Valid bit position. */
5040 
5041 
5042 /* TC1.CTRLGSET bit masks and bit positions */
5043 /* TC1_CCBBV_bm Predefined. */
5044 /* TC1_CCBBV_bp Predefined. */
5045 
5046 /* TC1_CCABV_bm Predefined. */
5047 /* TC1_CCABV_bp Predefined. */
5048 
5049 /* TC1_PERBV_bm Predefined. */
5050 /* TC1_PERBV_bp Predefined. */
5051 
5052 
5053 /* TC1.INTFLAGS bit masks and bit positions */
5054 #define TC1_CCBIF_bm 0x20 /* Compare or Capture B Interrupt Flag bit mask. */
5055 #define TC1_CCBIF_bp 5 /* Compare or Capture B Interrupt Flag bit position. */
5056 
5057 #define TC1_CCAIF_bm 0x10 /* Compare or Capture A Interrupt Flag bit mask. */
5058 #define TC1_CCAIF_bp 4 /* Compare or Capture A Interrupt Flag bit position. */
5059 
5060 #define TC1_ERRIF_bm 0x02 /* Error Interrupt Flag bit mask. */
5061 #define TC1_ERRIF_bp 1 /* Error Interrupt Flag bit position. */
5062 
5063 #define TC1_OVFIF_bm 0x01 /* Overflow Interrupt Flag bit mask. */
5064 #define TC1_OVFIF_bp 0 /* Overflow Interrupt Flag bit position. */
5065 
5066 
5067 /* AWEX.CTRL bit masks and bit positions */
5068 #define AWEX_PGM_bm 0x20 /* Pattern Generation Mode bit mask. */
5069 #define AWEX_PGM_bp 5 /* Pattern Generation Mode bit position. */
5070 
5071 #define AWEX_CWCM_bm 0x10 /* Common Waveform Channel Mode bit mask. */
5072 #define AWEX_CWCM_bp 4 /* Common Waveform Channel Mode bit position. */
5073 
5074 #define AWEX_DTICCDEN_bm 0x08 /* Dead Time Insertion Compare Channel D Enable bit mask. */
5075 #define AWEX_DTICCDEN_bp 3 /* Dead Time Insertion Compare Channel D Enable bit position. */
5076 
5077 #define AWEX_DTICCCEN_bm 0x04 /* Dead Time Insertion Compare Channel C Enable bit mask. */
5078 #define AWEX_DTICCCEN_bp 2 /* Dead Time Insertion Compare Channel C Enable bit position. */
5079 
5080 #define AWEX_DTICCBEN_bm 0x02 /* Dead Time Insertion Compare Channel B Enable bit mask. */
5081 #define AWEX_DTICCBEN_bp 1 /* Dead Time Insertion Compare Channel B Enable bit position. */
5082 
5083 #define AWEX_DTICCAEN_bm 0x01 /* Dead Time Insertion Compare Channel A Enable bit mask. */
5084 #define AWEX_DTICCAEN_bp 0 /* Dead Time Insertion Compare Channel A Enable bit position. */
5085 
5086 
5087 /* AWEX.FDCTRL bit masks and bit positions */
5088 #define AWEX_FDDBD_bm 0x10 /* Fault Detect on Disable Break Disable bit mask. */
5089 #define AWEX_FDDBD_bp 4 /* Fault Detect on Disable Break Disable bit position. */
5090 
5091 #define AWEX_FDMODE_bm 0x04 /* Fault Detect Mode bit mask. */
5092 #define AWEX_FDMODE_bp 2 /* Fault Detect Mode bit position. */
5093 
5094 #define AWEX_FDACT_gm 0x03 /* Fault Detect Action group mask. */
5095 #define AWEX_FDACT_gp 0 /* Fault Detect Action group position. */
5096 #define AWEX_FDACT0_bm (1<<0) /* Fault Detect Action bit 0 mask. */
5097 #define AWEX_FDACT0_bp 0 /* Fault Detect Action bit 0 position. */
5098 #define AWEX_FDACT1_bm (1<<1) /* Fault Detect Action bit 1 mask. */
5099 #define AWEX_FDACT1_bp 1 /* Fault Detect Action bit 1 position. */
5100 
5101 
5102 /* AWEX.STATUS bit masks and bit positions */
5103 #define AWEX_FDF_bm 0x04 /* Fault Detect Flag bit mask. */
5104 #define AWEX_FDF_bp 2 /* Fault Detect Flag bit position. */
5105 
5106 #define AWEX_DTHSBUFV_bm 0x02 /* Dead Time High Side Buffer Valid bit mask. */
5107 #define AWEX_DTHSBUFV_bp 1 /* Dead Time High Side Buffer Valid bit position. */
5108 
5109 #define AWEX_DTLSBUFV_bm 0x01 /* Dead Time Low Side Buffer Valid bit mask. */
5110 #define AWEX_DTLSBUFV_bp 0 /* Dead Time Low Side Buffer Valid bit position. */
5111 
5112 
5113 /* HIRES.CTRLA bit masks and bit positions */
5114 #define HIRES_HREN_gm 0x03 /* High Resolution Enable group mask. */
5115 #define HIRES_HREN_gp 0 /* High Resolution Enable group position. */
5116 #define HIRES_HREN0_bm (1<<0) /* High Resolution Enable bit 0 mask. */
5117 #define HIRES_HREN0_bp 0 /* High Resolution Enable bit 0 position. */
5118 #define HIRES_HREN1_bm (1<<1) /* High Resolution Enable bit 1 mask. */
5119 #define HIRES_HREN1_bp 1 /* High Resolution Enable bit 1 position. */
5120 
5121 
5122 /* USART - Universal Asynchronous Receiver-Transmitter */
5123 /* USART.STATUS bit masks and bit positions */
5124 #define USART_RXCIF_bm 0x80 /* Receive Interrupt Flag bit mask. */
5125 #define USART_RXCIF_bp 7 /* Receive Interrupt Flag bit position. */
5126 
5127 #define USART_TXCIF_bm 0x40 /* Transmit Interrupt Flag bit mask. */
5128 #define USART_TXCIF_bp 6 /* Transmit Interrupt Flag bit position. */
5129 
5130 #define USART_DREIF_bm 0x20 /* Data Register Empty Flag bit mask. */
5131 #define USART_DREIF_bp 5 /* Data Register Empty Flag bit position. */
5132 
5133 #define USART_FERR_bm 0x10 /* Frame Error bit mask. */
5134 #define USART_FERR_bp 4 /* Frame Error bit position. */
5135 
5136 #define USART_BUFOVF_bm 0x08 /* Buffer Overflow bit mask. */
5137 #define USART_BUFOVF_bp 3 /* Buffer Overflow bit position. */
5138 
5139 #define USART_PERR_bm 0x04 /* Parity Error bit mask. */
5140 #define USART_PERR_bp 2 /* Parity Error bit position. */
5141 
5142 #define USART_RXB8_bm 0x01 /* Receive Bit 8 bit mask. */
5143 #define USART_RXB8_bp 0 /* Receive Bit 8 bit position. */
5144 
5145 
5146 /* USART.CTRLA bit masks and bit positions */
5147 #define USART_RXCINTLVL_gm 0x30 /* Receive Interrupt Level group mask. */
5148 #define USART_RXCINTLVL_gp 4 /* Receive Interrupt Level group position. */
5149 #define USART_RXCINTLVL0_bm (1<<4) /* Receive Interrupt Level bit 0 mask. */
5150 #define USART_RXCINTLVL0_bp 4 /* Receive Interrupt Level bit 0 position. */
5151 #define USART_RXCINTLVL1_bm (1<<5) /* Receive Interrupt Level bit 1 mask. */
5152 #define USART_RXCINTLVL1_bp 5 /* Receive Interrupt Level bit 1 position. */
5153 
5154 #define USART_TXCINTLVL_gm 0x0C /* Transmit Interrupt Level group mask. */
5155 #define USART_TXCINTLVL_gp 2 /* Transmit Interrupt Level group position. */
5156 #define USART_TXCINTLVL0_bm (1<<2) /* Transmit Interrupt Level bit 0 mask. */
5157 #define USART_TXCINTLVL0_bp 2 /* Transmit Interrupt Level bit 0 position. */
5158 #define USART_TXCINTLVL1_bm (1<<3) /* Transmit Interrupt Level bit 1 mask. */
5159 #define USART_TXCINTLVL1_bp 3 /* Transmit Interrupt Level bit 1 position. */
5160 
5161 #define USART_DREINTLVL_gm 0x03 /* Data Register Empty Interrupt Level group mask. */
5162 #define USART_DREINTLVL_gp 0 /* Data Register Empty Interrupt Level group position. */
5163 #define USART_DREINTLVL0_bm (1<<0) /* Data Register Empty Interrupt Level bit 0 mask. */
5164 #define USART_DREINTLVL0_bp 0 /* Data Register Empty Interrupt Level bit 0 position. */
5165 #define USART_DREINTLVL1_bm (1<<1) /* Data Register Empty Interrupt Level bit 1 mask. */
5166 #define USART_DREINTLVL1_bp 1 /* Data Register Empty Interrupt Level bit 1 position. */
5167 
5168 
5169 /* USART.CTRLB bit masks and bit positions */
5170 #define USART_RXEN_bm 0x10 /* Receiver Enable bit mask. */
5171 #define USART_RXEN_bp 4 /* Receiver Enable bit position. */
5172 
5173 #define USART_TXEN_bm 0x08 /* Transmitter Enable bit mask. */
5174 #define USART_TXEN_bp 3 /* Transmitter Enable bit position. */
5175 
5176 #define USART_CLK2X_bm 0x04 /* Double transmission speed bit mask. */
5177 #define USART_CLK2X_bp 2 /* Double transmission speed bit position. */
5178 
5179 #define USART_MPCM_bm 0x02 /* Multi-processor Communication Mode bit mask. */
5180 #define USART_MPCM_bp 1 /* Multi-processor Communication Mode bit position. */
5181 
5182 #define USART_TXB8_bm 0x01 /* Transmit bit 8 bit mask. */
5183 #define USART_TXB8_bp 0 /* Transmit bit 8 bit position. */
5184 
5185 
5186 /* USART.CTRLC bit masks and bit positions */
5187 #define USART_CMODE_gm 0xC0 /* Communication Mode group mask. */
5188 #define USART_CMODE_gp 6 /* Communication Mode group position. */
5189 #define USART_CMODE0_bm (1<<6) /* Communication Mode bit 0 mask. */
5190 #define USART_CMODE0_bp 6 /* Communication Mode bit 0 position. */
5191 #define USART_CMODE1_bm (1<<7) /* Communication Mode bit 1 mask. */
5192 #define USART_CMODE1_bp 7 /* Communication Mode bit 1 position. */
5193 
5194 #define USART_PMODE_gm 0x30 /* Parity Mode group mask. */
5195 #define USART_PMODE_gp 4 /* Parity Mode group position. */
5196 #define USART_PMODE0_bm (1<<4) /* Parity Mode bit 0 mask. */
5197 #define USART_PMODE0_bp 4 /* Parity Mode bit 0 position. */
5198 #define USART_PMODE1_bm (1<<5) /* Parity Mode bit 1 mask. */
5199 #define USART_PMODE1_bp 5 /* Parity Mode bit 1 position. */
5200 
5201 #define USART_SBMODE_bm 0x08 /* Stop Bit Mode bit mask. */
5202 #define USART_SBMODE_bp 3 /* Stop Bit Mode bit position. */
5203 
5204 #define USART_CHSIZE_gm 0x07 /* Character Size group mask. */
5205 #define USART_CHSIZE_gp 0 /* Character Size group position. */
5206 #define USART_CHSIZE0_bm (1<<0) /* Character Size bit 0 mask. */
5207 #define USART_CHSIZE0_bp 0 /* Character Size bit 0 position. */
5208 #define USART_CHSIZE1_bm (1<<1) /* Character Size bit 1 mask. */
5209 #define USART_CHSIZE1_bp 1 /* Character Size bit 1 position. */
5210 #define USART_CHSIZE2_bm (1<<2) /* Character Size bit 2 mask. */
5211 #define USART_CHSIZE2_bp 2 /* Character Size bit 2 position. */
5212 
5213 
5214 /* USART.BAUDCTRLA bit masks and bit positions */
5215 #define USART_BSEL_gm 0xFF /* Baud Rate Selection Bits [7:0] group mask. */
5216 #define USART_BSEL_gp 0 /* Baud Rate Selection Bits [7:0] group position. */
5217 #define USART_BSEL0_bm (1<<0) /* Baud Rate Selection Bits [7:0] bit 0 mask. */
5218 #define USART_BSEL0_bp 0 /* Baud Rate Selection Bits [7:0] bit 0 position. */
5219 #define USART_BSEL1_bm (1<<1) /* Baud Rate Selection Bits [7:0] bit 1 mask. */
5220 #define USART_BSEL1_bp 1 /* Baud Rate Selection Bits [7:0] bit 1 position. */
5221 #define USART_BSEL2_bm (1<<2) /* Baud Rate Selection Bits [7:0] bit 2 mask. */
5222 #define USART_BSEL2_bp 2 /* Baud Rate Selection Bits [7:0] bit 2 position. */
5223 #define USART_BSEL3_bm (1<<3) /* Baud Rate Selection Bits [7:0] bit 3 mask. */
5224 #define USART_BSEL3_bp 3 /* Baud Rate Selection Bits [7:0] bit 3 position. */
5225 #define USART_BSEL4_bm (1<<4) /* Baud Rate Selection Bits [7:0] bit 4 mask. */
5226 #define USART_BSEL4_bp 4 /* Baud Rate Selection Bits [7:0] bit 4 position. */
5227 #define USART_BSEL5_bm (1<<5) /* Baud Rate Selection Bits [7:0] bit 5 mask. */
5228 #define USART_BSEL5_bp 5 /* Baud Rate Selection Bits [7:0] bit 5 position. */
5229 #define USART_BSEL6_bm (1<<6) /* Baud Rate Selection Bits [7:0] bit 6 mask. */
5230 #define USART_BSEL6_bp 6 /* Baud Rate Selection Bits [7:0] bit 6 position. */
5231 #define USART_BSEL7_bm (1<<7) /* Baud Rate Selection Bits [7:0] bit 7 mask. */
5232 #define USART_BSEL7_bp 7 /* Baud Rate Selection Bits [7:0] bit 7 position. */
5233 
5234 
5235 /* USART.BAUDCTRLB bit masks and bit positions */
5236 #define USART_BSCALE_gm 0xF0 /* Baud Rate Scale group mask. */
5237 #define USART_BSCALE_gp 4 /* Baud Rate Scale group position. */
5238 #define USART_BSCALE0_bm (1<<4) /* Baud Rate Scale bit 0 mask. */
5239 #define USART_BSCALE0_bp 4 /* Baud Rate Scale bit 0 position. */
5240 #define USART_BSCALE1_bm (1<<5) /* Baud Rate Scale bit 1 mask. */
5241 #define USART_BSCALE1_bp 5 /* Baud Rate Scale bit 1 position. */
5242 #define USART_BSCALE2_bm (1<<6) /* Baud Rate Scale bit 2 mask. */
5243 #define USART_BSCALE2_bp 6 /* Baud Rate Scale bit 2 position. */
5244 #define USART_BSCALE3_bm (1<<7) /* Baud Rate Scale bit 3 mask. */
5245 #define USART_BSCALE3_bp 7 /* Baud Rate Scale bit 3 position. */
5246 
5247 /* USART_BSEL_gm Predefined. */
5248 /* USART_BSEL_gp Predefined. */
5249 /* USART_BSEL0_bm Predefined. */
5250 /* USART_BSEL0_bp Predefined. */
5251 /* USART_BSEL1_bm Predefined. */
5252 /* USART_BSEL1_bp Predefined. */
5253 /* USART_BSEL2_bm Predefined. */
5254 /* USART_BSEL2_bp Predefined. */
5255 /* USART_BSEL3_bm Predefined. */
5256 /* USART_BSEL3_bp Predefined. */
5257 
5258 
5259 /* SPI - Serial Peripheral Interface */
5260 /* SPI.CTRL bit masks and bit positions */
5261 #define SPI_CLK2X_bm 0x80 /* Enable Double Speed bit mask. */
5262 #define SPI_CLK2X_bp 7 /* Enable Double Speed bit position. */
5263 
5264 #define SPI_ENABLE_bm 0x40 /* Enable Module bit mask. */
5265 #define SPI_ENABLE_bp 6 /* Enable Module bit position. */
5266 
5267 #define SPI_DORD_bm 0x20 /* Data Order Setting bit mask. */
5268 #define SPI_DORD_bp 5 /* Data Order Setting bit position. */
5269 
5270 #define SPI_MASTER_bm 0x10 /* Master Operation Enable bit mask. */
5271 #define SPI_MASTER_bp 4 /* Master Operation Enable bit position. */
5272 
5273 #define SPI_MODE_gm 0x0C /* SPI Mode group mask. */
5274 #define SPI_MODE_gp 2 /* SPI Mode group position. */
5275 #define SPI_MODE0_bm (1<<2) /* SPI Mode bit 0 mask. */
5276 #define SPI_MODE0_bp 2 /* SPI Mode bit 0 position. */
5277 #define SPI_MODE1_bm (1<<3) /* SPI Mode bit 1 mask. */
5278 #define SPI_MODE1_bp 3 /* SPI Mode bit 1 position. */
5279 
5280 #define SPI_PRESCALER_gm 0x03 /* Prescaler group mask. */
5281 #define SPI_PRESCALER_gp 0 /* Prescaler group position. */
5282 #define SPI_PRESCALER0_bm (1<<0) /* Prescaler bit 0 mask. */
5283 #define SPI_PRESCALER0_bp 0 /* Prescaler bit 0 position. */
5284 #define SPI_PRESCALER1_bm (1<<1) /* Prescaler bit 1 mask. */
5285 #define SPI_PRESCALER1_bp 1 /* Prescaler bit 1 position. */
5286 
5287 
5288 /* SPI.INTCTRL bit masks and bit positions */
5289 #define SPI_INTLVL_gm 0x03 /* Interrupt level group mask. */
5290 #define SPI_INTLVL_gp 0 /* Interrupt level group position. */
5291 #define SPI_INTLVL0_bm (1<<0) /* Interrupt level bit 0 mask. */
5292 #define SPI_INTLVL0_bp 0 /* Interrupt level bit 0 position. */
5293 #define SPI_INTLVL1_bm (1<<1) /* Interrupt level bit 1 mask. */
5294 #define SPI_INTLVL1_bp 1 /* Interrupt level bit 1 position. */
5295 
5296 
5297 /* SPI.STATUS bit masks and bit positions */
5298 #define SPI_IF_bm 0x80 /* Interrupt Flag bit mask. */
5299 #define SPI_IF_bp 7 /* Interrupt Flag bit position. */
5300 
5301 #define SPI_WRCOL_bm 0x40 /* Write Collision bit mask. */
5302 #define SPI_WRCOL_bp 6 /* Write Collision bit position. */
5303 
5304 
5305 /* IRCOM - IR Communication Module */
5306 /* IRCOM.CTRL bit masks and bit positions */
5307 #define IRCOM_EVSEL_gm 0x0F /* Event Channel Select group mask. */
5308 #define IRCOM_EVSEL_gp 0 /* Event Channel Select group position. */
5309 #define IRCOM_EVSEL0_bm (1<<0) /* Event Channel Select bit 0 mask. */
5310 #define IRCOM_EVSEL0_bp 0 /* Event Channel Select bit 0 position. */
5311 #define IRCOM_EVSEL1_bm (1<<1) /* Event Channel Select bit 1 mask. */
5312 #define IRCOM_EVSEL1_bp 1 /* Event Channel Select bit 1 position. */
5313 #define IRCOM_EVSEL2_bm (1<<2) /* Event Channel Select bit 2 mask. */
5314 #define IRCOM_EVSEL2_bp 2 /* Event Channel Select bit 2 position. */
5315 #define IRCOM_EVSEL3_bm (1<<3) /* Event Channel Select bit 3 mask. */
5316 #define IRCOM_EVSEL3_bp 3 /* Event Channel Select bit 3 position. */
5317 
5318 
5319 
5320 // Generic Port Pins
5321 
5322 #define PIN0_bm 0x01
5323 #define PIN0_bp 0
5324 #define PIN1_bm 0x02
5325 #define PIN1_bp 1
5326 #define PIN2_bm 0x04
5327 #define PIN2_bp 2
5328 #define PIN3_bm 0x08
5329 #define PIN3_bp 3
5330 #define PIN4_bm 0x10
5331 #define PIN4_bp 4
5332 #define PIN5_bm 0x20
5333 #define PIN5_bp 5
5334 #define PIN6_bm 0x40
5335 #define PIN6_bp 6
5336 #define PIN7_bm 0x80
5337 #define PIN7_bp 7
5338 
5339 
5340 /* ========== Interrupt Vector Definitions ========== */
5341 /* Vector 0 is the reset vector */
5342 
5343 /* OSC interrupt vectors */
5344 #define OSC_XOSCF_vect_num 1
5345 #define OSC_XOSCF_vect _VECTOR(1) /* External Oscillator Failure Interrupt (NMI) */
5346 
5347 /* PORTC interrupt vectors */
5348 #define PORTC_INT0_vect_num 2
5349 #define PORTC_INT0_vect _VECTOR(2) /* External Interrupt 0 */
5350 #define PORTC_INT1_vect_num 3
5351 #define PORTC_INT1_vect _VECTOR(3) /* External Interrupt 1 */
5352 
5353 /* PORTR interrupt vectors */
5354 #define PORTR_INT0_vect_num 4
5355 #define PORTR_INT0_vect _VECTOR(4) /* External Interrupt 0 */
5356 #define PORTR_INT1_vect_num 5
5357 #define PORTR_INT1_vect _VECTOR(5) /* External Interrupt 1 */
5358 
5359 /* RTC interrupt vectors */
5360 #define RTC_OVF_vect_num 10
5361 #define RTC_OVF_vect _VECTOR(10) /* Overflow Interrupt */
5362 #define RTC_COMP_vect_num 11
5363 #define RTC_COMP_vect _VECTOR(11) /* Compare Interrupt */
5364 
5365 /* TWIC interrupt vectors */
5366 #define TWIC_TWIS_vect_num 12
5367 #define TWIC_TWIS_vect _VECTOR(12) /* TWI Slave Interrupt */
5368 #define TWIC_TWIM_vect_num 13
5369 #define TWIC_TWIM_vect _VECTOR(13) /* TWI Master Interrupt */
5370 
5371 /* TCC0 interrupt vectors */
5372 #define TCC0_OVF_vect_num 14
5373 #define TCC0_OVF_vect _VECTOR(14) /* Overflow Interrupt */
5374 #define TCC0_ERR_vect_num 15
5375 #define TCC0_ERR_vect _VECTOR(15) /* Error Interrupt */
5376 #define TCC0_CCA_vect_num 16
5377 #define TCC0_CCA_vect _VECTOR(16) /* Compare or Capture A Interrupt */
5378 #define TCC0_CCB_vect_num 17
5379 #define TCC0_CCB_vect _VECTOR(17) /* Compare or Capture B Interrupt */
5380 #define TCC0_CCC_vect_num 18
5381 #define TCC0_CCC_vect _VECTOR(18) /* Compare or Capture C Interrupt */
5382 #define TCC0_CCD_vect_num 19
5383 #define TCC0_CCD_vect _VECTOR(19) /* Compare or Capture D Interrupt */
5384 
5385 /* TCC1 interrupt vectors */
5386 #define TCC1_OVF_vect_num 20
5387 #define TCC1_OVF_vect _VECTOR(20) /* Overflow Interrupt */
5388 #define TCC1_ERR_vect_num 21
5389 #define TCC1_ERR_vect _VECTOR(21) /* Error Interrupt */
5390 #define TCC1_CCA_vect_num 22
5391 #define TCC1_CCA_vect _VECTOR(22) /* Compare or Capture A Interrupt */
5392 #define TCC1_CCB_vect_num 23
5393 #define TCC1_CCB_vect _VECTOR(23) /* Compare or Capture B Interrupt */
5394 
5395 /* SPIC interrupt vectors */
5396 #define SPIC_INT_vect_num 24
5397 #define SPIC_INT_vect _VECTOR(24) /* SPI Interrupt */
5398 
5399 /* USARTC0 interrupt vectors */
5400 #define USARTC0_RXC_vect_num 25
5401 #define USARTC0_RXC_vect _VECTOR(25) /* Reception Complete Interrupt */
5402 #define USARTC0_DRE_vect_num 26
5403 #define USARTC0_DRE_vect _VECTOR(26) /* Data Register Empty Interrupt */
5404 #define USARTC0_TXC_vect_num 27
5405 #define USARTC0_TXC_vect _VECTOR(27) /* Transmission Complete Interrupt */
5406 
5407 /* NVM interrupt vectors */
5408 #define NVM_EE_vect_num 32
5409 #define NVM_EE_vect _VECTOR(32) /* EE Interrupt */
5410 #define NVM_SPM_vect_num 33
5411 #define NVM_SPM_vect _VECTOR(33) /* SPM Interrupt */
5412 
5413 /* PORTB interrupt vectors */
5414 #define PORTB_INT0_vect_num 34
5415 #define PORTB_INT0_vect _VECTOR(34) /* External Interrupt 0 */
5416 #define PORTB_INT1_vect_num 35
5417 #define PORTB_INT1_vect _VECTOR(35) /* External Interrupt 1 */
5418 
5419 /* PORTE interrupt vectors */
5420 #define PORTE_INT0_vect_num 43
5421 #define PORTE_INT0_vect _VECTOR(43) /* External Interrupt 0 */
5422 #define PORTE_INT1_vect_num 44
5423 #define PORTE_INT1_vect _VECTOR(44) /* External Interrupt 1 */
5424 
5425 /* TCE0 interrupt vectors */
5426 #define TCE0_OVF_vect_num 47
5427 #define TCE0_OVF_vect _VECTOR(47) /* Overflow Interrupt */
5428 #define TCE0_ERR_vect_num 48
5429 #define TCE0_ERR_vect _VECTOR(48) /* Error Interrupt */
5430 #define TCE0_CCA_vect_num 49
5431 #define TCE0_CCA_vect _VECTOR(49) /* Compare or Capture A Interrupt */
5432 #define TCE0_CCB_vect_num 50
5433 #define TCE0_CCB_vect _VECTOR(50) /* Compare or Capture B Interrupt */
5434 #define TCE0_CCC_vect_num 51
5435 #define TCE0_CCC_vect _VECTOR(51) /* Compare or Capture C Interrupt */
5436 #define TCE0_CCD_vect_num 52
5437 #define TCE0_CCD_vect _VECTOR(52) /* Compare or Capture D Interrupt */
5438 
5439 /* USARTE0 interrupt vectors */
5440 #define USARTE0_RXC_vect_num 58
5441 #define USARTE0_RXC_vect _VECTOR(58) /* Reception Complete Interrupt */
5442 #define USARTE0_DRE_vect_num 59
5443 #define USARTE0_DRE_vect _VECTOR(59) /* Data Register Empty Interrupt */
5444 #define USARTE0_TXC_vect_num 60
5445 #define USARTE0_TXC_vect _VECTOR(60) /* Transmission Complete Interrupt */
5446 
5447 /* PORTD interrupt vectors */
5448 #define PORTD_INT0_vect_num 64
5449 #define PORTD_INT0_vect _VECTOR(64) /* External Interrupt 0 */
5450 #define PORTD_INT1_vect_num 65
5451 #define PORTD_INT1_vect _VECTOR(65) /* External Interrupt 1 */
5452 
5453 /* PORTA interrupt vectors */
5454 #define PORTA_INT0_vect_num 66
5455 #define PORTA_INT0_vect _VECTOR(66) /* External Interrupt 0 */
5456 #define PORTA_INT1_vect_num 67
5457 #define PORTA_INT1_vect _VECTOR(67) /* External Interrupt 1 */
5458 
5459 /* ACA interrupt vectors */
5460 #define ACA_AC0_vect_num 68
5461 #define ACA_AC0_vect _VECTOR(68) /* AC0 Interrupt */
5462 #define ACA_AC1_vect_num 69
5463 #define ACA_AC1_vect _VECTOR(69) /* AC1 Interrupt */
5464 #define ACA_ACW_vect_num 70
5465 #define ACA_ACW_vect _VECTOR(70) /* ACW Window Mode Interrupt */
5466 
5467 /* ADCA interrupt vectors */
5468 #define ADCA_CH0_vect_num 71
5469 #define ADCA_CH0_vect _VECTOR(71) /* Interrupt 0 */
5470 
5471 /* TCD0 interrupt vectors */
5472 #define TCD0_OVF_vect_num 77
5473 #define TCD0_OVF_vect _VECTOR(77) /* Overflow Interrupt */
5474 #define TCD0_ERR_vect_num 78
5475 #define TCD0_ERR_vect _VECTOR(78) /* Error Interrupt */
5476 #define TCD0_CCA_vect_num 79
5477 #define TCD0_CCA_vect _VECTOR(79) /* Compare or Capture A Interrupt */
5478 #define TCD0_CCB_vect_num 80
5479 #define TCD0_CCB_vect _VECTOR(80) /* Compare or Capture B Interrupt */
5480 #define TCD0_CCC_vect_num 81
5481 #define TCD0_CCC_vect _VECTOR(81) /* Compare or Capture C Interrupt */
5482 #define TCD0_CCD_vect_num 82
5483 #define TCD0_CCD_vect _VECTOR(82) /* Compare or Capture D Interrupt */
5484 
5485 /* SPID interrupt vectors */
5486 #define SPID_INT_vect_num 87
5487 #define SPID_INT_vect _VECTOR(87) /* SPI Interrupt */
5488 
5489 /* USARTD0 interrupt vectors */
5490 #define USARTD0_RXC_vect_num 88
5491 #define USARTD0_RXC_vect _VECTOR(88) /* Reception Complete Interrupt */
5492 #define USARTD0_DRE_vect_num 89
5493 #define USARTD0_DRE_vect _VECTOR(89) /* Data Register Empty Interrupt */
5494 #define USARTD0_TXC_vect_num 90
5495 #define USARTD0_TXC_vect _VECTOR(90) /* Transmission Complete Interrupt */
5496 
5497 /* PORTF interrupt vectors */
5498 #define PORTF_INT0_vect_num 104
5499 #define PORTF_INT0_vect _VECTOR(104) /* External Interrupt 0 */
5500 #define PORTF_INT1_vect_num 105
5501 #define PORTF_INT1_vect _VECTOR(105) /* External Interrupt 1 */
5502 
5503 /* TCF0 interrupt vectors */
5504 #define TCF0_OVF_vect_num 108
5505 #define TCF0_OVF_vect _VECTOR(108) /* Overflow Interrupt */
5506 #define TCF0_ERR_vect_num 109
5507 #define TCF0_ERR_vect _VECTOR(109) /* Error Interrupt */
5508 #define TCF0_CCA_vect_num 110
5509 #define TCF0_CCA_vect _VECTOR(110) /* Compare or Capture A Interrupt */
5510 #define TCF0_CCB_vect_num 111
5511 #define TCF0_CCB_vect _VECTOR(111) /* Compare or Capture B Interrupt */
5512 #define TCF0_CCC_vect_num 112
5513 #define TCF0_CCC_vect _VECTOR(112) /* Compare or Capture C Interrupt */
5514 #define TCF0_CCD_vect_num 113
5515 #define TCF0_CCD_vect _VECTOR(113) /* Compare or Capture D Interrupt */
5516 
5517 
5518 #define _VECTOR_SIZE 4 /* Size of individual vector. */
5519 #define _VECTORS_SIZE (114 * _VECTOR_SIZE)
5520 
5521 
5522 /* ========== Constants ========== */
5523 
5524 #define PROGMEM_START (0x0000)
5525 #define PROGMEM_SIZE (69632)
5526 #define PROGMEM_PAGE_SIZE (256)
5527 #define PROGMEM_END (PROGMEM_START + PROGMEM_SIZE - 1)
5528 
5529 #define APP_SECTION_START (0x0000)
5530 #define APP_SECTION_SIZE (65536)
5531 #define APP_SECTION_PAGE_SIZE (256)
5532 #define APP_SECTION_END (APP_SECTION_START + APP_SECTION_SIZE - 1)
5533 
5534 #define APPTABLE_SECTION_START (0x0F000)
5535 #define APPTABLE_SECTION_SIZE (4096)
5536 #define APPTABLE_SECTION_PAGE_SIZE (256)
5537 #define APPTABLE_SECTION_END (APPTABLE_SECTION_START + APPTABLE_SECTION_SIZE - 1)
5538 
5539 #define BOOT_SECTION_START (0x10000)
5540 #define BOOT_SECTION_SIZE (4096)
5541 #define BOOT_SECTION_PAGE_SIZE (256)
5542 #define BOOT_SECTION_END (BOOT_SECTION_START + BOOT_SECTION_SIZE - 1)
5543 
5544 #define DATAMEM_START (0x0000)
5545 #define DATAMEM_SIZE (12288)
5546 #define DATAMEM_PAGE_SIZE (0)
5547 #define DATAMEM_END (DATAMEM_START + DATAMEM_SIZE - 1)
5548 
5549 #define IO_START (0x0000)
5550 #define IO_SIZE (4096)
5551 #define IO_PAGE_SIZE (0)
5552 #define IO_END (IO_START + IO_SIZE - 1)
5553 
5554 #define MAPPED_EEPROM_START (0x1000)
5555 #define MAPPED_EEPROM_SIZE (2048)
5556 #define MAPPED_EEPROM_PAGE_SIZE (0)
5557 #define MAPPED_EEPROM_END (MAPPED_EEPROM_START + MAPPED_EEPROM_SIZE - 1)
5558 
5559 #define INTERNAL_SRAM_START (0x2000)
5560 #define INTERNAL_SRAM_SIZE (4096)
5561 #define INTERNAL_SRAM_PAGE_SIZE (0)
5562 #define INTERNAL_SRAM_END (INTERNAL_SRAM_START + INTERNAL_SRAM_SIZE - 1)
5563 
5564 #define EEPROM_START (0x0000)
5565 #define EEPROM_SIZE (2048)
5566 #define EEPROM_PAGE_SIZE (32)
5567 #define EEPROM_END (EEPROM_START + EEPROM_SIZE - 1)
5568 
5569 #define FUSE_START (0x0000)
5570 #define FUSE_SIZE (6)
5571 #define FUSE_PAGE_SIZE (0)
5572 #define FUSE_END (FUSE_START + FUSE_SIZE - 1)
5573 
5574 #define LOCKBIT_START (0x0000)
5575 #define LOCKBIT_SIZE (1)
5576 #define LOCKBIT_PAGE_SIZE (0)
5577 #define LOCKBIT_END (LOCKBIT_START + LOCKBIT_SIZE - 1)
5578 
5579 #define SIGNATURES_START (0x0000)
5580 #define SIGNATURES_SIZE (3)
5581 #define SIGNATURES_PAGE_SIZE (0)
5582 #define SIGNATURES_END (SIGNATURES_START + SIGNATURES_SIZE - 1)
5583 
5584 #define USER_SIGNATURES_START (0x0000)
5585 #define USER_SIGNATURES_SIZE (256)
5586 #define USER_SIGNATURES_PAGE_SIZE (0)
5587 #define USER_SIGNATURES_END (USER_SIGNATURES_START + USER_SIGNATURES_SIZE - 1)
5588 
5589 #define PROD_SIGNATURES_START (0x0000)
5590 #define PROD_SIGNATURES_SIZE (52)
5591 #define PROD_SIGNATURES_PAGE_SIZE (0)
5592 #define PROD_SIGNATURES_END (PROD_SIGNATURES_START + PROD_SIGNATURES_SIZE - 1)
5593 
5594 #define FLASHEND PROGMEM_END
5595 #define SPM_PAGESIZE PROGMEM_PAGE_SIZE
5596 #define RAMSTART INTERNAL_SRAM_START
5597 #define RAMSIZE INTERNAL_SRAM_SIZE
5598 #define RAMEND INTERNAL_SRAM_END
5599 #define XRAMSTART EXTERNAL_SRAM_START
5600 #define XRAMSIZE EXTERNAL_SRAM_SIZE
5601 #define XRAMEND INTERNAL_SRAM_END
5602 #define E2END EEPROM_END
5603 #define E2PAGESIZE EEPROM_PAGE_SIZE
5604 
5605 
5606 /* ========== Fuses ========== */
5607 #define FUSE_MEMORY_SIZE 6
5608 
5609 /* Fuse Byte 0 */
5610 #define FUSE_USERID0 (unsigned char)~_BV(0) /* User ID Bit 0 */
5611 #define FUSE_USERID1 (unsigned char)~_BV(1) /* User ID Bit 1 */
5612 #define FUSE_USERID2 (unsigned char)~_BV(2) /* User ID Bit 2 */
5613 #define FUSE_USERID3 (unsigned char)~_BV(3) /* User ID Bit 3 */
5614 #define FUSE_USERID4 (unsigned char)~_BV(4) /* User ID Bit 4 */
5615 #define FUSE_USERID5 (unsigned char)~_BV(5) /* User ID Bit 5 */
5616 #define FUSE_USERID6 (unsigned char)~_BV(6) /* User ID Bit 6 */
5617 #define FUSE_USERID7 (unsigned char)~_BV(7) /* User ID Bit 7 */
5618 #define FUSE0_DEFAULT (0xFF)
5619 
5620 /* Fuse Byte 1 */
5621 #define FUSE_WDP0 (unsigned char)~_BV(0) /* Watchdog Timeout Period Bit 0 */
5622 #define FUSE_WDP1 (unsigned char)~_BV(1) /* Watchdog Timeout Period Bit 1 */
5623 #define FUSE_WDP2 (unsigned char)~_BV(2) /* Watchdog Timeout Period Bit 2 */
5624 #define FUSE_WDP3 (unsigned char)~_BV(3) /* Watchdog Timeout Period Bit 3 */
5625 #define FUSE_WDWP0 (unsigned char)~_BV(4) /* Watchdog Window Timeout Period Bit 0 */
5626 #define FUSE_WDWP1 (unsigned char)~_BV(5) /* Watchdog Window Timeout Period Bit 1 */
5627 #define FUSE_WDWP2 (unsigned char)~_BV(6) /* Watchdog Window Timeout Period Bit 2 */
5628 #define FUSE_WDWP3 (unsigned char)~_BV(7) /* Watchdog Window Timeout Period Bit 3 */
5629 #define FUSE1_DEFAULT (0xFF)
5630 
5631 /* Fuse Byte 2 */
5632 #define FUSE_BODPD0 (unsigned char)~_BV(0) /* BOD Operation in Power-Down Mode Bit 0 */
5633 #define FUSE_BODPD1 (unsigned char)~_BV(1) /* BOD Operation in Power-Down Mode Bit 1 */
5634 #define FUSE_BOOTRST (unsigned char)~_BV(6) /* Boot Loader Section Reset Vector */
5635 #define FUSE_DVSDON (unsigned char)~_BV(7) /* Spike Detector Enable */
5636 #define FUSE2_DEFAULT (0xFF)
5637 
5638 /* Fuse Byte 3 Reserved */
5639 
5640 /* Fuse Byte 4 */
5641 #define FUSE_WDLOCK (unsigned char)~_BV(1) /* Watchdog Timer Lock */
5642 #define FUSE_SUT0 (unsigned char)~_BV(2) /* Start-up Time Bit 0 */
5643 #define FUSE_SUT1 (unsigned char)~_BV(3) /* Start-up Time Bit 1 */
5644 #define FUSE4_DEFAULT (0xFF)
5645 
5646 /* Fuse Byte 5 */
5647 #define FUSE_BODLVL0 (unsigned char)~_BV(0) /* Brown Out Detection Voltage Level Bit 0 */
5648 #define FUSE_BODLVL1 (unsigned char)~_BV(1) /* Brown Out Detection Voltage Level Bit 1 */
5649 #define FUSE_BODLVL2 (unsigned char)~_BV(2) /* Brown Out Detection Voltage Level Bit 2 */
5650 #define FUSE_EESAVE (unsigned char)~_BV(3) /* Preserve EEPROM Through Chip Erase */
5651 #define FUSE_BODACT0 (unsigned char)~_BV(4) /* BOD Operation in Active Mode Bit 0 */
5652 #define FUSE_BODACT1 (unsigned char)~_BV(5) /* BOD Operation in Active Mode Bit 1 */
5653 #define FUSE5_DEFAULT (0xFF)
5654 
5655 
5656 /* ========== Lock Bits ========== */
5657 #define __LOCK_BITS_EXIST
5658 #define __BOOT_LOCK_APPLICATION_TABLE_BITS_EXIST
5659 #define __BOOT_LOCK_APPLICATION_BITS_EXIST
5660 #define __BOOT_LOCK_BOOT_BITS_EXIST
5661 
5662 
5663 /* ========== Signature ========== */
5664 #define SIGNATURE_0 0x1E
5665 #define SIGNATURE_1 0x96
5666 #define SIGNATURE_2 0x4A
5667 
5669 #endif /* _AVR_ATxmega64D3_H_ */
Definition: iox128a1.h:237
Definition: iox128a1.h:905
Definition: iox128a1.h:1853
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:697
Definition: iox128a1.h:1960
Definition: iox128a1.h:308
Definition: iox128a1.h:134
Definition: iox128a1.h:1661
Definition: iox128a1.h:328
Definition: iox128a1.h:1593
Definition: iox128a1.h:962
Definition: iox128a1.h:2555
Definition: iox128a1.h:2238
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:389
Definition: iox128a1.h:342
Definition: iox128a1.h:933
Definition: iox128a1.h:2302
Definition: iox128a1.h:1976
Definition: iox128a1.h:945