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