avrd/gen/
attiny412.rs

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