atsamd51p/rtc/mode1/
tampctrl.rs

1#[doc = "Register `TAMPCTRL` reader"]
2pub type R = crate::R<TampctrlSpec>;
3#[doc = "Register `TAMPCTRL` writer"]
4pub type W = crate::W<TampctrlSpec>;
5#[doc = "Tamper Input 0 Action\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7#[repr(u8)]
8pub enum In0actselect {
9    #[doc = "0: Off (Disabled)"]
10    Off = 0,
11    #[doc = "1: Wake without timestamp"]
12    Wake = 1,
13    #[doc = "2: Capture timestamp"]
14    Capture = 2,
15    #[doc = "3: Compare IN0 to OUT"]
16    Actl = 3,
17}
18impl From<In0actselect> for u8 {
19    #[inline(always)]
20    fn from(variant: In0actselect) -> Self {
21        variant as _
22    }
23}
24impl crate::FieldSpec for In0actselect {
25    type Ux = u8;
26}
27impl crate::IsEnum for In0actselect {}
28#[doc = "Field `IN0ACT` reader - Tamper Input 0 Action"]
29pub type In0actR = crate::FieldReader<In0actselect>;
30impl In0actR {
31    #[doc = "Get enumerated values variant"]
32    #[inline(always)]
33    pub const fn variant(&self) -> In0actselect {
34        match self.bits {
35            0 => In0actselect::Off,
36            1 => In0actselect::Wake,
37            2 => In0actselect::Capture,
38            3 => In0actselect::Actl,
39            _ => unreachable!(),
40        }
41    }
42    #[doc = "Off (Disabled)"]
43    #[inline(always)]
44    pub fn is_off(&self) -> bool {
45        *self == In0actselect::Off
46    }
47    #[doc = "Wake without timestamp"]
48    #[inline(always)]
49    pub fn is_wake(&self) -> bool {
50        *self == In0actselect::Wake
51    }
52    #[doc = "Capture timestamp"]
53    #[inline(always)]
54    pub fn is_capture(&self) -> bool {
55        *self == In0actselect::Capture
56    }
57    #[doc = "Compare IN0 to OUT"]
58    #[inline(always)]
59    pub fn is_actl(&self) -> bool {
60        *self == In0actselect::Actl
61    }
62}
63#[doc = "Field `IN0ACT` writer - Tamper Input 0 Action"]
64pub type In0actW<'a, REG> = crate::FieldWriter<'a, REG, 2, In0actselect, crate::Safe>;
65impl<'a, REG> In0actW<'a, REG>
66where
67    REG: crate::Writable + crate::RegisterSpec,
68    REG::Ux: From<u8>,
69{
70    #[doc = "Off (Disabled)"]
71    #[inline(always)]
72    pub fn off(self) -> &'a mut crate::W<REG> {
73        self.variant(In0actselect::Off)
74    }
75    #[doc = "Wake without timestamp"]
76    #[inline(always)]
77    pub fn wake(self) -> &'a mut crate::W<REG> {
78        self.variant(In0actselect::Wake)
79    }
80    #[doc = "Capture timestamp"]
81    #[inline(always)]
82    pub fn capture(self) -> &'a mut crate::W<REG> {
83        self.variant(In0actselect::Capture)
84    }
85    #[doc = "Compare IN0 to OUT"]
86    #[inline(always)]
87    pub fn actl(self) -> &'a mut crate::W<REG> {
88        self.variant(In0actselect::Actl)
89    }
90}
91#[doc = "Tamper Input 1 Action\n\nValue on reset: 0"]
92#[derive(Clone, Copy, Debug, PartialEq, Eq)]
93#[repr(u8)]
94pub enum In1actselect {
95    #[doc = "0: Off (Disabled)"]
96    Off = 0,
97    #[doc = "1: Wake without timestamp"]
98    Wake = 1,
99    #[doc = "2: Capture timestamp"]
100    Capture = 2,
101    #[doc = "3: Compare IN1 to OUT"]
102    Actl = 3,
103}
104impl From<In1actselect> for u8 {
105    #[inline(always)]
106    fn from(variant: In1actselect) -> Self {
107        variant as _
108    }
109}
110impl crate::FieldSpec for In1actselect {
111    type Ux = u8;
112}
113impl crate::IsEnum for In1actselect {}
114#[doc = "Field `IN1ACT` reader - Tamper Input 1 Action"]
115pub type In1actR = crate::FieldReader<In1actselect>;
116impl In1actR {
117    #[doc = "Get enumerated values variant"]
118    #[inline(always)]
119    pub const fn variant(&self) -> In1actselect {
120        match self.bits {
121            0 => In1actselect::Off,
122            1 => In1actselect::Wake,
123            2 => In1actselect::Capture,
124            3 => In1actselect::Actl,
125            _ => unreachable!(),
126        }
127    }
128    #[doc = "Off (Disabled)"]
129    #[inline(always)]
130    pub fn is_off(&self) -> bool {
131        *self == In1actselect::Off
132    }
133    #[doc = "Wake without timestamp"]
134    #[inline(always)]
135    pub fn is_wake(&self) -> bool {
136        *self == In1actselect::Wake
137    }
138    #[doc = "Capture timestamp"]
139    #[inline(always)]
140    pub fn is_capture(&self) -> bool {
141        *self == In1actselect::Capture
142    }
143    #[doc = "Compare IN1 to OUT"]
144    #[inline(always)]
145    pub fn is_actl(&self) -> bool {
146        *self == In1actselect::Actl
147    }
148}
149#[doc = "Field `IN1ACT` writer - Tamper Input 1 Action"]
150pub type In1actW<'a, REG> = crate::FieldWriter<'a, REG, 2, In1actselect, crate::Safe>;
151impl<'a, REG> In1actW<'a, REG>
152where
153    REG: crate::Writable + crate::RegisterSpec,
154    REG::Ux: From<u8>,
155{
156    #[doc = "Off (Disabled)"]
157    #[inline(always)]
158    pub fn off(self) -> &'a mut crate::W<REG> {
159        self.variant(In1actselect::Off)
160    }
161    #[doc = "Wake without timestamp"]
162    #[inline(always)]
163    pub fn wake(self) -> &'a mut crate::W<REG> {
164        self.variant(In1actselect::Wake)
165    }
166    #[doc = "Capture timestamp"]
167    #[inline(always)]
168    pub fn capture(self) -> &'a mut crate::W<REG> {
169        self.variant(In1actselect::Capture)
170    }
171    #[doc = "Compare IN1 to OUT"]
172    #[inline(always)]
173    pub fn actl(self) -> &'a mut crate::W<REG> {
174        self.variant(In1actselect::Actl)
175    }
176}
177#[doc = "Tamper Input 2 Action\n\nValue on reset: 0"]
178#[derive(Clone, Copy, Debug, PartialEq, Eq)]
179#[repr(u8)]
180pub enum In2actselect {
181    #[doc = "0: Off (Disabled)"]
182    Off = 0,
183    #[doc = "1: Wake without timestamp"]
184    Wake = 1,
185    #[doc = "2: Capture timestamp"]
186    Capture = 2,
187    #[doc = "3: Compare IN2 to OUT"]
188    Actl = 3,
189}
190impl From<In2actselect> for u8 {
191    #[inline(always)]
192    fn from(variant: In2actselect) -> Self {
193        variant as _
194    }
195}
196impl crate::FieldSpec for In2actselect {
197    type Ux = u8;
198}
199impl crate::IsEnum for In2actselect {}
200#[doc = "Field `IN2ACT` reader - Tamper Input 2 Action"]
201pub type In2actR = crate::FieldReader<In2actselect>;
202impl In2actR {
203    #[doc = "Get enumerated values variant"]
204    #[inline(always)]
205    pub const fn variant(&self) -> In2actselect {
206        match self.bits {
207            0 => In2actselect::Off,
208            1 => In2actselect::Wake,
209            2 => In2actselect::Capture,
210            3 => In2actselect::Actl,
211            _ => unreachable!(),
212        }
213    }
214    #[doc = "Off (Disabled)"]
215    #[inline(always)]
216    pub fn is_off(&self) -> bool {
217        *self == In2actselect::Off
218    }
219    #[doc = "Wake without timestamp"]
220    #[inline(always)]
221    pub fn is_wake(&self) -> bool {
222        *self == In2actselect::Wake
223    }
224    #[doc = "Capture timestamp"]
225    #[inline(always)]
226    pub fn is_capture(&self) -> bool {
227        *self == In2actselect::Capture
228    }
229    #[doc = "Compare IN2 to OUT"]
230    #[inline(always)]
231    pub fn is_actl(&self) -> bool {
232        *self == In2actselect::Actl
233    }
234}
235#[doc = "Field `IN2ACT` writer - Tamper Input 2 Action"]
236pub type In2actW<'a, REG> = crate::FieldWriter<'a, REG, 2, In2actselect, crate::Safe>;
237impl<'a, REG> In2actW<'a, REG>
238where
239    REG: crate::Writable + crate::RegisterSpec,
240    REG::Ux: From<u8>,
241{
242    #[doc = "Off (Disabled)"]
243    #[inline(always)]
244    pub fn off(self) -> &'a mut crate::W<REG> {
245        self.variant(In2actselect::Off)
246    }
247    #[doc = "Wake without timestamp"]
248    #[inline(always)]
249    pub fn wake(self) -> &'a mut crate::W<REG> {
250        self.variant(In2actselect::Wake)
251    }
252    #[doc = "Capture timestamp"]
253    #[inline(always)]
254    pub fn capture(self) -> &'a mut crate::W<REG> {
255        self.variant(In2actselect::Capture)
256    }
257    #[doc = "Compare IN2 to OUT"]
258    #[inline(always)]
259    pub fn actl(self) -> &'a mut crate::W<REG> {
260        self.variant(In2actselect::Actl)
261    }
262}
263#[doc = "Tamper Input 3 Action\n\nValue on reset: 0"]
264#[derive(Clone, Copy, Debug, PartialEq, Eq)]
265#[repr(u8)]
266pub enum In3actselect {
267    #[doc = "0: Off (Disabled)"]
268    Off = 0,
269    #[doc = "1: Wake without timestamp"]
270    Wake = 1,
271    #[doc = "2: Capture timestamp"]
272    Capture = 2,
273    #[doc = "3: Compare IN3 to OUT"]
274    Actl = 3,
275}
276impl From<In3actselect> for u8 {
277    #[inline(always)]
278    fn from(variant: In3actselect) -> Self {
279        variant as _
280    }
281}
282impl crate::FieldSpec for In3actselect {
283    type Ux = u8;
284}
285impl crate::IsEnum for In3actselect {}
286#[doc = "Field `IN3ACT` reader - Tamper Input 3 Action"]
287pub type In3actR = crate::FieldReader<In3actselect>;
288impl In3actR {
289    #[doc = "Get enumerated values variant"]
290    #[inline(always)]
291    pub const fn variant(&self) -> In3actselect {
292        match self.bits {
293            0 => In3actselect::Off,
294            1 => In3actselect::Wake,
295            2 => In3actselect::Capture,
296            3 => In3actselect::Actl,
297            _ => unreachable!(),
298        }
299    }
300    #[doc = "Off (Disabled)"]
301    #[inline(always)]
302    pub fn is_off(&self) -> bool {
303        *self == In3actselect::Off
304    }
305    #[doc = "Wake without timestamp"]
306    #[inline(always)]
307    pub fn is_wake(&self) -> bool {
308        *self == In3actselect::Wake
309    }
310    #[doc = "Capture timestamp"]
311    #[inline(always)]
312    pub fn is_capture(&self) -> bool {
313        *self == In3actselect::Capture
314    }
315    #[doc = "Compare IN3 to OUT"]
316    #[inline(always)]
317    pub fn is_actl(&self) -> bool {
318        *self == In3actselect::Actl
319    }
320}
321#[doc = "Field `IN3ACT` writer - Tamper Input 3 Action"]
322pub type In3actW<'a, REG> = crate::FieldWriter<'a, REG, 2, In3actselect, crate::Safe>;
323impl<'a, REG> In3actW<'a, REG>
324where
325    REG: crate::Writable + crate::RegisterSpec,
326    REG::Ux: From<u8>,
327{
328    #[doc = "Off (Disabled)"]
329    #[inline(always)]
330    pub fn off(self) -> &'a mut crate::W<REG> {
331        self.variant(In3actselect::Off)
332    }
333    #[doc = "Wake without timestamp"]
334    #[inline(always)]
335    pub fn wake(self) -> &'a mut crate::W<REG> {
336        self.variant(In3actselect::Wake)
337    }
338    #[doc = "Capture timestamp"]
339    #[inline(always)]
340    pub fn capture(self) -> &'a mut crate::W<REG> {
341        self.variant(In3actselect::Capture)
342    }
343    #[doc = "Compare IN3 to OUT"]
344    #[inline(always)]
345    pub fn actl(self) -> &'a mut crate::W<REG> {
346        self.variant(In3actselect::Actl)
347    }
348}
349#[doc = "Tamper Input 4 Action\n\nValue on reset: 0"]
350#[derive(Clone, Copy, Debug, PartialEq, Eq)]
351#[repr(u8)]
352pub enum In4actselect {
353    #[doc = "0: Off (Disabled)"]
354    Off = 0,
355    #[doc = "1: Wake without timestamp"]
356    Wake = 1,
357    #[doc = "2: Capture timestamp"]
358    Capture = 2,
359    #[doc = "3: Compare IN4 to OUT"]
360    Actl = 3,
361}
362impl From<In4actselect> for u8 {
363    #[inline(always)]
364    fn from(variant: In4actselect) -> Self {
365        variant as _
366    }
367}
368impl crate::FieldSpec for In4actselect {
369    type Ux = u8;
370}
371impl crate::IsEnum for In4actselect {}
372#[doc = "Field `IN4ACT` reader - Tamper Input 4 Action"]
373pub type In4actR = crate::FieldReader<In4actselect>;
374impl In4actR {
375    #[doc = "Get enumerated values variant"]
376    #[inline(always)]
377    pub const fn variant(&self) -> In4actselect {
378        match self.bits {
379            0 => In4actselect::Off,
380            1 => In4actselect::Wake,
381            2 => In4actselect::Capture,
382            3 => In4actselect::Actl,
383            _ => unreachable!(),
384        }
385    }
386    #[doc = "Off (Disabled)"]
387    #[inline(always)]
388    pub fn is_off(&self) -> bool {
389        *self == In4actselect::Off
390    }
391    #[doc = "Wake without timestamp"]
392    #[inline(always)]
393    pub fn is_wake(&self) -> bool {
394        *self == In4actselect::Wake
395    }
396    #[doc = "Capture timestamp"]
397    #[inline(always)]
398    pub fn is_capture(&self) -> bool {
399        *self == In4actselect::Capture
400    }
401    #[doc = "Compare IN4 to OUT"]
402    #[inline(always)]
403    pub fn is_actl(&self) -> bool {
404        *self == In4actselect::Actl
405    }
406}
407#[doc = "Field `IN4ACT` writer - Tamper Input 4 Action"]
408pub type In4actW<'a, REG> = crate::FieldWriter<'a, REG, 2, In4actselect, crate::Safe>;
409impl<'a, REG> In4actW<'a, REG>
410where
411    REG: crate::Writable + crate::RegisterSpec,
412    REG::Ux: From<u8>,
413{
414    #[doc = "Off (Disabled)"]
415    #[inline(always)]
416    pub fn off(self) -> &'a mut crate::W<REG> {
417        self.variant(In4actselect::Off)
418    }
419    #[doc = "Wake without timestamp"]
420    #[inline(always)]
421    pub fn wake(self) -> &'a mut crate::W<REG> {
422        self.variant(In4actselect::Wake)
423    }
424    #[doc = "Capture timestamp"]
425    #[inline(always)]
426    pub fn capture(self) -> &'a mut crate::W<REG> {
427        self.variant(In4actselect::Capture)
428    }
429    #[doc = "Compare IN4 to OUT"]
430    #[inline(always)]
431    pub fn actl(self) -> &'a mut crate::W<REG> {
432        self.variant(In4actselect::Actl)
433    }
434}
435#[doc = "Field `TAMLVL0` reader - Tamper Level Select 0"]
436pub type Tamlvl0R = crate::BitReader;
437#[doc = "Field `TAMLVL0` writer - Tamper Level Select 0"]
438pub type Tamlvl0W<'a, REG> = crate::BitWriter<'a, REG>;
439#[doc = "Field `TAMLVL1` reader - Tamper Level Select 1"]
440pub type Tamlvl1R = crate::BitReader;
441#[doc = "Field `TAMLVL1` writer - Tamper Level Select 1"]
442pub type Tamlvl1W<'a, REG> = crate::BitWriter<'a, REG>;
443#[doc = "Field `TAMLVL2` reader - Tamper Level Select 2"]
444pub type Tamlvl2R = crate::BitReader;
445#[doc = "Field `TAMLVL2` writer - Tamper Level Select 2"]
446pub type Tamlvl2W<'a, REG> = crate::BitWriter<'a, REG>;
447#[doc = "Field `TAMLVL3` reader - Tamper Level Select 3"]
448pub type Tamlvl3R = crate::BitReader;
449#[doc = "Field `TAMLVL3` writer - Tamper Level Select 3"]
450pub type Tamlvl3W<'a, REG> = crate::BitWriter<'a, REG>;
451#[doc = "Field `TAMLVL4` reader - Tamper Level Select 4"]
452pub type Tamlvl4R = crate::BitReader;
453#[doc = "Field `TAMLVL4` writer - Tamper Level Select 4"]
454pub type Tamlvl4W<'a, REG> = crate::BitWriter<'a, REG>;
455#[doc = "Field `DEBNC0` reader - Debouncer Enable 0"]
456pub type Debnc0R = crate::BitReader;
457#[doc = "Field `DEBNC0` writer - Debouncer Enable 0"]
458pub type Debnc0W<'a, REG> = crate::BitWriter<'a, REG>;
459#[doc = "Field `DEBNC1` reader - Debouncer Enable 1"]
460pub type Debnc1R = crate::BitReader;
461#[doc = "Field `DEBNC1` writer - Debouncer Enable 1"]
462pub type Debnc1W<'a, REG> = crate::BitWriter<'a, REG>;
463#[doc = "Field `DEBNC2` reader - Debouncer Enable 2"]
464pub type Debnc2R = crate::BitReader;
465#[doc = "Field `DEBNC2` writer - Debouncer Enable 2"]
466pub type Debnc2W<'a, REG> = crate::BitWriter<'a, REG>;
467#[doc = "Field `DEBNC3` reader - Debouncer Enable 3"]
468pub type Debnc3R = crate::BitReader;
469#[doc = "Field `DEBNC3` writer - Debouncer Enable 3"]
470pub type Debnc3W<'a, REG> = crate::BitWriter<'a, REG>;
471#[doc = "Field `DEBNC4` reader - Debouncer Enable 4"]
472pub type Debnc4R = crate::BitReader;
473#[doc = "Field `DEBNC4` writer - Debouncer Enable 4"]
474pub type Debnc4W<'a, REG> = crate::BitWriter<'a, REG>;
475impl R {
476    #[doc = "Bits 0:1 - Tamper Input 0 Action"]
477    #[inline(always)]
478    pub fn in0act(&self) -> In0actR {
479        In0actR::new((self.bits & 3) as u8)
480    }
481    #[doc = "Bits 2:3 - Tamper Input 1 Action"]
482    #[inline(always)]
483    pub fn in1act(&self) -> In1actR {
484        In1actR::new(((self.bits >> 2) & 3) as u8)
485    }
486    #[doc = "Bits 4:5 - Tamper Input 2 Action"]
487    #[inline(always)]
488    pub fn in2act(&self) -> In2actR {
489        In2actR::new(((self.bits >> 4) & 3) as u8)
490    }
491    #[doc = "Bits 6:7 - Tamper Input 3 Action"]
492    #[inline(always)]
493    pub fn in3act(&self) -> In3actR {
494        In3actR::new(((self.bits >> 6) & 3) as u8)
495    }
496    #[doc = "Bits 8:9 - Tamper Input 4 Action"]
497    #[inline(always)]
498    pub fn in4act(&self) -> In4actR {
499        In4actR::new(((self.bits >> 8) & 3) as u8)
500    }
501    #[doc = "Bit 16 - Tamper Level Select 0"]
502    #[inline(always)]
503    pub fn tamlvl0(&self) -> Tamlvl0R {
504        Tamlvl0R::new(((self.bits >> 16) & 1) != 0)
505    }
506    #[doc = "Bit 17 - Tamper Level Select 1"]
507    #[inline(always)]
508    pub fn tamlvl1(&self) -> Tamlvl1R {
509        Tamlvl1R::new(((self.bits >> 17) & 1) != 0)
510    }
511    #[doc = "Bit 18 - Tamper Level Select 2"]
512    #[inline(always)]
513    pub fn tamlvl2(&self) -> Tamlvl2R {
514        Tamlvl2R::new(((self.bits >> 18) & 1) != 0)
515    }
516    #[doc = "Bit 19 - Tamper Level Select 3"]
517    #[inline(always)]
518    pub fn tamlvl3(&self) -> Tamlvl3R {
519        Tamlvl3R::new(((self.bits >> 19) & 1) != 0)
520    }
521    #[doc = "Bit 20 - Tamper Level Select 4"]
522    #[inline(always)]
523    pub fn tamlvl4(&self) -> Tamlvl4R {
524        Tamlvl4R::new(((self.bits >> 20) & 1) != 0)
525    }
526    #[doc = "Bit 24 - Debouncer Enable 0"]
527    #[inline(always)]
528    pub fn debnc0(&self) -> Debnc0R {
529        Debnc0R::new(((self.bits >> 24) & 1) != 0)
530    }
531    #[doc = "Bit 25 - Debouncer Enable 1"]
532    #[inline(always)]
533    pub fn debnc1(&self) -> Debnc1R {
534        Debnc1R::new(((self.bits >> 25) & 1) != 0)
535    }
536    #[doc = "Bit 26 - Debouncer Enable 2"]
537    #[inline(always)]
538    pub fn debnc2(&self) -> Debnc2R {
539        Debnc2R::new(((self.bits >> 26) & 1) != 0)
540    }
541    #[doc = "Bit 27 - Debouncer Enable 3"]
542    #[inline(always)]
543    pub fn debnc3(&self) -> Debnc3R {
544        Debnc3R::new(((self.bits >> 27) & 1) != 0)
545    }
546    #[doc = "Bit 28 - Debouncer Enable 4"]
547    #[inline(always)]
548    pub fn debnc4(&self) -> Debnc4R {
549        Debnc4R::new(((self.bits >> 28) & 1) != 0)
550    }
551}
552impl W {
553    #[doc = "Bits 0:1 - Tamper Input 0 Action"]
554    #[inline(always)]
555    #[must_use]
556    pub fn in0act(&mut self) -> In0actW<TampctrlSpec> {
557        In0actW::new(self, 0)
558    }
559    #[doc = "Bits 2:3 - Tamper Input 1 Action"]
560    #[inline(always)]
561    #[must_use]
562    pub fn in1act(&mut self) -> In1actW<TampctrlSpec> {
563        In1actW::new(self, 2)
564    }
565    #[doc = "Bits 4:5 - Tamper Input 2 Action"]
566    #[inline(always)]
567    #[must_use]
568    pub fn in2act(&mut self) -> In2actW<TampctrlSpec> {
569        In2actW::new(self, 4)
570    }
571    #[doc = "Bits 6:7 - Tamper Input 3 Action"]
572    #[inline(always)]
573    #[must_use]
574    pub fn in3act(&mut self) -> In3actW<TampctrlSpec> {
575        In3actW::new(self, 6)
576    }
577    #[doc = "Bits 8:9 - Tamper Input 4 Action"]
578    #[inline(always)]
579    #[must_use]
580    pub fn in4act(&mut self) -> In4actW<TampctrlSpec> {
581        In4actW::new(self, 8)
582    }
583    #[doc = "Bit 16 - Tamper Level Select 0"]
584    #[inline(always)]
585    #[must_use]
586    pub fn tamlvl0(&mut self) -> Tamlvl0W<TampctrlSpec> {
587        Tamlvl0W::new(self, 16)
588    }
589    #[doc = "Bit 17 - Tamper Level Select 1"]
590    #[inline(always)]
591    #[must_use]
592    pub fn tamlvl1(&mut self) -> Tamlvl1W<TampctrlSpec> {
593        Tamlvl1W::new(self, 17)
594    }
595    #[doc = "Bit 18 - Tamper Level Select 2"]
596    #[inline(always)]
597    #[must_use]
598    pub fn tamlvl2(&mut self) -> Tamlvl2W<TampctrlSpec> {
599        Tamlvl2W::new(self, 18)
600    }
601    #[doc = "Bit 19 - Tamper Level Select 3"]
602    #[inline(always)]
603    #[must_use]
604    pub fn tamlvl3(&mut self) -> Tamlvl3W<TampctrlSpec> {
605        Tamlvl3W::new(self, 19)
606    }
607    #[doc = "Bit 20 - Tamper Level Select 4"]
608    #[inline(always)]
609    #[must_use]
610    pub fn tamlvl4(&mut self) -> Tamlvl4W<TampctrlSpec> {
611        Tamlvl4W::new(self, 20)
612    }
613    #[doc = "Bit 24 - Debouncer Enable 0"]
614    #[inline(always)]
615    #[must_use]
616    pub fn debnc0(&mut self) -> Debnc0W<TampctrlSpec> {
617        Debnc0W::new(self, 24)
618    }
619    #[doc = "Bit 25 - Debouncer Enable 1"]
620    #[inline(always)]
621    #[must_use]
622    pub fn debnc1(&mut self) -> Debnc1W<TampctrlSpec> {
623        Debnc1W::new(self, 25)
624    }
625    #[doc = "Bit 26 - Debouncer Enable 2"]
626    #[inline(always)]
627    #[must_use]
628    pub fn debnc2(&mut self) -> Debnc2W<TampctrlSpec> {
629        Debnc2W::new(self, 26)
630    }
631    #[doc = "Bit 27 - Debouncer Enable 3"]
632    #[inline(always)]
633    #[must_use]
634    pub fn debnc3(&mut self) -> Debnc3W<TampctrlSpec> {
635        Debnc3W::new(self, 27)
636    }
637    #[doc = "Bit 28 - Debouncer Enable 4"]
638    #[inline(always)]
639    #[must_use]
640    pub fn debnc4(&mut self) -> Debnc4W<TampctrlSpec> {
641        Debnc4W::new(self, 28)
642    }
643}
644#[doc = "Tamper Control\n\nYou can [`read`](crate::Reg::read) this register and get [`tampctrl::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tampctrl::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
645pub struct TampctrlSpec;
646impl crate::RegisterSpec for TampctrlSpec {
647    type Ux = u32;
648}
649#[doc = "`read()` method returns [`tampctrl::R`](R) reader structure"]
650impl crate::Readable for TampctrlSpec {}
651#[doc = "`write(|w| ..)` method takes [`tampctrl::W`](W) writer structure"]
652impl crate::Writable for TampctrlSpec {
653    type Safety = crate::Unsafe;
654    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
655    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
656}
657#[doc = "`reset()` method sets TAMPCTRL to value 0"]
658impl crate::Resettable for TampctrlSpec {
659    const RESET_VALUE: u32 = 0;
660}