avrd/gen/
attiny417.rs

1//! The AVR ATtiny417 microcontroller
2//!
3//! # Variants
4//! |        | Pinout | Mcu age | Operating temperature | Operating voltage | Max speed |
5//! |--------|--------|---------|-----------------------|-------------------|-----------|
6//! | ATtiny417-MFR | QFN24 | VQFN24 | -40°C - 125°C | 1.8V - 5.5V | 20 MHz |
7//! | ATtiny417-MNR | QFN24 | VQFN24 | -40°C - 105°C | 1.8V - 5.5V | 20 MHz |
8//!
9
10#![allow(non_upper_case_globals)]
11
12/// Device ID Byte 0.
13pub const DEVICEID0: *mut u8 = 0x0 as *mut u8;
14
15/// Control A.
16pub const CTRLA: *mut u8 = 0x0 as *mut u8;
17
18/// General Purpose IO Register 0.
19pub const GPIOR0: *mut u8 = 0x0 as *mut u8;
20
21/// Data Direction.
22pub const DIR: *mut u8 = 0x0 as *mut u8;
23
24/// Reset Flags.
25///
26/// Bitfields:
27///
28/// | Name | Mask (binary) |
29/// | ---- | ------------- |
30/// | UPDIRF | 100000 |
31/// | PORF | 1 |
32/// | WDRF | 1000 |
33/// | SWRF | 10000 |
34/// | BORF | 10 |
35/// | EXTRF | 100 |
36pub const RSTFR: *mut u8 = 0x0 as *mut u8;
37
38/// User Row Byte 0.
39pub const USERROW0: *mut u8 = 0x0 as *mut u8;
40
41/// MCLK Control A.
42///
43/// Bitfields:
44///
45/// | Name | Mask (binary) |
46/// | ---- | ------------- |
47/// | CLKOUT | 10000000 |
48pub const MCLKCTRLA: *mut u8 = 0x0 as *mut u8;
49
50/// Receive Data Low Byte.
51pub const RXDATAL: *mut u8 = 0x0 as *mut u8;
52
53/// Lock bits.
54pub const LOCKBIT: *mut u8 = 0x0 as *mut u8;
55
56/// Watchdog Configuration.
57pub const WDTCFG: *mut u8 = 0x0 as *mut u8;
58
59/// Asynchronous Channel Strobe.
60pub const ASYNCSTROBE: *mut u8 = 0x0 as *mut u8;
61
62/// User Row Byte 1.
63pub const USERROW1: *mut u8 = 0x1 as *mut u8;
64
65/// Output Value.
66pub const OUT: *mut u8 = 0x1 as *mut u8;
67
68/// MCLK Control B.
69///
70/// Bitfields:
71///
72/// | Name | Mask (binary) |
73/// | ---- | ------------- |
74/// | PEN | 1 |
75/// | PDIV | 11110 |
76pub const MCLKCTRLB: *mut u8 = 0x1 as *mut u8;
77
78/// General Purpose IO Register 1.
79pub const GPIOR1: *mut u8 = 0x1 as *mut u8;
80
81/// Receive Data High Byte.
82///
83/// Bitfields:
84///
85/// | Name | Mask (binary) |
86/// | ---- | ------------- |
87/// | PERR | 10 |
88/// | RXCIF | 10000000 |
89/// | FERR | 100 |
90/// | BUFOVF | 1000000 |
91pub const RXDATAH: *mut u8 = 0x1 as *mut u8;
92
93/// Software Reset.
94///
95/// Bitfields:
96///
97/// | Name | Mask (binary) |
98/// | ---- | ------------- |
99/// | SWRE | 1 |
100pub const SWRR: *mut u8 = 0x1 as *mut u8;
101
102/// Status.
103///
104/// Bitfields:
105///
106/// | Name | Mask (binary) |
107/// | ---- | ------------- |
108/// | SYNCBUSY | 1 |
109pub const STATUS: *mut u8 = 0x1 as *mut u8;
110
111/// Data Direction Set.
112pub const DIRSET: *mut u8 = 0x1 as *mut u8;
113
114/// Sequential Control 0.
115///
116/// Bitfields:
117///
118/// | Name | Mask (binary) |
119/// | ---- | ------------- |
120/// | SEQSEL | 111 |
121pub const SEQCTRL0: *mut u8 = 0x1 as *mut u8;
122
123/// Device ID Byte 1.
124pub const DEVICEID1: *mut u8 = 0x1 as *mut u8;
125
126/// BOD Configuration.
127///
128/// Bitfields:
129///
130/// | Name | Mask (binary) |
131/// | ---- | ------------- |
132/// | LVL | 11100000 |
133/// | ACTIVE | 1100 |
134/// | SAMPFREQ | 10000 |
135/// | SLEEP | 11 |
136pub const BODCFG: *mut u8 = 0x1 as *mut u8;
137
138/// Control B.
139///
140/// Bitfields:
141///
142/// | Name | Mask (binary) |
143/// | ---- | ------------- |
144/// | DAC0REFEN | 1 |
145/// | ADC0REFEN | 10 |
146pub const CTRLB: *mut u8 = 0x1 as *mut u8;
147
148/// Revision ID.
149pub const REVID: *mut u8 = 0x1 as *mut u8;
150
151/// Synchronous Channel Strobe.
152pub const SYNCSTROBE: *mut u8 = 0x1 as *mut u8;
153
154/// User Row Byte 2.
155pub const USERROW2: *mut u8 = 0x2 as *mut u8;
156
157/// External Break.
158///
159/// Bitfields:
160///
161/// | Name | Mask (binary) |
162/// | ---- | ------------- |
163/// | ENEXTBRK | 1 |
164pub const EXTBRK: *mut u8 = 0x2 as *mut u8;
165
166/// Data Direction Clear.
167pub const DIRCLR: *mut u8 = 0x2 as *mut u8;
168
169/// Transmit Data Low Byte.
170pub const TXDATAL: *mut u8 = 0x2 as *mut u8;
171
172/// MCLK Lock.
173///
174/// Bitfields:
175///
176/// | Name | Mask (binary) |
177/// | ---- | ------------- |
178/// | LOCKEN | 1 |
179pub const MCLKLOCK: *mut u8 = 0x2 as *mut u8;
180
181/// Interrupt Level 0 Priority.
182pub const LVL0PRI: *mut u8 = 0x2 as *mut u8;
183
184/// Oscillator Configuration.
185///
186/// Bitfields:
187///
188/// | Name | Mask (binary) |
189/// | ---- | ------------- |
190/// | FREQSEL | 11 |
191/// | OSCLOCK | 10000000 |
192pub const OSCCFG: *mut u8 = 0x2 as *mut u8;
193
194/// Mux Control A.
195///
196/// Bitfields:
197///
198/// | Name | Mask (binary) |
199/// | ---- | ------------- |
200/// | INVERT | 10000000 |
201/// | MUXNEG | 11 |
202pub const MUXCTRLA: *mut u8 = 0x2 as *mut u8;
203
204/// Asynchronous Channel 0 Generator Selection.
205pub const ASYNCCH0: *mut u8 = 0x2 as *mut u8;
206
207/// Device ID Byte 2.
208pub const DEVICEID2: *mut u8 = 0x2 as *mut u8;
209
210/// General Purpose IO Register 2.
211pub const GPIOR2: *mut u8 = 0x2 as *mut u8;
212
213/// Input Value.
214pub const IN: *mut u8 = 0x2 as *mut u8;
215
216/// Data Direction Toggle.
217pub const DIRTGL: *mut u8 = 0x3 as *mut u8;
218
219/// General Purpose IO Register 3.
220pub const GPIOR3: *mut u8 = 0x3 as *mut u8;
221
222/// Serial Number Byte 0.
223pub const SERNUM0: *mut u8 = 0x3 as *mut u8;
224
225/// Interrupt Flags.
226pub const INTFLAGS: *mut u8 = 0x3 as *mut u8;
227
228/// User Row Byte 3.
229pub const USERROW3: *mut u8 = 0x3 as *mut u8;
230
231/// Master Control A.
232///
233/// Bitfields:
234///
235/// | Name | Mask (binary) |
236/// | ---- | ------------- |
237/// | RIEN | 10000000 |
238/// | TIMEOUT | 1100 |
239/// | QCEN | 10000 |
240/// | WIEN | 1000000 |
241pub const MCTRLA: *mut u8 = 0x3 as *mut u8;
242
243/// Control D.
244///
245/// Bitfields:
246///
247/// | Name | Mask (binary) |
248/// | ---- | ------------- |
249/// | CMPAVAL | 1111 |
250/// | CMPBVAL | 11110000 |
251pub const CTRLD: *mut u8 = 0x3 as *mut u8;
252
253/// Asynchronous Channel 1 Generator Selection.
254pub const ASYNCCH1: *mut u8 = 0x3 as *mut u8;
255
256/// Interrupt Level 1 Priority Vector.
257pub const LVL1VEC: *mut u8 = 0x3 as *mut u8;
258
259/// Transmit Data High Byte.
260pub const TXDATAH: *mut u8 = 0x3 as *mut u8;
261
262/// MCLK Status.
263///
264/// Bitfields:
265///
266/// | Name | Mask (binary) |
267/// | ---- | ------------- |
268/// | OSC32KS | 100000 |
269/// | XOSC32KS | 1000000 |
270/// | SOSC | 1 |
271/// | OSC20MS | 10000 |
272/// | EXTS | 10000000 |
273pub const MCLKSTATUS: *mut u8 = 0x3 as *mut u8;
274
275/// User Row Byte 4.
276pub const USERROW4: *mut u8 = 0x4 as *mut u8;
277
278/// Configuration Change Protection.
279pub const CCP: *mut u8 = 0x4 as *mut u8;
280
281/// Master Control B.
282///
283/// Bitfields:
284///
285/// | Name | Mask (binary) |
286/// | ---- | ------------- |
287/// | MCMD | 11 |
288/// | FLUSH | 1000 |
289pub const MCTRLB: *mut u8 = 0x4 as *mut u8;
290
291/// Data.
292pub const DATA: *mut u8 = 0x4 as *mut u8;
293
294/// TCD0 Configuration.
295pub const TCD0CFG: *mut u8 = 0x4 as *mut u8;
296
297/// Control E.
298///
299/// Bitfields:
300///
301/// | Name | Mask (binary) |
302/// | ---- | ------------- |
303/// | SCAPTUREA | 1000 |
304/// | SYNC | 10 |
305/// | SCAPTUREB | 10000 |
306/// | SYNCEOC | 1 |
307/// | DISEOC | 10000000 |
308/// | RESTART | 100 |
309pub const CTRLE: *mut u8 = 0x4 as *mut u8;
310
311/// Serial Number Byte 1.
312pub const SERNUM1: *mut u8 = 0x4 as *mut u8;
313
314/// Asynchronous Channel 2 Generator Selection.
315pub const ASYNCCH2: *mut u8 = 0x4 as *mut u8;
316
317/// Control E Clear.
318pub const CTRLECLR: *mut u8 = 0x4 as *mut u8;
319
320/// User Row Byte 5.
321pub const USERROW5: *mut u8 = 0x5 as *mut u8;
322
323/// System Configuration 0.
324///
325/// Bitfields:
326///
327/// | Name | Mask (binary) |
328/// | ---- | ------------- |
329/// | RSTPINCFG | 1100 |
330/// | EESAVE | 1 |
331/// | CRCSRC | 11000000 |
332pub const SYSCFG0: *mut u8 = 0x5 as *mut u8;
333
334/// Serial Number Byte 2.
335pub const SERNUM2: *mut u8 = 0x5 as *mut u8;
336
337/// LUT Control 0 A.
338pub const LUT0CTRLA: *mut u8 = 0x5 as *mut u8;
339
340/// Asynchronous Channel 3 Generator Selection.
341pub const ASYNCCH3: *mut u8 = 0x5 as *mut u8;
342
343/// Sample Control.
344///
345/// Bitfields:
346///
347/// | Name | Mask (binary) |
348/// | ---- | ------------- |
349/// | SAMPLEN | 11111 |
350pub const SAMPCTRL: *mut u8 = 0x5 as *mut u8;
351
352/// Output Value Set.
353pub const OUTSET: *mut u8 = 0x5 as *mut u8;
354
355/// Control E Set.
356pub const CTRLESET: *mut u8 = 0x5 as *mut u8;
357
358/// Master Status.
359///
360/// Bitfields:
361///
362/// | Name | Mask (binary) |
363/// | ---- | ------------- |
364/// | ARBLOST | 1000 |
365/// | WIF | 1000000 |
366/// | BUSSTATE | 11 |
367/// | RIF | 10000000 |
368pub const MSTATUS: *mut u8 = 0x5 as *mut u8;
369
370/// System Configuration 1.
371///
372/// Bitfields:
373///
374/// | Name | Mask (binary) |
375/// | ---- | ------------- |
376/// | SUT | 111 |
377pub const SYSCFG1: *mut u8 = 0x6 as *mut u8;
378
379/// Master Baurd Rate Control.
380pub const MBAUD: *mut u8 = 0x6 as *mut u8;
381
382/// Output Value Clear.
383pub const OUTCLR: *mut u8 = 0x6 as *mut u8;
384
385/// Control F Clear.
386pub const CTRLFCLR: *mut u8 = 0x6 as *mut u8;
387
388/// LUT Control 0 B.
389pub const LUT0CTRLB: *mut u8 = 0x6 as *mut u8;
390
391/// Serial Number Byte 3.
392pub const SERNUM3: *mut u8 = 0x6 as *mut u8;
393
394/// Positive mux input.
395pub const MUXPOS: *mut u8 = 0x6 as *mut u8;
396
397/// User Row Byte 6.
398pub const USERROW6: *mut u8 = 0x6 as *mut u8;
399
400/// LUT Control 0 C.
401pub const LUT0CTRLC: *mut u8 = 0x7 as *mut u8;
402
403/// Control F Set.
404pub const CTRLFSET: *mut u8 = 0x7 as *mut u8;
405
406/// User Row Byte 7.
407pub const USERROW7: *mut u8 = 0x7 as *mut u8;
408
409/// Application Code Section End.
410pub const APPEND: *mut u8 = 0x7 as *mut u8;
411
412/// Control C.
413pub const CTRLC: *mut u8 = 0x7 as *mut u8;
414
415/// Clock Select.
416pub const CLKSEL: *mut u8 = 0x7 as *mut u8;
417
418/// Serial Number Byte 4.
419pub const SERNUM4: *mut u8 = 0x7 as *mut u8;
420
421/// Master Address.
422pub const MADDR: *mut u8 = 0x7 as *mut u8;
423
424/// Output Value Toggle.
425pub const OUTTGL: *mut u8 = 0x7 as *mut u8;
426
427/// Master Data.
428pub const MDATA: *mut u8 = 0x8 as *mut u8;
429
430/// Boot Section End.
431pub const BOOTEND: *mut u8 = 0x8 as *mut u8;
432
433/// Baud Rate low byte.
434pub const BAUDL: *mut u8 = 0x8 as *mut u8;
435
436/// Truth 0.
437pub const TRUTH0: *mut u8 = 0x8 as *mut u8;
438
439/// Baud Rate.
440pub const BAUD: *mut u16 = 0x8 as *mut u16;
441
442/// Serial Number Byte 5.
443pub const SERNUM5: *mut u8 = 0x8 as *mut u8;
444
445/// Address.
446pub const ADDR: *mut u16 = 0x8 as *mut u16;
447
448/// EVCTRLA.
449pub const EVCTRLA: *mut u8 = 0x8 as *mut u8;
450
451/// User Row Byte 8.
452pub const USERROW8: *mut u8 = 0x8 as *mut u8;
453
454/// Address low byte.
455pub const ADDRL: *mut u8 = 0x8 as *mut u8;
456
457/// Command.
458///
459/// Bitfields:
460///
461/// | Name | Mask (binary) |
462/// | ---- | ------------- |
463/// | STCONV | 1 |
464pub const COMMAND: *mut u8 = 0x8 as *mut u8;
465
466/// Voltage level monitor Control.
467///
468/// Bitfields:
469///
470/// | Name | Mask (binary) |
471/// | ---- | ------------- |
472/// | VLMLVL | 11 |
473pub const VLMCTRLA: *mut u8 = 0x8 as *mut u8;
474
475/// Address high byte.
476pub const ADDRH: *mut u8 = 0x9 as *mut u8;
477
478/// Slave Control A.
479///
480/// Bitfields:
481///
482/// | Name | Mask (binary) |
483/// | ---- | ------------- |
484/// | APIEN | 1000000 |
485/// | PMEN | 100 |
486/// | PIEN | 100000 |
487/// | DIEN | 10000000 |
488pub const SCTRLA: *mut u8 = 0x9 as *mut u8;
489
490/// Baud Rate high byte.
491pub const BAUDH: *mut u8 = 0x9 as *mut u8;
492
493/// LUT Control 1 A.
494pub const LUT1CTRLA: *mut u8 = 0x9 as *mut u8;
495
496/// User Row Byte 9.
497pub const USERROW9: *mut u8 = 0x9 as *mut u8;
498
499/// Serial Number Byte 6.
500pub const SERNUM6: *mut u8 = 0x9 as *mut u8;
501
502/// EVCTRLB.
503pub const EVCTRLB: *mut u8 = 0x9 as *mut u8;
504
505/// Temporary Value.
506pub const TEMP: *mut u8 = 0x9 as *mut u8;
507
508/// Count low byte.
509pub const CNTL: *mut u8 = 0xA as *mut u8;
510
511/// Synchronous Channel 0 Generator Selection.
512pub const SYNCCH0: *mut u8 = 0xA as *mut u8;
513
514/// Count.
515pub const CNT: *mut u16 = 0xA as *mut u16;
516
517/// User Row Byte 10.
518pub const USERROW10: *mut u8 = 0xA as *mut u8;
519
520/// Serial Number Byte 7.
521pub const SERNUM7: *mut u8 = 0xA as *mut u8;
522
523/// Slave Control B.
524///
525/// Bitfields:
526///
527/// | Name | Mask (binary) |
528/// | ---- | ------------- |
529/// | SCMD | 11 |
530pub const SCTRLB: *mut u8 = 0xA as *mut u8;
531
532/// LUT Control 1 B.
533pub const LUT1CTRLB: *mut u8 = 0xA as *mut u8;
534
535/// Serial Number Byte 8.
536pub const SERNUM8: *mut u8 = 0xB as *mut u8;
537
538/// Count high byte.
539pub const CNTH: *mut u8 = 0xB as *mut u8;
540
541/// Slave Status.
542///
543/// Bitfields:
544///
545/// | Name | Mask (binary) |
546/// | ---- | ------------- |
547/// | AP | 1 |
548/// | APIF | 1000000 |
549/// | DIF | 10000000 |
550/// | COLL | 1000 |
551pub const SSTATUS: *mut u8 = 0xB as *mut u8;
552
553/// Synchronous Channel 1 Generator Selection.
554pub const SYNCCH1: *mut u8 = 0xB as *mut u8;
555
556/// LUT Control 1 C.
557pub const LUT1CTRLC: *mut u8 = 0xB as *mut u8;
558
559/// User Row Byte 11.
560pub const USERROW11: *mut u8 = 0xB as *mut u8;
561
562/// Debug Control.
563///
564/// Bitfields:
565///
566/// | Name | Mask (binary) |
567/// | ---- | ------------- |
568/// | ABMBP | 10000000 |
569pub const DBGCTRL: *mut u8 = 0xB as *mut u8;
570
571/// User Row Byte 12.
572pub const USERROW12: *mut u8 = 0xC as *mut u8;
573
574/// Truth 1.
575pub const TRUTH1: *mut u8 = 0xC as *mut u8;
576
577/// Event Control.
578///
579/// Bitfields:
580///
581/// | Name | Mask (binary) |
582/// | ---- | ------------- |
583/// | IREI | 1 |
584pub const EVCTRL: *mut u8 = 0xC as *mut u8;
585
586/// Compare low byte.
587pub const CMPL: *mut u8 = 0xC as *mut u8;
588
589/// Compare or Capture.
590pub const CCMP: *mut u16 = 0xC as *mut u16;
591
592/// Compare.
593pub const CMP: *mut u16 = 0xC as *mut u16;
594
595/// Interrupt Control.
596///
597/// Bitfields:
598///
599/// | Name | Mask (binary) |
600/// | ---- | ------------- |
601/// | TRIGB | 1000 |
602/// | OVF | 1 |
603/// | TRIGA | 100 |
604pub const INTCTRL: *mut u8 = 0xC as *mut u8;
605
606/// Serial Number Byte 9.
607pub const SERNUM9: *mut u8 = 0xC as *mut u8;
608
609/// Compare or Capture low byte.
610pub const CCMPL: *mut u8 = 0xC as *mut u8;
611
612/// Slave Address.
613pub const SADDR: *mut u8 = 0xC as *mut u8;
614
615/// Compare or Capture high byte.
616pub const CCMPH: *mut u8 = 0xD as *mut u8;
617
618/// Stack Pointer Low.
619pub const SPL: *mut u8 = 0xD as *mut u8;
620
621/// User Row Byte 13.
622pub const USERROW13: *mut u8 = 0xD as *mut u8;
623
624/// Slave Data.
625pub const SDATA: *mut u8 = 0xD as *mut u8;
626
627/// Compare high byte.
628pub const CMPH: *mut u8 = 0xD as *mut u8;
629
630/// IRCOM Transmitter Pulse Length Control.
631pub const TXPLCTRL: *mut u8 = 0xD as *mut u8;
632
633/// Stack Pointer High.
634pub const SPH: *mut u8 = 0xE as *mut u8;
635
636/// User Row Byte 14.
637pub const USERROW14: *mut u8 = 0xE as *mut u8;
638
639/// IRCOM Receiver Pulse Length Control.
640///
641/// Bitfields:
642///
643/// | Name | Mask (binary) |
644/// | ---- | ------------- |
645/// | RXPL | 1111111 |
646pub const RXPLCTRL: *mut u8 = 0xE as *mut u8;
647
648/// Slave Address Mask.
649///
650/// Bitfields:
651///
652/// | Name | Mask (binary) |
653/// | ---- | ------------- |
654/// | ADDREN | 1 |
655/// | ADDRMASK | 11111110 |
656pub const SADDRMASK: *mut u8 = 0xE as *mut u8;
657
658/// Status Register.
659///
660/// Bitfields:
661///
662/// | Name | Mask (binary) |
663/// | ---- | ------------- |
664/// | Z | 10 |
665/// | S | 10000 |
666/// | H | 100000 |
667/// | I | 10000000 |
668/// | T | 1000000 |
669/// | C | 1 |
670/// | V | 1000 |
671/// | N | 100 |
672pub const SREG: *mut u8 = 0xF as *mut u8;
673
674/// User Row Byte 15.
675pub const USERROW15: *mut u8 = 0xF as *mut u8;
676
677/// Input Control A.
678pub const INPUTCTRLA: *mut u8 = 0x10 as *mut u8;
679
680/// PIT Control A.
681///
682/// Bitfields:
683///
684/// | Name | Mask (binary) |
685/// | ---- | ------------- |
686/// | PITEN | 1 |
687pub const PITCTRLA: *mut u8 = 0x10 as *mut u8;
688
689/// User Row Byte 16.
690pub const USERROW16: *mut u8 = 0x10 as *mut u8;
691
692/// ADC Accumulator Result.
693pub const RES: *mut u16 = 0x10 as *mut u16;
694
695/// OSC20M Control A.
696pub const OSC20MCTRLA: *mut u8 = 0x10 as *mut u8;
697
698/// ADC Accumulator Result low byte.
699pub const RESL: *mut u8 = 0x10 as *mut u8;
700
701/// Pin 0 Control.
702pub const PIN0CTRL: *mut u8 = 0x10 as *mut u8;
703
704/// ADC Accumulator Result high byte.
705pub const RESH: *mut u8 = 0x11 as *mut u8;
706
707/// Input Control B.
708pub const INPUTCTRLB: *mut u8 = 0x11 as *mut u8;
709
710/// User Row Byte 17.
711pub const USERROW17: *mut u8 = 0x11 as *mut u8;
712
713/// Pin 1 Control.
714pub const PIN1CTRL: *mut u8 = 0x11 as *mut u8;
715
716/// OSC20M Calibration A.
717///
718/// Bitfields:
719///
720/// | Name | Mask (binary) |
721/// | ---- | ------------- |
722/// | CALSEL20M | 11000000 |
723/// | CAL20M | 111111 |
724pub const OSC20MCALIBA: *mut u8 = 0x11 as *mut u8;
725
726/// PIT Status.
727///
728/// Bitfields:
729///
730/// | Name | Mask (binary) |
731/// | ---- | ------------- |
732/// | CTRLBUSY | 1 |
733pub const PITSTATUS: *mut u8 = 0x11 as *mut u8;
734
735/// Asynchronous User Ch 0 Input Selection - TCB0.
736pub const ASYNCUSER0: *mut u8 = 0x12 as *mut u8;
737
738/// Fault Control.
739pub const FAULTCTRL: *mut u8 = 0x12 as *mut u8;
740
741/// OSC20M Calibration B.
742///
743/// Bitfields:
744///
745/// | Name | Mask (binary) |
746/// | ---- | ------------- |
747/// | TEMPCAL20M | 1111 |
748pub const OSC20MCALIBB: *mut u8 = 0x12 as *mut u8;
749
750/// PIT Interrupt Control.
751pub const PITINTCTRL: *mut u8 = 0x12 as *mut u8;
752
753/// Window comparator low threshold.
754pub const WINLT: *mut u16 = 0x12 as *mut u16;
755
756/// Pin 2 Control.
757pub const PIN2CTRL: *mut u8 = 0x12 as *mut u8;
758
759/// User Row Byte 18.
760pub const USERROW18: *mut u8 = 0x12 as *mut u8;
761
762/// Window comparator low threshold low byte.
763pub const WINLTL: *mut u8 = 0x12 as *mut u8;
764
765/// Window comparator low threshold high byte.
766pub const WINLTH: *mut u8 = 0x13 as *mut u8;
767
768/// PIT Interrupt Flags.
769pub const PITINTFLAGS: *mut u8 = 0x13 as *mut u8;
770
771/// User Row Byte 19.
772pub const USERROW19: *mut u8 = 0x13 as *mut u8;
773
774/// Asynchronous User Ch 1 Input Selection - ADC0.
775pub const ASYNCUSER1: *mut u8 = 0x13 as *mut u8;
776
777/// Pin 3 Control.
778pub const PIN3CTRL: *mut u8 = 0x13 as *mut u8;
779
780/// Asynchronous User Ch 2 Input Selection - CCL LUT0 Event 0.
781pub const ASYNCUSER2: *mut u8 = 0x14 as *mut u8;
782
783/// Delay Control.
784///
785/// Bitfields:
786///
787/// | Name | Mask (binary) |
788/// | ---- | ------------- |
789/// | DLYSEL | 11 |
790/// | DLYPRESC | 110000 |
791/// | DLYTRIG | 1100 |
792pub const DLYCTRL: *mut u8 = 0x14 as *mut u8;
793
794/// Window comparator high threshold low byte.
795pub const WINHTL: *mut u8 = 0x14 as *mut u8;
796
797/// User Row Byte 20.
798pub const USERROW20: *mut u8 = 0x14 as *mut u8;
799
800/// Window comparator high threshold.
801pub const WINHT: *mut u16 = 0x14 as *mut u16;
802
803/// Pin 4 Control.
804pub const PIN4CTRL: *mut u8 = 0x14 as *mut u8;
805
806/// Delay value.
807pub const DLYVAL: *mut u8 = 0x15 as *mut u8;
808
809/// User Row Byte 21.
810pub const USERROW21: *mut u8 = 0x15 as *mut u8;
811
812/// Window comparator high threshold high byte.
813pub const WINHTH: *mut u8 = 0x15 as *mut u8;
814
815/// Pin 5 Control.
816pub const PIN5CTRL: *mut u8 = 0x15 as *mut u8;
817
818/// Asynchronous User Ch 3 Input Selection - CCL LUT1 Event 0.
819pub const ASYNCUSER3: *mut u8 = 0x15 as *mut u8;
820
821/// PIT Debug control.
822pub const PITDBGCTRL: *mut u8 = 0x15 as *mut u8;
823
824/// User Row Byte 22.
825pub const USERROW22: *mut u8 = 0x16 as *mut u8;
826
827/// Calibration.
828///
829/// Bitfields:
830///
831/// | Name | Mask (binary) |
832/// | ---- | ------------- |
833/// | DUTYCYC | 1 |
834pub const CALIB: *mut u8 = 0x16 as *mut u8;
835
836/// Pin 6 Control.
837pub const PIN6CTRL: *mut u8 = 0x16 as *mut u8;
838
839/// Asynchronous User Ch 4 Input Selection - CCL LUT0 Event 1.
840pub const ASYNCUSER4: *mut u8 = 0x16 as *mut u8;
841
842/// User Row Byte 23.
843pub const USERROW23: *mut u8 = 0x17 as *mut u8;
844
845/// Pin 7 Control.
846pub const PIN7CTRL: *mut u8 = 0x17 as *mut u8;
847
848/// Asynchronous User Ch 5 Input Selection - CCL LUT1 Event 1.
849pub const ASYNCUSER5: *mut u8 = 0x17 as *mut u8;
850
851/// User Row Byte 24.
852pub const USERROW24: *mut u8 = 0x18 as *mut u8;
853
854/// OSC32K Control A.
855pub const OSC32KCTRLA: *mut u8 = 0x18 as *mut u8;
856
857/// Asynchronous User Ch 6 Input Selection - TCD0 Event 0.
858pub const ASYNCUSER6: *mut u8 = 0x18 as *mut u8;
859
860/// Dither Control A.
861///
862/// Bitfields:
863///
864/// | Name | Mask (binary) |
865/// | ---- | ------------- |
866/// | DITHERSEL | 11 |
867pub const DITCTRL: *mut u8 = 0x18 as *mut u8;
868
869/// User Row Byte 25.
870pub const USERROW25: *mut u8 = 0x19 as *mut u8;
871
872/// Asynchronous User Ch 7 Input Selection - TCD0 Event 1.
873pub const ASYNCUSER7: *mut u8 = 0x19 as *mut u8;
874
875/// Dither value.
876///
877/// Bitfields:
878///
879/// | Name | Mask (binary) |
880/// | ---- | ------------- |
881/// | DITHER | 1111 |
882pub const DITVAL: *mut u8 = 0x19 as *mut u8;
883
884/// Asynchronous User Ch 8 Input Selection - Event Out 0.
885pub const ASYNCUSER8: *mut u8 = 0x1A as *mut u8;
886
887/// User Row Byte 26.
888pub const USERROW26: *mut u8 = 0x1A as *mut u8;
889
890/// Asynchronous User Ch 9 Input Selection - Event Out 1.
891pub const ASYNCUSER9: *mut u8 = 0x1B as *mut u8;
892
893/// User Row Byte 27.
894pub const USERROW27: *mut u8 = 0x1B as *mut u8;
895
896/// Asynchronous User Ch 10 Input Selection - Event Out 2.
897pub const ASYNCUSER10: *mut u8 = 0x1C as *mut u8;
898
899/// User Row Byte 28.
900pub const USERROW28: *mut u8 = 0x1C as *mut u8;
901
902/// XOSC32K Control A.
903///
904/// Bitfields:
905///
906/// | Name | Mask (binary) |
907/// | ---- | ------------- |
908/// | SEL | 100 |
909/// | CSUT | 110000 |
910pub const XOSC32KCTRLA: *mut u8 = 0x1C as *mut u8;
911
912/// User Row Byte 29.
913pub const USERROW29: *mut u8 = 0x1D as *mut u8;
914
915/// User Row Byte 30.
916pub const USERROW30: *mut u8 = 0x1E as *mut u8;
917
918/// User Row Byte 31.
919pub const USERROW31: *mut u8 = 0x1F as *mut u8;
920
921/// Temperature Sensor Calibration Byte 0.
922pub const TEMPSENSE0: *mut u8 = 0x20 as *mut u8;
923
924/// Low Count.
925pub const LCNT: *mut u8 = 0x20 as *mut u8;
926
927/// Temperature Sensor Calibration Byte 1.
928pub const TEMPSENSE1: *mut u8 = 0x21 as *mut u8;
929
930/// High Count.
931pub const HCNT: *mut u8 = 0x21 as *mut u8;
932
933/// Capture A.
934pub const CAPTUREA: *mut u16 = 0x22 as *mut u16;
935
936/// Synchronous User Ch 0 Input Selection - TCA0.
937pub const SYNCUSER0: *mut u8 = 0x22 as *mut u8;
938
939/// Capture A low byte.
940pub const CAPTUREAL: *mut u8 = 0x22 as *mut u8;
941
942/// OSC16 error at 3V.
943pub const OSC16ERR3V: *mut u8 = 0x22 as *mut u8;
944
945/// Synchronous User Ch 1 Input Selection - USART0.
946pub const SYNCUSER1: *mut u8 = 0x23 as *mut u8;
947
948/// Capture A high byte.
949pub const CAPTUREAH: *mut u8 = 0x23 as *mut u8;
950
951/// OSC16 error at 5V.
952pub const OSC16ERR5V: *mut u8 = 0x23 as *mut u8;
953
954/// Capture B low byte.
955pub const CAPTUREBL: *mut u8 = 0x24 as *mut u8;
956
957/// Capture B.
958pub const CAPTUREB: *mut u16 = 0x24 as *mut u16;
959
960/// OSC20 error at 3V.
961pub const OSC20ERR3V: *mut u8 = 0x24 as *mut u8;
962
963/// OSC20 error at 5V.
964pub const OSC20ERR5V: *mut u8 = 0x25 as *mut u8;
965
966/// Capture B high byte.
967pub const CAPTUREBH: *mut u8 = 0x25 as *mut u8;
968
969/// Period.
970pub const PER: *mut u16 = 0x26 as *mut u16;
971
972/// Period low byte.
973pub const PERL: *mut u8 = 0x26 as *mut u8;
974
975/// Low Period.
976pub const LPER: *mut u8 = 0x26 as *mut u8;
977
978/// High Period.
979pub const HPER: *mut u8 = 0x27 as *mut u8;
980
981/// Period high byte.
982pub const PERH: *mut u8 = 0x27 as *mut u8;
983
984/// Compare 0.
985pub const CMP0: *mut u16 = 0x28 as *mut u16;
986
987/// Compare 0 low byte.
988pub const CMP0L: *mut u8 = 0x28 as *mut u8;
989
990/// Compare A Set.
991pub const CMPASET: *mut u16 = 0x28 as *mut u16;
992
993/// Low Compare.
994pub const LCMP0: *mut u8 = 0x28 as *mut u8;
995
996/// Compare A Set low byte.
997pub const CMPASETL: *mut u8 = 0x28 as *mut u8;
998
999/// High Compare.
1000pub const HCMP0: *mut u8 = 0x29 as *mut u8;
1001
1002/// Compare A Set high byte.
1003pub const CMPASETH: *mut u8 = 0x29 as *mut u8;
1004
1005/// Compare 0 high byte.
1006pub const CMP0H: *mut u8 = 0x29 as *mut u8;
1007
1008/// Low Compare.
1009pub const LCMP1: *mut u8 = 0x2A as *mut u8;
1010
1011/// Compare A Clear.
1012pub const CMPACLR: *mut u16 = 0x2A as *mut u16;
1013
1014/// Compare 1.
1015pub const CMP1: *mut u16 = 0x2A as *mut u16;
1016
1017/// Compare A Clear low byte.
1018pub const CMPACLRL: *mut u8 = 0x2A as *mut u8;
1019
1020/// Compare 1 low byte.
1021pub const CMP1L: *mut u8 = 0x2A as *mut u8;
1022
1023/// High Compare.
1024pub const HCMP1: *mut u8 = 0x2B as *mut u8;
1025
1026/// Compare 1 high byte.
1027pub const CMP1H: *mut u8 = 0x2B as *mut u8;
1028
1029/// Compare A Clear high byte.
1030pub const CMPACLRH: *mut u8 = 0x2B as *mut u8;
1031
1032/// Compare B Set low byte.
1033pub const CMPBSETL: *mut u8 = 0x2C as *mut u8;
1034
1035/// Compare 2 low byte.
1036pub const CMP2L: *mut u8 = 0x2C as *mut u8;
1037
1038/// Low Compare.
1039pub const LCMP2: *mut u8 = 0x2C as *mut u8;
1040
1041/// Compare 2.
1042pub const CMP2: *mut u16 = 0x2C as *mut u16;
1043
1044/// Compare B Set.
1045pub const CMPBSET: *mut u16 = 0x2C as *mut u16;
1046
1047/// Compare 2 high byte.
1048pub const CMP2H: *mut u8 = 0x2D as *mut u8;
1049
1050/// High Compare.
1051pub const HCMP2: *mut u8 = 0x2D as *mut u8;
1052
1053/// Compare B Set high byte.
1054pub const CMPBSETH: *mut u8 = 0x2D as *mut u8;
1055
1056/// Compare B Clear low byte.
1057pub const CMPBCLRL: *mut u8 = 0x2E as *mut u8;
1058
1059/// Compare B Clear.
1060pub const CMPBCLR: *mut u16 = 0x2E as *mut u16;
1061
1062/// Compare B Clear high byte.
1063pub const CMPBCLRH: *mut u8 = 0x2F as *mut u8;
1064
1065/// Period Buffer.
1066pub const PERBUF: *mut u16 = 0x36 as *mut u16;
1067
1068/// Period Buffer low byte.
1069pub const PERBUFL: *mut u8 = 0x36 as *mut u8;
1070
1071/// Period Buffer high byte.
1072pub const PERBUFH: *mut u8 = 0x37 as *mut u8;
1073
1074/// Compare 0 Buffer low byte.
1075pub const CMP0BUFL: *mut u8 = 0x38 as *mut u8;
1076
1077/// Compare 0 Buffer.
1078pub const CMP0BUF: *mut u16 = 0x38 as *mut u16;
1079
1080/// Compare 0 Buffer high byte.
1081pub const CMP0BUFH: *mut u8 = 0x39 as *mut u8;
1082
1083/// Compare 1 Buffer low byte.
1084pub const CMP1BUFL: *mut u8 = 0x3A as *mut u8;
1085
1086/// Compare 1 Buffer.
1087pub const CMP1BUF: *mut u16 = 0x3A as *mut u16;
1088
1089/// Compare 1 Buffer high byte.
1090pub const CMP1BUFH: *mut u8 = 0x3B as *mut u8;
1091
1092/// Compare 2 Buffer.
1093pub const CMP2BUF: *mut u16 = 0x3C as *mut u16;
1094
1095/// Compare 2 Buffer low byte.
1096pub const CMP2BUFL: *mut u8 = 0x3C as *mut u8;
1097
1098/// Compare 2 Buffer high byte.
1099pub const CMP2BUFH: *mut u8 = 0x3D as *mut u8;
1100
1101/// Bitfield on register `BODCFG`
1102pub const LVL: *mut u8 = 0xE0 as *mut u8;
1103
1104/// Bitfield on register `BODCFG`
1105pub const ACTIVE: *mut u8 = 0xC as *mut u8;
1106
1107/// Bitfield on register `BODCFG`
1108pub const SAMPFREQ: *mut u8 = 0x10 as *mut u8;
1109
1110/// Bitfield on register `BODCFG`
1111pub const SLEEP: *mut u8 = 0x3 as *mut u8;
1112
1113/// Bitfield on register `CALIB`
1114pub const DUTYCYC: *mut u8 = 0x1 as *mut u8;
1115
1116/// Bitfield on register `COMMAND`
1117pub const STCONV: *mut u8 = 0x1 as *mut u8;
1118
1119/// Bitfield on register `CTRLB`
1120pub const DAC0REFEN: *mut u8 = 0x1 as *mut u8;
1121
1122/// Bitfield on register `CTRLB`
1123pub const ADC0REFEN: *mut u8 = 0x2 as *mut u8;
1124
1125/// Bitfield on register `CTRLD`
1126pub const CMPAVAL: *mut u8 = 0xF as *mut u8;
1127
1128/// Bitfield on register `CTRLD`
1129pub const CMPBVAL: *mut u8 = 0xF0 as *mut u8;
1130
1131/// Bitfield on register `CTRLE`
1132pub const SCAPTUREA: *mut u8 = 0x8 as *mut u8;
1133
1134/// Bitfield on register `CTRLE`
1135pub const SYNC: *mut u8 = 0x2 as *mut u8;
1136
1137/// Bitfield on register `CTRLE`
1138pub const SCAPTUREB: *mut u8 = 0x10 as *mut u8;
1139
1140/// Bitfield on register `CTRLE`
1141pub const SYNCEOC: *mut u8 = 0x1 as *mut u8;
1142
1143/// Bitfield on register `CTRLE`
1144pub const DISEOC: *mut u8 = 0x80 as *mut u8;
1145
1146/// Bitfield on register `CTRLE`
1147pub const RESTART: *mut u8 = 0x4 as *mut u8;
1148
1149/// Bitfield on register `DBGCTRL`
1150pub const ABMBP: *mut u8 = 0x80 as *mut u8;
1151
1152/// Bitfield on register `DITCTRL`
1153pub const DITHERSEL: *mut u8 = 0x3 as *mut u8;
1154
1155/// Bitfield on register `DITVAL`
1156pub const DITHER: *mut u8 = 0xF as *mut u8;
1157
1158/// Bitfield on register `DLYCTRL`
1159pub const DLYSEL: *mut u8 = 0x3 as *mut u8;
1160
1161/// Bitfield on register `DLYCTRL`
1162pub const DLYPRESC: *mut u8 = 0x30 as *mut u8;
1163
1164/// Bitfield on register `DLYCTRL`
1165pub const DLYTRIG: *mut u8 = 0xC as *mut u8;
1166
1167/// Bitfield on register `EVCTRL`
1168pub const IREI: *mut u8 = 0x1 as *mut u8;
1169
1170/// Bitfield on register `EXTBRK`
1171pub const ENEXTBRK: *mut u8 = 0x1 as *mut u8;
1172
1173/// Bitfield on register `INTCTRL`
1174pub const TRIGB: *mut u8 = 0x8 as *mut u8;
1175
1176/// Bitfield on register `INTCTRL`
1177pub const OVF: *mut u8 = 0x1 as *mut u8;
1178
1179/// Bitfield on register `INTCTRL`
1180pub const TRIGA: *mut u8 = 0x4 as *mut u8;
1181
1182/// Bitfield on register `MCLKCTRLA`
1183pub const CLKOUT: *mut u8 = 0x80 as *mut u8;
1184
1185/// Bitfield on register `MCLKCTRLB`
1186pub const PEN: *mut u8 = 0x1 as *mut u8;
1187
1188/// Bitfield on register `MCLKCTRLB`
1189pub const PDIV: *mut u8 = 0x1E as *mut u8;
1190
1191/// Bitfield on register `MCLKLOCK`
1192pub const LOCKEN: *mut u8 = 0x1 as *mut u8;
1193
1194/// Bitfield on register `MCLKSTATUS`
1195pub const OSC32KS: *mut u8 = 0x20 as *mut u8;
1196
1197/// Bitfield on register `MCLKSTATUS`
1198pub const XOSC32KS: *mut u8 = 0x40 as *mut u8;
1199
1200/// Bitfield on register `MCLKSTATUS`
1201pub const SOSC: *mut u8 = 0x1 as *mut u8;
1202
1203/// Bitfield on register `MCLKSTATUS`
1204pub const OSC20MS: *mut u8 = 0x10 as *mut u8;
1205
1206/// Bitfield on register `MCLKSTATUS`
1207pub const EXTS: *mut u8 = 0x80 as *mut u8;
1208
1209/// Bitfield on register `MCTRLA`
1210pub const RIEN: *mut u8 = 0x80 as *mut u8;
1211
1212/// Bitfield on register `MCTRLA`
1213pub const TIMEOUT: *mut u8 = 0xC as *mut u8;
1214
1215/// Bitfield on register `MCTRLA`
1216pub const QCEN: *mut u8 = 0x10 as *mut u8;
1217
1218/// Bitfield on register `MCTRLA`
1219pub const WIEN: *mut u8 = 0x40 as *mut u8;
1220
1221/// Bitfield on register `MCTRLB`
1222pub const MCMD: *mut u8 = 0x3 as *mut u8;
1223
1224/// Bitfield on register `MCTRLB`
1225pub const FLUSH: *mut u8 = 0x8 as *mut u8;
1226
1227/// Bitfield on register `MSTATUS`
1228pub const ARBLOST: *mut u8 = 0x8 as *mut u8;
1229
1230/// Bitfield on register `MSTATUS`
1231pub const WIF: *mut u8 = 0x40 as *mut u8;
1232
1233/// Bitfield on register `MSTATUS`
1234pub const BUSSTATE: *mut u8 = 0x3 as *mut u8;
1235
1236/// Bitfield on register `MSTATUS`
1237pub const RIF: *mut u8 = 0x80 as *mut u8;
1238
1239/// Bitfield on register `MUXCTRLA`
1240pub const INVERT: *mut u8 = 0x80 as *mut u8;
1241
1242/// Bitfield on register `MUXCTRLA`
1243pub const MUXNEG: *mut u8 = 0x3 as *mut u8;
1244
1245/// Bitfield on register `OSC20MCALIBA`
1246pub const CALSEL20M: *mut u8 = 0xC0 as *mut u8;
1247
1248/// Bitfield on register `OSC20MCALIBA`
1249pub const CAL20M: *mut u8 = 0x3F as *mut u8;
1250
1251/// Bitfield on register `OSC20MCALIBB`
1252pub const TEMPCAL20M: *mut u8 = 0xF as *mut u8;
1253
1254/// Bitfield on register `OSCCFG`
1255pub const FREQSEL: *mut u8 = 0x3 as *mut u8;
1256
1257/// Bitfield on register `OSCCFG`
1258pub const OSCLOCK: *mut u8 = 0x80 as *mut u8;
1259
1260/// Bitfield on register `PITCTRLA`
1261pub const PITEN: *mut u8 = 0x1 as *mut u8;
1262
1263/// Bitfield on register `PITSTATUS`
1264pub const CTRLBUSY: *mut u8 = 0x1 as *mut u8;
1265
1266/// Bitfield on register `RSTFR`
1267pub const UPDIRF: *mut u8 = 0x20 as *mut u8;
1268
1269/// Bitfield on register `RSTFR`
1270pub const PORF: *mut u8 = 0x1 as *mut u8;
1271
1272/// Bitfield on register `RSTFR`
1273pub const WDRF: *mut u8 = 0x8 as *mut u8;
1274
1275/// Bitfield on register `RSTFR`
1276pub const SWRF: *mut u8 = 0x10 as *mut u8;
1277
1278/// Bitfield on register `RSTFR`
1279pub const BORF: *mut u8 = 0x2 as *mut u8;
1280
1281/// Bitfield on register `RSTFR`
1282pub const EXTRF: *mut u8 = 0x4 as *mut u8;
1283
1284/// Bitfield on register `RXDATAH`
1285pub const PERR: *mut u8 = 0x2 as *mut u8;
1286
1287/// Bitfield on register `RXDATAH`
1288pub const RXCIF: *mut u8 = 0x80 as *mut u8;
1289
1290/// Bitfield on register `RXDATAH`
1291pub const FERR: *mut u8 = 0x4 as *mut u8;
1292
1293/// Bitfield on register `RXDATAH`
1294pub const BUFOVF: *mut u8 = 0x40 as *mut u8;
1295
1296/// Bitfield on register `RXPLCTRL`
1297pub const RXPL: *mut u8 = 0x7F as *mut u8;
1298
1299/// Bitfield on register `SADDRMASK`
1300pub const ADDREN: *mut u8 = 0x1 as *mut u8;
1301
1302/// Bitfield on register `SADDRMASK`
1303pub const ADDRMASK: *mut u8 = 0xFE as *mut u8;
1304
1305/// Bitfield on register `SAMPCTRL`
1306pub const SAMPLEN: *mut u8 = 0x1F as *mut u8;
1307
1308/// Bitfield on register `SCTRLA`
1309pub const APIEN: *mut u8 = 0x40 as *mut u8;
1310
1311/// Bitfield on register `SCTRLA`
1312pub const PMEN: *mut u8 = 0x4 as *mut u8;
1313
1314/// Bitfield on register `SCTRLA`
1315pub const PIEN: *mut u8 = 0x20 as *mut u8;
1316
1317/// Bitfield on register `SCTRLA`
1318pub const DIEN: *mut u8 = 0x80 as *mut u8;
1319
1320/// Bitfield on register `SCTRLB`
1321pub const SCMD: *mut u8 = 0x3 as *mut u8;
1322
1323/// Bitfield on register `SEQCTRL0`
1324pub const SEQSEL: *mut u8 = 0x7 as *mut u8;
1325
1326/// Bitfield on register `SREG`
1327pub const Z: *mut u8 = 0x2 as *mut u8;
1328
1329/// Bitfield on register `SREG`
1330pub const S: *mut u8 = 0x10 as *mut u8;
1331
1332/// Bitfield on register `SREG`
1333pub const H: *mut u8 = 0x20 as *mut u8;
1334
1335/// Bitfield on register `SREG`
1336pub const I: *mut u8 = 0x80 as *mut u8;
1337
1338/// Bitfield on register `SREG`
1339pub const T: *mut u8 = 0x40 as *mut u8;
1340
1341/// Bitfield on register `SREG`
1342pub const C: *mut u8 = 0x1 as *mut u8;
1343
1344/// Bitfield on register `SREG`
1345pub const V: *mut u8 = 0x8 as *mut u8;
1346
1347/// Bitfield on register `SREG`
1348pub const N: *mut u8 = 0x4 as *mut u8;
1349
1350/// Bitfield on register `SSTATUS`
1351pub const AP: *mut u8 = 0x1 as *mut u8;
1352
1353/// Bitfield on register `SSTATUS`
1354pub const APIF: *mut u8 = 0x40 as *mut u8;
1355
1356/// Bitfield on register `SSTATUS`
1357pub const DIF: *mut u8 = 0x80 as *mut u8;
1358
1359/// Bitfield on register `SSTATUS`
1360pub const COLL: *mut u8 = 0x8 as *mut u8;
1361
1362/// Bitfield on register `STATUS`
1363pub const SYNCBUSY: *mut u8 = 0x1 as *mut u8;
1364
1365/// Bitfield on register `SWRR`
1366pub const SWRE: *mut u8 = 0x1 as *mut u8;
1367
1368/// Bitfield on register `SYSCFG0`
1369pub const RSTPINCFG: *mut u8 = 0xC as *mut u8;
1370
1371/// Bitfield on register `SYSCFG0`
1372pub const EESAVE: *mut u8 = 0x1 as *mut u8;
1373
1374/// Bitfield on register `SYSCFG0`
1375pub const CRCSRC: *mut u8 = 0xC0 as *mut u8;
1376
1377/// Bitfield on register `SYSCFG1`
1378pub const SUT: *mut u8 = 0x7 as *mut u8;
1379
1380/// Bitfield on register `VLMCTRLA`
1381pub const VLMLVL: *mut u8 = 0x3 as *mut u8;
1382
1383/// Bitfield on register `XOSC32KCTRLA`
1384pub const SEL: *mut u8 = 0x4 as *mut u8;
1385
1386/// Bitfield on register `XOSC32KCTRLA`
1387pub const CSUT: *mut u8 = 0x30 as *mut u8;
1388
1389/// Hysteresis Mode select
1390#[allow(non_upper_case_globals)]
1391pub mod ac_hysmode {
1392   /// No hysteresis.
1393   pub const OFF: u32 = 0x0;
1394   /// 10mV hysteresis.
1395   pub const _10mV: u32 = 0x1;
1396   /// 25mV hysteresis.
1397   pub const _25mV: u32 = 0x2;
1398   /// 50mV hysteresis.
1399   pub const _50mV: u32 = 0x3;
1400}
1401
1402/// Interrupt Mode select
1403#[allow(non_upper_case_globals)]
1404pub mod ac_intmode {
1405   /// Any Edge.
1406   pub const BOTHEDGE: u32 = 0x0;
1407   /// Negative Edge.
1408   pub const NEGEDGE: u32 = 0x2;
1409   /// Positive Edge.
1410   pub const POSEDGE: u32 = 0x3;
1411}
1412
1413/// Low Power Mode select
1414#[allow(non_upper_case_globals)]
1415pub mod ac_lpmode {
1416   /// Low power mode disabled.
1417   pub const DIS: u32 = 0x0;
1418   /// Low power mode enabled.
1419   pub const EN: u32 = 0x1;
1420}
1421
1422/// Negative Input MUX Selection select
1423#[allow(non_upper_case_globals)]
1424pub mod ac_muxneg {
1425   /// Negative Pin 0.
1426   pub const PIN0: u32 = 0x0;
1427   /// Negative Pin 1.
1428   pub const PIN1: u32 = 0x1;
1429   /// Voltage Reference.
1430   pub const VREF: u32 = 0x2;
1431   /// DAC output.
1432   pub const DAC: u32 = 0x3;
1433}
1434
1435/// Positive Input MUX Selection select
1436#[allow(non_upper_case_globals)]
1437pub mod ac_muxpos {
1438   /// Positive Pin 0.
1439   pub const PIN0: u32 = 0x0;
1440   /// Positive Pin 1.
1441   pub const PIN1: u32 = 0x1;
1442}
1443
1444/// Automatic Sampling Delay Variation select
1445#[allow(non_upper_case_globals)]
1446pub mod adc_asdv {
1447   /// The Automatic Sampling Delay Variation is disabled.
1448   pub const ASVOFF: u32 = 0x0;
1449   /// The Automatic Sampling Delay Variation is enabled.
1450   pub const ASVON: u32 = 0x1;
1451}
1452
1453/// Duty Cycle select
1454#[allow(non_upper_case_globals)]
1455pub mod adc_dutycyc {
1456   /// 50% Duty cycle.
1457   pub const DUTY50: u32 = 0x0;
1458   /// 25% Duty cycle.
1459   pub const DUTY25: u32 = 0x1;
1460}
1461
1462/// Initial Delay Selection select
1463#[allow(non_upper_case_globals)]
1464pub mod adc_initdly {
1465   /// Delay 0 CLK_ADC cycles.
1466   pub const DLY0: u32 = 0x0;
1467   /// Delay 16 CLK_ADC cycles.
1468   pub const DLY16: u32 = 0x1;
1469   /// Delay 32 CLK_ADC cycles.
1470   pub const DLY32: u32 = 0x2;
1471   /// Delay 64 CLK_ADC cycles.
1472   pub const DLY64: u32 = 0x3;
1473   /// Delay 128 CLK_ADC cycles.
1474   pub const DLY128: u32 = 0x4;
1475   /// Delay 256 CLK_ADC cycles.
1476   pub const DLY256: u32 = 0x5;
1477}
1478
1479/// Analog Channel Selection Bits select
1480#[allow(non_upper_case_globals)]
1481pub mod adc_muxpos {
1482   /// ADC input pin 0.
1483   pub const AIN0: u32 = 0x0;
1484   /// ADC input pin 1.
1485   pub const AIN1: u32 = 0x1;
1486   /// ADC input pin 2.
1487   pub const AIN2: u32 = 0x2;
1488   /// ADC input pin 3.
1489   pub const AIN3: u32 = 0x3;
1490   /// ADC input pin 4.
1491   pub const AIN4: u32 = 0x4;
1492   /// ADC input pin 5.
1493   pub const AIN5: u32 = 0x5;
1494   /// ADC input pin 6.
1495   pub const AIN6: u32 = 0x6;
1496   /// ADC input pin 7.
1497   pub const AIN7: u32 = 0x7;
1498   /// ADC input pin 8.
1499   pub const AIN8: u32 = 0x8;
1500   /// ADC input pin 9.
1501   pub const AIN9: u32 = 0x9;
1502   /// ADC input pin 10.
1503   pub const AIN10: u32 = 0xA;
1504   /// ADC input pin 11.
1505   pub const AIN11: u32 = 0xB;
1506   /// DAC0.
1507   pub const DAC0: u32 = 0x1C;
1508   /// Internal Ref.
1509   pub const INTREF: u32 = 0x1D;
1510   /// Temp sensor.
1511   pub const TEMPSENSE: u32 = 0x1E;
1512   /// GND.
1513   pub const GND: u32 = 0x1F;
1514}
1515
1516/// Clock Pre-scaler select
1517#[allow(non_upper_case_globals)]
1518pub mod adc_presc {
1519   /// CLK_PER divided by 2.
1520   pub const DIV2: u32 = 0x0;
1521   /// CLK_PER divided by 4.
1522   pub const DIV4: u32 = 0x1;
1523   /// CLK_PER divided by 8.
1524   pub const DIV8: u32 = 0x2;
1525   /// CLK_PER divided by 16.
1526   pub const DIV16: u32 = 0x3;
1527   /// CLK_PER divided by 32.
1528   pub const DIV32: u32 = 0x4;
1529   /// CLK_PER divided by 64.
1530   pub const DIV64: u32 = 0x5;
1531   /// CLK_PER divided by 128.
1532   pub const DIV128: u32 = 0x6;
1533   /// CLK_PER divided by 256.
1534   pub const DIV256: u32 = 0x7;
1535}
1536
1537/// Reference Selection select
1538#[allow(non_upper_case_globals)]
1539pub mod adc_refsel {
1540   /// Internal reference.
1541   pub const INTREF: u32 = 0x0;
1542   /// VDD.
1543   pub const VDDREF: u32 = 0x1;
1544}
1545
1546/// ADC Resolution select
1547#[allow(non_upper_case_globals)]
1548pub mod adc_ressel {
1549   /// 10-bit mode.
1550   pub const _10BIT: u32 = 0x0;
1551   /// 8-bit mode.
1552   pub const _8BIT: u32 = 0x1;
1553}
1554
1555/// Accumulation Samples select
1556#[allow(non_upper_case_globals)]
1557pub mod adc_sampnum {
1558   /// 1 ADC sample.
1559   pub const ACC1: u32 = 0x0;
1560   /// Accumulate 2 samples.
1561   pub const ACC2: u32 = 0x1;
1562   /// Accumulate 4 samples.
1563   pub const ACC4: u32 = 0x2;
1564   /// Accumulate 8 samples.
1565   pub const ACC8: u32 = 0x3;
1566   /// Accumulate 16 samples.
1567   pub const ACC16: u32 = 0x4;
1568   /// Accumulate 32 samples.
1569   pub const ACC32: u32 = 0x5;
1570   /// Accumulate 64 samples.
1571   pub const ACC64: u32 = 0x6;
1572}
1573
1574/// Window Comparator Mode select
1575#[allow(non_upper_case_globals)]
1576pub mod adc_wincm {
1577   /// No Window Comparison.
1578   pub const NONE: u32 = 0x0;
1579   /// Below Window.
1580   pub const BELOW: u32 = 0x1;
1581   /// Above Window.
1582   pub const ABOVE: u32 = 0x2;
1583   /// Inside Window.
1584   pub const INSIDE: u32 = 0x3;
1585   /// Outside Window.
1586   pub const OUTSIDE: u32 = 0x4;
1587}
1588
1589/// Operation in active mode select
1590#[allow(non_upper_case_globals)]
1591pub mod bod_active {
1592   /// Disabled.
1593   pub const DIS: u32 = 0x0;
1594   /// Enabled.
1595   pub const ENABLED: u32 = 0x1;
1596   /// Sampled.
1597   pub const SAMPLED: u32 = 0x2;
1598   /// Enabled with wakeup halt.
1599   pub const ENWAKE: u32 = 0x3;
1600}
1601
1602/// Bod level select
1603#[allow(non_upper_case_globals)]
1604pub mod bod_lvl {
1605   /// 1.8 V.
1606   pub const BODLEVEL0: u32 = 0x0;
1607   /// 2.1 V.
1608   pub const BODLEVEL1: u32 = 0x1;
1609   /// 2.6 V.
1610   pub const BODLEVEL2: u32 = 0x2;
1611   /// 2.9 V.
1612   pub const BODLEVEL3: u32 = 0x3;
1613   /// 3.3 V.
1614   pub const BODLEVEL4: u32 = 0x4;
1615   /// 3.7 V.
1616   pub const BODLEVEL5: u32 = 0x5;
1617   /// 4.0 V.
1618   pub const BODLEVEL6: u32 = 0x6;
1619   /// 4.2 V.
1620   pub const BODLEVEL7: u32 = 0x7;
1621}
1622
1623/// Sample frequency select
1624#[allow(non_upper_case_globals)]
1625pub mod bod_sampfreq {
1626   /// 1kHz sampling.
1627   pub const _1KHZ: u32 = 0x0;
1628   /// 125Hz sampling.
1629   pub const _125Hz: u32 = 0x1;
1630}
1631
1632/// Operation in sleep mode select
1633#[allow(non_upper_case_globals)]
1634pub mod bod_sleep {
1635   /// Disabled.
1636   pub const DIS: u32 = 0x0;
1637   /// Enabled.
1638   pub const ENABLED: u32 = 0x1;
1639   /// Sampled.
1640   pub const SAMPLED: u32 = 0x2;
1641}
1642
1643/// Configuration select
1644#[allow(non_upper_case_globals)]
1645pub mod bod_vlmcfg {
1646   /// Interrupt when supply goes below VLM level.
1647   pub const BELOW: u32 = 0x0;
1648   /// Interrupt when supply goes above VLM level.
1649   pub const ABOVE: u32 = 0x1;
1650   /// Interrupt when supply crosses VLM level.
1651   pub const CROSS: u32 = 0x2;
1652}
1653
1654/// voltage level monitor level select
1655#[allow(non_upper_case_globals)]
1656pub mod bod_vlmlvl {
1657   /// VLM threshold 5% above BOD level.
1658   pub const _5ABOVE: u32 = 0x0;
1659   /// VLM threshold 15% above BOD level.
1660   pub const _15ABOVE: u32 = 0x1;
1661   /// VLM threshold 25% above BOD level.
1662   pub const _25ABOVE: u32 = 0x2;
1663}
1664
1665/// Edge Detection Enable select
1666#[allow(non_upper_case_globals)]
1667pub mod ccl_edgedet {
1668   /// Edge detector is disabled.
1669   pub const DIS: u32 = 0x0;
1670   /// Edge detector is enabled.
1671   pub const EN: u32 = 0x1;
1672}
1673
1674/// Filter Selection select
1675#[allow(non_upper_case_globals)]
1676pub mod ccl_filtsel {
1677   /// Filter disabled.
1678   pub const DISABLE: u32 = 0x0;
1679   /// Synchronizer enabled.
1680   pub const SYNCH: u32 = 0x1;
1681   /// Filter enabled.
1682   pub const FILTER: u32 = 0x2;
1683}
1684
1685/// LUT Input 0 Source Selection select
1686#[allow(non_upper_case_globals)]
1687pub mod ccl_insel0 {
1688   /// Masked input.
1689   pub const MASK: u32 = 0x0;
1690   /// Feedback input source.
1691   pub const FEEDBACK: u32 = 0x1;
1692   /// Linked LUT input source.
1693   pub const LINK: u32 = 0x2;
1694   /// Event input source 0.
1695   pub const EVENT0: u32 = 0x3;
1696   /// Event input source 1.
1697   pub const EVENT1: u32 = 0x4;
1698   /// IO pin LUTn-IN0 input source.
1699   pub const IO: u32 = 0x5;
1700   /// AC0 OUT input source.
1701   pub const AC0: u32 = 0x6;
1702   /// TCB0 WO input source.
1703   pub const TCB0: u32 = 0x7;
1704   /// TCA0 WO0 input source.
1705   pub const TCA0: u32 = 0x8;
1706   /// TCD0 WOA input source.
1707   pub const TCD0: u32 = 0x9;
1708   /// USART0 XCK input source.
1709   pub const USART0: u32 = 0xA;
1710   /// SPI0 SCK source.
1711   pub const SPI0: u32 = 0xB;
1712}
1713
1714/// LUT Input 1 Source Selection select
1715#[allow(non_upper_case_globals)]
1716pub mod ccl_insel1 {
1717   /// Masked input.
1718   pub const MASK: u32 = 0x0;
1719   /// Feedback input source.
1720   pub const FEEDBACK: u32 = 0x1;
1721   /// Linked LUT input source.
1722   pub const LINK: u32 = 0x2;
1723   /// Event input source 0.
1724   pub const EVENT0: u32 = 0x3;
1725   /// Event input source 1.
1726   pub const EVENT1: u32 = 0x4;
1727   /// IO pin LUTn-N1 input source.
1728   pub const IO: u32 = 0x5;
1729   /// AC0 OUT input source.
1730   pub const AC0: u32 = 0x6;
1731   /// TCB0 WO input source.
1732   pub const TCB0: u32 = 0x7;
1733   /// TCA0 WO1 input source.
1734   pub const TCA0: u32 = 0x8;
1735   /// TCD0 WOB input source.
1736   pub const TCD0: u32 = 0x9;
1737   /// USART0 TXD input source.
1738   pub const USART0: u32 = 0xA;
1739   /// SPI0 MOSI input source.
1740   pub const SPI0: u32 = 0xB;
1741}
1742
1743/// LUT Input 2 Source Selection select
1744#[allow(non_upper_case_globals)]
1745pub mod ccl_insel2 {
1746   /// Masked input.
1747   pub const MASK: u32 = 0x0;
1748   /// Feedback input source.
1749   pub const FEEDBACK: u32 = 0x1;
1750   /// Linked LUT input source.
1751   pub const LINK: u32 = 0x2;
1752   /// Event input source 0.
1753   pub const EVENT0: u32 = 0x3;
1754   /// Event input source 1.
1755   pub const EVENT1: u32 = 0x4;
1756   /// IO pin LUTn-IN2 input source.
1757   pub const IO: u32 = 0x5;
1758   /// AC0 OUT input source.
1759   pub const AC0: u32 = 0x6;
1760   /// TCB0 WO input source.
1761   pub const TCB0: u32 = 0x7;
1762   /// TCA0 WO2 input source.
1763   pub const TCA0: u32 = 0x8;
1764   /// TCD0 WOA input source.
1765   pub const TCD0: u32 = 0x9;
1766   /// SPI0 MISO source.
1767   pub const SPI0: u32 = 0xB;
1768}
1769
1770/// Sequential Selection select
1771#[allow(non_upper_case_globals)]
1772pub mod ccl_seqsel {
1773   /// Sequential logic disabled.
1774   pub const DISABLE: u32 = 0x0;
1775   /// D FlipFlop.
1776   pub const DFF: u32 = 0x1;
1777   /// JK FlipFlop.
1778   pub const JK: u32 = 0x2;
1779   /// D Latch.
1780   pub const LATCH: u32 = 0x3;
1781   /// RS Latch.
1782   pub const RS: u32 = 0x4;
1783}
1784
1785/// clock select select
1786#[allow(non_upper_case_globals)]
1787pub mod clkctrl_clksel {
1788   /// 20MHz internal oscillator.
1789   pub const OSC20M: u32 = 0x0;
1790   /// 32KHz internal Ultra Low Power oscillator.
1791   pub const OSCULP32K: u32 = 0x1;
1792   /// 32.768kHz external crystal oscillator.
1793   pub const XOSC32K: u32 = 0x2;
1794   /// External clock.
1795   pub const EXTCLK: u32 = 0x3;
1796}
1797
1798/// Crystal startup time select
1799#[allow(non_upper_case_globals)]
1800pub mod clkctrl_csut {
1801   /// 1K cycles.
1802   pub const _1K: u32 = 0x0;
1803   /// 16K cycles.
1804   pub const _16K: u32 = 0x1;
1805   /// 32K cycles.
1806   pub const _32K: u32 = 0x2;
1807   /// 64K cycles.
1808   pub const _64K: u32 = 0x3;
1809}
1810
1811/// Prescaler division select
1812#[allow(non_upper_case_globals)]
1813pub mod clkctrl_pdiv {
1814   /// 2X.
1815   pub const _2X: u32 = 0x0;
1816   /// 4X.
1817   pub const _4X: u32 = 0x1;
1818   /// 8X.
1819   pub const _8X: u32 = 0x2;
1820   /// 16X.
1821   pub const _16X: u32 = 0x3;
1822   /// 32X.
1823   pub const _32X: u32 = 0x4;
1824   /// 64X.
1825   pub const _64X: u32 = 0x5;
1826   /// 6X.
1827   pub const _6X: u32 = 0x8;
1828   /// 10X.
1829   pub const _10X: u32 = 0x9;
1830   /// 12X.
1831   pub const _12X: u32 = 0xA;
1832   /// 24X.
1833   pub const _24X: u32 = 0xB;
1834   /// 48X.
1835   pub const _48X: u32 = 0xC;
1836}
1837
1838/// CCP signature select
1839#[allow(non_upper_case_globals)]
1840pub mod cpu_ccp {
1841   /// SPM Instruction Protection.
1842   pub const SPM: u32 = 0x9D;
1843   /// IO Register Protection.
1844   pub const IOREG: u32 = 0xD8;
1845}
1846
1847/// CRC Flash Access Mode select
1848#[allow(non_upper_case_globals)]
1849pub mod crcscan_mode {
1850   /// Priority to flash.
1851   pub const PRIORITY: u32 = 0x0;
1852   /// Reserved.
1853   pub const RESERVED: u32 = 0x1;
1854   /// Lowest priority to flash.
1855   pub const BACKGROUND: u32 = 0x2;
1856   /// Continuous checks in background.
1857   pub const CONTINUOUS: u32 = 0x3;
1858}
1859
1860/// CRC Source select
1861#[allow(non_upper_case_globals)]
1862pub mod crcscan_src {
1863   /// CRC on entire flash.
1864   pub const FLASH: u32 = 0x0;
1865   /// CRC on boot and appl section of flash.
1866   pub const APPLICATION: u32 = 0x1;
1867   /// CRC on boot section of flash.
1868   pub const BOOT: u32 = 0x2;
1869}
1870
1871/// Asynchronous Channel 0 Generator Selection select
1872#[allow(non_upper_case_globals)]
1873pub mod evsys_asyncch0 {
1874   /// Off.
1875   pub const OFF: u32 = 0x0;
1876   /// Configurable Custom Logic LUT0.
1877   pub const CCL_LUT0: u32 = 0x1;
1878   /// Configurable Custom Logic LUT1.
1879   pub const CCL_LUT1: u32 = 0x2;
1880   /// Analog Comparator 0 out.
1881   pub const AC0_OUT: u32 = 0x3;
1882   /// Timer/Counter D0 compare B clear.
1883   pub const TCD0_CMPBCLR: u32 = 0x4;
1884   /// Timer/Counter D0 compare A set.
1885   pub const TCD0_CMPASET: u32 = 0x5;
1886   /// Timer/Counter D0 compare B set.
1887   pub const TCD0_CMPBSET: u32 = 0x6;
1888   /// Timer/Counter D0 program event.
1889   pub const TCD0_PROGEV: u32 = 0x7;
1890   /// Real Time Counter overflow.
1891   pub const RTC_OVF: u32 = 0x8;
1892   /// Real Time Counter compare.
1893   pub const RTC_CMP: u32 = 0x9;
1894   /// Asynchronous Event from Pin PA0.
1895   pub const PORTA_PIN0: u32 = 0xA;
1896   /// Asynchronous Event from Pin PA1.
1897   pub const PORTA_PIN1: u32 = 0xB;
1898   /// Asynchronous Event from Pin PA2.
1899   pub const PORTA_PIN2: u32 = 0xC;
1900   /// Asynchronous Event from Pin PA3.
1901   pub const PORTA_PIN3: u32 = 0xD;
1902   /// Asynchronous Event from Pin PA4.
1903   pub const PORTA_PIN4: u32 = 0xE;
1904   /// Asynchronous Event from Pin PA5.
1905   pub const PORTA_PIN5: u32 = 0xF;
1906   /// Asynchronous Event from Pin PA6.
1907   pub const PORTA_PIN6: u32 = 0x10;
1908   /// Asynchronous Event from Pin PA7.
1909   pub const PORTA_PIN7: u32 = 0x11;
1910   /// Unified Program and debug interface.
1911   pub const UPDI: u32 = 0x12;
1912}
1913
1914/// Asynchronous Channel 1 Generator Selection select
1915#[allow(non_upper_case_globals)]
1916pub mod evsys_asyncch1 {
1917   /// Off.
1918   pub const OFF: u32 = 0x0;
1919   /// Configurable custom logic LUT0.
1920   pub const CCL_LUT0: u32 = 0x1;
1921   /// Configurable custom logic LUT1.
1922   pub const CCL_LUT1: u32 = 0x2;
1923   /// Analog Comparator 0 out.
1924   pub const AC0_OUT: u32 = 0x3;
1925   /// Timer/Counter D0 compare B clear.
1926   pub const TCD0_CMPBCLR: u32 = 0x4;
1927   /// Timer/Counter D0 compare A set.
1928   pub const TCD0_CMPASET: u32 = 0x5;
1929   /// Timer/Counter D0 compare B set.
1930   pub const TCD0_CMPBSET: u32 = 0x6;
1931   /// Timer/Counter D0 program event.
1932   pub const TCD0_PROGEV: u32 = 0x7;
1933   /// Real Time Counter overflow.
1934   pub const RTC_OVF: u32 = 0x8;
1935   /// Real Time Counter compare.
1936   pub const RTC_CMP: u32 = 0x9;
1937   /// Asynchronous Event from Pin PB0.
1938   pub const PORTB_PIN0: u32 = 0xA;
1939   /// Asynchronous Event from Pin PB1.
1940   pub const PORTB_PIN1: u32 = 0xB;
1941   /// Asynchronous Event from Pin PB2.
1942   pub const PORTB_PIN2: u32 = 0xC;
1943   /// Asynchronous Event from Pin PB3.
1944   pub const PORTB_PIN3: u32 = 0xD;
1945   /// Asynchronous Event from Pin PB4.
1946   pub const PORTB_PIN4: u32 = 0xE;
1947   /// Asynchronous Event from Pin PB5.
1948   pub const PORTB_PIN5: u32 = 0xF;
1949   /// Asynchronous Event from Pin PB6.
1950   pub const PORTB_PIN6: u32 = 0x10;
1951   /// Asynchronous Event from Pin PB7.
1952   pub const PORTB_PIN7: u32 = 0x11;
1953}
1954
1955/// Asynchronous Channel 2 Generator Selection select
1956#[allow(non_upper_case_globals)]
1957pub mod evsys_asyncch2 {
1958   /// Off.
1959   pub const OFF: u32 = 0x0;
1960   /// Configurable Custom Logic LUT0.
1961   pub const CCL_LUT0: u32 = 0x1;
1962   /// Configurable Custom Logic LUT1.
1963   pub const CCL_LUT1: u32 = 0x2;
1964   /// Analog Comparator 0 out.
1965   pub const AC0_OUT: u32 = 0x3;
1966   /// Timer/Counter D0 compare B clear.
1967   pub const TCD0_CMPBCLR: u32 = 0x4;
1968   /// Timer/Counter D0 compare A set.
1969   pub const TCD0_CMPASET: u32 = 0x5;
1970   /// Timer/Counter D0 compare B set.
1971   pub const TCD0_CMPBSET: u32 = 0x6;
1972   /// Timer/Counter D0 program event.
1973   pub const TCD0_PROGEV: u32 = 0x7;
1974   /// Real Time Counter overflow.
1975   pub const RTC_OVF: u32 = 0x8;
1976   /// Real Time Counter compare.
1977   pub const RTC_CMP: u32 = 0x9;
1978   /// Asynchronous Event from Pin PC0.
1979   pub const PORTC_PIN0: u32 = 0xA;
1980   /// Asynchronous Event from Pin PC1.
1981   pub const PORTC_PIN1: u32 = 0xB;
1982   /// Asynchronous Event from Pin PC2.
1983   pub const PORTC_PIN2: u32 = 0xC;
1984   /// Asynchronous Event from Pin PC3.
1985   pub const PORTC_PIN3: u32 = 0xD;
1986   /// Asynchronous Event from Pin PC4.
1987   pub const PORTC_PIN4: u32 = 0xE;
1988   /// Asynchronous Event from Pin PC5.
1989   pub const PORTC_PIN5: u32 = 0xF;
1990}
1991
1992/// Asynchronous Channel 3 Generator Selection select
1993#[allow(non_upper_case_globals)]
1994pub mod evsys_asyncch3 {
1995   /// Off.
1996   pub const OFF: u32 = 0x0;
1997   /// Configurable custom logic LUT0.
1998   pub const CCL_LUT0: u32 = 0x1;
1999   /// Configurable custom logic LUT1.
2000   pub const CCL_LUT1: u32 = 0x2;
2001   /// Analog Comparator 0 out.
2002   pub const AC0_OUT: u32 = 0x3;
2003   /// Timer/Counter type D compare B clear.
2004   pub const TCD0_CMPBCLR: u32 = 0x4;
2005   /// Timer/Counter type D compare A set.
2006   pub const TCD0_CMPASET: u32 = 0x5;
2007   /// Timer/Counter type D compare B set.
2008   pub const TCD0_CMPBSET: u32 = 0x6;
2009   /// Timer/Counter type D program event.
2010   pub const TCD0_PROGEV: u32 = 0x7;
2011   /// Real Time Counter overflow.
2012   pub const RTC_OVF: u32 = 0x8;
2013   /// Real Time Counter compare.
2014   pub const RTC_CMP: u32 = 0x9;
2015   /// Periodic Interrupt CLK_RTC div 8192.
2016   pub const PIT_DIV8192: u32 = 0xA;
2017   /// Periodic Interrupt CLK_RTC div 4096.
2018   pub const PIT_DIV4096: u32 = 0xB;
2019   /// Periodic Interrupt CLK_RTC div 2048.
2020   pub const PIT_DIV2048: u32 = 0xC;
2021   /// Periodic Interrupt CLK_RTC div 1024.
2022   pub const PIT_DIV1024: u32 = 0xD;
2023   /// Periodic Interrupt CLK_RTC div 512.
2024   pub const PIT_DIV512: u32 = 0xE;
2025   /// Periodic Interrupt CLK_RTC div 256.
2026   pub const PIT_DIV256: u32 = 0xF;
2027   /// Periodic Interrupt CLK_RTC div 128.
2028   pub const PIT_DIV128: u32 = 0x10;
2029   /// Periodic Interrupt CLK_RTC div 64.
2030   pub const PIT_DIV64: u32 = 0x11;
2031}
2032
2033/// Asynchronous User Ch 0 Input Selection - TCB0 select
2034#[allow(non_upper_case_globals)]
2035pub mod evsys_asyncuser0 {
2036   /// Off.
2037   pub const OFF: u32 = 0x0;
2038   /// Synchronous Event Channel 0.
2039   pub const SYNCCH0: u32 = 0x1;
2040   /// Synchronous Event Channel 1.
2041   pub const SYNCCH1: u32 = 0x2;
2042   /// Asynchronous Event Channel 0.
2043   pub const ASYNCCH0: u32 = 0x3;
2044   /// Asynchronous Event Channel 1.
2045   pub const ASYNCCH1: u32 = 0x4;
2046   /// Asynchronous Event Channel 2.
2047   pub const ASYNCCH2: u32 = 0x5;
2048   /// Asynchronous Event Channel 3.
2049   pub const ASYNCCH3: u32 = 0x6;
2050}
2051
2052/// Asynchronous User Ch 1 Input Selection - ADC0 select
2053#[allow(non_upper_case_globals)]
2054pub mod evsys_asyncuser1 {
2055   /// Off.
2056   pub const OFF: u32 = 0x0;
2057   /// Synchronous Event Channel 0.
2058   pub const SYNCCH0: u32 = 0x1;
2059   /// Synchronous Event Channel 1.
2060   pub const SYNCCH1: u32 = 0x2;
2061   /// Asynchronous Event Channel 0.
2062   pub const ASYNCCH0: u32 = 0x3;
2063   /// Asynchronous Event Channel 1.
2064   pub const ASYNCCH1: u32 = 0x4;
2065   /// Asynchronous Event Channel 2.
2066   pub const ASYNCCH2: u32 = 0x5;
2067   /// Asynchronous Event Channel 3.
2068   pub const ASYNCCH3: u32 = 0x6;
2069}
2070
2071/// Asynchronous User Ch 10 Input Selection - Event Out 2 select
2072#[allow(non_upper_case_globals)]
2073pub mod evsys_asyncuser10 {
2074   /// Off.
2075   pub const OFF: u32 = 0x0;
2076   /// Synchronous Event Channel 0.
2077   pub const SYNCCH0: u32 = 0x1;
2078   /// Synchronous Event Channel 1.
2079   pub const SYNCCH1: u32 = 0x2;
2080   /// Asynchronous Event Channel 0.
2081   pub const ASYNCCH0: u32 = 0x3;
2082   /// Asynchronous Event Channel 1.
2083   pub const ASYNCCH1: u32 = 0x4;
2084   /// Asynchronous Event Channel 2.
2085   pub const ASYNCCH2: u32 = 0x5;
2086   /// Asynchronous Event Channel 3.
2087   pub const ASYNCCH3: u32 = 0x6;
2088}
2089
2090/// Asynchronous User Ch 2 Input Selection - CCL LUT0 Event 0 select
2091#[allow(non_upper_case_globals)]
2092pub mod evsys_asyncuser2 {
2093   /// Off.
2094   pub const OFF: u32 = 0x0;
2095   /// Synchronous Event Channel 0.
2096   pub const SYNCCH0: u32 = 0x1;
2097   /// Synchronous Event Channel 1.
2098   pub const SYNCCH1: u32 = 0x2;
2099   /// Asynchronous Event Channel 0.
2100   pub const ASYNCCH0: u32 = 0x3;
2101   /// Asynchronous Event Channel 1.
2102   pub const ASYNCCH1: u32 = 0x4;
2103   /// Asynchronous Event Channel 2.
2104   pub const ASYNCCH2: u32 = 0x5;
2105   /// Asynchronous Event Channel 3.
2106   pub const ASYNCCH3: u32 = 0x6;
2107}
2108
2109/// Asynchronous User Ch 3 Input Selection - CCL LUT1 Event 0 select
2110#[allow(non_upper_case_globals)]
2111pub mod evsys_asyncuser3 {
2112   /// Off.
2113   pub const OFF: u32 = 0x0;
2114   /// Synchronous Event Channel 0.
2115   pub const SYNCCH0: u32 = 0x1;
2116   /// Synchronous Event Channel 1.
2117   pub const SYNCCH1: u32 = 0x2;
2118   /// Asynchronous Event Channel 0.
2119   pub const ASYNCCH0: u32 = 0x3;
2120   /// Asynchronous Event Channel 1.
2121   pub const ASYNCCH1: u32 = 0x4;
2122   /// Asynchronous Event Channel 2.
2123   pub const ASYNCCH2: u32 = 0x5;
2124   /// Asynchronous Event Channel 3.
2125   pub const ASYNCCH3: u32 = 0x6;
2126}
2127
2128/// synchronous User Ch 4 Input Selection - CCL LUT0 Event 1 select
2129#[allow(non_upper_case_globals)]
2130pub mod evsys_asyncuser4 {
2131   /// Off.
2132   pub const OFF: u32 = 0x0;
2133   /// Synchronous Event Channel 0.
2134   pub const SYNCCH0: u32 = 0x1;
2135   /// Synchronous Event Channel 1.
2136   pub const SYNCCH1: u32 = 0x2;
2137   /// Asynchronous Event Channel 0.
2138   pub const ASYNCCH0: u32 = 0x3;
2139   /// Asynchronous Event Channel 1.
2140   pub const ASYNCCH1: u32 = 0x4;
2141   /// Asynchronous Event Channel 2.
2142   pub const ASYNCCH2: u32 = 0x5;
2143   /// Asynchronous Event Channel 3.
2144   pub const ASYNCCH3: u32 = 0x6;
2145}
2146
2147/// Asynchronous User Ch 5 Input Selection - CCL LUT1 Event 1 select
2148#[allow(non_upper_case_globals)]
2149pub mod evsys_asyncuser5 {
2150   /// Off.
2151   pub const OFF: u32 = 0x0;
2152   /// Synchronous Event Channel 0.
2153   pub const SYNCCH0: u32 = 0x1;
2154   /// Synchronous Event Channel 1.
2155   pub const SYNCCH1: u32 = 0x2;
2156   /// Asynchronous Event Channel 0.
2157   pub const ASYNCCH0: u32 = 0x3;
2158   /// Asynchronous Event Channel 1.
2159   pub const ASYNCCH1: u32 = 0x4;
2160   /// Asynchronous Event Channel 2.
2161   pub const ASYNCCH2: u32 = 0x5;
2162   /// Asynchronous Event Channel 3.
2163   pub const ASYNCCH3: u32 = 0x6;
2164}
2165
2166/// Asynchronous User Ch 6 Input Selection - TCD0 Event 0 select
2167#[allow(non_upper_case_globals)]
2168pub mod evsys_asyncuser6 {
2169   /// Off.
2170   pub const OFF: u32 = 0x0;
2171   /// Synchronous Event Channel 0.
2172   pub const SYNCCH0: u32 = 0x1;
2173   /// Synchronous Event Channel 1.
2174   pub const SYNCCH1: u32 = 0x2;
2175   /// Asynchronous Event Channel 0.
2176   pub const ASYNCCH0: u32 = 0x3;
2177   /// Asynchronous Event Channel 1.
2178   pub const ASYNCCH1: u32 = 0x4;
2179   /// Asynchronous Event Channel 2.
2180   pub const ASYNCCH2: u32 = 0x5;
2181   /// Asynchronous Event Channel 3.
2182   pub const ASYNCCH3: u32 = 0x6;
2183}
2184
2185/// Asynchronous User Ch 7 Input Selection - TCD0 Event 1 select
2186#[allow(non_upper_case_globals)]
2187pub mod evsys_asyncuser7 {
2188   /// Off.
2189   pub const OFF: u32 = 0x0;
2190   /// Synchronous Event Channel 0.
2191   pub const SYNCCH0: u32 = 0x1;
2192   /// Synchronous Event Channel 1.
2193   pub const SYNCCH1: u32 = 0x2;
2194   /// Asynchronous Event Channel 0.
2195   pub const ASYNCCH0: u32 = 0x3;
2196   /// Asynchronous Event Channel 1.
2197   pub const ASYNCCH1: u32 = 0x4;
2198   /// Asynchronous Event Channel 2.
2199   pub const ASYNCCH2: u32 = 0x5;
2200   /// Asynchronous Event Channel 3.
2201   pub const ASYNCCH3: u32 = 0x6;
2202}
2203
2204/// Asynchronous User Ch 8 Input Selection - Event Out 0 select
2205#[allow(non_upper_case_globals)]
2206pub mod evsys_asyncuser8 {
2207   /// Off.
2208   pub const OFF: u32 = 0x0;
2209   /// Synchronous Event Channel 0.
2210   pub const SYNCCH0: u32 = 0x1;
2211   /// Synchronous Event Channel 1.
2212   pub const SYNCCH1: u32 = 0x2;
2213   /// Asynchronous Event Channel 0.
2214   pub const ASYNCCH0: u32 = 0x3;
2215   /// Asynchronous Event Channel 1.
2216   pub const ASYNCCH1: u32 = 0x4;
2217   /// Asynchronous Event Channel 2.
2218   pub const ASYNCCH2: u32 = 0x5;
2219   /// Asynchronous Event Channel 3.
2220   pub const ASYNCCH3: u32 = 0x6;
2221}
2222
2223/// Asynchronous User Ch 9 Input Selection - Event Out 1 select
2224#[allow(non_upper_case_globals)]
2225pub mod evsys_asyncuser9 {
2226   /// Off.
2227   pub const OFF: u32 = 0x0;
2228   /// Synchronous Event Channel 0.
2229   pub const SYNCCH0: u32 = 0x1;
2230   /// Synchronous Event Channel 1.
2231   pub const SYNCCH1: u32 = 0x2;
2232   /// Asynchronous Event Channel 0.
2233   pub const ASYNCCH0: u32 = 0x3;
2234   /// Asynchronous Event Channel 1.
2235   pub const ASYNCCH1: u32 = 0x4;
2236   /// Asynchronous Event Channel 2.
2237   pub const ASYNCCH2: u32 = 0x5;
2238   /// Asynchronous Event Channel 3.
2239   pub const ASYNCCH3: u32 = 0x6;
2240}
2241
2242/// Synchronous Channel 0 Generator Selection select
2243#[allow(non_upper_case_globals)]
2244pub mod evsys_syncch0 {
2245   /// Off.
2246   pub const OFF: u32 = 0x0;
2247   /// Timer/Counter B0.
2248   pub const TCB0: u32 = 0x1;
2249   /// Timer/Counter A0 overflow.
2250   pub const TCA0_OVF_LUNF: u32 = 0x2;
2251   /// Timer/Counter A0 underflow high byte (split mode).
2252   pub const TCA0_HUNF: u32 = 0x3;
2253   /// Timer/Counter A0 compare 0.
2254   pub const TCA0_CMP0: u32 = 0x4;
2255   /// Timer/Counter A0 compare 1.
2256   pub const TCA0_CMP1: u32 = 0x5;
2257   /// Timer/Counter A0 compare 2.
2258   pub const TCA0_CMP2: u32 = 0x6;
2259   /// Synchronous Event from Pin PC0.
2260   pub const PORTC_PIN0: u32 = 0x7;
2261   /// Synchronous Event from Pin PC1.
2262   pub const PORTC_PIN1: u32 = 0x8;
2263   /// Synchronous Event from Pin PC2.
2264   pub const PORTC_PIN2: u32 = 0x9;
2265   /// Synchronous Event from Pin PC3.
2266   pub const PORTC_PIN3: u32 = 0xA;
2267   /// Synchronous Event from Pin PC4.
2268   pub const PORTC_PIN4: u32 = 0xB;
2269   /// Synchronous Event from Pin PC5.
2270   pub const PORTC_PIN5: u32 = 0xC;
2271   /// Synchronous Event from Pin PA0.
2272   pub const PORTA_PIN0: u32 = 0xD;
2273   /// Synchronous Event from Pin PA1.
2274   pub const PORTA_PIN1: u32 = 0xE;
2275   /// Synchronous Event from Pin PA2.
2276   pub const PORTA_PIN2: u32 = 0xF;
2277   /// Synchronous Event from Pin PA3.
2278   pub const PORTA_PIN3: u32 = 0x10;
2279   /// Synchronous Event from Pin PA4.
2280   pub const PORTA_PIN4: u32 = 0x11;
2281   /// Synchronous Event from Pin PA5.
2282   pub const PORTA_PIN5: u32 = 0x12;
2283   /// Synchronous Event from Pin PA6.
2284   pub const PORTA_PIN6: u32 = 0x13;
2285   /// Synchronous Event from Pin PA7.
2286   pub const PORTA_PIN7: u32 = 0x14;
2287}
2288
2289/// Synchronous Channel 1 Generator Selection select
2290#[allow(non_upper_case_globals)]
2291pub mod evsys_syncch1 {
2292   /// Off.
2293   pub const OFF: u32 = 0x0;
2294   /// Timer/Counter B0.
2295   pub const TCB0: u32 = 0x1;
2296   /// Timer/Counter A0 overflow.
2297   pub const TCA0_OVF_LUNF: u32 = 0x2;
2298   /// Timer/Counter A0 underflow high byte (split mode).
2299   pub const TCA0_HUNF: u32 = 0x3;
2300   /// Timer/Counter A0 compare 0.
2301   pub const TCA0_CMP0: u32 = 0x4;
2302   /// Timer/Counter A0 compare 1.
2303   pub const TCA0_CMP1: u32 = 0x5;
2304   /// Timer/Counter A0 compare 2.
2305   pub const TCA0_CMP2: u32 = 0x6;
2306   /// Synchronous Event from Pin PB0.
2307   pub const PORTB_PIN0: u32 = 0x8;
2308   /// Synchronous Event from Pin PB1.
2309   pub const PORTB_PIN1: u32 = 0x9;
2310   /// Synchronous Event from Pin PB2.
2311   pub const PORTB_PIN2: u32 = 0xA;
2312   /// Synchronous Event from Pin PB3.
2313   pub const PORTB_PIN3: u32 = 0xB;
2314   /// Synchronous Event from Pin PB4.
2315   pub const PORTB_PIN4: u32 = 0xC;
2316   /// Synchronous Event from Pin PB5.
2317   pub const PORTB_PIN5: u32 = 0xD;
2318   /// Synchronous Event from Pin PB6.
2319   pub const PORTB_PIN6: u32 = 0xE;
2320   /// Synchronous Event from Pin PB7.
2321   pub const PORTB_PIN7: u32 = 0xF;
2322}
2323
2324/// Synchronous User Ch 0 Input Selection - TCA0 select
2325#[allow(non_upper_case_globals)]
2326pub mod evsys_syncuser0 {
2327   /// Off.
2328   pub const OFF: u32 = 0x0;
2329   /// Synchronous Event Channel 0.
2330   pub const SYNCCH0: u32 = 0x1;
2331   /// Synchronous Event Channel 1.
2332   pub const SYNCCH1: u32 = 0x2;
2333}
2334
2335/// Synchronous User Ch 1 Input Selection - USART0 select
2336#[allow(non_upper_case_globals)]
2337pub mod evsys_syncuser1 {
2338   /// Off.
2339   pub const OFF: u32 = 0x0;
2340   /// Synchronous Event Channel 0.
2341   pub const SYNCCH0: u32 = 0x1;
2342   /// Synchronous Event Channel 1.
2343   pub const SYNCCH1: u32 = 0x2;
2344}
2345
2346/// BOD Operation in Active Mode select
2347#[allow(non_upper_case_globals)]
2348pub mod fuse_active {
2349   /// Disabled.
2350   pub const DIS: u32 = 0x0;
2351   /// Enabled.
2352   pub const ENABLED: u32 = 0x1;
2353   /// Sampled.
2354   pub const SAMPLED: u32 = 0x2;
2355   /// Enabled with wake-up halted until BOD is ready.
2356   pub const ENWAKE: u32 = 0x3;
2357}
2358
2359/// CRC Source select
2360#[allow(non_upper_case_globals)]
2361pub mod fuse_crcsrc {
2362   /// The CRC is performed on the entire Flash (boot, application code and application data section).
2363   pub const FLASH: u32 = 0x0;
2364   /// The CRC is performed on the boot section of Flash.
2365   pub const BOOT: u32 = 0x1;
2366   /// The CRC is performed on the boot and application code section of Flash.
2367   pub const BOOTAPP: u32 = 0x2;
2368   /// Disable CRC.
2369   pub const NOCRC: u32 = 0x3;
2370}
2371
2372/// Frequency Select select
2373#[allow(non_upper_case_globals)]
2374pub mod fuse_freqsel {
2375   /// 16 MHz.
2376   pub const _16MHZ: u32 = 0x1;
2377   /// 20 MHz.
2378   pub const _20MHZ: u32 = 0x2;
2379}
2380
2381/// BOD Level select
2382#[allow(non_upper_case_globals)]
2383pub mod fuse_lvl {
2384   /// 1.8 V.
2385   pub const BODLEVEL0: u32 = 0x0;
2386   /// 2.1 V.
2387   pub const BODLEVEL1: u32 = 0x1;
2388   /// 2.6 V.
2389   pub const BODLEVEL2: u32 = 0x2;
2390   /// 2.9 V.
2391   pub const BODLEVEL3: u32 = 0x3;
2392   /// 3.3 V.
2393   pub const BODLEVEL4: u32 = 0x4;
2394   /// 3.7 V.
2395   pub const BODLEVEL5: u32 = 0x5;
2396   /// 4.0 V.
2397   pub const BODLEVEL6: u32 = 0x6;
2398   /// 4.2 V.
2399   pub const BODLEVEL7: u32 = 0x7;
2400}
2401
2402/// Watchdog Timeout Period select
2403#[allow(non_upper_case_globals)]
2404pub mod fuse_period {
2405   /// Watch-Dog timer Off.
2406   pub const OFF: u32 = 0x0;
2407   /// 8 cycles (8ms).
2408   pub const _8CLK: u32 = 0x1;
2409   /// 16 cycles (16ms).
2410   pub const _16CLK: u32 = 0x2;
2411   /// 32 cycles (32ms).
2412   pub const _32CLK: u32 = 0x3;
2413   /// 64 cycles (64ms).
2414   pub const _64CLK: u32 = 0x4;
2415   /// 128 cycles (0.128s).
2416   pub const _128CLK: u32 = 0x5;
2417   /// 256 cycles (0.256s).
2418   pub const _256CLK: u32 = 0x6;
2419   /// 512 cycles (0.512s).
2420   pub const _512CLK: u32 = 0x7;
2421   /// 1K cycles (1.0s).
2422   pub const _1KCLK: u32 = 0x8;
2423   /// 2K cycles (2.0s).
2424   pub const _2KCLK: u32 = 0x9;
2425   /// 4K cycles (4.1s).
2426   pub const _4KCLK: u32 = 0xA;
2427   /// 8K cycles (8.2s).
2428   pub const _8KCLK: u32 = 0xB;
2429}
2430
2431/// Reset Pin Configuration select
2432#[allow(non_upper_case_globals)]
2433pub mod fuse_rstpincfg {
2434   /// GPIO mode.
2435   pub const GPIO: u32 = 0x0;
2436   /// UPDI mode.
2437   pub const UPDI: u32 = 0x1;
2438   /// Reset mode.
2439   pub const RST: u32 = 0x2;
2440}
2441
2442/// BOD Sample Frequency select
2443#[allow(non_upper_case_globals)]
2444pub mod fuse_sampfreq {
2445   /// 1kHz sampling frequency.
2446   pub const _1KHz: u32 = 0x0;
2447   /// 125Hz sampling frequency.
2448   pub const _125Hz: u32 = 0x1;
2449}
2450
2451/// BOD Operation in Sleep Mode select
2452#[allow(non_upper_case_globals)]
2453pub mod fuse_sleep {
2454   /// Disabled.
2455   pub const DIS: u32 = 0x0;
2456   /// Enabled.
2457   pub const ENABLED: u32 = 0x1;
2458   /// Sampled.
2459   pub const SAMPLED: u32 = 0x2;
2460}
2461
2462/// Startup Time select
2463#[allow(non_upper_case_globals)]
2464pub mod fuse_sut {
2465   /// 0 ms.
2466   pub const _0MS: u32 = 0x0;
2467   /// 1 ms.
2468   pub const _1MS: u32 = 0x1;
2469   /// 2 ms.
2470   pub const _2MS: u32 = 0x2;
2471   /// 4 ms.
2472   pub const _4MS: u32 = 0x3;
2473   /// 8 ms.
2474   pub const _8MS: u32 = 0x4;
2475   /// 16 ms.
2476   pub const _16MS: u32 = 0x5;
2477   /// 32 ms.
2478   pub const _32MS: u32 = 0x6;
2479   /// 64 ms.
2480   pub const _64MS: u32 = 0x7;
2481}
2482
2483/// Watchdog Window Timeout Period select
2484#[allow(non_upper_case_globals)]
2485pub mod fuse_window {
2486   /// Window mode off.
2487   pub const OFF: u32 = 0x0;
2488   /// 8 cycles (8ms).
2489   pub const _8CLK: u32 = 0x1;
2490   /// 16 cycles (16ms).
2491   pub const _16CLK: u32 = 0x2;
2492   /// 32 cycles (32ms).
2493   pub const _32CLK: u32 = 0x3;
2494   /// 64 cycles (64ms).
2495   pub const _64CLK: u32 = 0x4;
2496   /// 128 cycles (0.128s).
2497   pub const _128CLK: u32 = 0x5;
2498   /// 256 cycles (0.256s).
2499   pub const _256CLK: u32 = 0x6;
2500   /// 512 cycles (0.512s).
2501   pub const _512CLK: u32 = 0x7;
2502   /// 1K cycles (1.0s).
2503   pub const _1KCLK: u32 = 0x8;
2504   /// 2K cycles (2.0s).
2505   pub const _2KCLK: u32 = 0x9;
2506   /// 4K cycles (4.1s).
2507   pub const _4KCLK: u32 = 0xA;
2508   /// 8K cycles (8.2s).
2509   pub const _8KCLK: u32 = 0xB;
2510}
2511
2512/// Lock Bits select
2513#[allow(non_upper_case_globals)]
2514pub mod lockbit_lb {
2515   /// Read and write lock.
2516   pub const RWLOCK: u32 = 0x3A;
2517   /// No locks.
2518   pub const NOLOCK: u32 = 0xC5;
2519}
2520
2521/// Command select
2522#[allow(non_upper_case_globals)]
2523pub mod nvmctrl_cmd {
2524   /// No Command.
2525   pub const NONE: u32 = 0x0;
2526   /// Write page.
2527   pub const PAGEWRITE: u32 = 0x1;
2528   /// Erase page.
2529   pub const PAGEERASE: u32 = 0x2;
2530   /// Erase and write page.
2531   pub const PAGEERASEWRITE: u32 = 0x3;
2532   /// Page buffer clear.
2533   pub const PAGEBUFCLR: u32 = 0x4;
2534   /// Chip erase.
2535   pub const CHIPERASE: u32 = 0x5;
2536   /// EEPROM erase.
2537   pub const EEERASE: u32 = 0x6;
2538   /// Write fuse (PDI only).
2539   pub const FUSEWRITE: u32 = 0x7;
2540}
2541
2542/// Configurable Custom Logic LUT0 select
2543#[allow(non_upper_case_globals)]
2544pub mod portmux_lut0 {
2545   /// Default pin.
2546   pub const DEFAULT: u32 = 0x0;
2547   /// Alternate pin.
2548   pub const ALTERNATE: u32 = 0x1;
2549}
2550
2551/// Configurable Custom Logic LUT1 select
2552#[allow(non_upper_case_globals)]
2553pub mod portmux_lut1 {
2554   /// Default pin.
2555   pub const DEFAULT: u32 = 0x0;
2556   /// Alternate pin.
2557   pub const ALTERNATE: u32 = 0x1;
2558}
2559
2560/// Port Multiplexer SPI0 select
2561#[allow(non_upper_case_globals)]
2562pub mod portmux_spi0 {
2563   /// Default pins.
2564   pub const DEFAULT: u32 = 0x0;
2565   /// Alternate pins.
2566   pub const ALTERNATE: u32 = 0x1;
2567}
2568
2569/// Port Multiplexer TCA0 Output 0 select
2570#[allow(non_upper_case_globals)]
2571pub mod portmux_tca00 {
2572   /// Default pin.
2573   pub const DEFAULT: u32 = 0x0;
2574   /// Alternate pin.
2575   pub const ALTERNATE: u32 = 0x1;
2576}
2577
2578/// Port Multiplexer TCA0 output 1 select
2579#[allow(non_upper_case_globals)]
2580pub mod portmux_tca01 {
2581   /// Default pin.
2582   pub const DEFAULT: u32 = 0x0;
2583   /// Alternate pin.
2584   pub const ALTERNATE: u32 = 0x1;
2585}
2586
2587/// Port Multiplexer TCA0 Output 2 select
2588#[allow(non_upper_case_globals)]
2589pub mod portmux_tca02 {
2590   /// Default pin.
2591   pub const DEFAULT: u32 = 0x0;
2592   /// Alternate pin.
2593   pub const ALTERNATE: u32 = 0x1;
2594}
2595
2596/// Port Multiplexer TCA0 Output 3 select
2597#[allow(non_upper_case_globals)]
2598pub mod portmux_tca03 {
2599   /// Default pin.
2600   pub const DEFAULT: u32 = 0x0;
2601   /// Alternate pin.
2602   pub const ALTERNATE: u32 = 0x1;
2603}
2604
2605/// Port Multiplexer TCA0 Output 4 select
2606#[allow(non_upper_case_globals)]
2607pub mod portmux_tca04 {
2608   /// Default pin.
2609   pub const DEFAULT: u32 = 0x0;
2610   /// Alternate pin.
2611   pub const ALTERNATE: u32 = 0x1;
2612}
2613
2614/// Port Multiplexer TCA0 Output 5 select
2615#[allow(non_upper_case_globals)]
2616pub mod portmux_tca05 {
2617   /// Default pin.
2618   pub const DEFAULT: u32 = 0x0;
2619   /// Alternate pin.
2620   pub const ALTERNATE: u32 = 0x1;
2621}
2622
2623/// Port Multiplexer TCB select
2624#[allow(non_upper_case_globals)]
2625pub mod portmux_tcb0 {
2626   /// Default pin.
2627   pub const DEFAULT: u32 = 0x0;
2628   /// Alternate pin.
2629   pub const ALTERNATE: u32 = 0x1;
2630}
2631
2632/// Port Multiplexer TWI0 select
2633#[allow(non_upper_case_globals)]
2634pub mod portmux_twi0 {
2635   /// Default pins.
2636   pub const DEFAULT: u32 = 0x0;
2637   /// Alternate pins.
2638   pub const ALTERNATE: u32 = 0x1;
2639}
2640
2641/// Port Multiplexer USART0 select
2642#[allow(non_upper_case_globals)]
2643pub mod portmux_usart0 {
2644   /// Default pins.
2645   pub const DEFAULT: u32 = 0x0;
2646   /// Alternate pins.
2647   pub const ALTERNATE: u32 = 0x1;
2648}
2649
2650/// Input/Sense Configuration select
2651#[allow(non_upper_case_globals)]
2652pub mod port_isc {
2653   /// Iterrupt disabled but input buffer enabled.
2654   pub const INTDISABLE: u32 = 0x0;
2655   /// Sense Both Edges.
2656   pub const BOTHEDGES: u32 = 0x1;
2657   /// Sense Rising Edge.
2658   pub const RISING: u32 = 0x2;
2659   /// Sense Falling Edge.
2660   pub const FALLING: u32 = 0x3;
2661   /// Digital Input Buffer disabled.
2662   pub const INPUT_DISABLE: u32 = 0x4;
2663   /// Sense low Level.
2664   pub const LEVEL: u32 = 0x5;
2665}
2666
2667/// Clock Select select
2668#[allow(non_upper_case_globals)]
2669pub mod rtc_clksel {
2670   /// Internal 32kHz OSC.
2671   pub const INT32K: u32 = 0x0;
2672   /// Internal 1kHz OSC.
2673   pub const INT1K: u32 = 0x1;
2674   /// 32KHz Crystal OSC.
2675   pub const TOSC32K: u32 = 0x2;
2676   /// External Clock.
2677   pub const EXTCLK: u32 = 0x3;
2678}
2679
2680/// Period select
2681#[allow(non_upper_case_globals)]
2682pub mod rtc_period {
2683   /// Off.
2684   pub const OFF: u32 = 0x0;
2685   /// RTC Clock Cycles 4.
2686   pub const CYC4: u32 = 0x1;
2687   /// RTC Clock Cycles 8.
2688   pub const CYC8: u32 = 0x2;
2689   /// RTC Clock Cycles 16.
2690   pub const CYC16: u32 = 0x3;
2691   /// RTC Clock Cycles 32.
2692   pub const CYC32: u32 = 0x4;
2693   /// RTC Clock Cycles 64.
2694   pub const CYC64: u32 = 0x5;
2695   /// RTC Clock Cycles 128.
2696   pub const CYC128: u32 = 0x6;
2697   /// RTC Clock Cycles 256.
2698   pub const CYC256: u32 = 0x7;
2699   /// RTC Clock Cycles 512.
2700   pub const CYC512: u32 = 0x8;
2701   /// RTC Clock Cycles 1024.
2702   pub const CYC1024: u32 = 0x9;
2703   /// RTC Clock Cycles 2048.
2704   pub const CYC2048: u32 = 0xA;
2705   /// RTC Clock Cycles 4096.
2706   pub const CYC4096: u32 = 0xB;
2707   /// RTC Clock Cycles 8192.
2708   pub const CYC8192: u32 = 0xC;
2709   /// RTC Clock Cycles 16384.
2710   pub const CYC16384: u32 = 0xD;
2711   /// RTC Clock Cycles 32768.
2712   pub const CYC32768: u32 = 0xE;
2713}
2714
2715/// Prescaling Factor select
2716#[allow(non_upper_case_globals)]
2717pub mod rtc_prescaler {
2718   /// RTC Clock / 1.
2719   pub const DIV1: u32 = 0x0;
2720   /// RTC Clock / 2.
2721   pub const DIV2: u32 = 0x1;
2722   /// RTC Clock / 4.
2723   pub const DIV4: u32 = 0x2;
2724   /// RTC Clock / 8.
2725   pub const DIV8: u32 = 0x3;
2726   /// RTC Clock / 16.
2727   pub const DIV16: u32 = 0x4;
2728   /// RTC Clock / 32.
2729   pub const DIV32: u32 = 0x5;
2730   /// RTC Clock / 64.
2731   pub const DIV64: u32 = 0x6;
2732   /// RTC Clock / 128.
2733   pub const DIV128: u32 = 0x7;
2734   /// RTC Clock / 256.
2735   pub const DIV256: u32 = 0x8;
2736   /// RTC Clock / 512.
2737   pub const DIV512: u32 = 0x9;
2738   /// RTC Clock / 1024.
2739   pub const DIV1024: u32 = 0xA;
2740   /// RTC Clock / 2048.
2741   pub const DIV2048: u32 = 0xB;
2742   /// RTC Clock / 4096.
2743   pub const DIV4096: u32 = 0xC;
2744   /// RTC Clock / 8192.
2745   pub const DIV8192: u32 = 0xD;
2746   /// RTC Clock / 16384.
2747   pub const DIV16384: u32 = 0xE;
2748   /// RTC Clock / 32768.
2749   pub const DIV32768: u32 = 0xF;
2750}
2751
2752/// Sleep mode select
2753#[allow(non_upper_case_globals)]
2754pub mod slpctrl_smode {
2755   /// Idle mode.
2756   pub const IDLE: u32 = 0x0;
2757   /// Standby Mode.
2758   pub const STDBY: u32 = 0x1;
2759   /// Power-down Mode.
2760   pub const PDOWN: u32 = 0x2;
2761}
2762
2763/// SPI Mode select
2764#[allow(non_upper_case_globals)]
2765pub mod spi_mode {
2766   /// SPI Mode 0.
2767   pub const _0: u32 = 0x0;
2768   /// SPI Mode 1.
2769   pub const _1: u32 = 0x1;
2770   /// SPI Mode 2.
2771   pub const _2: u32 = 0x2;
2772   /// SPI Mode 3.
2773   pub const _3: u32 = 0x3;
2774}
2775
2776/// Prescaler select
2777#[allow(non_upper_case_globals)]
2778pub mod spi_presc {
2779   /// System Clock / 4.
2780   pub const DIV4: u32 = 0x0;
2781   /// System Clock / 16.
2782   pub const DIV16: u32 = 0x1;
2783   /// System Clock / 64.
2784   pub const DIV64: u32 = 0x2;
2785   /// System Clock / 128.
2786   pub const DIV128: u32 = 0x3;
2787}
2788
2789/// Clock Selection select
2790#[allow(non_upper_case_globals)]
2791pub mod tca_single_clksel {
2792   /// System Clock.
2793   pub const DIV1: u32 = 0x0;
2794   /// System Clock / 2.
2795   pub const DIV2: u32 = 0x1;
2796   /// System Clock / 4.
2797   pub const DIV4: u32 = 0x2;
2798   /// System Clock / 8.
2799   pub const DIV8: u32 = 0x3;
2800   /// System Clock / 16.
2801   pub const DIV16: u32 = 0x4;
2802   /// System Clock / 64.
2803   pub const DIV64: u32 = 0x5;
2804   /// System Clock / 256.
2805   pub const DIV256: u32 = 0x6;
2806   /// System Clock / 1024.
2807   pub const DIV1024: u32 = 0x7;
2808}
2809
2810/// Command select
2811#[allow(non_upper_case_globals)]
2812pub mod tca_single_cmd {
2813   /// No Command.
2814   pub const NONE: u32 = 0x0;
2815   /// Force Update.
2816   pub const UPDATE: u32 = 0x1;
2817   /// Force Restart.
2818   pub const RESTART: u32 = 0x2;
2819   /// Force Hard Reset.
2820   pub const RESET: u32 = 0x3;
2821}
2822
2823/// Direction select
2824#[allow(non_upper_case_globals)]
2825pub mod tca_single_dir {
2826   /// Count up.
2827   pub const UP: u32 = 0x0;
2828   /// Count down.
2829   pub const DOWN: u32 = 0x1;
2830}
2831
2832/// Event Action select
2833#[allow(non_upper_case_globals)]
2834pub mod tca_single_evact {
2835   /// Count on positive edge event.
2836   pub const POSEDGE: u32 = 0x0;
2837   /// Count on any edge event.
2838   pub const ANYEDGE: u32 = 0x1;
2839   /// Count on prescaled clock while event line is 1.
2840   pub const HIGHLVL: u32 = 0x2;
2841   /// Count on prescaled clock. Event controls count direction. Up-count when event line is 0, down-count when event line is 1.
2842   pub const UPDOWN: u32 = 0x3;
2843}
2844
2845/// Waveform generation mode select
2846#[allow(non_upper_case_globals)]
2847pub mod tca_single_wgmode {
2848   /// Normal Mode.
2849   pub const NORMAL: u32 = 0x0;
2850   /// Frequency Generation Mode.
2851   pub const FRQ: u32 = 0x1;
2852   /// Single Slope PWM.
2853   pub const SINGLESLOPE: u32 = 0x3;
2854   /// Dual Slope PWM, overflow on TOP.
2855   pub const DSTOP: u32 = 0x5;
2856   /// Dual Slope PWM, overflow on TOP and BOTTOM.
2857   pub const DSBOTH: u32 = 0x6;
2858   /// Dual Slope PWM, overflow on BOTTOM.
2859   pub const DSBOTTOM: u32 = 0x7;
2860}
2861
2862/// Clock Selection select
2863#[allow(non_upper_case_globals)]
2864pub mod tca_split_clksel {
2865   /// System Clock.
2866   pub const DIV1: u32 = 0x0;
2867   /// System Clock / 2.
2868   pub const DIV2: u32 = 0x1;
2869   /// System Clock / 4.
2870   pub const DIV4: u32 = 0x2;
2871   /// System Clock / 8.
2872   pub const DIV8: u32 = 0x3;
2873   /// System Clock / 16.
2874   pub const DIV16: u32 = 0x4;
2875   /// System Clock / 64.
2876   pub const DIV64: u32 = 0x5;
2877   /// System Clock / 256.
2878   pub const DIV256: u32 = 0x6;
2879   /// System Clock / 1024.
2880   pub const DIV1024: u32 = 0x7;
2881}
2882
2883/// Command select
2884#[allow(non_upper_case_globals)]
2885pub mod tca_split_cmd {
2886   /// No Command.
2887   pub const NONE: u32 = 0x0;
2888   /// Force Update.
2889   pub const UPDATE: u32 = 0x1;
2890   /// Force Restart.
2891   pub const RESTART: u32 = 0x2;
2892   /// Force Hard Reset.
2893   pub const RESET: u32 = 0x3;
2894}
2895
2896/// Clock Select select
2897#[allow(non_upper_case_globals)]
2898pub mod tcb_clksel {
2899   /// CLK_PER (No Prescaling).
2900   pub const CLKDIV1: u32 = 0x0;
2901   /// CLK_PER/2 (From Prescaler).
2902   pub const CLKDIV2: u32 = 0x1;
2903   /// Use Clock from TCA.
2904   pub const CLKTCA: u32 = 0x2;
2905}
2906
2907/// Timer Mode select
2908#[allow(non_upper_case_globals)]
2909pub mod tcb_cntmode {
2910   /// Periodic Interrupt.
2911   pub const INT: u32 = 0x0;
2912   /// Periodic Timeout.
2913   pub const TIMEOUT: u32 = 0x1;
2914   /// Input Capture Event.
2915   pub const CAPT: u32 = 0x2;
2916   /// Input Capture Frequency measurement.
2917   pub const FRQ: u32 = 0x3;
2918   /// Input Capture Pulse-Width measurement.
2919   pub const PW: u32 = 0x4;
2920   /// Input Capture Frequency and Pulse-Width measurement.
2921   pub const FRQPW: u32 = 0x5;
2922   /// Single Shot.
2923   pub const SINGLE: u32 = 0x6;
2924   /// 8-bit PWM.
2925   pub const PWM8: u32 = 0x7;
2926}
2927
2928/// event action select
2929#[allow(non_upper_case_globals)]
2930pub mod tcd_action {
2931   /// Event trigger a fault.
2932   pub const FAULT: u32 = 0x0;
2933   /// Event trigger a fault and capture.
2934   pub const CAPTURE: u32 = 0x1;
2935}
2936
2937/// event config select
2938#[allow(non_upper_case_globals)]
2939pub mod tcd_cfg {
2940   /// Neither Filter nor Asynchronous Event is enabled.
2941   pub const NEITHER: u32 = 0x0;
2942   /// Input Capture Noise Cancellation Filter enabled.
2943   pub const FILTER: u32 = 0x1;
2944   /// Asynchronous Event output qualification enabled.
2945   pub const ASYNC: u32 = 0x2;
2946}
2947
2948/// clock select select
2949#[allow(non_upper_case_globals)]
2950pub mod tcd_clksel {
2951   /// 20 MHz oscillator.
2952   pub const _20MHZ: u32 = 0x0;
2953   /// External clock.
2954   pub const EXTCLK: u32 = 0x2;
2955   /// System clock.
2956   pub const SYSCLK: u32 = 0x3;
2957}
2958
2959/// Compare C output select select
2960#[allow(non_upper_case_globals)]
2961pub mod tcd_cmpcsel {
2962   /// PWM A output.
2963   pub const PWMA: u32 = 0x0;
2964   /// PWM B output.
2965   pub const PWMB: u32 = 0x1;
2966}
2967
2968/// Compare D output select select
2969#[allow(non_upper_case_globals)]
2970pub mod tcd_cmpdsel {
2971   /// PWM A output.
2972   pub const PWMA: u32 = 0x0;
2973   /// PWM B output.
2974   pub const PWMB: u32 = 0x1;
2975}
2976
2977/// counter prescaler select
2978#[allow(non_upper_case_globals)]
2979pub mod tcd_cntpres {
2980   /// Sync clock divided by 1.
2981   pub const DIV1: u32 = 0x0;
2982   /// Sync clock divided by 4.
2983   pub const DIV4: u32 = 0x1;
2984   /// Sync clock divided by 32.
2985   pub const DIV32: u32 = 0x2;
2986}
2987
2988/// dither select select
2989#[allow(non_upper_case_globals)]
2990pub mod tcd_dithersel {
2991   /// On-time ramp B.
2992   pub const ONTIMEB: u32 = 0x0;
2993   /// On-time ramp A and B.
2994   pub const ONTIMEAB: u32 = 0x1;
2995   /// Dead-time rampB.
2996   pub const DEADTIMEB: u32 = 0x2;
2997   /// Dead-time ramp A and B.
2998   pub const DEADTIMEAB: u32 = 0x3;
2999}
3000
3001/// Delay prescaler select
3002#[allow(non_upper_case_globals)]
3003pub mod tcd_dlypresc {
3004   /// No prescaling.
3005   pub const DIV1: u32 = 0x0;
3006   /// Prescale with 2.
3007   pub const DIV2: u32 = 0x1;
3008   /// Prescale with 4.
3009   pub const DIV4: u32 = 0x2;
3010   /// Prescale with 8.
3011   pub const DIV8: u32 = 0x3;
3012}
3013
3014/// Delay select select
3015#[allow(non_upper_case_globals)]
3016pub mod tcd_dlysel {
3017   /// No delay.
3018   pub const OFF: u32 = 0x0;
3019   /// Input blanking enabled.
3020   pub const INBLANK: u32 = 0x1;
3021   /// Event delay enabled.
3022   pub const EVENT: u32 = 0x2;
3023}
3024
3025/// Delay trigger select
3026#[allow(non_upper_case_globals)]
3027pub mod tcd_dlytrig {
3028   /// Compare A set.
3029   pub const CMPASET: u32 = 0x0;
3030   /// Compare A clear.
3031   pub const CMPACLR: u32 = 0x1;
3032   /// Compare B set.
3033   pub const CMPBSET: u32 = 0x2;
3034   /// Compare B clear.
3035   pub const CMPBCLR: u32 = 0x3;
3036}
3037
3038/// edge select select
3039#[allow(non_upper_case_globals)]
3040pub mod tcd_edge {
3041   /// The falling edge or low level of event generates retrigger or fault action.
3042   pub const FALL_LOW: u32 = 0x0;
3043   /// The rising edge or high level of event generates retrigger or fault action.
3044   pub const RISE_HIGH: u32 = 0x1;
3045}
3046
3047/// Input mode select
3048#[allow(non_upper_case_globals)]
3049pub mod tcd_inputmode {
3050   /// Input has no actions.
3051   pub const NONE: u32 = 0x0;
3052   /// Stop output, jump to opposite compare cycle and wait.
3053   pub const JMPWAIT: u32 = 0x1;
3054   /// Stop output, execute opposite compare cycle and wait.
3055   pub const EXECWAIT: u32 = 0x2;
3056   /// stop output, execute opposite compare cycle while fault active.
3057   pub const EXECFAULT: u32 = 0x3;
3058   /// Stop all outputs, maintain frequency.
3059   pub const FREQ: u32 = 0x4;
3060   /// Stop all outputs, execute dead time while fault active.
3061   pub const EXECDT: u32 = 0x5;
3062   /// Stop all outputs, jump to next compare cycle and wait.
3063   pub const WAIT: u32 = 0x6;
3064   /// Stop all outputs, wait for software action.
3065   pub const WAITSW: u32 = 0x7;
3066   /// Stop output on edge, jump to next compare cycle.
3067   pub const EDGETRIG: u32 = 0x8;
3068   /// Stop output on edge, maintain frequency.
3069   pub const EDGETRIGFREQ: u32 = 0x9;
3070   /// Stop output at level, maintain frequency.
3071   pub const LVLTRIGFREQ: u32 = 0xA;
3072}
3073
3074/// Syncronization prescaler select
3075#[allow(non_upper_case_globals)]
3076pub mod tcd_syncpres {
3077   /// Selevted clock source divided by 1.
3078   pub const DIV1: u32 = 0x0;
3079   /// Selevted clock source divided by 2.
3080   pub const DIV2: u32 = 0x1;
3081   /// Selevted clock source divided by 4.
3082   pub const DIV4: u32 = 0x2;
3083   /// Selevted clock source divided by 8.
3084   pub const DIV8: u32 = 0x3;
3085}
3086
3087/// Waveform generation mode select
3088#[allow(non_upper_case_globals)]
3089pub mod tcd_wgmode {
3090   /// One ramp mode.
3091   pub const ONERAMP: u32 = 0x0;
3092   /// Two ramp mode.
3093   pub const TWORAMP: u32 = 0x1;
3094   /// Four ramp mode.
3095   pub const FOURRAMP: u32 = 0x2;
3096   /// Dual slope mode.
3097   pub const DS: u32 = 0x3;
3098}
3099
3100/// Acknowledge Action select
3101#[allow(non_upper_case_globals)]
3102pub mod twi_ackact {
3103   /// Send ACK.
3104   pub const ACK: u32 = 0x0;
3105   /// Send NACK.
3106   pub const NACK: u32 = 0x1;
3107}
3108
3109/// Slave Address or Stop select
3110#[allow(non_upper_case_globals)]
3111pub mod twi_ap {
3112   /// Stop condition generated APIF.
3113   pub const STOP: u32 = 0x0;
3114   /// Address detection generated APIF.
3115   pub const ADR: u32 = 0x1;
3116}
3117
3118/// Bus State select
3119#[allow(non_upper_case_globals)]
3120pub mod twi_busstate {
3121   /// Unknown Bus State.
3122   pub const UNKNOWN: u32 = 0x0;
3123   /// Bus is Idle.
3124   pub const IDLE: u32 = 0x1;
3125   /// This Module Controls The Bus.
3126   pub const OWNER: u32 = 0x2;
3127   /// The Bus is Busy.
3128   pub const BUSY: u32 = 0x3;
3129}
3130
3131/// Command select
3132#[allow(non_upper_case_globals)]
3133pub mod twi_mcmd {
3134   /// No Action.
3135   pub const NOACT: u32 = 0x0;
3136   /// Issue Repeated Start Condition.
3137   pub const REPSTART: u32 = 0x1;
3138   /// Receive or Transmit Data, depending on DIR.
3139   pub const RECVTRANS: u32 = 0x2;
3140   /// Issue Stop Condition.
3141   pub const STOP: u32 = 0x3;
3142}
3143
3144/// Command select
3145#[allow(non_upper_case_globals)]
3146pub mod twi_scmd {
3147   /// No Action.
3148   pub const NOACT: u32 = 0x0;
3149   /// Used To Complete a Transaction.
3150   pub const COMPTRANS: u32 = 0x2;
3151   /// Used in Response to Address/Data Interrupt.
3152   pub const RESPONSE: u32 = 0x3;
3153}
3154
3155/// SDA Hold Time select
3156#[allow(non_upper_case_globals)]
3157pub mod twi_sdahold {
3158   /// SDA hold time off.
3159   pub const OFF: u32 = 0x0;
3160   /// Typical 50ns hold time.
3161   pub const _50NS: u32 = 0x1;
3162   /// Typical 300ns hold time.
3163   pub const _300NS: u32 = 0x2;
3164   /// Typical 500ns hold time.
3165   pub const _500NS: u32 = 0x3;
3166}
3167
3168/// SDA Setup Time select
3169#[allow(non_upper_case_globals)]
3170pub mod twi_sdasetup {
3171   /// SDA setup time is 4 clock cycles.
3172   pub const _4CYC: u32 = 0x0;
3173   /// SDA setup time is 8 clock cycles.
3174   pub const _8CYC: u32 = 0x1;
3175}
3176
3177/// Inactive Bus Timeout select
3178#[allow(non_upper_case_globals)]
3179pub mod twi_timeout {
3180   /// Bus Timeout Disabled.
3181   pub const DISABLED: u32 = 0x0;
3182   /// 50 Microseconds.
3183   pub const _50US: u32 = 0x1;
3184   /// 100 Microseconds.
3185   pub const _100US: u32 = 0x2;
3186   /// 200 Microseconds.
3187   pub const _200US: u32 = 0x3;
3188}
3189
3190/// Communication Mode select
3191#[allow(non_upper_case_globals)]
3192pub mod usart_mspi_cmode {
3193   /// Asynchronous Mode.
3194   pub const ASYNCHRONOUS: u32 = 0x0;
3195   /// Synchronous Mode.
3196   pub const SYNCHRONOUS: u32 = 0x1;
3197   /// Infrared Communication.
3198   pub const IRCOM: u32 = 0x2;
3199   /// Master SPI Mode.
3200   pub const MSPI: u32 = 0x3;
3201}
3202
3203/// Character Size select
3204#[allow(non_upper_case_globals)]
3205pub mod usart_normal_chsize {
3206   /// Character size: 5 bit.
3207   pub const _5BIT: u32 = 0x0;
3208   /// Character size: 6 bit.
3209   pub const _6BIT: u32 = 0x1;
3210   /// Character size: 7 bit.
3211   pub const _7BIT: u32 = 0x2;
3212   /// Character size: 8 bit.
3213   pub const _8BIT: u32 = 0x3;
3214   /// Character size: 9 bit read low byte first.
3215   pub const _9BITL: u32 = 0x6;
3216   /// Character size: 9 bit read high byte first.
3217   pub const _9BITH: u32 = 0x7;
3218}
3219
3220/// Communication Mode select
3221#[allow(non_upper_case_globals)]
3222pub mod usart_normal_cmode {
3223   /// Asynchronous Mode.
3224   pub const ASYNCHRONOUS: u32 = 0x0;
3225   /// Synchronous Mode.
3226   pub const SYNCHRONOUS: u32 = 0x1;
3227   /// Infrared Communication.
3228   pub const IRCOM: u32 = 0x2;
3229   /// Master SPI Mode.
3230   pub const MSPI: u32 = 0x3;
3231}
3232
3233/// Parity Mode select
3234#[allow(non_upper_case_globals)]
3235pub mod usart_normal_pmode {
3236   /// No Parity.
3237   pub const DISABLED: u32 = 0x0;
3238   /// Even Parity.
3239   pub const EVEN: u32 = 0x2;
3240   /// Odd Parity.
3241   pub const ODD: u32 = 0x3;
3242}
3243
3244/// Stop Bit Mode select
3245#[allow(non_upper_case_globals)]
3246pub mod usart_normal_sbmode {
3247   /// 1 stop bit.
3248   pub const _1BIT: u32 = 0x0;
3249   /// 2 stop bits.
3250   pub const _2BIT: u32 = 0x1;
3251}
3252
3253/// RS485 Mode internal transmitter select
3254#[allow(non_upper_case_globals)]
3255pub mod usart_rs485 {
3256   /// RS485 Mode disabled.
3257   pub const OFF: u32 = 0x0;
3258   /// RS485 Mode External drive.
3259   pub const EXT: u32 = 0x1;
3260   /// RS485 Mode Internal drive.
3261   pub const INT: u32 = 0x2;
3262}
3263
3264/// Receiver Mode select
3265#[allow(non_upper_case_globals)]
3266pub mod usart_rxmode {
3267   /// Normal mode.
3268   pub const NORMAL: u32 = 0x0;
3269   /// CLK2x mode.
3270   pub const CLK2X: u32 = 0x1;
3271   /// Generic autobaud mode.
3272   pub const GENAUTO: u32 = 0x2;
3273   /// LIN constrained autobaud mode.
3274   pub const LINAUTO: u32 = 0x3;
3275}
3276
3277/// ADC0 reference select select
3278#[allow(non_upper_case_globals)]
3279pub mod vref_adc0refsel {
3280   /// Voltage reference at 0.55V.
3281   pub const _0V55: u32 = 0x0;
3282   /// Voltage reference at 1.1V.
3283   pub const _1V1: u32 = 0x1;
3284   /// Voltage reference at 2.5V.
3285   pub const _2V5: u32 = 0x2;
3286   /// Voltage reference at 4.34V.
3287   pub const _4V34: u32 = 0x3;
3288   /// Voltage reference at 1.5V.
3289   pub const _1V5: u32 = 0x4;
3290}
3291
3292/// DAC0/AC0 reference select select
3293#[allow(non_upper_case_globals)]
3294pub mod vref_dac0refsel {
3295   /// Voltage reference at 0.55V.
3296   pub const _0V55: u32 = 0x0;
3297   /// Voltage reference at 1.1V.
3298   pub const _1V1: u32 = 0x1;
3299   /// Voltage reference at 2.5V.
3300   pub const _2V5: u32 = 0x2;
3301   /// Voltage reference at 4.34V.
3302   pub const _4V34: u32 = 0x3;
3303   /// Voltage reference at 1.5V.
3304   pub const _1V5: u32 = 0x4;
3305}
3306
3307/// Period select
3308#[allow(non_upper_case_globals)]
3309pub mod wdt_period {
3310   /// Watch-Dog timer Off.
3311   pub const OFF: u32 = 0x0;
3312   /// 8 cycles (8ms).
3313   pub const _8CLK: u32 = 0x1;
3314   /// 16 cycles (16ms).
3315   pub const _16CLK: u32 = 0x2;
3316   /// 32 cycles (32ms).
3317   pub const _32CLK: u32 = 0x3;
3318   /// 64 cycles (64ms).
3319   pub const _64CLK: u32 = 0x4;
3320   /// 128 cycles (0.128s).
3321   pub const _128CLK: u32 = 0x5;
3322   /// 256 cycles (0.256s).
3323   pub const _256CLK: u32 = 0x6;
3324   /// 512 cycles (0.512s).
3325   pub const _512CLK: u32 = 0x7;
3326   /// 1K cycles (1.0s).
3327   pub const _1KCLK: u32 = 0x8;
3328   /// 2K cycles (2.0s).
3329   pub const _2KCLK: u32 = 0x9;
3330   /// 4K cycles (4.1s).
3331   pub const _4KCLK: u32 = 0xA;
3332   /// 8K cycles (8.2s).
3333   pub const _8KCLK: u32 = 0xB;
3334}
3335
3336/// Window select
3337#[allow(non_upper_case_globals)]
3338pub mod wdt_window {
3339   /// Window mode off.
3340   pub const OFF: u32 = 0x0;
3341   /// 8 cycles (8ms).
3342   pub const _8CLK: u32 = 0x1;
3343   /// 16 cycles (16ms).
3344   pub const _16CLK: u32 = 0x2;
3345   /// 32 cycles (32ms).
3346   pub const _32CLK: u32 = 0x3;
3347   /// 64 cycles (64ms).
3348   pub const _64CLK: u32 = 0x4;
3349   /// 128 cycles (0.128s).
3350   pub const _128CLK: u32 = 0x5;
3351   /// 256 cycles (0.256s).
3352   pub const _256CLK: u32 = 0x6;
3353   /// 512 cycles (0.512s).
3354   pub const _512CLK: u32 = 0x7;
3355   /// 1K cycles (1.0s).
3356   pub const _1KCLK: u32 = 0x8;
3357   /// 2K cycles (2.0s).
3358   pub const _2KCLK: u32 = 0x9;
3359   /// 4K cycles (4.1s).
3360   pub const _4KCLK: u32 = 0xA;
3361   /// 8K cycles (8.2s).
3362   pub const _8KCLK: u32 = 0xB;
3363}
3364