1#[doc = "Register `CTRL2` reader"]
2pub type R = crate::R<CTRL2_SPEC>;
3#[doc = "Register `CTRL2` writer"]
4pub type W = crate::W<CTRL2_SPEC>;
5#[doc = "A/D converter enable\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7pub enum Adcenr {
8 #[doc = "0: ADC is disabled"]
9 Disabled = 0,
10 #[doc = "1: ADC is enabled"]
11 Enabled = 1,
12}
13impl From<Adcenr> for bool {
14 #[inline(always)]
15 fn from(variant: Adcenr) -> Self {
16 variant as u8 != 0
17 }
18}
19#[doc = "Field `ADCEN` reader - A/D converter enable"]
20pub type ADCEN_R = crate::BitReader<Adcenr>;
21impl ADCEN_R {
22 #[doc = "Get enumerated values variant"]
23 #[inline(always)]
24 pub const fn variant(&self) -> Adcenr {
25 match self.bits {
26 false => Adcenr::Disabled,
27 true => Adcenr::Enabled,
28 }
29 }
30 #[doc = "ADC is disabled"]
31 #[inline(always)]
32 pub fn is_disabled(&self) -> bool {
33 *self == Adcenr::Disabled
34 }
35 #[doc = "ADC is enabled"]
36 #[inline(always)]
37 pub fn is_enabled(&self) -> bool {
38 *self == Adcenr::Enabled
39 }
40}
41#[doc = "A/D converter enable\n\nValue on reset: 0"]
42#[derive(Clone, Copy, Debug, PartialEq, Eq)]
43pub enum AdcenwWO {
44 #[doc = "0: ADC disable"]
45 Disable = 0,
46 #[doc = "1: ADC enable"]
47 Enable = 1,
48}
49impl From<AdcenwWO> for bool {
50 #[inline(always)]
51 fn from(variant: AdcenwWO) -> Self {
52 variant as u8 != 0
53 }
54}
55#[doc = "Field `ADCEN` writer - A/D converter enable"]
56pub type ADCEN_W<'a, REG> = crate::BitWriter<'a, REG, AdcenwWO>;
57impl<'a, REG> ADCEN_W<'a, REG>
58where
59 REG: crate::Writable + crate::RegisterSpec,
60{
61 #[doc = "ADC disable"]
62 #[inline(always)]
63 pub fn disable(self) -> &'a mut crate::W<REG> {
64 self.variant(AdcenwWO::Disable)
65 }
66 #[doc = "ADC enable"]
67 #[inline(always)]
68 pub fn enable(self) -> &'a mut crate::W<REG> {
69 self.variant(AdcenwWO::Enable)
70 }
71}
72#[doc = "Repeat mode enable\n\nValue on reset: 0"]
73#[derive(Clone, Copy, Debug, PartialEq, Eq)]
74pub enum Rpenr {
75 #[doc = "0: Repetition mode is disabled"]
76 Disabled = 0,
77 #[doc = "1: Repetition mode is enabled"]
78 Enabled = 1,
79}
80impl From<Rpenr> for bool {
81 #[inline(always)]
82 fn from(variant: Rpenr) -> Self {
83 variant as u8 != 0
84 }
85}
86#[doc = "Field `RPEN` reader - Repeat mode enable"]
87pub type RPEN_R = crate::BitReader<Rpenr>;
88impl RPEN_R {
89 #[doc = "Get enumerated values variant"]
90 #[inline(always)]
91 pub const fn variant(&self) -> Rpenr {
92 match self.bits {
93 false => Rpenr::Disabled,
94 true => Rpenr::Enabled,
95 }
96 }
97 #[doc = "Repetition mode is disabled"]
98 #[inline(always)]
99 pub fn is_disabled(&self) -> bool {
100 *self == Rpenr::Disabled
101 }
102 #[doc = "Repetition mode is enabled"]
103 #[inline(always)]
104 pub fn is_enabled(&self) -> bool {
105 *self == Rpenr::Enabled
106 }
107}
108#[doc = "Repeat mode enable\n\nValue on reset: 0"]
109#[derive(Clone, Copy, Debug, PartialEq, Eq)]
110pub enum RpenwWO {
111 #[doc = "0: Repetition mode disable"]
112 Disable = 0,
113 #[doc = "1: Repetition mode enable"]
114 Enable = 1,
115}
116impl From<RpenwWO> for bool {
117 #[inline(always)]
118 fn from(variant: RpenwWO) -> Self {
119 variant as u8 != 0
120 }
121}
122#[doc = "Field `RPEN` writer - Repeat mode enable"]
123pub type RPEN_W<'a, REG> = crate::BitWriter<'a, REG, RpenwWO>;
124impl<'a, REG> RPEN_W<'a, REG>
125where
126 REG: crate::Writable + crate::RegisterSpec,
127{
128 #[doc = "Repetition mode disable"]
129 #[inline(always)]
130 pub fn disable(self) -> &'a mut crate::W<REG> {
131 self.variant(RpenwWO::Disable)
132 }
133 #[doc = "Repetition mode enable"]
134 #[inline(always)]
135 pub fn enable(self) -> &'a mut crate::W<REG> {
136 self.variant(RpenwWO::Enable)
137 }
138}
139#[doc = "A/D Calibration\n\nValue on reset: 0"]
140#[derive(Clone, Copy, Debug, PartialEq, Eq)]
141pub enum Adcalr {
142 #[doc = "0: Calibration completed"]
143 Completed = 0,
144 #[doc = "1: Calibration is in process"]
145 InProgress = 1,
146}
147impl From<Adcalr> for bool {
148 #[inline(always)]
149 fn from(variant: Adcalr) -> Self {
150 variant as u8 != 0
151 }
152}
153#[doc = "Field `ADCAL` reader - A/D Calibration"]
154pub type ADCAL_R = crate::BitReader<Adcalr>;
155impl ADCAL_R {
156 #[doc = "Get enumerated values variant"]
157 #[inline(always)]
158 pub const fn variant(&self) -> Adcalr {
159 match self.bits {
160 false => Adcalr::Completed,
161 true => Adcalr::InProgress,
162 }
163 }
164 #[doc = "Calibration completed"]
165 #[inline(always)]
166 pub fn is_completed(&self) -> bool {
167 *self == Adcalr::Completed
168 }
169 #[doc = "Calibration is in process"]
170 #[inline(always)]
171 pub fn is_in_progress(&self) -> bool {
172 *self == Adcalr::InProgress
173 }
174}
175#[doc = "A/D Calibration\n\nValue on reset: 0"]
176#[derive(Clone, Copy, Debug, PartialEq, Eq)]
177pub enum AdcalwWO {
178 #[doc = "1: Enable calibration"]
179 Calibrate = 1,
180}
181impl From<AdcalwWO> for bool {
182 #[inline(always)]
183 fn from(variant: AdcalwWO) -> Self {
184 variant as u8 != 0
185 }
186}
187#[doc = "Field `ADCAL` writer - A/D Calibration"]
188pub type ADCAL_W<'a, REG> = crate::BitWriter<'a, REG, AdcalwWO>;
189impl<'a, REG> ADCAL_W<'a, REG>
190where
191 REG: crate::Writable + crate::RegisterSpec,
192{
193 #[doc = "Enable calibration"]
194 #[inline(always)]
195 pub fn calibrate(self) -> &'a mut crate::W<REG> {
196 self.variant(AdcalwWO::Calibrate)
197 }
198}
199#[doc = "initialize A/D calibration\n\nValue on reset: 0"]
200#[derive(Clone, Copy, Debug, PartialEq, Eq)]
201pub enum Adcalinitr {
202 #[doc = "0: Initialization completed"]
203 Completed = 0,
204 #[doc = "1: Initialization is in process"]
205 InProgress = 1,
206}
207impl From<Adcalinitr> for bool {
208 #[inline(always)]
209 fn from(variant: Adcalinitr) -> Self {
210 variant as u8 != 0
211 }
212}
213#[doc = "Field `ADCALINIT` reader - initialize A/D calibration"]
214pub type ADCALINIT_R = crate::BitReader<Adcalinitr>;
215impl ADCALINIT_R {
216 #[doc = "Get enumerated values variant"]
217 #[inline(always)]
218 pub const fn variant(&self) -> Adcalinitr {
219 match self.bits {
220 false => Adcalinitr::Completed,
221 true => Adcalinitr::InProgress,
222 }
223 }
224 #[doc = "Initialization completed"]
225 #[inline(always)]
226 pub fn is_completed(&self) -> bool {
227 *self == Adcalinitr::Completed
228 }
229 #[doc = "Initialization is in process"]
230 #[inline(always)]
231 pub fn is_in_progress(&self) -> bool {
232 *self == Adcalinitr::InProgress
233 }
234}
235#[doc = "initialize A/D calibration\n\nValue on reset: 0"]
236#[derive(Clone, Copy, Debug, PartialEq, Eq)]
237pub enum AdcalinitwWO {
238 #[doc = "1: Enable initialization"]
239 Init = 1,
240}
241impl From<AdcalinitwWO> for bool {
242 #[inline(always)]
243 fn from(variant: AdcalinitwWO) -> Self {
244 variant as u8 != 0
245 }
246}
247#[doc = "Field `ADCALINIT` writer - initialize A/D calibration"]
248pub type ADCALINIT_W<'a, REG> = crate::BitWriter<'a, REG, AdcalinitwWO>;
249impl<'a, REG> ADCALINIT_W<'a, REG>
250where
251 REG: crate::Writable + crate::RegisterSpec,
252{
253 #[doc = "Enable initialization"]
254 #[inline(always)]
255 pub fn init(self) -> &'a mut crate::W<REG> {
256 self.variant(AdcalinitwWO::Init)
257 }
258}
259#[doc = "Data alignment\n\nValue on reset: 0"]
260#[derive(Clone, Copy, Debug, PartialEq, Eq)]
261pub enum DTALIGN_A {
262 #[doc = "0: Right alignment"]
263 Right = 0,
264 #[doc = "1: Left alignment"]
265 Left = 1,
266}
267impl From<DTALIGN_A> for bool {
268 #[inline(always)]
269 fn from(variant: DTALIGN_A) -> Self {
270 variant as u8 != 0
271 }
272}
273#[doc = "Field `DTALIGN` reader - Data alignment"]
274pub type DTALIGN_R = crate::BitReader<DTALIGN_A>;
275impl DTALIGN_R {
276 #[doc = "Get enumerated values variant"]
277 #[inline(always)]
278 pub const fn variant(&self) -> DTALIGN_A {
279 match self.bits {
280 false => DTALIGN_A::Right,
281 true => DTALIGN_A::Left,
282 }
283 }
284 #[doc = "Right alignment"]
285 #[inline(always)]
286 pub fn is_right(&self) -> bool {
287 *self == DTALIGN_A::Right
288 }
289 #[doc = "Left alignment"]
290 #[inline(always)]
291 pub fn is_left(&self) -> bool {
292 *self == DTALIGN_A::Left
293 }
294}
295#[doc = "Field `DTALIGN` writer - Data alignment"]
296pub type DTALIGN_W<'a, REG> = crate::BitWriter<'a, REG, DTALIGN_A>;
297impl<'a, REG> DTALIGN_W<'a, REG>
298where
299 REG: crate::Writable + crate::RegisterSpec,
300{
301 #[doc = "Right alignment"]
302 #[inline(always)]
303 pub fn right(self) -> &'a mut crate::W<REG> {
304 self.variant(DTALIGN_A::Right)
305 }
306 #[doc = "Left alignment"]
307 #[inline(always)]
308 pub fn left(self) -> &'a mut crate::W<REG> {
309 self.variant(DTALIGN_A::Left)
310 }
311}
312#[doc = "Field `PCTESEL_L` reader - Low bit of trigger event select for preempted channels conversion"]
313pub type PCTESEL_L_R = crate::FieldReader;
314#[doc = "Field `PCTESEL_L` writer - Low bit of trigger event select for preempted channels conversion"]
315pub type PCTESEL_L_W<'a, REG> = crate::FieldWriter<'a, REG, 3>;
316#[doc = "Field `PCTEN` reader - Trigger mode enable for preempted channels conversion"]
317pub type PCTEN_R = crate::BitReader;
318#[doc = "Field `PCTEN` writer - Trigger mode enable for preempted channels conversion"]
319pub type PCTEN_W<'a, REG> = crate::BitWriter<'a, REG>;
320#[doc = "Field `OCTESEL_L` reader - Low bit of trigger event select for ordinary channels conversion"]
321pub type OCTESEL_L_R = crate::FieldReader;
322#[doc = "Field `OCTESEL_L` writer - Low bit of trigger event select for ordinary channels conversion"]
323pub type OCTESEL_L_W<'a, REG> = crate::FieldWriter<'a, REG, 3>;
324#[doc = "Field `OCTEN` reader - Trigger mode enable for ordinary channels conversion"]
325pub type OCTEN_R = crate::BitReader;
326#[doc = "Field `OCTEN` writer - Trigger mode enable for ordinary channels conversion"]
327pub type OCTEN_W<'a, REG> = crate::BitWriter<'a, REG>;
328#[doc = "Conversion trigger by software of preempted channels\n\nValue on reset: 0"]
329#[derive(Clone, Copy, Debug, PartialEq, Eq)]
330pub enum PCSWTRG_A {
331 #[doc = "0: Conversion of ordinary channels not triggered"]
332 NotTriggered = 0,
333 #[doc = "1: Conversion of ordinary channels triggered"]
334 Triggered = 1,
335}
336impl From<PCSWTRG_A> for bool {
337 #[inline(always)]
338 fn from(variant: PCSWTRG_A) -> Self {
339 variant as u8 != 0
340 }
341}
342#[doc = "Field `PCSWTRG` reader - Conversion trigger by software of preempted channels"]
343pub type PCSWTRG_R = crate::BitReader<PCSWTRG_A>;
344impl PCSWTRG_R {
345 #[doc = "Get enumerated values variant"]
346 #[inline(always)]
347 pub const fn variant(&self) -> PCSWTRG_A {
348 match self.bits {
349 false => PCSWTRG_A::NotTriggered,
350 true => PCSWTRG_A::Triggered,
351 }
352 }
353 #[doc = "Conversion of ordinary channels not triggered"]
354 #[inline(always)]
355 pub fn is_not_triggered(&self) -> bool {
356 *self == PCSWTRG_A::NotTriggered
357 }
358 #[doc = "Conversion of ordinary channels triggered"]
359 #[inline(always)]
360 pub fn is_triggered(&self) -> bool {
361 *self == PCSWTRG_A::Triggered
362 }
363}
364#[doc = "Field `PCSWTRG` writer - Conversion trigger by software of preempted channels"]
365pub type PCSWTRG_W<'a, REG> = crate::BitWriter<'a, REG, PCSWTRG_A>;
366impl<'a, REG> PCSWTRG_W<'a, REG>
367where
368 REG: crate::Writable + crate::RegisterSpec,
369{
370 #[doc = "Conversion of ordinary channels not triggered"]
371 #[inline(always)]
372 pub fn not_triggered(self) -> &'a mut crate::W<REG> {
373 self.variant(PCSWTRG_A::NotTriggered)
374 }
375 #[doc = "Conversion of ordinary channels triggered"]
376 #[inline(always)]
377 pub fn triggered(self) -> &'a mut crate::W<REG> {
378 self.variant(PCSWTRG_A::Triggered)
379 }
380}
381#[doc = "Field `OCSWTRG` reader - Conversion trigger by software of ordinary channels"]
382pub use PCSWTRG_R as OCSWTRG_R;
383#[doc = "Field `OCSWTRG` writer - Conversion trigger by software of ordinary channels"]
384pub use PCSWTRG_W as OCSWTRG_W;
385#[doc = "Field `PCTESEL_H` reader - High bit of trigger event select for preempted channels conversion"]
386pub type PCTESEL_H_R = crate::BitReader;
387#[doc = "Field `PCTESEL_H` writer - High bit of trigger event select for preempted channels conversion"]
388pub type PCTESEL_H_W<'a, REG> = crate::BitWriter<'a, REG>;
389#[doc = "Field `OCTESEL_H` reader - High bit of trigger event select for ordinary channels conversion"]
390pub type OCTESEL_H_R = crate::BitReader;
391#[doc = "Field `OCTESEL_H` writer - High bit of trigger event select for ordinary channels conversion"]
392pub type OCTESEL_H_W<'a, REG> = crate::BitWriter<'a, REG>;
393impl R {
394 #[doc = "Bit 0 - A/D converter enable"]
395 #[inline(always)]
396 pub fn adcen(&self) -> ADCEN_R {
397 ADCEN_R::new((self.bits & 1) != 0)
398 }
399 #[doc = "Bit 1 - Repeat mode enable"]
400 #[inline(always)]
401 pub fn rpen(&self) -> RPEN_R {
402 RPEN_R::new(((self.bits >> 1) & 1) != 0)
403 }
404 #[doc = "Bit 2 - A/D Calibration"]
405 #[inline(always)]
406 pub fn adcal(&self) -> ADCAL_R {
407 ADCAL_R::new(((self.bits >> 2) & 1) != 0)
408 }
409 #[doc = "Bit 3 - initialize A/D calibration"]
410 #[inline(always)]
411 pub fn adcalinit(&self) -> ADCALINIT_R {
412 ADCALINIT_R::new(((self.bits >> 3) & 1) != 0)
413 }
414 #[doc = "Bit 11 - Data alignment"]
415 #[inline(always)]
416 pub fn dtalign(&self) -> DTALIGN_R {
417 DTALIGN_R::new(((self.bits >> 11) & 1) != 0)
418 }
419 #[doc = "Bits 12:14 - Low bit of trigger event select for preempted channels conversion"]
420 #[inline(always)]
421 pub fn pctesel_l(&self) -> PCTESEL_L_R {
422 PCTESEL_L_R::new(((self.bits >> 12) & 7) as u8)
423 }
424 #[doc = "Bit 15 - Trigger mode enable for preempted channels conversion"]
425 #[inline(always)]
426 pub fn pcten(&self) -> PCTEN_R {
427 PCTEN_R::new(((self.bits >> 15) & 1) != 0)
428 }
429 #[doc = "Bits 17:19 - Low bit of trigger event select for ordinary channels conversion"]
430 #[inline(always)]
431 pub fn octesel_l(&self) -> OCTESEL_L_R {
432 OCTESEL_L_R::new(((self.bits >> 17) & 7) as u8)
433 }
434 #[doc = "Bit 20 - Trigger mode enable for ordinary channels conversion"]
435 #[inline(always)]
436 pub fn octen(&self) -> OCTEN_R {
437 OCTEN_R::new(((self.bits >> 20) & 1) != 0)
438 }
439 #[doc = "Bit 21 - Conversion trigger by software of preempted channels"]
440 #[inline(always)]
441 pub fn pcswtrg(&self) -> PCSWTRG_R {
442 PCSWTRG_R::new(((self.bits >> 21) & 1) != 0)
443 }
444 #[doc = "Bit 22 - Conversion trigger by software of ordinary channels"]
445 #[inline(always)]
446 pub fn ocswtrg(&self) -> OCSWTRG_R {
447 OCSWTRG_R::new(((self.bits >> 22) & 1) != 0)
448 }
449 #[doc = "Bit 24 - High bit of trigger event select for preempted channels conversion"]
450 #[inline(always)]
451 pub fn pctesel_h(&self) -> PCTESEL_H_R {
452 PCTESEL_H_R::new(((self.bits >> 24) & 1) != 0)
453 }
454 #[doc = "Bit 25 - High bit of trigger event select for ordinary channels conversion"]
455 #[inline(always)]
456 pub fn octesel_h(&self) -> OCTESEL_H_R {
457 OCTESEL_H_R::new(((self.bits >> 25) & 1) != 0)
458 }
459}
460impl core::fmt::Debug for R {
461 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
462 f.debug_struct("CTRL2")
463 .field("octesel_h", &self.octesel_h())
464 .field("pctesel_h", &self.pctesel_h())
465 .field("pcswtrg", &self.pcswtrg())
466 .field("ocswtrg", &self.ocswtrg())
467 .field("octen", &self.octen())
468 .field("octesel_l", &self.octesel_l())
469 .field("pcten", &self.pcten())
470 .field("pctesel_l", &self.pctesel_l())
471 .field("dtalign", &self.dtalign())
472 .field("adcalinit", &self.adcalinit())
473 .field("adcal", &self.adcal())
474 .field("rpen", &self.rpen())
475 .field("adcen", &self.adcen())
476 .finish()
477 }
478}
479impl W {
480 #[doc = "Bit 0 - A/D converter enable"]
481 #[inline(always)]
482 pub fn adcen(&mut self) -> ADCEN_W<'_, CTRL2_SPEC> {
483 ADCEN_W::new(self, 0)
484 }
485 #[doc = "Bit 1 - Repeat mode enable"]
486 #[inline(always)]
487 pub fn rpen(&mut self) -> RPEN_W<'_, CTRL2_SPEC> {
488 RPEN_W::new(self, 1)
489 }
490 #[doc = "Bit 2 - A/D Calibration"]
491 #[inline(always)]
492 pub fn adcal(&mut self) -> ADCAL_W<'_, CTRL2_SPEC> {
493 ADCAL_W::new(self, 2)
494 }
495 #[doc = "Bit 3 - initialize A/D calibration"]
496 #[inline(always)]
497 pub fn adcalinit(&mut self) -> ADCALINIT_W<'_, CTRL2_SPEC> {
498 ADCALINIT_W::new(self, 3)
499 }
500 #[doc = "Bit 11 - Data alignment"]
501 #[inline(always)]
502 pub fn dtalign(&mut self) -> DTALIGN_W<'_, CTRL2_SPEC> {
503 DTALIGN_W::new(self, 11)
504 }
505 #[doc = "Bits 12:14 - Low bit of trigger event select for preempted channels conversion"]
506 #[inline(always)]
507 pub fn pctesel_l(&mut self) -> PCTESEL_L_W<'_, CTRL2_SPEC> {
508 PCTESEL_L_W::new(self, 12)
509 }
510 #[doc = "Bit 15 - Trigger mode enable for preempted channels conversion"]
511 #[inline(always)]
512 pub fn pcten(&mut self) -> PCTEN_W<'_, CTRL2_SPEC> {
513 PCTEN_W::new(self, 15)
514 }
515 #[doc = "Bits 17:19 - Low bit of trigger event select for ordinary channels conversion"]
516 #[inline(always)]
517 pub fn octesel_l(&mut self) -> OCTESEL_L_W<'_, CTRL2_SPEC> {
518 OCTESEL_L_W::new(self, 17)
519 }
520 #[doc = "Bit 20 - Trigger mode enable for ordinary channels conversion"]
521 #[inline(always)]
522 pub fn octen(&mut self) -> OCTEN_W<'_, CTRL2_SPEC> {
523 OCTEN_W::new(self, 20)
524 }
525 #[doc = "Bit 21 - Conversion trigger by software of preempted channels"]
526 #[inline(always)]
527 pub fn pcswtrg(&mut self) -> PCSWTRG_W<'_, CTRL2_SPEC> {
528 PCSWTRG_W::new(self, 21)
529 }
530 #[doc = "Bit 22 - Conversion trigger by software of ordinary channels"]
531 #[inline(always)]
532 pub fn ocswtrg(&mut self) -> OCSWTRG_W<'_, CTRL2_SPEC> {
533 OCSWTRG_W::new(self, 22)
534 }
535 #[doc = "Bit 24 - High bit of trigger event select for preempted channels conversion"]
536 #[inline(always)]
537 pub fn pctesel_h(&mut self) -> PCTESEL_H_W<'_, CTRL2_SPEC> {
538 PCTESEL_H_W::new(self, 24)
539 }
540 #[doc = "Bit 25 - High bit of trigger event select for ordinary channels conversion"]
541 #[inline(always)]
542 pub fn octesel_h(&mut self) -> OCTESEL_H_W<'_, CTRL2_SPEC> {
543 OCTESEL_H_W::new(self, 25)
544 }
545}
546#[doc = "control register 2\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl2::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl2::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
547pub struct CTRL2_SPEC;
548impl crate::RegisterSpec for CTRL2_SPEC {
549 type Ux = u32;
550}
551#[doc = "`read()` method returns [`ctrl2::R`](R) reader structure"]
552impl crate::Readable for CTRL2_SPEC {}
553#[doc = "`write(|w| ..)` method takes [`ctrl2::W`](W) writer structure"]
554impl crate::Writable for CTRL2_SPEC {
555 type Safety = crate::Unsafe;
556}
557#[doc = "`reset()` method sets CTRL2 to value 0"]
558impl crate::Resettable for CTRL2_SPEC {}