efm32gg11b510_pac/cmu/
ctrl.rs

1#[doc = "Register `CTRL` reader"]
2pub struct R(crate::R<CTRL_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<CTRL_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<CTRL_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<CTRL_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `CTRL` writer"]
17pub struct W(crate::W<CTRL_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<CTRL_SPEC>;
20    #[inline(always)]
21    fn deref(&self) -> &Self::Target {
22        &self.0
23    }
24}
25impl core::ops::DerefMut for W {
26    #[inline(always)]
27    fn deref_mut(&mut self) -> &mut Self::Target {
28        &mut self.0
29    }
30}
31impl From<crate::W<CTRL_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<CTRL_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "Clock Output Select 0\n\nValue on reset: 0"]
38#[derive(Clone, Copy, Debug, PartialEq)]
39#[repr(u8)]
40pub enum CLKOUTSEL0_A {
41    #[doc = "0: Disabled"]
42    DISABLED = 0,
43    #[doc = "1: ULFRCO (directly from oscillator)"]
44    ULFRCO = 1,
45    #[doc = "2: LFRCO (directly from oscillator)"]
46    LFRCO = 2,
47    #[doc = "3: LFXO (directly from oscillator)"]
48    LFXO = 3,
49    #[doc = "6: HFXO (directly from oscillator)"]
50    HFXO = 6,
51    #[doc = "7: HFEXPCLK"]
52    HFEXPCLK = 7,
53    #[doc = "9: ULFRCO (qualified)"]
54    ULFRCOQ = 9,
55    #[doc = "10: LFRCO (qualified)"]
56    LFRCOQ = 10,
57    #[doc = "11: LFXO (qualified)"]
58    LFXOQ = 11,
59    #[doc = "12: HFRCO (qualified)"]
60    HFRCOQ = 12,
61    #[doc = "13: AUXHFRCO (qualified)"]
62    AUXHFRCOQ = 13,
63    #[doc = "14: HFXO (qualified)"]
64    HFXOQ = 14,
65    #[doc = "15: HFSRCCLK"]
66    HFSRCCLK = 15,
67    #[doc = "18: USHFRCO (qualified)"]
68    USHFRCOQ = 18,
69}
70impl From<CLKOUTSEL0_A> for u8 {
71    #[inline(always)]
72    fn from(variant: CLKOUTSEL0_A) -> Self {
73        variant as _
74    }
75}
76#[doc = "Field `CLKOUTSEL0` reader - Clock Output Select 0"]
77pub type CLKOUTSEL0_R = crate::FieldReader<u8, CLKOUTSEL0_A>;
78impl CLKOUTSEL0_R {
79    #[doc = "Get enumerated values variant"]
80    #[inline(always)]
81    pub fn variant(&self) -> Option<CLKOUTSEL0_A> {
82        match self.bits {
83            0 => Some(CLKOUTSEL0_A::DISABLED),
84            1 => Some(CLKOUTSEL0_A::ULFRCO),
85            2 => Some(CLKOUTSEL0_A::LFRCO),
86            3 => Some(CLKOUTSEL0_A::LFXO),
87            6 => Some(CLKOUTSEL0_A::HFXO),
88            7 => Some(CLKOUTSEL0_A::HFEXPCLK),
89            9 => Some(CLKOUTSEL0_A::ULFRCOQ),
90            10 => Some(CLKOUTSEL0_A::LFRCOQ),
91            11 => Some(CLKOUTSEL0_A::LFXOQ),
92            12 => Some(CLKOUTSEL0_A::HFRCOQ),
93            13 => Some(CLKOUTSEL0_A::AUXHFRCOQ),
94            14 => Some(CLKOUTSEL0_A::HFXOQ),
95            15 => Some(CLKOUTSEL0_A::HFSRCCLK),
96            18 => Some(CLKOUTSEL0_A::USHFRCOQ),
97            _ => None,
98        }
99    }
100    #[doc = "Checks if the value of the field is `DISABLED`"]
101    #[inline(always)]
102    pub fn is_disabled(&self) -> bool {
103        *self == CLKOUTSEL0_A::DISABLED
104    }
105    #[doc = "Checks if the value of the field is `ULFRCO`"]
106    #[inline(always)]
107    pub fn is_ulfrco(&self) -> bool {
108        *self == CLKOUTSEL0_A::ULFRCO
109    }
110    #[doc = "Checks if the value of the field is `LFRCO`"]
111    #[inline(always)]
112    pub fn is_lfrco(&self) -> bool {
113        *self == CLKOUTSEL0_A::LFRCO
114    }
115    #[doc = "Checks if the value of the field is `LFXO`"]
116    #[inline(always)]
117    pub fn is_lfxo(&self) -> bool {
118        *self == CLKOUTSEL0_A::LFXO
119    }
120    #[doc = "Checks if the value of the field is `HFXO`"]
121    #[inline(always)]
122    pub fn is_hfxo(&self) -> bool {
123        *self == CLKOUTSEL0_A::HFXO
124    }
125    #[doc = "Checks if the value of the field is `HFEXPCLK`"]
126    #[inline(always)]
127    pub fn is_hfexpclk(&self) -> bool {
128        *self == CLKOUTSEL0_A::HFEXPCLK
129    }
130    #[doc = "Checks if the value of the field is `ULFRCOQ`"]
131    #[inline(always)]
132    pub fn is_ulfrcoq(&self) -> bool {
133        *self == CLKOUTSEL0_A::ULFRCOQ
134    }
135    #[doc = "Checks if the value of the field is `LFRCOQ`"]
136    #[inline(always)]
137    pub fn is_lfrcoq(&self) -> bool {
138        *self == CLKOUTSEL0_A::LFRCOQ
139    }
140    #[doc = "Checks if the value of the field is `LFXOQ`"]
141    #[inline(always)]
142    pub fn is_lfxoq(&self) -> bool {
143        *self == CLKOUTSEL0_A::LFXOQ
144    }
145    #[doc = "Checks if the value of the field is `HFRCOQ`"]
146    #[inline(always)]
147    pub fn is_hfrcoq(&self) -> bool {
148        *self == CLKOUTSEL0_A::HFRCOQ
149    }
150    #[doc = "Checks if the value of the field is `AUXHFRCOQ`"]
151    #[inline(always)]
152    pub fn is_auxhfrcoq(&self) -> bool {
153        *self == CLKOUTSEL0_A::AUXHFRCOQ
154    }
155    #[doc = "Checks if the value of the field is `HFXOQ`"]
156    #[inline(always)]
157    pub fn is_hfxoq(&self) -> bool {
158        *self == CLKOUTSEL0_A::HFXOQ
159    }
160    #[doc = "Checks if the value of the field is `HFSRCCLK`"]
161    #[inline(always)]
162    pub fn is_hfsrcclk(&self) -> bool {
163        *self == CLKOUTSEL0_A::HFSRCCLK
164    }
165    #[doc = "Checks if the value of the field is `USHFRCOQ`"]
166    #[inline(always)]
167    pub fn is_ushfrcoq(&self) -> bool {
168        *self == CLKOUTSEL0_A::USHFRCOQ
169    }
170}
171#[doc = "Field `CLKOUTSEL0` writer - Clock Output Select 0"]
172pub type CLKOUTSEL0_W<'a> = crate::FieldWriter<'a, u32, CTRL_SPEC, u8, CLKOUTSEL0_A, 5, 0>;
173impl<'a> CLKOUTSEL0_W<'a> {
174    #[doc = "Disabled"]
175    #[inline(always)]
176    pub fn disabled(self) -> &'a mut W {
177        self.variant(CLKOUTSEL0_A::DISABLED)
178    }
179    #[doc = "ULFRCO (directly from oscillator)"]
180    #[inline(always)]
181    pub fn ulfrco(self) -> &'a mut W {
182        self.variant(CLKOUTSEL0_A::ULFRCO)
183    }
184    #[doc = "LFRCO (directly from oscillator)"]
185    #[inline(always)]
186    pub fn lfrco(self) -> &'a mut W {
187        self.variant(CLKOUTSEL0_A::LFRCO)
188    }
189    #[doc = "LFXO (directly from oscillator)"]
190    #[inline(always)]
191    pub fn lfxo(self) -> &'a mut W {
192        self.variant(CLKOUTSEL0_A::LFXO)
193    }
194    #[doc = "HFXO (directly from oscillator)"]
195    #[inline(always)]
196    pub fn hfxo(self) -> &'a mut W {
197        self.variant(CLKOUTSEL0_A::HFXO)
198    }
199    #[doc = "HFEXPCLK"]
200    #[inline(always)]
201    pub fn hfexpclk(self) -> &'a mut W {
202        self.variant(CLKOUTSEL0_A::HFEXPCLK)
203    }
204    #[doc = "ULFRCO (qualified)"]
205    #[inline(always)]
206    pub fn ulfrcoq(self) -> &'a mut W {
207        self.variant(CLKOUTSEL0_A::ULFRCOQ)
208    }
209    #[doc = "LFRCO (qualified)"]
210    #[inline(always)]
211    pub fn lfrcoq(self) -> &'a mut W {
212        self.variant(CLKOUTSEL0_A::LFRCOQ)
213    }
214    #[doc = "LFXO (qualified)"]
215    #[inline(always)]
216    pub fn lfxoq(self) -> &'a mut W {
217        self.variant(CLKOUTSEL0_A::LFXOQ)
218    }
219    #[doc = "HFRCO (qualified)"]
220    #[inline(always)]
221    pub fn hfrcoq(self) -> &'a mut W {
222        self.variant(CLKOUTSEL0_A::HFRCOQ)
223    }
224    #[doc = "AUXHFRCO (qualified)"]
225    #[inline(always)]
226    pub fn auxhfrcoq(self) -> &'a mut W {
227        self.variant(CLKOUTSEL0_A::AUXHFRCOQ)
228    }
229    #[doc = "HFXO (qualified)"]
230    #[inline(always)]
231    pub fn hfxoq(self) -> &'a mut W {
232        self.variant(CLKOUTSEL0_A::HFXOQ)
233    }
234    #[doc = "HFSRCCLK"]
235    #[inline(always)]
236    pub fn hfsrcclk(self) -> &'a mut W {
237        self.variant(CLKOUTSEL0_A::HFSRCCLK)
238    }
239    #[doc = "USHFRCO (qualified)"]
240    #[inline(always)]
241    pub fn ushfrcoq(self) -> &'a mut W {
242        self.variant(CLKOUTSEL0_A::USHFRCOQ)
243    }
244}
245#[doc = "Clock Output Select 1\n\nValue on reset: 0"]
246#[derive(Clone, Copy, Debug, PartialEq)]
247#[repr(u8)]
248pub enum CLKOUTSEL1_A {
249    #[doc = "0: Disabled"]
250    DISABLED = 0,
251    #[doc = "1: ULFRCO (directly from oscillator)"]
252    ULFRCO = 1,
253    #[doc = "2: LFRCO (directly from oscillator)"]
254    LFRCO = 2,
255    #[doc = "3: LFXO (directly from oscillator)"]
256    LFXO = 3,
257    #[doc = "6: HFXO (directly from oscillator)"]
258    HFXO = 6,
259    #[doc = "7: HFEXPCLK"]
260    HFEXPCLK = 7,
261    #[doc = "9: ULFRCO (qualified)"]
262    ULFRCOQ = 9,
263    #[doc = "10: LFRCO (qualified)"]
264    LFRCOQ = 10,
265    #[doc = "11: LFXO (qualified)"]
266    LFXOQ = 11,
267    #[doc = "12: HFRCO (qualified)"]
268    HFRCOQ = 12,
269    #[doc = "13: AUXHFRCO (qualified)"]
270    AUXHFRCOQ = 13,
271    #[doc = "14: HFXO (qualified)"]
272    HFXOQ = 14,
273    #[doc = "15: HFSRCCLK"]
274    HFSRCCLK = 15,
275    #[doc = "18: USHFRCO (qualified)"]
276    USHFRCOQ = 18,
277}
278impl From<CLKOUTSEL1_A> for u8 {
279    #[inline(always)]
280    fn from(variant: CLKOUTSEL1_A) -> Self {
281        variant as _
282    }
283}
284#[doc = "Field `CLKOUTSEL1` reader - Clock Output Select 1"]
285pub type CLKOUTSEL1_R = crate::FieldReader<u8, CLKOUTSEL1_A>;
286impl CLKOUTSEL1_R {
287    #[doc = "Get enumerated values variant"]
288    #[inline(always)]
289    pub fn variant(&self) -> Option<CLKOUTSEL1_A> {
290        match self.bits {
291            0 => Some(CLKOUTSEL1_A::DISABLED),
292            1 => Some(CLKOUTSEL1_A::ULFRCO),
293            2 => Some(CLKOUTSEL1_A::LFRCO),
294            3 => Some(CLKOUTSEL1_A::LFXO),
295            6 => Some(CLKOUTSEL1_A::HFXO),
296            7 => Some(CLKOUTSEL1_A::HFEXPCLK),
297            9 => Some(CLKOUTSEL1_A::ULFRCOQ),
298            10 => Some(CLKOUTSEL1_A::LFRCOQ),
299            11 => Some(CLKOUTSEL1_A::LFXOQ),
300            12 => Some(CLKOUTSEL1_A::HFRCOQ),
301            13 => Some(CLKOUTSEL1_A::AUXHFRCOQ),
302            14 => Some(CLKOUTSEL1_A::HFXOQ),
303            15 => Some(CLKOUTSEL1_A::HFSRCCLK),
304            18 => Some(CLKOUTSEL1_A::USHFRCOQ),
305            _ => None,
306        }
307    }
308    #[doc = "Checks if the value of the field is `DISABLED`"]
309    #[inline(always)]
310    pub fn is_disabled(&self) -> bool {
311        *self == CLKOUTSEL1_A::DISABLED
312    }
313    #[doc = "Checks if the value of the field is `ULFRCO`"]
314    #[inline(always)]
315    pub fn is_ulfrco(&self) -> bool {
316        *self == CLKOUTSEL1_A::ULFRCO
317    }
318    #[doc = "Checks if the value of the field is `LFRCO`"]
319    #[inline(always)]
320    pub fn is_lfrco(&self) -> bool {
321        *self == CLKOUTSEL1_A::LFRCO
322    }
323    #[doc = "Checks if the value of the field is `LFXO`"]
324    #[inline(always)]
325    pub fn is_lfxo(&self) -> bool {
326        *self == CLKOUTSEL1_A::LFXO
327    }
328    #[doc = "Checks if the value of the field is `HFXO`"]
329    #[inline(always)]
330    pub fn is_hfxo(&self) -> bool {
331        *self == CLKOUTSEL1_A::HFXO
332    }
333    #[doc = "Checks if the value of the field is `HFEXPCLK`"]
334    #[inline(always)]
335    pub fn is_hfexpclk(&self) -> bool {
336        *self == CLKOUTSEL1_A::HFEXPCLK
337    }
338    #[doc = "Checks if the value of the field is `ULFRCOQ`"]
339    #[inline(always)]
340    pub fn is_ulfrcoq(&self) -> bool {
341        *self == CLKOUTSEL1_A::ULFRCOQ
342    }
343    #[doc = "Checks if the value of the field is `LFRCOQ`"]
344    #[inline(always)]
345    pub fn is_lfrcoq(&self) -> bool {
346        *self == CLKOUTSEL1_A::LFRCOQ
347    }
348    #[doc = "Checks if the value of the field is `LFXOQ`"]
349    #[inline(always)]
350    pub fn is_lfxoq(&self) -> bool {
351        *self == CLKOUTSEL1_A::LFXOQ
352    }
353    #[doc = "Checks if the value of the field is `HFRCOQ`"]
354    #[inline(always)]
355    pub fn is_hfrcoq(&self) -> bool {
356        *self == CLKOUTSEL1_A::HFRCOQ
357    }
358    #[doc = "Checks if the value of the field is `AUXHFRCOQ`"]
359    #[inline(always)]
360    pub fn is_auxhfrcoq(&self) -> bool {
361        *self == CLKOUTSEL1_A::AUXHFRCOQ
362    }
363    #[doc = "Checks if the value of the field is `HFXOQ`"]
364    #[inline(always)]
365    pub fn is_hfxoq(&self) -> bool {
366        *self == CLKOUTSEL1_A::HFXOQ
367    }
368    #[doc = "Checks if the value of the field is `HFSRCCLK`"]
369    #[inline(always)]
370    pub fn is_hfsrcclk(&self) -> bool {
371        *self == CLKOUTSEL1_A::HFSRCCLK
372    }
373    #[doc = "Checks if the value of the field is `USHFRCOQ`"]
374    #[inline(always)]
375    pub fn is_ushfrcoq(&self) -> bool {
376        *self == CLKOUTSEL1_A::USHFRCOQ
377    }
378}
379#[doc = "Field `CLKOUTSEL1` writer - Clock Output Select 1"]
380pub type CLKOUTSEL1_W<'a> = crate::FieldWriter<'a, u32, CTRL_SPEC, u8, CLKOUTSEL1_A, 5, 5>;
381impl<'a> CLKOUTSEL1_W<'a> {
382    #[doc = "Disabled"]
383    #[inline(always)]
384    pub fn disabled(self) -> &'a mut W {
385        self.variant(CLKOUTSEL1_A::DISABLED)
386    }
387    #[doc = "ULFRCO (directly from oscillator)"]
388    #[inline(always)]
389    pub fn ulfrco(self) -> &'a mut W {
390        self.variant(CLKOUTSEL1_A::ULFRCO)
391    }
392    #[doc = "LFRCO (directly from oscillator)"]
393    #[inline(always)]
394    pub fn lfrco(self) -> &'a mut W {
395        self.variant(CLKOUTSEL1_A::LFRCO)
396    }
397    #[doc = "LFXO (directly from oscillator)"]
398    #[inline(always)]
399    pub fn lfxo(self) -> &'a mut W {
400        self.variant(CLKOUTSEL1_A::LFXO)
401    }
402    #[doc = "HFXO (directly from oscillator)"]
403    #[inline(always)]
404    pub fn hfxo(self) -> &'a mut W {
405        self.variant(CLKOUTSEL1_A::HFXO)
406    }
407    #[doc = "HFEXPCLK"]
408    #[inline(always)]
409    pub fn hfexpclk(self) -> &'a mut W {
410        self.variant(CLKOUTSEL1_A::HFEXPCLK)
411    }
412    #[doc = "ULFRCO (qualified)"]
413    #[inline(always)]
414    pub fn ulfrcoq(self) -> &'a mut W {
415        self.variant(CLKOUTSEL1_A::ULFRCOQ)
416    }
417    #[doc = "LFRCO (qualified)"]
418    #[inline(always)]
419    pub fn lfrcoq(self) -> &'a mut W {
420        self.variant(CLKOUTSEL1_A::LFRCOQ)
421    }
422    #[doc = "LFXO (qualified)"]
423    #[inline(always)]
424    pub fn lfxoq(self) -> &'a mut W {
425        self.variant(CLKOUTSEL1_A::LFXOQ)
426    }
427    #[doc = "HFRCO (qualified)"]
428    #[inline(always)]
429    pub fn hfrcoq(self) -> &'a mut W {
430        self.variant(CLKOUTSEL1_A::HFRCOQ)
431    }
432    #[doc = "AUXHFRCO (qualified)"]
433    #[inline(always)]
434    pub fn auxhfrcoq(self) -> &'a mut W {
435        self.variant(CLKOUTSEL1_A::AUXHFRCOQ)
436    }
437    #[doc = "HFXO (qualified)"]
438    #[inline(always)]
439    pub fn hfxoq(self) -> &'a mut W {
440        self.variant(CLKOUTSEL1_A::HFXOQ)
441    }
442    #[doc = "HFSRCCLK"]
443    #[inline(always)]
444    pub fn hfsrcclk(self) -> &'a mut W {
445        self.variant(CLKOUTSEL1_A::HFSRCCLK)
446    }
447    #[doc = "USHFRCO (qualified)"]
448    #[inline(always)]
449    pub fn ushfrcoq(self) -> &'a mut W {
450        self.variant(CLKOUTSEL1_A::USHFRCOQ)
451    }
452}
453#[doc = "Clock Output Select 2\n\nValue on reset: 0"]
454#[derive(Clone, Copy, Debug, PartialEq)]
455#[repr(u8)]
456pub enum CLKOUTSEL2_A {
457    #[doc = "0: Disabled"]
458    DISABLED = 0,
459    #[doc = "1: ULFRCO (directly from oscillator)"]
460    ULFRCO = 1,
461    #[doc = "2: LFRCO (directly from oscillator)"]
462    LFRCO = 2,
463    #[doc = "3: LFXO (directly from oscillator)"]
464    LFXO = 3,
465    #[doc = "5: HFXO divided by two (qualified)"]
466    HFXODIV2Q = 5,
467    #[doc = "6: HFXO (directly from oscillator)"]
468    HFXO = 6,
469    #[doc = "7: HFEXPCLK"]
470    HFEXPCLK = 7,
471    #[doc = "8: HFXO doubler (qualified) (doubling activated by HFXOX2EN=1)"]
472    HFXOX2Q = 8,
473    #[doc = "9: ULFRCO (qualified)"]
474    ULFRCOQ = 9,
475    #[doc = "10: LFRCO (qualified)"]
476    LFRCOQ = 10,
477    #[doc = "11: LFXO (qualified)"]
478    LFXOQ = 11,
479    #[doc = "12: HFRCO (qualified)"]
480    HFRCOQ = 12,
481    #[doc = "13: AUXHFRCO (qualified)"]
482    AUXHFRCOQ = 13,
483    #[doc = "14: HFXO (qualified)"]
484    HFXOQ = 14,
485    #[doc = "15: HFSRCCLK"]
486    HFSRCCLK = 15,
487    #[doc = "18: USHFRCO (qualified)"]
488    USHFRCOQ = 18,
489}
490impl From<CLKOUTSEL2_A> for u8 {
491    #[inline(always)]
492    fn from(variant: CLKOUTSEL2_A) -> Self {
493        variant as _
494    }
495}
496#[doc = "Field `CLKOUTSEL2` reader - Clock Output Select 2"]
497pub type CLKOUTSEL2_R = crate::FieldReader<u8, CLKOUTSEL2_A>;
498impl CLKOUTSEL2_R {
499    #[doc = "Get enumerated values variant"]
500    #[inline(always)]
501    pub fn variant(&self) -> Option<CLKOUTSEL2_A> {
502        match self.bits {
503            0 => Some(CLKOUTSEL2_A::DISABLED),
504            1 => Some(CLKOUTSEL2_A::ULFRCO),
505            2 => Some(CLKOUTSEL2_A::LFRCO),
506            3 => Some(CLKOUTSEL2_A::LFXO),
507            5 => Some(CLKOUTSEL2_A::HFXODIV2Q),
508            6 => Some(CLKOUTSEL2_A::HFXO),
509            7 => Some(CLKOUTSEL2_A::HFEXPCLK),
510            8 => Some(CLKOUTSEL2_A::HFXOX2Q),
511            9 => Some(CLKOUTSEL2_A::ULFRCOQ),
512            10 => Some(CLKOUTSEL2_A::LFRCOQ),
513            11 => Some(CLKOUTSEL2_A::LFXOQ),
514            12 => Some(CLKOUTSEL2_A::HFRCOQ),
515            13 => Some(CLKOUTSEL2_A::AUXHFRCOQ),
516            14 => Some(CLKOUTSEL2_A::HFXOQ),
517            15 => Some(CLKOUTSEL2_A::HFSRCCLK),
518            18 => Some(CLKOUTSEL2_A::USHFRCOQ),
519            _ => None,
520        }
521    }
522    #[doc = "Checks if the value of the field is `DISABLED`"]
523    #[inline(always)]
524    pub fn is_disabled(&self) -> bool {
525        *self == CLKOUTSEL2_A::DISABLED
526    }
527    #[doc = "Checks if the value of the field is `ULFRCO`"]
528    #[inline(always)]
529    pub fn is_ulfrco(&self) -> bool {
530        *self == CLKOUTSEL2_A::ULFRCO
531    }
532    #[doc = "Checks if the value of the field is `LFRCO`"]
533    #[inline(always)]
534    pub fn is_lfrco(&self) -> bool {
535        *self == CLKOUTSEL2_A::LFRCO
536    }
537    #[doc = "Checks if the value of the field is `LFXO`"]
538    #[inline(always)]
539    pub fn is_lfxo(&self) -> bool {
540        *self == CLKOUTSEL2_A::LFXO
541    }
542    #[doc = "Checks if the value of the field is `HFXODIV2Q`"]
543    #[inline(always)]
544    pub fn is_hfxodiv2q(&self) -> bool {
545        *self == CLKOUTSEL2_A::HFXODIV2Q
546    }
547    #[doc = "Checks if the value of the field is `HFXO`"]
548    #[inline(always)]
549    pub fn is_hfxo(&self) -> bool {
550        *self == CLKOUTSEL2_A::HFXO
551    }
552    #[doc = "Checks if the value of the field is `HFEXPCLK`"]
553    #[inline(always)]
554    pub fn is_hfexpclk(&self) -> bool {
555        *self == CLKOUTSEL2_A::HFEXPCLK
556    }
557    #[doc = "Checks if the value of the field is `HFXOX2Q`"]
558    #[inline(always)]
559    pub fn is_hfxox2q(&self) -> bool {
560        *self == CLKOUTSEL2_A::HFXOX2Q
561    }
562    #[doc = "Checks if the value of the field is `ULFRCOQ`"]
563    #[inline(always)]
564    pub fn is_ulfrcoq(&self) -> bool {
565        *self == CLKOUTSEL2_A::ULFRCOQ
566    }
567    #[doc = "Checks if the value of the field is `LFRCOQ`"]
568    #[inline(always)]
569    pub fn is_lfrcoq(&self) -> bool {
570        *self == CLKOUTSEL2_A::LFRCOQ
571    }
572    #[doc = "Checks if the value of the field is `LFXOQ`"]
573    #[inline(always)]
574    pub fn is_lfxoq(&self) -> bool {
575        *self == CLKOUTSEL2_A::LFXOQ
576    }
577    #[doc = "Checks if the value of the field is `HFRCOQ`"]
578    #[inline(always)]
579    pub fn is_hfrcoq(&self) -> bool {
580        *self == CLKOUTSEL2_A::HFRCOQ
581    }
582    #[doc = "Checks if the value of the field is `AUXHFRCOQ`"]
583    #[inline(always)]
584    pub fn is_auxhfrcoq(&self) -> bool {
585        *self == CLKOUTSEL2_A::AUXHFRCOQ
586    }
587    #[doc = "Checks if the value of the field is `HFXOQ`"]
588    #[inline(always)]
589    pub fn is_hfxoq(&self) -> bool {
590        *self == CLKOUTSEL2_A::HFXOQ
591    }
592    #[doc = "Checks if the value of the field is `HFSRCCLK`"]
593    #[inline(always)]
594    pub fn is_hfsrcclk(&self) -> bool {
595        *self == CLKOUTSEL2_A::HFSRCCLK
596    }
597    #[doc = "Checks if the value of the field is `USHFRCOQ`"]
598    #[inline(always)]
599    pub fn is_ushfrcoq(&self) -> bool {
600        *self == CLKOUTSEL2_A::USHFRCOQ
601    }
602}
603#[doc = "Field `CLKOUTSEL2` writer - Clock Output Select 2"]
604pub type CLKOUTSEL2_W<'a> = crate::FieldWriter<'a, u32, CTRL_SPEC, u8, CLKOUTSEL2_A, 5, 10>;
605impl<'a> CLKOUTSEL2_W<'a> {
606    #[doc = "Disabled"]
607    #[inline(always)]
608    pub fn disabled(self) -> &'a mut W {
609        self.variant(CLKOUTSEL2_A::DISABLED)
610    }
611    #[doc = "ULFRCO (directly from oscillator)"]
612    #[inline(always)]
613    pub fn ulfrco(self) -> &'a mut W {
614        self.variant(CLKOUTSEL2_A::ULFRCO)
615    }
616    #[doc = "LFRCO (directly from oscillator)"]
617    #[inline(always)]
618    pub fn lfrco(self) -> &'a mut W {
619        self.variant(CLKOUTSEL2_A::LFRCO)
620    }
621    #[doc = "LFXO (directly from oscillator)"]
622    #[inline(always)]
623    pub fn lfxo(self) -> &'a mut W {
624        self.variant(CLKOUTSEL2_A::LFXO)
625    }
626    #[doc = "HFXO divided by two (qualified)"]
627    #[inline(always)]
628    pub fn hfxodiv2q(self) -> &'a mut W {
629        self.variant(CLKOUTSEL2_A::HFXODIV2Q)
630    }
631    #[doc = "HFXO (directly from oscillator)"]
632    #[inline(always)]
633    pub fn hfxo(self) -> &'a mut W {
634        self.variant(CLKOUTSEL2_A::HFXO)
635    }
636    #[doc = "HFEXPCLK"]
637    #[inline(always)]
638    pub fn hfexpclk(self) -> &'a mut W {
639        self.variant(CLKOUTSEL2_A::HFEXPCLK)
640    }
641    #[doc = "HFXO doubler (qualified) (doubling activated by HFXOX2EN=1)"]
642    #[inline(always)]
643    pub fn hfxox2q(self) -> &'a mut W {
644        self.variant(CLKOUTSEL2_A::HFXOX2Q)
645    }
646    #[doc = "ULFRCO (qualified)"]
647    #[inline(always)]
648    pub fn ulfrcoq(self) -> &'a mut W {
649        self.variant(CLKOUTSEL2_A::ULFRCOQ)
650    }
651    #[doc = "LFRCO (qualified)"]
652    #[inline(always)]
653    pub fn lfrcoq(self) -> &'a mut W {
654        self.variant(CLKOUTSEL2_A::LFRCOQ)
655    }
656    #[doc = "LFXO (qualified)"]
657    #[inline(always)]
658    pub fn lfxoq(self) -> &'a mut W {
659        self.variant(CLKOUTSEL2_A::LFXOQ)
660    }
661    #[doc = "HFRCO (qualified)"]
662    #[inline(always)]
663    pub fn hfrcoq(self) -> &'a mut W {
664        self.variant(CLKOUTSEL2_A::HFRCOQ)
665    }
666    #[doc = "AUXHFRCO (qualified)"]
667    #[inline(always)]
668    pub fn auxhfrcoq(self) -> &'a mut W {
669        self.variant(CLKOUTSEL2_A::AUXHFRCOQ)
670    }
671    #[doc = "HFXO (qualified)"]
672    #[inline(always)]
673    pub fn hfxoq(self) -> &'a mut W {
674        self.variant(CLKOUTSEL2_A::HFXOQ)
675    }
676    #[doc = "HFSRCCLK"]
677    #[inline(always)]
678    pub fn hfsrcclk(self) -> &'a mut W {
679        self.variant(CLKOUTSEL2_A::HFSRCCLK)
680    }
681    #[doc = "USHFRCO (qualified)"]
682    #[inline(always)]
683    pub fn ushfrcoq(self) -> &'a mut W {
684        self.variant(CLKOUTSEL2_A::USHFRCOQ)
685    }
686}
687#[doc = "Field `WSHFLE` reader - Wait State for High-Frequency LE Interface"]
688pub type WSHFLE_R = crate::BitReader<bool>;
689#[doc = "Field `WSHFLE` writer - Wait State for High-Frequency LE Interface"]
690pub type WSHFLE_W<'a> = crate::BitWriter<'a, u32, CTRL_SPEC, bool, 16>;
691#[doc = "Field `HFPERCLKEN` reader - HFPERCLK Enable"]
692pub type HFPERCLKEN_R = crate::BitReader<bool>;
693#[doc = "Field `HFPERCLKEN` writer - HFPERCLK Enable"]
694pub type HFPERCLKEN_W<'a> = crate::BitWriter<'a, u32, CTRL_SPEC, bool, 20>;
695impl R {
696    #[doc = "Bits 0:4 - Clock Output Select 0"]
697    #[inline(always)]
698    pub fn clkoutsel0(&self) -> CLKOUTSEL0_R {
699        CLKOUTSEL0_R::new((self.bits & 0x1f) as u8)
700    }
701    #[doc = "Bits 5:9 - Clock Output Select 1"]
702    #[inline(always)]
703    pub fn clkoutsel1(&self) -> CLKOUTSEL1_R {
704        CLKOUTSEL1_R::new(((self.bits >> 5) & 0x1f) as u8)
705    }
706    #[doc = "Bits 10:14 - Clock Output Select 2"]
707    #[inline(always)]
708    pub fn clkoutsel2(&self) -> CLKOUTSEL2_R {
709        CLKOUTSEL2_R::new(((self.bits >> 10) & 0x1f) as u8)
710    }
711    #[doc = "Bit 16 - Wait State for High-Frequency LE Interface"]
712    #[inline(always)]
713    pub fn wshfle(&self) -> WSHFLE_R {
714        WSHFLE_R::new(((self.bits >> 16) & 1) != 0)
715    }
716    #[doc = "Bit 20 - HFPERCLK Enable"]
717    #[inline(always)]
718    pub fn hfperclken(&self) -> HFPERCLKEN_R {
719        HFPERCLKEN_R::new(((self.bits >> 20) & 1) != 0)
720    }
721}
722impl W {
723    #[doc = "Bits 0:4 - Clock Output Select 0"]
724    #[inline(always)]
725    pub fn clkoutsel0(&mut self) -> CLKOUTSEL0_W {
726        CLKOUTSEL0_W::new(self)
727    }
728    #[doc = "Bits 5:9 - Clock Output Select 1"]
729    #[inline(always)]
730    pub fn clkoutsel1(&mut self) -> CLKOUTSEL1_W {
731        CLKOUTSEL1_W::new(self)
732    }
733    #[doc = "Bits 10:14 - Clock Output Select 2"]
734    #[inline(always)]
735    pub fn clkoutsel2(&mut self) -> CLKOUTSEL2_W {
736        CLKOUTSEL2_W::new(self)
737    }
738    #[doc = "Bit 16 - Wait State for High-Frequency LE Interface"]
739    #[inline(always)]
740    pub fn wshfle(&mut self) -> WSHFLE_W {
741        WSHFLE_W::new(self)
742    }
743    #[doc = "Bit 20 - HFPERCLK Enable"]
744    #[inline(always)]
745    pub fn hfperclken(&mut self) -> HFPERCLKEN_W {
746        HFPERCLKEN_W::new(self)
747    }
748    #[doc = "Writes raw bits to the register."]
749    #[inline(always)]
750    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
751        self.0.bits(bits);
752        self
753    }
754}
755#[doc = "CMU Control Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [ctrl](index.html) module"]
756pub struct CTRL_SPEC;
757impl crate::RegisterSpec for CTRL_SPEC {
758    type Ux = u32;
759}
760#[doc = "`read()` method returns [ctrl::R](R) reader structure"]
761impl crate::Readable for CTRL_SPEC {
762    type Reader = R;
763}
764#[doc = "`write(|w| ..)` method takes [ctrl::W](W) writer structure"]
765impl crate::Writable for CTRL_SPEC {
766    type Writer = W;
767}
768#[doc = "`reset()` method sets CTRL to value 0x0010_0000"]
769impl crate::Resettable for CTRL_SPEC {
770    #[inline(always)]
771    fn reset_value() -> Self::Ux {
772        0x0010_0000
773    }
774}