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}