mcxa_pac/syscon/
device_id0.rs

1#[doc = "Register `DEVICE_ID0` reader"]
2pub type R = crate::R<DeviceId0Spec>;
3#[doc = "Indicates the device's ram size\n\nValue on reset: 0"]
4#[cfg_attr(feature = "defmt", derive(defmt::Format))]
5#[derive(Clone, Copy, Debug, PartialEq, Eq)]
6#[repr(u8)]
7pub enum RamSize {
8    #[doc = "0: 8KB."]
9    Size8kb = 0,
10    #[doc = "1: 16KB."]
11    Size16kb = 1,
12    #[doc = "2: 32KB."]
13    Size32kb = 2,
14    #[doc = "3: 64KB."]
15    Size64kb = 3,
16    #[doc = "4: 96KB."]
17    Size96kb = 4,
18    #[doc = "5: 128KB."]
19    Size128kb = 5,
20    #[doc = "6: 160KB."]
21    Size160kb = 6,
22    #[doc = "7: 192KB."]
23    Size192kb = 7,
24    #[doc = "8: 256KB."]
25    Size256kb = 8,
26    #[doc = "9: 288KB."]
27    Size288kb = 9,
28    #[doc = "10: 352KB."]
29    Size352kb = 10,
30    #[doc = "11: 512KB."]
31    Size512kb = 11,
32}
33impl From<RamSize> for u8 {
34    #[inline(always)]
35    fn from(variant: RamSize) -> Self {
36        variant as _
37    }
38}
39impl crate::FieldSpec for RamSize {
40    type Ux = u8;
41}
42impl crate::IsEnum for RamSize {}
43#[doc = "Field `RAM_SIZE` reader - Indicates the device's ram size"]
44pub type RamSizeR = crate::FieldReader<RamSize>;
45impl RamSizeR {
46    #[doc = "Get enumerated values variant"]
47    #[inline(always)]
48    pub const fn variant(&self) -> Option<RamSize> {
49        match self.bits {
50            0 => Some(RamSize::Size8kb),
51            1 => Some(RamSize::Size16kb),
52            2 => Some(RamSize::Size32kb),
53            3 => Some(RamSize::Size64kb),
54            4 => Some(RamSize::Size96kb),
55            5 => Some(RamSize::Size128kb),
56            6 => Some(RamSize::Size160kb),
57            7 => Some(RamSize::Size192kb),
58            8 => Some(RamSize::Size256kb),
59            9 => Some(RamSize::Size288kb),
60            10 => Some(RamSize::Size352kb),
61            11 => Some(RamSize::Size512kb),
62            _ => None,
63        }
64    }
65    #[doc = "8KB."]
66    #[inline(always)]
67    pub fn is_size_8kb(&self) -> bool {
68        *self == RamSize::Size8kb
69    }
70    #[doc = "16KB."]
71    #[inline(always)]
72    pub fn is_size_16kb(&self) -> bool {
73        *self == RamSize::Size16kb
74    }
75    #[doc = "32KB."]
76    #[inline(always)]
77    pub fn is_size_32kb(&self) -> bool {
78        *self == RamSize::Size32kb
79    }
80    #[doc = "64KB."]
81    #[inline(always)]
82    pub fn is_size_64kb(&self) -> bool {
83        *self == RamSize::Size64kb
84    }
85    #[doc = "96KB."]
86    #[inline(always)]
87    pub fn is_size_96kb(&self) -> bool {
88        *self == RamSize::Size96kb
89    }
90    #[doc = "128KB."]
91    #[inline(always)]
92    pub fn is_size_128kb(&self) -> bool {
93        *self == RamSize::Size128kb
94    }
95    #[doc = "160KB."]
96    #[inline(always)]
97    pub fn is_size_160kb(&self) -> bool {
98        *self == RamSize::Size160kb
99    }
100    #[doc = "192KB."]
101    #[inline(always)]
102    pub fn is_size_192kb(&self) -> bool {
103        *self == RamSize::Size192kb
104    }
105    #[doc = "256KB."]
106    #[inline(always)]
107    pub fn is_size_256kb(&self) -> bool {
108        *self == RamSize::Size256kb
109    }
110    #[doc = "288KB."]
111    #[inline(always)]
112    pub fn is_size_288kb(&self) -> bool {
113        *self == RamSize::Size288kb
114    }
115    #[doc = "352KB."]
116    #[inline(always)]
117    pub fn is_size_352kb(&self) -> bool {
118        *self == RamSize::Size352kb
119    }
120    #[doc = "512KB."]
121    #[inline(always)]
122    pub fn is_size_512kb(&self) -> bool {
123        *self == RamSize::Size512kb
124    }
125}
126#[doc = "Indicates the device's flash size\n\nValue on reset: 0"]
127#[cfg_attr(feature = "defmt", derive(defmt::Format))]
128#[derive(Clone, Copy, Debug, PartialEq, Eq)]
129#[repr(u8)]
130pub enum FlashSize {
131    #[doc = "0: 32KB."]
132    Size32kb = 0,
133    #[doc = "1: 64KB."]
134    Size64kb = 1,
135    #[doc = "2: 128KB."]
136    Size128kb = 2,
137    #[doc = "3: 256KB."]
138    Size256kb = 3,
139    #[doc = "4: 512KB."]
140    Size512kb = 4,
141    #[doc = "5: 768KB."]
142    Size768kb = 5,
143    #[doc = "6: 1MB."]
144    Size1mb = 6,
145    #[doc = "7: 1.5MB."]
146    Size1p5mb = 7,
147    #[doc = "8: 2MB."]
148    Size2mb = 8,
149}
150impl From<FlashSize> for u8 {
151    #[inline(always)]
152    fn from(variant: FlashSize) -> Self {
153        variant as _
154    }
155}
156impl crate::FieldSpec for FlashSize {
157    type Ux = u8;
158}
159impl crate::IsEnum for FlashSize {}
160#[doc = "Field `FLASH_SIZE` reader - Indicates the device's flash size"]
161pub type FlashSizeR = crate::FieldReader<FlashSize>;
162impl FlashSizeR {
163    #[doc = "Get enumerated values variant"]
164    #[inline(always)]
165    pub const fn variant(&self) -> Option<FlashSize> {
166        match self.bits {
167            0 => Some(FlashSize::Size32kb),
168            1 => Some(FlashSize::Size64kb),
169            2 => Some(FlashSize::Size128kb),
170            3 => Some(FlashSize::Size256kb),
171            4 => Some(FlashSize::Size512kb),
172            5 => Some(FlashSize::Size768kb),
173            6 => Some(FlashSize::Size1mb),
174            7 => Some(FlashSize::Size1p5mb),
175            8 => Some(FlashSize::Size2mb),
176            _ => None,
177        }
178    }
179    #[doc = "32KB."]
180    #[inline(always)]
181    pub fn is_size_32kb(&self) -> bool {
182        *self == FlashSize::Size32kb
183    }
184    #[doc = "64KB."]
185    #[inline(always)]
186    pub fn is_size_64kb(&self) -> bool {
187        *self == FlashSize::Size64kb
188    }
189    #[doc = "128KB."]
190    #[inline(always)]
191    pub fn is_size_128kb(&self) -> bool {
192        *self == FlashSize::Size128kb
193    }
194    #[doc = "256KB."]
195    #[inline(always)]
196    pub fn is_size_256kb(&self) -> bool {
197        *self == FlashSize::Size256kb
198    }
199    #[doc = "512KB."]
200    #[inline(always)]
201    pub fn is_size_512kb(&self) -> bool {
202        *self == FlashSize::Size512kb
203    }
204    #[doc = "768KB."]
205    #[inline(always)]
206    pub fn is_size_768kb(&self) -> bool {
207        *self == FlashSize::Size768kb
208    }
209    #[doc = "1MB."]
210    #[inline(always)]
211    pub fn is_size_1mb(&self) -> bool {
212        *self == FlashSize::Size1mb
213    }
214    #[doc = "1.5MB."]
215    #[inline(always)]
216    pub fn is_size_1p5mb(&self) -> bool {
217        *self == FlashSize::Size1p5mb
218    }
219    #[doc = "2MB."]
220    #[inline(always)]
221    pub fn is_size_2mb(&self) -> bool {
222        *self == FlashSize::Size2mb
223    }
224}
225#[doc = "Field `ROM_REV_MINOR` reader - Indicates the device's ROM revision"]
226pub type RomRevMinorR = crate::FieldReader;
227#[doc = "no description available\n\nValue on reset: 0"]
228#[cfg_attr(feature = "defmt", derive(defmt::Format))]
229#[derive(Clone, Copy, Debug, PartialEq, Eq)]
230#[repr(u8)]
231pub enum Security {
232    #[doc = "5: Secure version."]
233    NonSec = 5,
234    #[doc = "10: Non secure version."]
235    Security10 = 10,
236}
237impl From<Security> for u8 {
238    #[inline(always)]
239    fn from(variant: Security) -> Self {
240        variant as _
241    }
242}
243impl crate::FieldSpec for Security {
244    type Ux = u8;
245}
246impl crate::IsEnum for Security {}
247#[doc = "Field `SECURITY` reader - no description available"]
248pub type SecurityR = crate::FieldReader<Security>;
249impl SecurityR {
250    #[doc = "Get enumerated values variant"]
251    #[inline(always)]
252    pub const fn variant(&self) -> Option<Security> {
253        match self.bits {
254            5 => Some(Security::NonSec),
255            10 => Some(Security::Security10),
256            _ => None,
257        }
258    }
259    #[doc = "Secure version."]
260    #[inline(always)]
261    pub fn is_non_sec(&self) -> bool {
262        *self == Security::NonSec
263    }
264    #[doc = "Non secure version."]
265    #[inline(always)]
266    pub fn is_security_10(&self) -> bool {
267        *self == Security::Security10
268    }
269}
270impl R {
271    #[doc = "Bits 0:3 - Indicates the device's ram size"]
272    #[inline(always)]
273    pub fn ram_size(&self) -> RamSizeR {
274        RamSizeR::new((self.bits & 0x0f) as u8)
275    }
276    #[doc = "Bits 4:7 - Indicates the device's flash size"]
277    #[inline(always)]
278    pub fn flash_size(&self) -> FlashSizeR {
279        FlashSizeR::new(((self.bits >> 4) & 0x0f) as u8)
280    }
281    #[doc = "Bits 20:23 - Indicates the device's ROM revision"]
282    #[inline(always)]
283    pub fn rom_rev_minor(&self) -> RomRevMinorR {
284        RomRevMinorR::new(((self.bits >> 20) & 0x0f) as u8)
285    }
286    #[doc = "Bits 24:27 - no description available"]
287    #[inline(always)]
288    pub fn security(&self) -> SecurityR {
289        SecurityR::new(((self.bits >> 24) & 0x0f) as u8)
290    }
291}
292#[cfg(feature = "debug")]
293impl core::fmt::Debug for R {
294    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
295        f.debug_struct("DEVICE_ID0")
296            .field("ram_size", &self.ram_size())
297            .field("flash_size", &self.flash_size())
298            .field("rom_rev_minor", &self.rom_rev_minor())
299            .field("security", &self.security())
300            .finish()
301    }
302}
303#[doc = "Device ID\n\nYou can [`read`](crate::Reg::read) this register and get [`device_id0::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
304pub struct DeviceId0Spec;
305impl crate::RegisterSpec for DeviceId0Spec {
306    type Ux = u32;
307}
308#[doc = "`read()` method returns [`device_id0::R`](R) reader structure"]
309impl crate::Readable for DeviceId0Spec {}
310#[doc = "`reset()` method sets DEVICE_ID0 to value 0"]
311impl crate::Resettable for DeviceId0Spec {}