efm32pg22_pac/efm32pg22c200/devinfo/
moduleinfo.rs

1#[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}