avrd/gen/
attiny814.rs

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