mimxrt685s_pac/puf/
keylock.rs

1#[doc = "Register `KEYLOCK` reader"]
2pub type R = crate::R<KeylockSpec>;
3#[doc = "Register `KEYLOCK` writer"]
4pub type W = crate::W<KeylockSpec>;
5#[doc = "Key 0\n\nValue on reset: 2"]
6#[cfg_attr(feature = "defmt", derive(defmt::Format))]
7#[derive(Clone, Copy, Debug, PartialEq, Eq)]
8#[repr(u8)]
9pub enum Key0 {
10    #[doc = "0: Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
11and KEYRESET\\[KEY0\\]
12is NOT allowed."]
13    Key0lock0 = 0,
14    #[doc = "1: Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
15and KEYRESET\\[KEY0\\]
16is NOT allowed."]
17    Key0lock1 = 1,
18    #[doc = "2: Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
19and KEYRESET\\[KEY0\\]
20is allowed."]
21    Key0unlock = 2,
22    #[doc = "3: Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
23and KEYRESET\\[KEY0\\]
24is NOT allowed."]
25    Key0lock3 = 3,
26}
27impl From<Key0> for u8 {
28    #[inline(always)]
29    fn from(variant: Key0) -> Self {
30        variant as _
31    }
32}
33impl crate::FieldSpec for Key0 {
34    type Ux = u8;
35}
36impl crate::IsEnum for Key0 {}
37#[doc = "Field `KEY0` reader - Key 0"]
38pub type Key0R = crate::FieldReader<Key0>;
39impl Key0R {
40    #[doc = "Get enumerated values variant"]
41    #[inline(always)]
42    pub const fn variant(&self) -> Key0 {
43        match self.bits {
44            0 => Key0::Key0lock0,
45            1 => Key0::Key0lock1,
46            2 => Key0::Key0unlock,
47            3 => Key0::Key0lock3,
48            _ => unreachable!(),
49        }
50    }
51    #[doc = "Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
52and KEYRESET\\[KEY0\\]
53is NOT allowed."]
54    #[inline(always)]
55    pub fn is_key0lock_0(&self) -> bool {
56        *self == Key0::Key0lock0
57    }
58    #[doc = "Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
59and KEYRESET\\[KEY0\\]
60is NOT allowed."]
61    #[inline(always)]
62    pub fn is_key0lock_1(&self) -> bool {
63        *self == Key0::Key0lock1
64    }
65    #[doc = "Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
66and KEYRESET\\[KEY0\\]
67is allowed."]
68    #[inline(always)]
69    pub fn is_key0unlock(&self) -> bool {
70        *self == Key0::Key0unlock
71    }
72    #[doc = "Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
73and KEYRESET\\[KEY0\\]
74is NOT allowed."]
75    #[inline(always)]
76    pub fn is_key0lock_3(&self) -> bool {
77        *self == Key0::Key0lock3
78    }
79}
80#[doc = "Field `KEY0` writer - Key 0"]
81pub type Key0W<'a, REG> = crate::FieldWriter<'a, REG, 2, Key0, crate::Safe>;
82impl<'a, REG> Key0W<'a, REG>
83where
84    REG: crate::Writable + crate::RegisterSpec,
85    REG::Ux: From<u8>,
86{
87    #[doc = "Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
88and KEYRESET\\[KEY0\\]
89is NOT allowed."]
90    #[inline(always)]
91    pub fn key0lock_0(self) -> &'a mut crate::W<REG> {
92        self.variant(Key0::Key0lock0)
93    }
94    #[doc = "Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
95and KEYRESET\\[KEY0\\]
96is NOT allowed."]
97    #[inline(always)]
98    pub fn key0lock_1(self) -> &'a mut crate::W<REG> {
99        self.variant(Key0::Key0lock1)
100    }
101    #[doc = "Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
102and KEYRESET\\[KEY0\\]
103is allowed."]
104    #[inline(always)]
105    pub fn key0unlock(self) -> &'a mut crate::W<REG> {
106        self.variant(Key0::Key0unlock)
107    }
108    #[doc = "Write access to KEY0MASK, KEYENABLE\\[KEY0\\]
109and KEYRESET\\[KEY0\\]
110is NOT allowed."]
111    #[inline(always)]
112    pub fn key0lock_3(self) -> &'a mut crate::W<REG> {
113        self.variant(Key0::Key0lock3)
114    }
115}
116#[doc = "Key 1\n\nValue on reset: 2"]
117#[cfg_attr(feature = "defmt", derive(defmt::Format))]
118#[derive(Clone, Copy, Debug, PartialEq, Eq)]
119#[repr(u8)]
120pub enum Key1 {
121    #[doc = "0: Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
122and KEYRESET\\[KEY1\\]
123is NOT allowed."]
124    Key1lock0 = 0,
125    #[doc = "1: Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
126and KEYRESET\\[KEY1\\]
127is NOT allowed."]
128    Key1lock1 = 1,
129    #[doc = "2: Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
130and KEYRESET\\[KEY1\\]
131is allowed."]
132    Key1unlock = 2,
133    #[doc = "3: Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
134and KEYRESET\\[KEY1\\]
135is NOT allowed."]
136    Key1lock3 = 3,
137}
138impl From<Key1> for u8 {
139    #[inline(always)]
140    fn from(variant: Key1) -> Self {
141        variant as _
142    }
143}
144impl crate::FieldSpec for Key1 {
145    type Ux = u8;
146}
147impl crate::IsEnum for Key1 {}
148#[doc = "Field `KEY1` reader - Key 1"]
149pub type Key1R = crate::FieldReader<Key1>;
150impl Key1R {
151    #[doc = "Get enumerated values variant"]
152    #[inline(always)]
153    pub const fn variant(&self) -> Key1 {
154        match self.bits {
155            0 => Key1::Key1lock0,
156            1 => Key1::Key1lock1,
157            2 => Key1::Key1unlock,
158            3 => Key1::Key1lock3,
159            _ => unreachable!(),
160        }
161    }
162    #[doc = "Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
163and KEYRESET\\[KEY1\\]
164is NOT allowed."]
165    #[inline(always)]
166    pub fn is_key1lock_0(&self) -> bool {
167        *self == Key1::Key1lock0
168    }
169    #[doc = "Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
170and KEYRESET\\[KEY1\\]
171is NOT allowed."]
172    #[inline(always)]
173    pub fn is_key1lock_1(&self) -> bool {
174        *self == Key1::Key1lock1
175    }
176    #[doc = "Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
177and KEYRESET\\[KEY1\\]
178is allowed."]
179    #[inline(always)]
180    pub fn is_key1unlock(&self) -> bool {
181        *self == Key1::Key1unlock
182    }
183    #[doc = "Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
184and KEYRESET\\[KEY1\\]
185is NOT allowed."]
186    #[inline(always)]
187    pub fn is_key1lock_3(&self) -> bool {
188        *self == Key1::Key1lock3
189    }
190}
191#[doc = "Field `KEY1` writer - Key 1"]
192pub type Key1W<'a, REG> = crate::FieldWriter<'a, REG, 2, Key1, crate::Safe>;
193impl<'a, REG> Key1W<'a, REG>
194where
195    REG: crate::Writable + crate::RegisterSpec,
196    REG::Ux: From<u8>,
197{
198    #[doc = "Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
199and KEYRESET\\[KEY1\\]
200is NOT allowed."]
201    #[inline(always)]
202    pub fn key1lock_0(self) -> &'a mut crate::W<REG> {
203        self.variant(Key1::Key1lock0)
204    }
205    #[doc = "Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
206and KEYRESET\\[KEY1\\]
207is NOT allowed."]
208    #[inline(always)]
209    pub fn key1lock_1(self) -> &'a mut crate::W<REG> {
210        self.variant(Key1::Key1lock1)
211    }
212    #[doc = "Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
213and KEYRESET\\[KEY1\\]
214is allowed."]
215    #[inline(always)]
216    pub fn key1unlock(self) -> &'a mut crate::W<REG> {
217        self.variant(Key1::Key1unlock)
218    }
219    #[doc = "Write access to KEY1MASK, KEYENABLE\\[KEY1\\]
220and KEYRESET\\[KEY1\\]
221is NOT allowed."]
222    #[inline(always)]
223    pub fn key1lock_3(self) -> &'a mut crate::W<REG> {
224        self.variant(Key1::Key1lock3)
225    }
226}
227#[doc = "Key 2\n\nValue on reset: 2"]
228#[cfg_attr(feature = "defmt", derive(defmt::Format))]
229#[derive(Clone, Copy, Debug, PartialEq, Eq)]
230#[repr(u8)]
231pub enum Key2 {
232    #[doc = "0: Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
233and KEYRESET\\[KEY2\\]
234is NOT allowed."]
235    Key2lock0 = 0,
236    #[doc = "1: Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
237and KEYRESET\\[KEY2\\]
238is NOT allowed."]
239    Key2lock1 = 1,
240    #[doc = "2: Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
241and KEYRESET\\[KEY2\\]
242is allowed."]
243    Key2unlock = 2,
244    #[doc = "3: Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
245and KEYRESET\\[KEY2\\]
246is NOT allowed."]
247    Key2lock3 = 3,
248}
249impl From<Key2> for u8 {
250    #[inline(always)]
251    fn from(variant: Key2) -> Self {
252        variant as _
253    }
254}
255impl crate::FieldSpec for Key2 {
256    type Ux = u8;
257}
258impl crate::IsEnum for Key2 {}
259#[doc = "Field `KEY2` reader - Key 2"]
260pub type Key2R = crate::FieldReader<Key2>;
261impl Key2R {
262    #[doc = "Get enumerated values variant"]
263    #[inline(always)]
264    pub const fn variant(&self) -> Key2 {
265        match self.bits {
266            0 => Key2::Key2lock0,
267            1 => Key2::Key2lock1,
268            2 => Key2::Key2unlock,
269            3 => Key2::Key2lock3,
270            _ => unreachable!(),
271        }
272    }
273    #[doc = "Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
274and KEYRESET\\[KEY2\\]
275is NOT allowed."]
276    #[inline(always)]
277    pub fn is_key2lock_0(&self) -> bool {
278        *self == Key2::Key2lock0
279    }
280    #[doc = "Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
281and KEYRESET\\[KEY2\\]
282is NOT allowed."]
283    #[inline(always)]
284    pub fn is_key2lock_1(&self) -> bool {
285        *self == Key2::Key2lock1
286    }
287    #[doc = "Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
288and KEYRESET\\[KEY2\\]
289is allowed."]
290    #[inline(always)]
291    pub fn is_key2unlock(&self) -> bool {
292        *self == Key2::Key2unlock
293    }
294    #[doc = "Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
295and KEYRESET\\[KEY2\\]
296is NOT allowed."]
297    #[inline(always)]
298    pub fn is_key2lock_3(&self) -> bool {
299        *self == Key2::Key2lock3
300    }
301}
302#[doc = "Field `KEY2` writer - Key 2"]
303pub type Key2W<'a, REG> = crate::FieldWriter<'a, REG, 2, Key2, crate::Safe>;
304impl<'a, REG> Key2W<'a, REG>
305where
306    REG: crate::Writable + crate::RegisterSpec,
307    REG::Ux: From<u8>,
308{
309    #[doc = "Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
310and KEYRESET\\[KEY2\\]
311is NOT allowed."]
312    #[inline(always)]
313    pub fn key2lock_0(self) -> &'a mut crate::W<REG> {
314        self.variant(Key2::Key2lock0)
315    }
316    #[doc = "Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
317and KEYRESET\\[KEY2\\]
318is NOT allowed."]
319    #[inline(always)]
320    pub fn key2lock_1(self) -> &'a mut crate::W<REG> {
321        self.variant(Key2::Key2lock1)
322    }
323    #[doc = "Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
324and KEYRESET\\[KEY2\\]
325is allowed."]
326    #[inline(always)]
327    pub fn key2unlock(self) -> &'a mut crate::W<REG> {
328        self.variant(Key2::Key2unlock)
329    }
330    #[doc = "Write access to KEY2MASK, KEYENABLE\\[KEY2\\]
331and KEYRESET\\[KEY2\\]
332is NOT allowed."]
333    #[inline(always)]
334    pub fn key2lock_3(self) -> &'a mut crate::W<REG> {
335        self.variant(Key2::Key2lock3)
336    }
337}
338#[doc = "Key 3\n\nValue on reset: 2"]
339#[cfg_attr(feature = "defmt", derive(defmt::Format))]
340#[derive(Clone, Copy, Debug, PartialEq, Eq)]
341#[repr(u8)]
342pub enum Key3 {
343    #[doc = "0: Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
344and KEYRESET\\[KEY3\\]
345is NOT allowed."]
346    Key3lock0 = 0,
347    #[doc = "1: Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
348and KEYRESET\\[KEY3\\]
349is NOT allowed."]
350    Key3lock1 = 1,
351    #[doc = "2: Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
352and KEYRESET\\[KEY3\\]
353is allowed."]
354    Key3unlock = 2,
355    #[doc = "3: Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
356and KEYRESET\\[KEY3\\]
357is NOT allowed."]
358    Key3lock3 = 3,
359}
360impl From<Key3> for u8 {
361    #[inline(always)]
362    fn from(variant: Key3) -> Self {
363        variant as _
364    }
365}
366impl crate::FieldSpec for Key3 {
367    type Ux = u8;
368}
369impl crate::IsEnum for Key3 {}
370#[doc = "Field `KEY3` reader - Key 3"]
371pub type Key3R = crate::FieldReader<Key3>;
372impl Key3R {
373    #[doc = "Get enumerated values variant"]
374    #[inline(always)]
375    pub const fn variant(&self) -> Key3 {
376        match self.bits {
377            0 => Key3::Key3lock0,
378            1 => Key3::Key3lock1,
379            2 => Key3::Key3unlock,
380            3 => Key3::Key3lock3,
381            _ => unreachable!(),
382        }
383    }
384    #[doc = "Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
385and KEYRESET\\[KEY3\\]
386is NOT allowed."]
387    #[inline(always)]
388    pub fn is_key3lock_0(&self) -> bool {
389        *self == Key3::Key3lock0
390    }
391    #[doc = "Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
392and KEYRESET\\[KEY3\\]
393is NOT allowed."]
394    #[inline(always)]
395    pub fn is_key3lock_1(&self) -> bool {
396        *self == Key3::Key3lock1
397    }
398    #[doc = "Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
399and KEYRESET\\[KEY3\\]
400is allowed."]
401    #[inline(always)]
402    pub fn is_key3unlock(&self) -> bool {
403        *self == Key3::Key3unlock
404    }
405    #[doc = "Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
406and KEYRESET\\[KEY3\\]
407is NOT allowed."]
408    #[inline(always)]
409    pub fn is_key3lock_3(&self) -> bool {
410        *self == Key3::Key3lock3
411    }
412}
413#[doc = "Field `KEY3` writer - Key 3"]
414pub type Key3W<'a, REG> = crate::FieldWriter<'a, REG, 2, Key3, crate::Safe>;
415impl<'a, REG> Key3W<'a, REG>
416where
417    REG: crate::Writable + crate::RegisterSpec,
418    REG::Ux: From<u8>,
419{
420    #[doc = "Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
421and KEYRESET\\[KEY3\\]
422is NOT allowed."]
423    #[inline(always)]
424    pub fn key3lock_0(self) -> &'a mut crate::W<REG> {
425        self.variant(Key3::Key3lock0)
426    }
427    #[doc = "Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
428and KEYRESET\\[KEY3\\]
429is NOT allowed."]
430    #[inline(always)]
431    pub fn key3lock_1(self) -> &'a mut crate::W<REG> {
432        self.variant(Key3::Key3lock1)
433    }
434    #[doc = "Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
435and KEYRESET\\[KEY3\\]
436is allowed."]
437    #[inline(always)]
438    pub fn key3unlock(self) -> &'a mut crate::W<REG> {
439        self.variant(Key3::Key3unlock)
440    }
441    #[doc = "Write access to KEY3MASK, KEYENABLE\\[KEY3\\]
442and KEYRESET\\[KEY3\\]
443is NOT allowed."]
444    #[inline(always)]
445    pub fn key3lock_3(self) -> &'a mut crate::W<REG> {
446        self.variant(Key3::Key3lock3)
447    }
448}
449impl R {
450    #[doc = "Bits 0:1 - Key 0"]
451    #[inline(always)]
452    pub fn key0(&self) -> Key0R {
453        Key0R::new((self.bits & 3) as u8)
454    }
455    #[doc = "Bits 2:3 - Key 1"]
456    #[inline(always)]
457    pub fn key1(&self) -> Key1R {
458        Key1R::new(((self.bits >> 2) & 3) as u8)
459    }
460    #[doc = "Bits 4:5 - Key 2"]
461    #[inline(always)]
462    pub fn key2(&self) -> Key2R {
463        Key2R::new(((self.bits >> 4) & 3) as u8)
464    }
465    #[doc = "Bits 6:7 - Key 3"]
466    #[inline(always)]
467    pub fn key3(&self) -> Key3R {
468        Key3R::new(((self.bits >> 6) & 3) as u8)
469    }
470}
471#[cfg(feature = "debug")]
472impl core::fmt::Debug for R {
473    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
474        f.debug_struct("KEYLOCK")
475            .field("key0", &self.key0())
476            .field("key1", &self.key1())
477            .field("key2", &self.key2())
478            .field("key3", &self.key3())
479            .finish()
480    }
481}
482impl W {
483    #[doc = "Bits 0:1 - Key 0"]
484    #[inline(always)]
485    pub fn key0(&mut self) -> Key0W<KeylockSpec> {
486        Key0W::new(self, 0)
487    }
488    #[doc = "Bits 2:3 - Key 1"]
489    #[inline(always)]
490    pub fn key1(&mut self) -> Key1W<KeylockSpec> {
491        Key1W::new(self, 2)
492    }
493    #[doc = "Bits 4:5 - Key 2"]
494    #[inline(always)]
495    pub fn key2(&mut self) -> Key2W<KeylockSpec> {
496        Key2W::new(self, 4)
497    }
498    #[doc = "Bits 6:7 - Key 3"]
499    #[inline(always)]
500    pub fn key3(&mut self) -> Key3W<KeylockSpec> {
501        Key3W::new(self, 6)
502    }
503}
504#[doc = "Key Lock\n\nYou can [`read`](crate::Reg::read) this register and get [`keylock::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`keylock::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
505pub struct KeylockSpec;
506impl crate::RegisterSpec for KeylockSpec {
507    type Ux = u32;
508}
509#[doc = "`read()` method returns [`keylock::R`](R) reader structure"]
510impl crate::Readable for KeylockSpec {}
511#[doc = "`write(|w| ..)` method takes [`keylock::W`](W) writer structure"]
512impl crate::Writable for KeylockSpec {
513    type Safety = crate::Unsafe;
514    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
515    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
516}
517#[doc = "`reset()` method sets KEYLOCK to value 0xaa"]
518impl crate::Resettable for KeylockSpec {
519    const RESET_VALUE: u32 = 0xaa;
520}