mimxrt685s_pac/pmc/
ctrl.rs

1#[doc = "Register `CTRL` reader"]
2pub type R = crate::R<CtrlSpec>;
3#[doc = "Register `CTRL` writer"]
4pub type W = crate::W<CtrlSpec>;
5#[doc = "Apply updated PMC PDRUNCFG bits (SRAM power gates, RBB, FBB, LVD, and HVD control bits) and/or RUNCTRL setting\n\nValue on reset: 0"]
6#[cfg_attr(feature = "defmt", derive(defmt::Format))]
7#[derive(Clone, Copy, Debug, PartialEq, Eq)]
8pub enum Applycfg {
9    #[doc = "0: Always reads 0. Write 0 has no effect"]
10    Applycfg0 = 0,
11    #[doc = "1: Write 1 = initiate update sequencing of PMC state machines"]
12    Applycfg1 = 1,
13}
14impl From<Applycfg> for bool {
15    #[inline(always)]
16    fn from(variant: Applycfg) -> Self {
17        variant as u8 != 0
18    }
19}
20#[doc = "Field `APPLYCFG` reader - Apply updated PMC PDRUNCFG bits (SRAM power gates, RBB, FBB, LVD, and HVD control bits) and/or RUNCTRL setting"]
21pub type ApplycfgR = crate::BitReader<Applycfg>;
22impl ApplycfgR {
23    #[doc = "Get enumerated values variant"]
24    #[inline(always)]
25    pub const fn variant(&self) -> Applycfg {
26        match self.bits {
27            false => Applycfg::Applycfg0,
28            true => Applycfg::Applycfg1,
29        }
30    }
31    #[doc = "Always reads 0. Write 0 has no effect"]
32    #[inline(always)]
33    pub fn is_applycfg_0(&self) -> bool {
34        *self == Applycfg::Applycfg0
35    }
36    #[doc = "Write 1 = initiate update sequencing of PMC state machines"]
37    #[inline(always)]
38    pub fn is_applycfg_1(&self) -> bool {
39        *self == Applycfg::Applycfg1
40    }
41}
42#[doc = "Field `APPLYCFG` writer - Apply updated PMC PDRUNCFG bits (SRAM power gates, RBB, FBB, LVD, and HVD control bits) and/or RUNCTRL setting"]
43pub type ApplycfgW<'a, REG> = crate::BitWriter<'a, REG, Applycfg>;
44impl<'a, REG> ApplycfgW<'a, REG>
45where
46    REG: crate::Writable + crate::RegisterSpec,
47{
48    #[doc = "Always reads 0. Write 0 has no effect"]
49    #[inline(always)]
50    pub fn applycfg_0(self) -> &'a mut crate::W<REG> {
51        self.variant(Applycfg::Applycfg0)
52    }
53    #[doc = "Write 1 = initiate update sequencing of PMC state machines"]
54    #[inline(always)]
55    pub fn applycfg_1(self) -> &'a mut crate::W<REG> {
56        self.variant(Applycfg::Applycfg1)
57    }
58}
59#[doc = "Enable analog buffer for references or ATX2\n\nValue on reset: 0"]
60#[cfg_attr(feature = "defmt", derive(defmt::Format))]
61#[derive(Clone, Copy, Debug, PartialEq, Eq)]
62pub enum Bufen {
63    #[doc = "0: disabled"]
64    Bufen0 = 0,
65    #[doc = "1: enabled"]
66    Bufen1 = 1,
67}
68impl From<Bufen> for bool {
69    #[inline(always)]
70    fn from(variant: Bufen) -> Self {
71        variant as u8 != 0
72    }
73}
74#[doc = "Field `BUFEN` reader - Enable analog buffer for references or ATX2"]
75pub type BufenR = crate::BitReader<Bufen>;
76impl BufenR {
77    #[doc = "Get enumerated values variant"]
78    #[inline(always)]
79    pub const fn variant(&self) -> Bufen {
80        match self.bits {
81            false => Bufen::Bufen0,
82            true => Bufen::Bufen1,
83        }
84    }
85    #[doc = "disabled"]
86    #[inline(always)]
87    pub fn is_bufen_0(&self) -> bool {
88        *self == Bufen::Bufen0
89    }
90    #[doc = "enabled"]
91    #[inline(always)]
92    pub fn is_bufen_1(&self) -> bool {
93        *self == Bufen::Bufen1
94    }
95}
96#[doc = "Field `BUFEN` writer - Enable analog buffer for references or ATX2"]
97pub type BufenW<'a, REG> = crate::BitWriter<'a, REG, Bufen>;
98impl<'a, REG> BufenW<'a, REG>
99where
100    REG: crate::Writable + crate::RegisterSpec,
101{
102    #[doc = "disabled"]
103    #[inline(always)]
104    pub fn bufen_0(self) -> &'a mut crate::W<REG> {
105        self.variant(Bufen::Bufen0)
106    }
107    #[doc = "enabled"]
108    #[inline(always)]
109    pub fn bufen_1(self) -> &'a mut crate::W<REG> {
110        self.variant(Bufen::Bufen1)
111    }
112}
113#[doc = "vddcore Low-Voltage Detector Interrupt Enable\n\nValue on reset: 0"]
114#[cfg_attr(feature = "defmt", derive(defmt::Format))]
115#[derive(Clone, Copy, Debug, PartialEq, Eq)]
116pub enum Lvdcoreie {
117    #[doc = "0: vddcore LVD interrupt disabled"]
118    Lvdcoreie0 = 0,
119    #[doc = "1: vddcore LVD causes interrupt and wakeup from deep sleep."]
120    Lvdcoreie1 = 1,
121}
122impl From<Lvdcoreie> for bool {
123    #[inline(always)]
124    fn from(variant: Lvdcoreie) -> Self {
125        variant as u8 != 0
126    }
127}
128#[doc = "Field `LVDCOREIE` reader - vddcore Low-Voltage Detector Interrupt Enable"]
129pub type LvdcoreieR = crate::BitReader<Lvdcoreie>;
130impl LvdcoreieR {
131    #[doc = "Get enumerated values variant"]
132    #[inline(always)]
133    pub const fn variant(&self) -> Lvdcoreie {
134        match self.bits {
135            false => Lvdcoreie::Lvdcoreie0,
136            true => Lvdcoreie::Lvdcoreie1,
137        }
138    }
139    #[doc = "vddcore LVD interrupt disabled"]
140    #[inline(always)]
141    pub fn is_lvdcoreie_0(&self) -> bool {
142        *self == Lvdcoreie::Lvdcoreie0
143    }
144    #[doc = "vddcore LVD causes interrupt and wakeup from deep sleep."]
145    #[inline(always)]
146    pub fn is_lvdcoreie_1(&self) -> bool {
147        *self == Lvdcoreie::Lvdcoreie1
148    }
149}
150#[doc = "Field `LVDCOREIE` writer - vddcore Low-Voltage Detector Interrupt Enable"]
151pub type LvdcoreieW<'a, REG> = crate::BitWriter<'a, REG, Lvdcoreie>;
152impl<'a, REG> LvdcoreieW<'a, REG>
153where
154    REG: crate::Writable + crate::RegisterSpec,
155{
156    #[doc = "vddcore LVD interrupt disabled"]
157    #[inline(always)]
158    pub fn lvdcoreie_0(self) -> &'a mut crate::W<REG> {
159        self.variant(Lvdcoreie::Lvdcoreie0)
160    }
161    #[doc = "vddcore LVD causes interrupt and wakeup from deep sleep."]
162    #[inline(always)]
163    pub fn lvdcoreie_1(self) -> &'a mut crate::W<REG> {
164        self.variant(Lvdcoreie::Lvdcoreie1)
165    }
166}
167#[doc = "vddcore Low-Voltage Detector Reset Enable\n\nValue on reset: 1"]
168#[cfg_attr(feature = "defmt", derive(defmt::Format))]
169#[derive(Clone, Copy, Debug, PartialEq, Eq)]
170pub enum Lvdcorere {
171    #[doc = "0: vddcore LVD reset disabled"]
172    Lvdcorere0 = 0,
173    #[doc = "1: vddcore LVD causes reset"]
174    Lvdcorere1 = 1,
175}
176impl From<Lvdcorere> for bool {
177    #[inline(always)]
178    fn from(variant: Lvdcorere) -> Self {
179        variant as u8 != 0
180    }
181}
182#[doc = "Field `LVDCORERE` reader - vddcore Low-Voltage Detector Reset Enable"]
183pub type LvdcorereR = crate::BitReader<Lvdcorere>;
184impl LvdcorereR {
185    #[doc = "Get enumerated values variant"]
186    #[inline(always)]
187    pub const fn variant(&self) -> Lvdcorere {
188        match self.bits {
189            false => Lvdcorere::Lvdcorere0,
190            true => Lvdcorere::Lvdcorere1,
191        }
192    }
193    #[doc = "vddcore LVD reset disabled"]
194    #[inline(always)]
195    pub fn is_lvdcorere_0(&self) -> bool {
196        *self == Lvdcorere::Lvdcorere0
197    }
198    #[doc = "vddcore LVD causes reset"]
199    #[inline(always)]
200    pub fn is_lvdcorere_1(&self) -> bool {
201        *self == Lvdcorere::Lvdcorere1
202    }
203}
204#[doc = "Field `LVDCORERE` writer - vddcore Low-Voltage Detector Reset Enable"]
205pub type LvdcorereW<'a, REG> = crate::BitWriter<'a, REG, Lvdcorere>;
206impl<'a, REG> LvdcorereW<'a, REG>
207where
208    REG: crate::Writable + crate::RegisterSpec,
209{
210    #[doc = "vddcore LVD reset disabled"]
211    #[inline(always)]
212    pub fn lvdcorere_0(self) -> &'a mut crate::W<REG> {
213        self.variant(Lvdcorere::Lvdcorere0)
214    }
215    #[doc = "vddcore LVD causes reset"]
216    #[inline(always)]
217    pub fn lvdcorere_1(self) -> &'a mut crate::W<REG> {
218        self.variant(Lvdcorere::Lvdcorere1)
219    }
220}
221#[doc = "vddcore High-Voltage Detector Interrupt Enable\n\nValue on reset: 0"]
222#[cfg_attr(feature = "defmt", derive(defmt::Format))]
223#[derive(Clone, Copy, Debug, PartialEq, Eq)]
224pub enum Hvdcoreie {
225    #[doc = "0: vddcore HVD interrupt disabled"]
226    Hvdcoreie0 = 0,
227    #[doc = "1: vddcore HVD causes interrupt and wakeup from deep sleep."]
228    Hvdcoreie1 = 1,
229}
230impl From<Hvdcoreie> for bool {
231    #[inline(always)]
232    fn from(variant: Hvdcoreie) -> Self {
233        variant as u8 != 0
234    }
235}
236#[doc = "Field `HVDCOREIE` reader - vddcore High-Voltage Detector Interrupt Enable"]
237pub type HvdcoreieR = crate::BitReader<Hvdcoreie>;
238impl HvdcoreieR {
239    #[doc = "Get enumerated values variant"]
240    #[inline(always)]
241    pub const fn variant(&self) -> Hvdcoreie {
242        match self.bits {
243            false => Hvdcoreie::Hvdcoreie0,
244            true => Hvdcoreie::Hvdcoreie1,
245        }
246    }
247    #[doc = "vddcore HVD interrupt disabled"]
248    #[inline(always)]
249    pub fn is_hvdcoreie_0(&self) -> bool {
250        *self == Hvdcoreie::Hvdcoreie0
251    }
252    #[doc = "vddcore HVD causes interrupt and wakeup from deep sleep."]
253    #[inline(always)]
254    pub fn is_hvdcoreie_1(&self) -> bool {
255        *self == Hvdcoreie::Hvdcoreie1
256    }
257}
258#[doc = "Field `HVDCOREIE` writer - vddcore High-Voltage Detector Interrupt Enable"]
259pub type HvdcoreieW<'a, REG> = crate::BitWriter<'a, REG, Hvdcoreie>;
260impl<'a, REG> HvdcoreieW<'a, REG>
261where
262    REG: crate::Writable + crate::RegisterSpec,
263{
264    #[doc = "vddcore HVD interrupt disabled"]
265    #[inline(always)]
266    pub fn hvdcoreie_0(self) -> &'a mut crate::W<REG> {
267        self.variant(Hvdcoreie::Hvdcoreie0)
268    }
269    #[doc = "vddcore HVD causes interrupt and wakeup from deep sleep."]
270    #[inline(always)]
271    pub fn hvdcoreie_1(self) -> &'a mut crate::W<REG> {
272        self.variant(Hvdcoreie::Hvdcoreie1)
273    }
274}
275#[doc = "vddcore High-Voltage Detector Reset Enable\n\nValue on reset: 0"]
276#[cfg_attr(feature = "defmt", derive(defmt::Format))]
277#[derive(Clone, Copy, Debug, PartialEq, Eq)]
278pub enum Hvdcorere {
279    #[doc = "0: vddcore HVD reset disabled"]
280    Hvdcorere0 = 0,
281    #[doc = "1: vddcore HVD causes reset"]
282    Hvdcorere1 = 1,
283}
284impl From<Hvdcorere> for bool {
285    #[inline(always)]
286    fn from(variant: Hvdcorere) -> Self {
287        variant as u8 != 0
288    }
289}
290#[doc = "Field `HVDCORERE` reader - vddcore High-Voltage Detector Reset Enable"]
291pub type HvdcorereR = crate::BitReader<Hvdcorere>;
292impl HvdcorereR {
293    #[doc = "Get enumerated values variant"]
294    #[inline(always)]
295    pub const fn variant(&self) -> Hvdcorere {
296        match self.bits {
297            false => Hvdcorere::Hvdcorere0,
298            true => Hvdcorere::Hvdcorere1,
299        }
300    }
301    #[doc = "vddcore HVD reset disabled"]
302    #[inline(always)]
303    pub fn is_hvdcorere_0(&self) -> bool {
304        *self == Hvdcorere::Hvdcorere0
305    }
306    #[doc = "vddcore HVD causes reset"]
307    #[inline(always)]
308    pub fn is_hvdcorere_1(&self) -> bool {
309        *self == Hvdcorere::Hvdcorere1
310    }
311}
312#[doc = "Field `HVDCORERE` writer - vddcore High-Voltage Detector Reset Enable"]
313pub type HvdcorereW<'a, REG> = crate::BitWriter<'a, REG, Hvdcorere>;
314impl<'a, REG> HvdcorereW<'a, REG>
315where
316    REG: crate::Writable + crate::RegisterSpec,
317{
318    #[doc = "vddcore HVD reset disabled"]
319    #[inline(always)]
320    pub fn hvdcorere_0(self) -> &'a mut crate::W<REG> {
321        self.variant(Hvdcorere::Hvdcorere0)
322    }
323    #[doc = "vddcore HVD causes reset"]
324    #[inline(always)]
325    pub fn hvdcorere_1(self) -> &'a mut crate::W<REG> {
326        self.variant(Hvdcorere::Hvdcorere1)
327    }
328}
329#[doc = "vdd1v8 High-Voltage Detector Interrupt Enable\n\nValue on reset: 0"]
330#[cfg_attr(feature = "defmt", derive(defmt::Format))]
331#[derive(Clone, Copy, Debug, PartialEq, Eq)]
332pub enum Hvd1v8ie {
333    #[doc = "0: vdd1v8 HVD interrupt disabled"]
334    Hvd1v8ie0 = 0,
335    #[doc = "1: vdd1v8 HVD causes interrupt and wakeup from deep sleep or deep power down mode"]
336    Hvd1v8ie1 = 1,
337}
338impl From<Hvd1v8ie> for bool {
339    #[inline(always)]
340    fn from(variant: Hvd1v8ie) -> Self {
341        variant as u8 != 0
342    }
343}
344#[doc = "Field `HVD1V8IE` reader - vdd1v8 High-Voltage Detector Interrupt Enable"]
345pub type Hvd1v8ieR = crate::BitReader<Hvd1v8ie>;
346impl Hvd1v8ieR {
347    #[doc = "Get enumerated values variant"]
348    #[inline(always)]
349    pub const fn variant(&self) -> Hvd1v8ie {
350        match self.bits {
351            false => Hvd1v8ie::Hvd1v8ie0,
352            true => Hvd1v8ie::Hvd1v8ie1,
353        }
354    }
355    #[doc = "vdd1v8 HVD interrupt disabled"]
356    #[inline(always)]
357    pub fn is_hvd1v8ie_0(&self) -> bool {
358        *self == Hvd1v8ie::Hvd1v8ie0
359    }
360    #[doc = "vdd1v8 HVD causes interrupt and wakeup from deep sleep or deep power down mode"]
361    #[inline(always)]
362    pub fn is_hvd1v8ie_1(&self) -> bool {
363        *self == Hvd1v8ie::Hvd1v8ie1
364    }
365}
366#[doc = "Field `HVD1V8IE` writer - vdd1v8 High-Voltage Detector Interrupt Enable"]
367pub type Hvd1v8ieW<'a, REG> = crate::BitWriter<'a, REG, Hvd1v8ie>;
368impl<'a, REG> Hvd1v8ieW<'a, REG>
369where
370    REG: crate::Writable + crate::RegisterSpec,
371{
372    #[doc = "vdd1v8 HVD interrupt disabled"]
373    #[inline(always)]
374    pub fn hvd1v8ie_0(self) -> &'a mut crate::W<REG> {
375        self.variant(Hvd1v8ie::Hvd1v8ie0)
376    }
377    #[doc = "vdd1v8 HVD causes interrupt and wakeup from deep sleep or deep power down mode"]
378    #[inline(always)]
379    pub fn hvd1v8ie_1(self) -> &'a mut crate::W<REG> {
380        self.variant(Hvd1v8ie::Hvd1v8ie1)
381    }
382}
383#[doc = "vdd1v8 High-Voltage Detector Reset Enable\n\nValue on reset: 0"]
384#[cfg_attr(feature = "defmt", derive(defmt::Format))]
385#[derive(Clone, Copy, Debug, PartialEq, Eq)]
386pub enum Hvd1v8re {
387    #[doc = "0: vdd1v8 HVD reset disabled"]
388    Hvd1v8re0 = 0,
389    #[doc = "1: vdd1v8 HVD causes reset"]
390    Hvd1v8re1 = 1,
391}
392impl From<Hvd1v8re> for bool {
393    #[inline(always)]
394    fn from(variant: Hvd1v8re) -> Self {
395        variant as u8 != 0
396    }
397}
398#[doc = "Field `HVD1V8RE` reader - vdd1v8 High-Voltage Detector Reset Enable"]
399pub type Hvd1v8reR = crate::BitReader<Hvd1v8re>;
400impl Hvd1v8reR {
401    #[doc = "Get enumerated values variant"]
402    #[inline(always)]
403    pub const fn variant(&self) -> Hvd1v8re {
404        match self.bits {
405            false => Hvd1v8re::Hvd1v8re0,
406            true => Hvd1v8re::Hvd1v8re1,
407        }
408    }
409    #[doc = "vdd1v8 HVD reset disabled"]
410    #[inline(always)]
411    pub fn is_hvd1v8re_0(&self) -> bool {
412        *self == Hvd1v8re::Hvd1v8re0
413    }
414    #[doc = "vdd1v8 HVD causes reset"]
415    #[inline(always)]
416    pub fn is_hvd1v8re_1(&self) -> bool {
417        *self == Hvd1v8re::Hvd1v8re1
418    }
419}
420#[doc = "Field `HVD1V8RE` writer - vdd1v8 High-Voltage Detector Reset Enable"]
421pub type Hvd1v8reW<'a, REG> = crate::BitWriter<'a, REG, Hvd1v8re>;
422impl<'a, REG> Hvd1v8reW<'a, REG>
423where
424    REG: crate::Writable + crate::RegisterSpec,
425{
426    #[doc = "vdd1v8 HVD reset disabled"]
427    #[inline(always)]
428    pub fn hvd1v8re_0(self) -> &'a mut crate::W<REG> {
429        self.variant(Hvd1v8re::Hvd1v8re0)
430    }
431    #[doc = "vdd1v8 HVD causes reset"]
432    #[inline(always)]
433    pub fn hvd1v8re_1(self) -> &'a mut crate::W<REG> {
434        self.variant(Hvd1v8re::Hvd1v8re1)
435    }
436}
437#[doc = "PMC automatic wakeup enable and interrupt enable\n\nValue on reset: 0"]
438#[cfg_attr(feature = "defmt", derive(defmt::Format))]
439#[derive(Clone, Copy, Debug, PartialEq, Eq)]
440pub enum Autowken {
441    #[doc = "0: Auto wakeup interrupt and counter disabled"]
442    Autowken0 = 0,
443    #[doc = "1: Auto wakeup interrupt generated when PMC sequencer finishes and AUTOWAKE counter = 0 after entering deep sleep mode (but not deep powerdown mode). Interrupt will wake up the M33."]
444    Autowken1 = 1,
445}
446impl From<Autowken> for bool {
447    #[inline(always)]
448    fn from(variant: Autowken) -> Self {
449        variant as u8 != 0
450    }
451}
452#[doc = "Field `AUTOWKEN` reader - PMC automatic wakeup enable and interrupt enable"]
453pub type AutowkenR = crate::BitReader<Autowken>;
454impl AutowkenR {
455    #[doc = "Get enumerated values variant"]
456    #[inline(always)]
457    pub const fn variant(&self) -> Autowken {
458        match self.bits {
459            false => Autowken::Autowken0,
460            true => Autowken::Autowken1,
461        }
462    }
463    #[doc = "Auto wakeup interrupt and counter disabled"]
464    #[inline(always)]
465    pub fn is_autowken_0(&self) -> bool {
466        *self == Autowken::Autowken0
467    }
468    #[doc = "Auto wakeup interrupt generated when PMC sequencer finishes and AUTOWAKE counter = 0 after entering deep sleep mode (but not deep powerdown mode). Interrupt will wake up the M33."]
469    #[inline(always)]
470    pub fn is_autowken_1(&self) -> bool {
471        *self == Autowken::Autowken1
472    }
473}
474#[doc = "Field `AUTOWKEN` writer - PMC automatic wakeup enable and interrupt enable"]
475pub type AutowkenW<'a, REG> = crate::BitWriter<'a, REG, Autowken>;
476impl<'a, REG> AutowkenW<'a, REG>
477where
478    REG: crate::Writable + crate::RegisterSpec,
479{
480    #[doc = "Auto wakeup interrupt and counter disabled"]
481    #[inline(always)]
482    pub fn autowken_0(self) -> &'a mut crate::W<REG> {
483        self.variant(Autowken::Autowken0)
484    }
485    #[doc = "Auto wakeup interrupt generated when PMC sequencer finishes and AUTOWAKE counter = 0 after entering deep sleep mode (but not deep powerdown mode). Interrupt will wake up the M33."]
486    #[inline(always)]
487    pub fn autowken_1(self) -> &'a mut crate::W<REG> {
488        self.variant(Autowken::Autowken1)
489    }
490}
491#[doc = "PMIC interrupt pin enable\n\nValue on reset: 0"]
492#[cfg_attr(feature = "defmt", derive(defmt::Format))]
493#[derive(Clone, Copy, Debug, PartialEq, Eq)]
494pub enum Intrpaden {
495    #[doc = "0: Interrupt pad low has no effect"]
496    Intrpaden0 = 0,
497    #[doc = "1: Interrupt pad low triggers an interrupt and deep sleep wakeup or deep powerdown wakeup event."]
498    Intrpaden1 = 1,
499}
500impl From<Intrpaden> for bool {
501    #[inline(always)]
502    fn from(variant: Intrpaden) -> Self {
503        variant as u8 != 0
504    }
505}
506#[doc = "Field `INTRPADEN` reader - PMIC interrupt pin enable"]
507pub type IntrpadenR = crate::BitReader<Intrpaden>;
508impl IntrpadenR {
509    #[doc = "Get enumerated values variant"]
510    #[inline(always)]
511    pub const fn variant(&self) -> Intrpaden {
512        match self.bits {
513            false => Intrpaden::Intrpaden0,
514            true => Intrpaden::Intrpaden1,
515        }
516    }
517    #[doc = "Interrupt pad low has no effect"]
518    #[inline(always)]
519    pub fn is_intrpaden_0(&self) -> bool {
520        *self == Intrpaden::Intrpaden0
521    }
522    #[doc = "Interrupt pad low triggers an interrupt and deep sleep wakeup or deep powerdown wakeup event."]
523    #[inline(always)]
524    pub fn is_intrpaden_1(&self) -> bool {
525        *self == Intrpaden::Intrpaden1
526    }
527}
528#[doc = "Field `INTRPADEN` writer - PMIC interrupt pin enable"]
529pub type IntrpadenW<'a, REG> = crate::BitWriter<'a, REG, Intrpaden>;
530impl<'a, REG> IntrpadenW<'a, REG>
531where
532    REG: crate::Writable + crate::RegisterSpec,
533{
534    #[doc = "Interrupt pad low has no effect"]
535    #[inline(always)]
536    pub fn intrpaden_0(self) -> &'a mut crate::W<REG> {
537        self.variant(Intrpaden::Intrpaden0)
538    }
539    #[doc = "Interrupt pad low triggers an interrupt and deep sleep wakeup or deep powerdown wakeup event."]
540    #[inline(always)]
541    pub fn intrpaden_1(self) -> &'a mut crate::W<REG> {
542        self.variant(Intrpaden::Intrpaden1)
543    }
544}
545impl R {
546    #[doc = "Bit 0 - Apply updated PMC PDRUNCFG bits (SRAM power gates, RBB, FBB, LVD, and HVD control bits) and/or RUNCTRL setting"]
547    #[inline(always)]
548    pub fn applycfg(&self) -> ApplycfgR {
549        ApplycfgR::new((self.bits & 1) != 0)
550    }
551    #[doc = "Bit 4 - Enable analog buffer for references or ATX2"]
552    #[inline(always)]
553    pub fn bufen(&self) -> BufenR {
554        BufenR::new(((self.bits >> 4) & 1) != 0)
555    }
556    #[doc = "Bit 20 - vddcore Low-Voltage Detector Interrupt Enable"]
557    #[inline(always)]
558    pub fn lvdcoreie(&self) -> LvdcoreieR {
559        LvdcoreieR::new(((self.bits >> 20) & 1) != 0)
560    }
561    #[doc = "Bit 21 - vddcore Low-Voltage Detector Reset Enable"]
562    #[inline(always)]
563    pub fn lvdcorere(&self) -> LvdcorereR {
564        LvdcorereR::new(((self.bits >> 21) & 1) != 0)
565    }
566    #[doc = "Bit 22 - vddcore High-Voltage Detector Interrupt Enable"]
567    #[inline(always)]
568    pub fn hvdcoreie(&self) -> HvdcoreieR {
569        HvdcoreieR::new(((self.bits >> 22) & 1) != 0)
570    }
571    #[doc = "Bit 23 - vddcore High-Voltage Detector Reset Enable"]
572    #[inline(always)]
573    pub fn hvdcorere(&self) -> HvdcorereR {
574        HvdcorereR::new(((self.bits >> 23) & 1) != 0)
575    }
576    #[doc = "Bit 24 - vdd1v8 High-Voltage Detector Interrupt Enable"]
577    #[inline(always)]
578    pub fn hvd1v8ie(&self) -> Hvd1v8ieR {
579        Hvd1v8ieR::new(((self.bits >> 24) & 1) != 0)
580    }
581    #[doc = "Bit 25 - vdd1v8 High-Voltage Detector Reset Enable"]
582    #[inline(always)]
583    pub fn hvd1v8re(&self) -> Hvd1v8reR {
584        Hvd1v8reR::new(((self.bits >> 25) & 1) != 0)
585    }
586    #[doc = "Bit 28 - PMC automatic wakeup enable and interrupt enable"]
587    #[inline(always)]
588    pub fn autowken(&self) -> AutowkenR {
589        AutowkenR::new(((self.bits >> 28) & 1) != 0)
590    }
591    #[doc = "Bit 29 - PMIC interrupt pin enable"]
592    #[inline(always)]
593    pub fn intrpaden(&self) -> IntrpadenR {
594        IntrpadenR::new(((self.bits >> 29) & 1) != 0)
595    }
596}
597#[cfg(feature = "debug")]
598impl core::fmt::Debug for R {
599    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
600        f.debug_struct("CTRL")
601            .field("applycfg", &self.applycfg())
602            .field("bufen", &self.bufen())
603            .field("lvdcoreie", &self.lvdcoreie())
604            .field("lvdcorere", &self.lvdcorere())
605            .field("hvdcoreie", &self.hvdcoreie())
606            .field("hvdcorere", &self.hvdcorere())
607            .field("hvd1v8ie", &self.hvd1v8ie())
608            .field("hvd1v8re", &self.hvd1v8re())
609            .field("autowken", &self.autowken())
610            .field("intrpaden", &self.intrpaden())
611            .finish()
612    }
613}
614impl W {
615    #[doc = "Bit 0 - Apply updated PMC PDRUNCFG bits (SRAM power gates, RBB, FBB, LVD, and HVD control bits) and/or RUNCTRL setting"]
616    #[inline(always)]
617    pub fn applycfg(&mut self) -> ApplycfgW<CtrlSpec> {
618        ApplycfgW::new(self, 0)
619    }
620    #[doc = "Bit 4 - Enable analog buffer for references or ATX2"]
621    #[inline(always)]
622    pub fn bufen(&mut self) -> BufenW<CtrlSpec> {
623        BufenW::new(self, 4)
624    }
625    #[doc = "Bit 20 - vddcore Low-Voltage Detector Interrupt Enable"]
626    #[inline(always)]
627    pub fn lvdcoreie(&mut self) -> LvdcoreieW<CtrlSpec> {
628        LvdcoreieW::new(self, 20)
629    }
630    #[doc = "Bit 21 - vddcore Low-Voltage Detector Reset Enable"]
631    #[inline(always)]
632    pub fn lvdcorere(&mut self) -> LvdcorereW<CtrlSpec> {
633        LvdcorereW::new(self, 21)
634    }
635    #[doc = "Bit 22 - vddcore High-Voltage Detector Interrupt Enable"]
636    #[inline(always)]
637    pub fn hvdcoreie(&mut self) -> HvdcoreieW<CtrlSpec> {
638        HvdcoreieW::new(self, 22)
639    }
640    #[doc = "Bit 23 - vddcore High-Voltage Detector Reset Enable"]
641    #[inline(always)]
642    pub fn hvdcorere(&mut self) -> HvdcorereW<CtrlSpec> {
643        HvdcorereW::new(self, 23)
644    }
645    #[doc = "Bit 24 - vdd1v8 High-Voltage Detector Interrupt Enable"]
646    #[inline(always)]
647    pub fn hvd1v8ie(&mut self) -> Hvd1v8ieW<CtrlSpec> {
648        Hvd1v8ieW::new(self, 24)
649    }
650    #[doc = "Bit 25 - vdd1v8 High-Voltage Detector Reset Enable"]
651    #[inline(always)]
652    pub fn hvd1v8re(&mut self) -> Hvd1v8reW<CtrlSpec> {
653        Hvd1v8reW::new(self, 25)
654    }
655    #[doc = "Bit 28 - PMC automatic wakeup enable and interrupt enable"]
656    #[inline(always)]
657    pub fn autowken(&mut self) -> AutowkenW<CtrlSpec> {
658        AutowkenW::new(self, 28)
659    }
660    #[doc = "Bit 29 - PMIC interrupt pin enable"]
661    #[inline(always)]
662    pub fn intrpaden(&mut self) -> IntrpadenW<CtrlSpec> {
663        IntrpadenW::new(self, 29)
664    }
665}
666#[doc = "PMC control register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
667pub struct CtrlSpec;
668impl crate::RegisterSpec for CtrlSpec {
669    type Ux = u32;
670}
671#[doc = "`read()` method returns [`ctrl::R`](R) reader structure"]
672impl crate::Readable for CtrlSpec {}
673#[doc = "`write(|w| ..)` method takes [`ctrl::W`](W) writer structure"]
674impl crate::Writable for CtrlSpec {
675    type Safety = crate::Unsafe;
676    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
677    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
678}
679#[doc = "`reset()` method sets CTRL to value 0x0020_0000"]
680impl crate::Resettable for CtrlSpec {
681    const RESET_VALUE: u32 = 0x0020_0000;
682}