mcxa_pac/trng0/
sec_cfg.rs

1#[doc = "Register `SEC_CFG` reader"]
2pub type R = crate::R<SecCfgSpec>;
3#[doc = "Register `SEC_CFG` writer"]
4pub type W = crate::W<SecCfgSpec>;
5#[doc = "If set, below mentioned TRNG configuration registers cannot be programmed: Oscillator 2 Control Register (OSC2_CTL): TRNG Entropy Generation Control \\[1:0\\] Oscillator 2 Divider \\[3:2\\] Oscillator Fail Safe Limit \\[13:12\\] Oscillator Fail Safe Test \\[14\\] TRNG Seed Control Register (SDCTL) TRNG Frequency Count Minimum Limit Register (FRQMIN) TRNG Frequency Count Maximum Limit Register (FRQMAX) TRNG Statistical Check Monobit Limit Register (SCML) TRNG Statistical Check Run Length 1 Limit Register (SCR1L) TRNG Statistical Check Run Length 2 Limit Register (SCR2L) TRNG Statistical Check Run Length 3 Limit Register (SCR3L) TRNG Miscellaneous Control Register (MCTL): Sample Mode \\[1:0\\] Oscillator Divider \\[3:2\\] Reset Defaults \\[6\\] Force System Clock \\[7\\] Long Runs Continuation Mode \\[14\\] After this bit has been written to a 1, it cannot be changed\n\nValue on reset: 0"]
6#[cfg_attr(feature = "defmt", derive(defmt::Format))]
7#[derive(Clone, Copy, Debug, PartialEq, Eq)]
8pub enum NoPrgm {
9    #[doc = "0: TRNG configuration registers can be modified."]
10    NoPrgmOff = 0,
11    #[doc = "1: TRNG configuration registers cannot be modified."]
12    NoPrgmOn = 1,
13}
14impl From<NoPrgm> for bool {
15    #[inline(always)]
16    fn from(variant: NoPrgm) -> Self {
17        variant as u8 != 0
18    }
19}
20#[doc = "Field `NO_PRGM` reader - If set, below mentioned TRNG configuration registers cannot be programmed: Oscillator 2 Control Register (OSC2_CTL): TRNG Entropy Generation Control \\[1:0\\] Oscillator 2 Divider \\[3:2\\] Oscillator Fail Safe Limit \\[13:12\\] Oscillator Fail Safe Test \\[14\\] TRNG Seed Control Register (SDCTL) TRNG Frequency Count Minimum Limit Register (FRQMIN) TRNG Frequency Count Maximum Limit Register (FRQMAX) TRNG Statistical Check Monobit Limit Register (SCML) TRNG Statistical Check Run Length 1 Limit Register (SCR1L) TRNG Statistical Check Run Length 2 Limit Register (SCR2L) TRNG Statistical Check Run Length 3 Limit Register (SCR3L) TRNG Miscellaneous Control Register (MCTL): Sample Mode \\[1:0\\] Oscillator Divider \\[3:2\\] Reset Defaults \\[6\\] Force System Clock \\[7\\] Long Runs Continuation Mode \\[14\\] After this bit has been written to a 1, it cannot be changed"]
21pub type NoPrgmR = crate::BitReader<NoPrgm>;
22impl NoPrgmR {
23    #[doc = "Get enumerated values variant"]
24    #[inline(always)]
25    pub const fn variant(&self) -> NoPrgm {
26        match self.bits {
27            false => NoPrgm::NoPrgmOff,
28            true => NoPrgm::NoPrgmOn,
29        }
30    }
31    #[doc = "TRNG configuration registers can be modified."]
32    #[inline(always)]
33    pub fn is_no_prgm_off(&self) -> bool {
34        *self == NoPrgm::NoPrgmOff
35    }
36    #[doc = "TRNG configuration registers cannot be modified."]
37    #[inline(always)]
38    pub fn is_no_prgm_on(&self) -> bool {
39        *self == NoPrgm::NoPrgmOn
40    }
41}
42#[doc = "Field `NO_PRGM` writer - If set, below mentioned TRNG configuration registers cannot be programmed: Oscillator 2 Control Register (OSC2_CTL): TRNG Entropy Generation Control \\[1:0\\] Oscillator 2 Divider \\[3:2\\] Oscillator Fail Safe Limit \\[13:12\\] Oscillator Fail Safe Test \\[14\\] TRNG Seed Control Register (SDCTL) TRNG Frequency Count Minimum Limit Register (FRQMIN) TRNG Frequency Count Maximum Limit Register (FRQMAX) TRNG Statistical Check Monobit Limit Register (SCML) TRNG Statistical Check Run Length 1 Limit Register (SCR1L) TRNG Statistical Check Run Length 2 Limit Register (SCR2L) TRNG Statistical Check Run Length 3 Limit Register (SCR3L) TRNG Miscellaneous Control Register (MCTL): Sample Mode \\[1:0\\] Oscillator Divider \\[3:2\\] Reset Defaults \\[6\\] Force System Clock \\[7\\] Long Runs Continuation Mode \\[14\\] After this bit has been written to a 1, it cannot be changed"]
43pub type NoPrgmW<'a, REG> = crate::BitWriter<'a, REG, NoPrgm>;
44impl<'a, REG> NoPrgmW<'a, REG>
45where
46    REG: crate::Writable + crate::RegisterSpec,
47{
48    #[doc = "TRNG configuration registers can be modified."]
49    #[inline(always)]
50    pub fn no_prgm_off(self) -> &'a mut crate::W<REG> {
51        self.variant(NoPrgm::NoPrgmOff)
52    }
53    #[doc = "TRNG configuration registers cannot be modified."]
54    #[inline(always)]
55    pub fn no_prgm_on(self) -> &'a mut crate::W<REG> {
56        self.variant(NoPrgm::NoPrgmOn)
57    }
58}
59impl R {
60    #[doc = "Bit 1 - If set, below mentioned TRNG configuration registers cannot be programmed: Oscillator 2 Control Register (OSC2_CTL): TRNG Entropy Generation Control \\[1:0\\] Oscillator 2 Divider \\[3:2\\] Oscillator Fail Safe Limit \\[13:12\\] Oscillator Fail Safe Test \\[14\\] TRNG Seed Control Register (SDCTL) TRNG Frequency Count Minimum Limit Register (FRQMIN) TRNG Frequency Count Maximum Limit Register (FRQMAX) TRNG Statistical Check Monobit Limit Register (SCML) TRNG Statistical Check Run Length 1 Limit Register (SCR1L) TRNG Statistical Check Run Length 2 Limit Register (SCR2L) TRNG Statistical Check Run Length 3 Limit Register (SCR3L) TRNG Miscellaneous Control Register (MCTL): Sample Mode \\[1:0\\] Oscillator Divider \\[3:2\\] Reset Defaults \\[6\\] Force System Clock \\[7\\] Long Runs Continuation Mode \\[14\\] After this bit has been written to a 1, it cannot be changed"]
61    #[inline(always)]
62    pub fn no_prgm(&self) -> NoPrgmR {
63        NoPrgmR::new(((self.bits >> 1) & 1) != 0)
64    }
65}
66#[cfg(feature = "debug")]
67impl core::fmt::Debug for R {
68    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
69        f.debug_struct("SEC_CFG").field("no_prgm", &self.no_prgm()).finish()
70    }
71}
72impl W {
73    #[doc = "Bit 1 - If set, below mentioned TRNG configuration registers cannot be programmed: Oscillator 2 Control Register (OSC2_CTL): TRNG Entropy Generation Control \\[1:0\\] Oscillator 2 Divider \\[3:2\\] Oscillator Fail Safe Limit \\[13:12\\] Oscillator Fail Safe Test \\[14\\] TRNG Seed Control Register (SDCTL) TRNG Frequency Count Minimum Limit Register (FRQMIN) TRNG Frequency Count Maximum Limit Register (FRQMAX) TRNG Statistical Check Monobit Limit Register (SCML) TRNG Statistical Check Run Length 1 Limit Register (SCR1L) TRNG Statistical Check Run Length 2 Limit Register (SCR2L) TRNG Statistical Check Run Length 3 Limit Register (SCR3L) TRNG Miscellaneous Control Register (MCTL): Sample Mode \\[1:0\\] Oscillator Divider \\[3:2\\] Reset Defaults \\[6\\] Force System Clock \\[7\\] Long Runs Continuation Mode \\[14\\] After this bit has been written to a 1, it cannot be changed"]
74    #[inline(always)]
75    pub fn no_prgm(&mut self) -> NoPrgmW<'_, SecCfgSpec> {
76        NoPrgmW::new(self, 1)
77    }
78}
79#[doc = "Security Configuration Register\n\nYou can [`read`](crate::Reg::read) this register and get [`sec_cfg::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sec_cfg::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
80pub struct SecCfgSpec;
81impl crate::RegisterSpec for SecCfgSpec {
82    type Ux = u32;
83}
84#[doc = "`read()` method returns [`sec_cfg::R`](R) reader structure"]
85impl crate::Readable for SecCfgSpec {}
86#[doc = "`write(|w| ..)` method takes [`sec_cfg::W`](W) writer structure"]
87impl crate::Writable for SecCfgSpec {
88    type Safety = crate::Unsafe;
89}
90#[doc = "`reset()` method sets SEC_CFG to value 0"]
91impl crate::Resettable for SecCfgSpec {}