efm32pg22_pac/efm32pg22c200/devinfo/
moduleinfo.rs1#[doc = "Register `MODULEINFO` reader"]
2pub struct R(crate::R<MODULEINFO_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<MODULEINFO_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<MODULEINFO_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<MODULEINFO_SPEC>) -> Self {
13 R(reader)
14 }
15}
16#[doc = "Field `HWREV` reader - No Description"]
17pub type HWREV_R = crate::FieldReader<u8, u8>;
18#[doc = "Field `ANTENNA` reader - No Description"]
19pub type ANTENNA_R = crate::FieldReader<u8, ANTENNA_A>;
20#[doc = "No Description\n\nValue on reset: 7"]
21#[derive(Clone, Copy, Debug, PartialEq, Eq)]
22#[repr(u8)]
23pub enum ANTENNA_A {
24 #[doc = "0: Built-in Antenna"]
25 BUILTIN = 0,
26 #[doc = "1: RF Connector"]
27 CONNECTOR = 1,
28 #[doc = "2: RF Pad"]
29 RFPAD = 2,
30 #[doc = "3: F-invert PCB"]
31 INVERTEDF = 3,
32}
33impl From<ANTENNA_A> for u8 {
34 #[inline(always)]
35 fn from(variant: ANTENNA_A) -> Self {
36 variant as _
37 }
38}
39impl ANTENNA_R {
40 #[doc = "Get enumerated values variant"]
41 #[inline(always)]
42 pub fn variant(&self) -> Option<ANTENNA_A> {
43 match self.bits {
44 0 => Some(ANTENNA_A::BUILTIN),
45 1 => Some(ANTENNA_A::CONNECTOR),
46 2 => Some(ANTENNA_A::RFPAD),
47 3 => Some(ANTENNA_A::INVERTEDF),
48 _ => None,
49 }
50 }
51 #[doc = "Checks if the value of the field is `BUILTIN`"]
52 #[inline(always)]
53 pub fn is_builtin(&self) -> bool {
54 *self == ANTENNA_A::BUILTIN
55 }
56 #[doc = "Checks if the value of the field is `CONNECTOR`"]
57 #[inline(always)]
58 pub fn is_connector(&self) -> bool {
59 *self == ANTENNA_A::CONNECTOR
60 }
61 #[doc = "Checks if the value of the field is `RFPAD`"]
62 #[inline(always)]
63 pub fn is_rfpad(&self) -> bool {
64 *self == ANTENNA_A::RFPAD
65 }
66 #[doc = "Checks if the value of the field is `INVERTEDF`"]
67 #[inline(always)]
68 pub fn is_invertedf(&self) -> bool {
69 *self == ANTENNA_A::INVERTEDF
70 }
71}
72#[doc = "Field `MODNUMBER` reader - No Description"]
73pub type MODNUMBER_R = crate::FieldReader<u8, u8>;
74#[doc = "Field `TYPE` reader - No Description"]
75pub type TYPE_R = crate::BitReader<TYPE_A>;
76#[doc = "No Description\n\nValue on reset: 1"]
77#[derive(Clone, Copy, Debug, PartialEq, Eq)]
78pub enum TYPE_A {
79 #[doc = "0: PCB"]
80 PCB = 0,
81 #[doc = "1: SIP"]
82 SIP = 1,
83}
84impl From<TYPE_A> for bool {
85 #[inline(always)]
86 fn from(variant: TYPE_A) -> Self {
87 variant as u8 != 0
88 }
89}
90impl TYPE_R {
91 #[doc = "Get enumerated values variant"]
92 #[inline(always)]
93 pub fn variant(&self) -> TYPE_A {
94 match self.bits {
95 false => TYPE_A::PCB,
96 true => TYPE_A::SIP,
97 }
98 }
99 #[doc = "Checks if the value of the field is `PCB`"]
100 #[inline(always)]
101 pub fn is_pcb(&self) -> bool {
102 *self == TYPE_A::PCB
103 }
104 #[doc = "Checks if the value of the field is `SIP`"]
105 #[inline(always)]
106 pub fn is_sip(&self) -> bool {
107 *self == TYPE_A::SIP
108 }
109}
110#[doc = "Field `LFXO` reader - No Description"]
111pub type LFXO_R = crate::BitReader<LFXO_A>;
112#[doc = "No Description\n\nValue on reset: 1"]
113#[derive(Clone, Copy, Debug, PartialEq, Eq)]
114pub enum LFXO_A {
115 #[doc = "0: LFXO is not installed"]
116 NONE = 0,
117 #[doc = "1: LFXO is installed"]
118 PRESENT = 1,
119}
120impl From<LFXO_A> for bool {
121 #[inline(always)]
122 fn from(variant: LFXO_A) -> Self {
123 variant as u8 != 0
124 }
125}
126impl LFXO_R {
127 #[doc = "Get enumerated values variant"]
128 #[inline(always)]
129 pub fn variant(&self) -> LFXO_A {
130 match self.bits {
131 false => LFXO_A::NONE,
132 true => LFXO_A::PRESENT,
133 }
134 }
135 #[doc = "Checks if the value of the field is `NONE`"]
136 #[inline(always)]
137 pub fn is_none(&self) -> bool {
138 *self == LFXO_A::NONE
139 }
140 #[doc = "Checks if the value of the field is `PRESENT`"]
141 #[inline(always)]
142 pub fn is_present(&self) -> bool {
143 *self == LFXO_A::PRESENT
144 }
145}
146#[doc = "Field `EXPRESS` reader - No Description"]
147pub type EXPRESS_R = crate::BitReader<EXPRESS_A>;
148#[doc = "No Description\n\nValue on reset: 1"]
149#[derive(Clone, Copy, Debug, PartialEq, Eq)]
150pub enum EXPRESS_A {
151 #[doc = "0: Blue Gecko Express is supported"]
152 SUPPORTED = 0,
153 #[doc = "1: Blue Gecko Express is not supported"]
154 NONE = 1,
155}
156impl From<EXPRESS_A> for bool {
157 #[inline(always)]
158 fn from(variant: EXPRESS_A) -> Self {
159 variant as u8 != 0
160 }
161}
162impl EXPRESS_R {
163 #[doc = "Get enumerated values variant"]
164 #[inline(always)]
165 pub fn variant(&self) -> EXPRESS_A {
166 match self.bits {
167 false => EXPRESS_A::SUPPORTED,
168 true => EXPRESS_A::NONE,
169 }
170 }
171 #[doc = "Checks if the value of the field is `SUPPORTED`"]
172 #[inline(always)]
173 pub fn is_supported(&self) -> bool {
174 *self == EXPRESS_A::SUPPORTED
175 }
176 #[doc = "Checks if the value of the field is `NONE`"]
177 #[inline(always)]
178 pub fn is_none(&self) -> bool {
179 *self == EXPRESS_A::NONE
180 }
181}
182#[doc = "Field `LFXOCALVAL` reader - No Description"]
183pub type LFXOCALVAL_R = crate::BitReader<LFXOCALVAL_A>;
184#[doc = "No Description\n\nValue on reset: 1"]
185#[derive(Clone, Copy, Debug, PartialEq, Eq)]
186pub enum LFXOCALVAL_A {
187 #[doc = "0: LFXO Tuning in MODXOCAL is valid"]
188 VALID = 0,
189 #[doc = "1: LFXO Tuning value in MODXOCAL is not valid"]
190 NOTVALID = 1,
191}
192impl From<LFXOCALVAL_A> for bool {
193 #[inline(always)]
194 fn from(variant: LFXOCALVAL_A) -> Self {
195 variant as u8 != 0
196 }
197}
198impl LFXOCALVAL_R {
199 #[doc = "Get enumerated values variant"]
200 #[inline(always)]
201 pub fn variant(&self) -> LFXOCALVAL_A {
202 match self.bits {
203 false => LFXOCALVAL_A::VALID,
204 true => LFXOCALVAL_A::NOTVALID,
205 }
206 }
207 #[doc = "Checks if the value of the field is `VALID`"]
208 #[inline(always)]
209 pub fn is_valid(&self) -> bool {
210 *self == LFXOCALVAL_A::VALID
211 }
212 #[doc = "Checks if the value of the field is `NOTVALID`"]
213 #[inline(always)]
214 pub fn is_notvalid(&self) -> bool {
215 *self == LFXOCALVAL_A::NOTVALID
216 }
217}
218#[doc = "Field `HFXOCALVAL` reader - No Description"]
219pub type HFXOCALVAL_R = crate::BitReader<HFXOCALVAL_A>;
220#[doc = "No Description\n\nValue on reset: 1"]
221#[derive(Clone, Copy, Debug, PartialEq, Eq)]
222pub enum HFXOCALVAL_A {
223 #[doc = "0: HFXO calibration in MODXOCAL is valid"]
224 VALID = 0,
225 #[doc = "1: HFXO calibration in MODXOCAL is not valid"]
226 NOTVALID = 1,
227}
228impl From<HFXOCALVAL_A> for bool {
229 #[inline(always)]
230 fn from(variant: HFXOCALVAL_A) -> Self {
231 variant as u8 != 0
232 }
233}
234impl HFXOCALVAL_R {
235 #[doc = "Get enumerated values variant"]
236 #[inline(always)]
237 pub fn variant(&self) -> HFXOCALVAL_A {
238 match self.bits {
239 false => HFXOCALVAL_A::VALID,
240 true => HFXOCALVAL_A::NOTVALID,
241 }
242 }
243 #[doc = "Checks if the value of the field is `VALID`"]
244 #[inline(always)]
245 pub fn is_valid(&self) -> bool {
246 *self == HFXOCALVAL_A::VALID
247 }
248 #[doc = "Checks if the value of the field is `NOTVALID`"]
249 #[inline(always)]
250 pub fn is_notvalid(&self) -> bool {
251 *self == HFXOCALVAL_A::NOTVALID
252 }
253}
254#[doc = "Field `MODNUMBERMSB` reader - No Description"]
255pub type MODNUMBERMSB_R = crate::FieldReader<u16, u16>;
256#[doc = "Field `PADCDC` reader - No Description"]
257pub type PADCDC_R = crate::BitReader<PADCDC_A>;
258#[doc = "No Description\n\nValue on reset: 1"]
259#[derive(Clone, Copy, Debug, PartialEq, Eq)]
260pub enum PADCDC_A {
261 #[doc = "0: PAVDD connected to Vdcdc"]
262 VDCDC = 0,
263 #[doc = "1: PAVDD connected to Vdd or other"]
264 OTHER = 1,
265}
266impl From<PADCDC_A> for bool {
267 #[inline(always)]
268 fn from(variant: PADCDC_A) -> Self {
269 variant as u8 != 0
270 }
271}
272impl PADCDC_R {
273 #[doc = "Get enumerated values variant"]
274 #[inline(always)]
275 pub fn variant(&self) -> PADCDC_A {
276 match self.bits {
277 false => PADCDC_A::VDCDC,
278 true => PADCDC_A::OTHER,
279 }
280 }
281 #[doc = "Checks if the value of the field is `VDCDC`"]
282 #[inline(always)]
283 pub fn is_vdcdc(&self) -> bool {
284 *self == PADCDC_A::VDCDC
285 }
286 #[doc = "Checks if the value of the field is `OTHER`"]
287 #[inline(always)]
288 pub fn is_other(&self) -> bool {
289 *self == PADCDC_A::OTHER
290 }
291}
292#[doc = "Field `PHYLIMITED` reader - No Description"]
293pub type PHYLIMITED_R = crate::BitReader<PHYLIMITED_A>;
294#[doc = "No Description\n\nValue on reset: 1"]
295#[derive(Clone, Copy, Debug, PartialEq, Eq)]
296pub enum PHYLIMITED_A {
297 #[doc = "0: LIMITED"]
298 LIMITED = 0,
299 #[doc = "1: UNLIMITED"]
300 UNLIMITED = 1,
301}
302impl From<PHYLIMITED_A> for bool {
303 #[inline(always)]
304 fn from(variant: PHYLIMITED_A) -> Self {
305 variant as u8 != 0
306 }
307}
308impl PHYLIMITED_R {
309 #[doc = "Get enumerated values variant"]
310 #[inline(always)]
311 pub fn variant(&self) -> PHYLIMITED_A {
312 match self.bits {
313 false => PHYLIMITED_A::LIMITED,
314 true => PHYLIMITED_A::UNLIMITED,
315 }
316 }
317 #[doc = "Checks if the value of the field is `LIMITED`"]
318 #[inline(always)]
319 pub fn is_limited(&self) -> bool {
320 *self == PHYLIMITED_A::LIMITED
321 }
322 #[doc = "Checks if the value of the field is `UNLIMITED`"]
323 #[inline(always)]
324 pub fn is_unlimited(&self) -> bool {
325 *self == PHYLIMITED_A::UNLIMITED
326 }
327}
328#[doc = "Field `EXTVALID` reader - No Description"]
329pub type EXTVALID_R = crate::BitReader<EXTVALID_A>;
330#[doc = "No Description\n\nValue on reset: 1"]
331#[derive(Clone, Copy, Debug, PartialEq, Eq)]
332pub enum EXTVALID_A {
333 #[doc = "0: EXT used"]
334 EXTUSED = 0,
335 #[doc = "1: EXT not used"]
336 EXTUNUSED = 1,
337}
338impl From<EXTVALID_A> for bool {
339 #[inline(always)]
340 fn from(variant: EXTVALID_A) -> Self {
341 variant as u8 != 0
342 }
343}
344impl EXTVALID_R {
345 #[doc = "Get enumerated values variant"]
346 #[inline(always)]
347 pub fn variant(&self) -> EXTVALID_A {
348 match self.bits {
349 false => EXTVALID_A::EXTUSED,
350 true => EXTVALID_A::EXTUNUSED,
351 }
352 }
353 #[doc = "Checks if the value of the field is `EXTUSED`"]
354 #[inline(always)]
355 pub fn is_extused(&self) -> bool {
356 *self == EXTVALID_A::EXTUSED
357 }
358 #[doc = "Checks if the value of the field is `EXTUNUSED`"]
359 #[inline(always)]
360 pub fn is_extunused(&self) -> bool {
361 *self == EXTVALID_A::EXTUNUSED
362 }
363}
364impl R {
365 #[doc = "Bits 0:4 - No Description"]
366 #[inline(always)]
367 pub fn hwrev(&self) -> HWREV_R {
368 HWREV_R::new((self.bits & 0x1f) as u8)
369 }
370 #[doc = "Bits 5:7 - No Description"]
371 #[inline(always)]
372 pub fn antenna(&self) -> ANTENNA_R {
373 ANTENNA_R::new(((self.bits >> 5) & 7) as u8)
374 }
375 #[doc = "Bits 8:14 - No Description"]
376 #[inline(always)]
377 pub fn modnumber(&self) -> MODNUMBER_R {
378 MODNUMBER_R::new(((self.bits >> 8) & 0x7f) as u8)
379 }
380 #[doc = "Bit 15 - No Description"]
381 #[inline(always)]
382 pub fn type_(&self) -> TYPE_R {
383 TYPE_R::new(((self.bits >> 15) & 1) != 0)
384 }
385 #[doc = "Bit 16 - No Description"]
386 #[inline(always)]
387 pub fn lfxo(&self) -> LFXO_R {
388 LFXO_R::new(((self.bits >> 16) & 1) != 0)
389 }
390 #[doc = "Bit 17 - No Description"]
391 #[inline(always)]
392 pub fn express(&self) -> EXPRESS_R {
393 EXPRESS_R::new(((self.bits >> 17) & 1) != 0)
394 }
395 #[doc = "Bit 18 - No Description"]
396 #[inline(always)]
397 pub fn lfxocalval(&self) -> LFXOCALVAL_R {
398 LFXOCALVAL_R::new(((self.bits >> 18) & 1) != 0)
399 }
400 #[doc = "Bit 19 - No Description"]
401 #[inline(always)]
402 pub fn hfxocalval(&self) -> HFXOCALVAL_R {
403 HFXOCALVAL_R::new(((self.bits >> 19) & 1) != 0)
404 }
405 #[doc = "Bits 20:28 - No Description"]
406 #[inline(always)]
407 pub fn modnumbermsb(&self) -> MODNUMBERMSB_R {
408 MODNUMBERMSB_R::new(((self.bits >> 20) & 0x01ff) as u16)
409 }
410 #[doc = "Bit 29 - No Description"]
411 #[inline(always)]
412 pub fn padcdc(&self) -> PADCDC_R {
413 PADCDC_R::new(((self.bits >> 29) & 1) != 0)
414 }
415 #[doc = "Bit 30 - No Description"]
416 #[inline(always)]
417 pub fn phylimited(&self) -> PHYLIMITED_R {
418 PHYLIMITED_R::new(((self.bits >> 30) & 1) != 0)
419 }
420 #[doc = "Bit 31 - No Description"]
421 #[inline(always)]
422 pub fn extvalid(&self) -> EXTVALID_R {
423 EXTVALID_R::new(((self.bits >> 31) & 1) != 0)
424 }
425}
426#[doc = "Module Information\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [moduleinfo](index.html) module"]
427pub struct MODULEINFO_SPEC;
428impl crate::RegisterSpec for MODULEINFO_SPEC {
429 type Ux = u32;
430}
431#[doc = "`read()` method returns [moduleinfo::R](R) reader structure"]
432impl crate::Readable for MODULEINFO_SPEC {
433 type Reader = R;
434}
435#[doc = "`reset()` method sets MODULEINFO to value 0xffff_ffff"]
436impl crate::Resettable for MODULEINFO_SPEC {
437 const RESET_VALUE: Self::Ux = 0xffff_ffff;
438}