1#![doc = "Peripheral access API for APOLLO2 microcontrollers (generated using svd2rust v0.17.0)\n\nYou can find an overview of the API [here].\n\n[here]: https://docs.rs/svd2rust/0.17.0/svd2rust/#peripheral-api"]
2#![deny(const_err)]
3#![deny(dead_code)]
4#![deny(improper_ctypes)]
5#![deny(legacy_directory_ownership)]
6#![deny(missing_docs)]
7#![deny(no_mangle_generic_items)]
8#![deny(non_shorthand_field_patterns)]
9#![deny(overflowing_literals)]
10#![deny(path_statements)]
11#![deny(patterns_in_fns_without_body)]
12#![deny(plugin_as_library)]
13#![deny(private_in_public)]
14#![deny(safe_extern_statics)]
15#![deny(unconditional_recursion)]
16#![deny(unions_with_drop_fields)]
17#![deny(unused_allocation)]
18#![deny(unused_comparisons)]
19#![deny(unused_parens)]
20#![deny(while_true)]
21#![allow(non_camel_case_types)]
22#![allow(non_snake_case)]
23#![no_std]
24extern crate bare_metal;
25extern crate cortex_m;
26#[cfg(feature = "rt")]
27extern crate cortex_m_rt;
28extern crate vcell;
29use core::marker::PhantomData;
30use core::ops::Deref;
31#[doc = r"Number available in the NVIC for configuring priority"]
32pub const NVIC_PRIO_BITS: u8 = 3;
33#[cfg(feature = "rt")]
34extern "C" {
35 fn BROWNOUT();
36 fn WDT();
37 fn CLKGEN_RTC();
38 fn VCOMP();
39 fn IOSLAVE();
40 fn IOSLAVEACC();
41 fn IOMSTR0();
42 fn IOMSTR1();
43 fn IOMSTR2();
44 fn IOMSTR3();
45 fn IOMSTR4();
46 fn IOMSTR5();
47 fn GPIO();
48 fn CTIMER();
49 fn UART0();
50 fn UART1();
51 fn ADC();
52 fn PDM();
53 fn STIMER();
54 fn STIMER_CMPR0();
55 fn STIMER_CMPR1();
56 fn STIMER_CMPR2();
57 fn STIMER_CMPR3();
58 fn STIMER_CMPR4();
59 fn STIMER_CMPR5();
60 fn STIMER_CMPR6();
61 fn STIMER_CMPR7();
62}
63#[doc(hidden)]
64pub union Vector {
65 _handler: unsafe extern "C" fn(),
66 _reserved: u32,
67}
68#[cfg(feature = "rt")]
69#[doc(hidden)]
70#[link_section = ".vector_table.interrupts"]
71#[no_mangle]
72pub static __INTERRUPTS: [Vector; 27] = [
73 Vector { _handler: BROWNOUT },
74 Vector { _handler: WDT },
75 Vector {
76 _handler: CLKGEN_RTC,
77 },
78 Vector { _handler: VCOMP },
79 Vector { _handler: IOSLAVE },
80 Vector {
81 _handler: IOSLAVEACC,
82 },
83 Vector { _handler: IOMSTR0 },
84 Vector { _handler: IOMSTR1 },
85 Vector { _handler: IOMSTR2 },
86 Vector { _handler: IOMSTR3 },
87 Vector { _handler: IOMSTR4 },
88 Vector { _handler: IOMSTR5 },
89 Vector { _handler: GPIO },
90 Vector { _handler: CTIMER },
91 Vector { _handler: UART0 },
92 Vector { _handler: UART1 },
93 Vector { _handler: ADC },
94 Vector { _handler: PDM },
95 Vector { _handler: STIMER },
96 Vector {
97 _handler: STIMER_CMPR0,
98 },
99 Vector {
100 _handler: STIMER_CMPR1,
101 },
102 Vector {
103 _handler: STIMER_CMPR2,
104 },
105 Vector {
106 _handler: STIMER_CMPR3,
107 },
108 Vector {
109 _handler: STIMER_CMPR4,
110 },
111 Vector {
112 _handler: STIMER_CMPR5,
113 },
114 Vector {
115 _handler: STIMER_CMPR6,
116 },
117 Vector {
118 _handler: STIMER_CMPR7,
119 },
120];
121#[doc = r"Enumeration of all the interrupts"]
122#[derive(Copy, Clone, Debug)]
123#[repr(u8)]
124pub enum Interrupt {
125 #[doc = "0 - BROWNOUT"]
126 BROWNOUT = 0,
127 #[doc = "1 - WDT"]
128 WDT = 1,
129 #[doc = "2 - CLKGEN_RTC"]
130 CLKGEN_RTC = 2,
131 #[doc = "3 - VCOMP"]
132 VCOMP = 3,
133 #[doc = "4 - IOSLAVE"]
134 IOSLAVE = 4,
135 #[doc = "5 - IOSLAVEACC"]
136 IOSLAVEACC = 5,
137 #[doc = "6 - IOMSTR0"]
138 IOMSTR0 = 6,
139 #[doc = "7 - IOMSTR1"]
140 IOMSTR1 = 7,
141 #[doc = "8 - IOMSTR2"]
142 IOMSTR2 = 8,
143 #[doc = "9 - IOMSTR3"]
144 IOMSTR3 = 9,
145 #[doc = "10 - IOMSTR4"]
146 IOMSTR4 = 10,
147 #[doc = "11 - IOMSTR5"]
148 IOMSTR5 = 11,
149 #[doc = "12 - GPIO"]
150 GPIO = 12,
151 #[doc = "13 - CTIMER"]
152 CTIMER = 13,
153 #[doc = "14 - UART0"]
154 UART0 = 14,
155 #[doc = "15 - UART1"]
156 UART1 = 15,
157 #[doc = "16 - ADC"]
158 ADC = 16,
159 #[doc = "17 - PDM"]
160 PDM = 17,
161 #[doc = "18 - STIMER"]
162 STIMER = 18,
163 #[doc = "19 - STIMER_CMPR0"]
164 STIMER_CMPR0 = 19,
165 #[doc = "20 - STIMER_CMPR1"]
166 STIMER_CMPR1 = 20,
167 #[doc = "21 - STIMER_CMPR2"]
168 STIMER_CMPR2 = 21,
169 #[doc = "22 - STIMER_CMPR3"]
170 STIMER_CMPR3 = 22,
171 #[doc = "23 - STIMER_CMPR4"]
172 STIMER_CMPR4 = 23,
173 #[doc = "24 - STIMER_CMPR5"]
174 STIMER_CMPR5 = 24,
175 #[doc = "25 - STIMER_CMPR6"]
176 STIMER_CMPR6 = 25,
177 #[doc = "26 - STIMER_CMPR7"]
178 STIMER_CMPR7 = 26,
179}
180unsafe impl bare_metal::Nr for Interrupt {
181 #[inline(always)]
182 fn nr(&self) -> u8 {
183 *self as u8
184 }
185}
186#[cfg(feature = "rt")]
187pub use self::Interrupt as interrupt;
188pub use cortex_m::peripheral::Peripherals as CorePeripherals;
189pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, MPU, NVIC, SCB, SYST, TPIU};
190#[cfg(feature = "rt")]
191pub use cortex_m_rt::interrupt;
192#[allow(unused_imports)]
193use generic::*;
194#[doc = r"Common register and bit access and modify traits"]
195pub mod generic;
196#[doc = "Analog Digital Converter Control"]
197pub struct ADC {
198 _marker: PhantomData<*const ()>,
199}
200unsafe impl Send for ADC {}
201impl ADC {
202 #[doc = r"Returns a pointer to the register block"]
203 #[inline(always)]
204 pub const fn ptr() -> *const adc::RegisterBlock {
205 0x5001_0000 as *const _
206 }
207}
208impl Deref for ADC {
209 type Target = adc::RegisterBlock;
210 #[inline(always)]
211 fn deref(&self) -> &Self::Target {
212 unsafe { &*ADC::ptr() }
213 }
214}
215#[doc = "Analog Digital Converter Control"]
216pub mod adc;
217#[doc = "Flash Cache Controller"]
218pub struct CACHECTRL {
219 _marker: PhantomData<*const ()>,
220}
221unsafe impl Send for CACHECTRL {}
222impl CACHECTRL {
223 #[doc = r"Returns a pointer to the register block"]
224 #[inline(always)]
225 pub const fn ptr() -> *const cachectrl::RegisterBlock {
226 0x4001_8000 as *const _
227 }
228}
229impl Deref for CACHECTRL {
230 type Target = cachectrl::RegisterBlock;
231 #[inline(always)]
232 fn deref(&self) -> &Self::Target {
233 unsafe { &*CACHECTRL::ptr() }
234 }
235}
236#[doc = "Flash Cache Controller"]
237pub mod cachectrl;
238#[doc = "Clock Generator"]
239pub struct CLKGEN {
240 _marker: PhantomData<*const ()>,
241}
242unsafe impl Send for CLKGEN {}
243impl CLKGEN {
244 #[doc = r"Returns a pointer to the register block"]
245 #[inline(always)]
246 pub const fn ptr() -> *const clkgen::RegisterBlock {
247 0x4000_4000 as *const _
248 }
249}
250impl Deref for CLKGEN {
251 type Target = clkgen::RegisterBlock;
252 #[inline(always)]
253 fn deref(&self) -> &Self::Target {
254 unsafe { &*CLKGEN::ptr() }
255 }
256}
257#[doc = "Clock Generator"]
258pub mod clkgen;
259#[doc = "Counter/Timer"]
260pub struct CTIMER {
261 _marker: PhantomData<*const ()>,
262}
263unsafe impl Send for CTIMER {}
264impl CTIMER {
265 #[doc = r"Returns a pointer to the register block"]
266 #[inline(always)]
267 pub const fn ptr() -> *const ctimer::RegisterBlock {
268 0x4000_8000 as *const _
269 }
270}
271impl Deref for CTIMER {
272 type Target = ctimer::RegisterBlock;
273 #[inline(always)]
274 fn deref(&self) -> &Self::Target {
275 unsafe { &*CTIMER::ptr() }
276 }
277}
278#[doc = "Counter/Timer"]
279pub mod ctimer;
280#[doc = "General Purpose IO"]
281pub struct GPIO {
282 _marker: PhantomData<*const ()>,
283}
284unsafe impl Send for GPIO {}
285impl GPIO {
286 #[doc = r"Returns a pointer to the register block"]
287 #[inline(always)]
288 pub const fn ptr() -> *const gpio::RegisterBlock {
289 0x4001_0000 as *const _
290 }
291}
292impl Deref for GPIO {
293 type Target = gpio::RegisterBlock;
294 #[inline(always)]
295 fn deref(&self) -> &Self::Target {
296 unsafe { &*GPIO::ptr() }
297 }
298}
299#[doc = "General Purpose IO"]
300pub mod gpio;
301#[doc = "I2C/SPI Master"]
302pub struct IOMSTR0 {
303 _marker: PhantomData<*const ()>,
304}
305unsafe impl Send for IOMSTR0 {}
306impl IOMSTR0 {
307 #[doc = r"Returns a pointer to the register block"]
308 #[inline(always)]
309 pub const fn ptr() -> *const iomstr0::RegisterBlock {
310 0x5000_4000 as *const _
311 }
312}
313impl Deref for IOMSTR0 {
314 type Target = iomstr0::RegisterBlock;
315 #[inline(always)]
316 fn deref(&self) -> &Self::Target {
317 unsafe { &*IOMSTR0::ptr() }
318 }
319}
320#[doc = "I2C/SPI Master"]
321pub mod iomstr0;
322#[doc = "I2C/SPI Master"]
323pub struct IOMSTR1 {
324 _marker: PhantomData<*const ()>,
325}
326unsafe impl Send for IOMSTR1 {}
327impl IOMSTR1 {
328 #[doc = r"Returns a pointer to the register block"]
329 #[inline(always)]
330 pub const fn ptr() -> *const iomstr0::RegisterBlock {
331 0x5000_5000 as *const _
332 }
333}
334impl Deref for IOMSTR1 {
335 type Target = iomstr0::RegisterBlock;
336 #[inline(always)]
337 fn deref(&self) -> &Self::Target {
338 unsafe { &*IOMSTR1::ptr() }
339 }
340}
341#[doc = "I2C/SPI Master"]
342pub struct IOMSTR2 {
343 _marker: PhantomData<*const ()>,
344}
345unsafe impl Send for IOMSTR2 {}
346impl IOMSTR2 {
347 #[doc = r"Returns a pointer to the register block"]
348 #[inline(always)]
349 pub const fn ptr() -> *const iomstr0::RegisterBlock {
350 0x5000_6000 as *const _
351 }
352}
353impl Deref for IOMSTR2 {
354 type Target = iomstr0::RegisterBlock;
355 #[inline(always)]
356 fn deref(&self) -> &Self::Target {
357 unsafe { &*IOMSTR2::ptr() }
358 }
359}
360#[doc = "I2C/SPI Master"]
361pub struct IOMSTR3 {
362 _marker: PhantomData<*const ()>,
363}
364unsafe impl Send for IOMSTR3 {}
365impl IOMSTR3 {
366 #[doc = r"Returns a pointer to the register block"]
367 #[inline(always)]
368 pub const fn ptr() -> *const iomstr0::RegisterBlock {
369 0x5000_7000 as *const _
370 }
371}
372impl Deref for IOMSTR3 {
373 type Target = iomstr0::RegisterBlock;
374 #[inline(always)]
375 fn deref(&self) -> &Self::Target {
376 unsafe { &*IOMSTR3::ptr() }
377 }
378}
379#[doc = "I2C/SPI Master"]
380pub struct IOMSTR4 {
381 _marker: PhantomData<*const ()>,
382}
383unsafe impl Send for IOMSTR4 {}
384impl IOMSTR4 {
385 #[doc = r"Returns a pointer to the register block"]
386 #[inline(always)]
387 pub const fn ptr() -> *const iomstr0::RegisterBlock {
388 0x5000_8000 as *const _
389 }
390}
391impl Deref for IOMSTR4 {
392 type Target = iomstr0::RegisterBlock;
393 #[inline(always)]
394 fn deref(&self) -> &Self::Target {
395 unsafe { &*IOMSTR4::ptr() }
396 }
397}
398#[doc = "I2C/SPI Master"]
399pub struct IOMSTR5 {
400 _marker: PhantomData<*const ()>,
401}
402unsafe impl Send for IOMSTR5 {}
403impl IOMSTR5 {
404 #[doc = r"Returns a pointer to the register block"]
405 #[inline(always)]
406 pub const fn ptr() -> *const iomstr0::RegisterBlock {
407 0x5000_9000 as *const _
408 }
409}
410impl Deref for IOMSTR5 {
411 type Target = iomstr0::RegisterBlock;
412 #[inline(always)]
413 fn deref(&self) -> &Self::Target {
414 unsafe { &*IOMSTR5::ptr() }
415 }
416}
417#[doc = "I2C/SPI Slave"]
418pub struct IOSLAVE {
419 _marker: PhantomData<*const ()>,
420}
421unsafe impl Send for IOSLAVE {}
422impl IOSLAVE {
423 #[doc = r"Returns a pointer to the register block"]
424 #[inline(always)]
425 pub const fn ptr() -> *const ioslave::RegisterBlock {
426 0x5000_0000 as *const _
427 }
428}
429impl Deref for IOSLAVE {
430 type Target = ioslave::RegisterBlock;
431 #[inline(always)]
432 fn deref(&self) -> &Self::Target {
433 unsafe { &*IOSLAVE::ptr() }
434 }
435}
436#[doc = "I2C/SPI Slave"]
437pub mod ioslave;
438#[doc = "MCU Miscellaneous Control Logic"]
439pub struct MCUCTRL {
440 _marker: PhantomData<*const ()>,
441}
442unsafe impl Send for MCUCTRL {}
443impl MCUCTRL {
444 #[doc = r"Returns a pointer to the register block"]
445 #[inline(always)]
446 pub const fn ptr() -> *const mcuctrl::RegisterBlock {
447 0x4002_0000 as *const _
448 }
449}
450impl Deref for MCUCTRL {
451 type Target = mcuctrl::RegisterBlock;
452 #[inline(always)]
453 fn deref(&self) -> &Self::Target {
454 unsafe { &*MCUCTRL::ptr() }
455 }
456}
457#[doc = "MCU Miscellaneous Control Logic"]
458pub mod mcuctrl;
459#[doc = "PDM Audio"]
460pub struct PDM {
461 _marker: PhantomData<*const ()>,
462}
463unsafe impl Send for PDM {}
464impl PDM {
465 #[doc = r"Returns a pointer to the register block"]
466 #[inline(always)]
467 pub const fn ptr() -> *const pdm::RegisterBlock {
468 0x5001_1000 as *const _
469 }
470}
471impl Deref for PDM {
472 type Target = pdm::RegisterBlock;
473 #[inline(always)]
474 fn deref(&self) -> &Self::Target {
475 unsafe { &*PDM::ptr() }
476 }
477}
478#[doc = "PDM Audio"]
479pub mod pdm;
480#[doc = "PWR Controller Register Bank"]
481pub struct PWRCTRL {
482 _marker: PhantomData<*const ()>,
483}
484unsafe impl Send for PWRCTRL {}
485impl PWRCTRL {
486 #[doc = r"Returns a pointer to the register block"]
487 #[inline(always)]
488 pub const fn ptr() -> *const pwrctrl::RegisterBlock {
489 0x4002_1000 as *const _
490 }
491}
492impl Deref for PWRCTRL {
493 type Target = pwrctrl::RegisterBlock;
494 #[inline(always)]
495 fn deref(&self) -> &Self::Target {
496 unsafe { &*PWRCTRL::ptr() }
497 }
498}
499#[doc = "PWR Controller Register Bank"]
500pub mod pwrctrl;
501#[doc = "MCU Reset Generator"]
502pub struct RSTGEN {
503 _marker: PhantomData<*const ()>,
504}
505unsafe impl Send for RSTGEN {}
506impl RSTGEN {
507 #[doc = r"Returns a pointer to the register block"]
508 #[inline(always)]
509 pub const fn ptr() -> *const rstgen::RegisterBlock {
510 0x4000_0000 as *const _
511 }
512}
513impl Deref for RSTGEN {
514 type Target = rstgen::RegisterBlock;
515 #[inline(always)]
516 fn deref(&self) -> &Self::Target {
517 unsafe { &*RSTGEN::ptr() }
518 }
519}
520#[doc = "MCU Reset Generator"]
521pub mod rstgen;
522#[doc = "Real Time Clock"]
523pub struct RTC {
524 _marker: PhantomData<*const ()>,
525}
526unsafe impl Send for RTC {}
527impl RTC {
528 #[doc = r"Returns a pointer to the register block"]
529 #[inline(always)]
530 pub const fn ptr() -> *const rtc::RegisterBlock {
531 0x4000_4040 as *const _
532 }
533}
534impl Deref for RTC {
535 type Target = rtc::RegisterBlock;
536 #[inline(always)]
537 fn deref(&self) -> &Self::Target {
538 unsafe { &*RTC::ptr() }
539 }
540}
541#[doc = "Real Time Clock"]
542pub mod rtc;
543#[doc = "Serial UART"]
544pub struct UART0 {
545 _marker: PhantomData<*const ()>,
546}
547unsafe impl Send for UART0 {}
548impl UART0 {
549 #[doc = r"Returns a pointer to the register block"]
550 #[inline(always)]
551 pub const fn ptr() -> *const uart0::RegisterBlock {
552 0x4001_c000 as *const _
553 }
554}
555impl Deref for UART0 {
556 type Target = uart0::RegisterBlock;
557 #[inline(always)]
558 fn deref(&self) -> &Self::Target {
559 unsafe { &*UART0::ptr() }
560 }
561}
562#[doc = "Serial UART"]
563pub mod uart0;
564#[doc = "Serial UART"]
565pub struct UART1 {
566 _marker: PhantomData<*const ()>,
567}
568unsafe impl Send for UART1 {}
569impl UART1 {
570 #[doc = r"Returns a pointer to the register block"]
571 #[inline(always)]
572 pub const fn ptr() -> *const uart0::RegisterBlock {
573 0x4001_d000 as *const _
574 }
575}
576impl Deref for UART1 {
577 type Target = uart0::RegisterBlock;
578 #[inline(always)]
579 fn deref(&self) -> &Self::Target {
580 unsafe { &*UART1::ptr() }
581 }
582}
583#[doc = "Voltage Comparator"]
584pub struct VCOMP {
585 _marker: PhantomData<*const ()>,
586}
587unsafe impl Send for VCOMP {}
588impl VCOMP {
589 #[doc = r"Returns a pointer to the register block"]
590 #[inline(always)]
591 pub const fn ptr() -> *const vcomp::RegisterBlock {
592 0x4000_c000 as *const _
593 }
594}
595impl Deref for VCOMP {
596 type Target = vcomp::RegisterBlock;
597 #[inline(always)]
598 fn deref(&self) -> &Self::Target {
599 unsafe { &*VCOMP::ptr() }
600 }
601}
602#[doc = "Voltage Comparator"]
603pub mod vcomp;
604#[doc = "Watchdog Timer"]
605pub struct WDT {
606 _marker: PhantomData<*const ()>,
607}
608unsafe impl Send for WDT {}
609impl WDT {
610 #[doc = r"Returns a pointer to the register block"]
611 #[inline(always)]
612 pub const fn ptr() -> *const wdt::RegisterBlock {
613 0x4002_4000 as *const _
614 }
615}
616impl Deref for WDT {
617 type Target = wdt::RegisterBlock;
618 #[inline(always)]
619 fn deref(&self) -> &Self::Target {
620 unsafe { &*WDT::ptr() }
621 }
622}
623#[doc = "Watchdog Timer"]
624pub mod wdt;
625#[no_mangle]
626static mut DEVICE_PERIPHERALS: bool = false;
627#[doc = r"All the peripherals"]
628#[allow(non_snake_case)]
629pub struct Peripherals {
630 #[doc = "ADC"]
631 pub ADC: ADC,
632 #[doc = "CACHECTRL"]
633 pub CACHECTRL: CACHECTRL,
634 #[doc = "CLKGEN"]
635 pub CLKGEN: CLKGEN,
636 #[doc = "CTIMER"]
637 pub CTIMER: CTIMER,
638 #[doc = "GPIO"]
639 pub GPIO: GPIO,
640 #[doc = "IOMSTR0"]
641 pub IOMSTR0: IOMSTR0,
642 #[doc = "IOMSTR1"]
643 pub IOMSTR1: IOMSTR1,
644 #[doc = "IOMSTR2"]
645 pub IOMSTR2: IOMSTR2,
646 #[doc = "IOMSTR3"]
647 pub IOMSTR3: IOMSTR3,
648 #[doc = "IOMSTR4"]
649 pub IOMSTR4: IOMSTR4,
650 #[doc = "IOMSTR5"]
651 pub IOMSTR5: IOMSTR5,
652 #[doc = "IOSLAVE"]
653 pub IOSLAVE: IOSLAVE,
654 #[doc = "MCUCTRL"]
655 pub MCUCTRL: MCUCTRL,
656 #[doc = "PDM"]
657 pub PDM: PDM,
658 #[doc = "PWRCTRL"]
659 pub PWRCTRL: PWRCTRL,
660 #[doc = "RSTGEN"]
661 pub RSTGEN: RSTGEN,
662 #[doc = "RTC"]
663 pub RTC: RTC,
664 #[doc = "UART0"]
665 pub UART0: UART0,
666 #[doc = "UART1"]
667 pub UART1: UART1,
668 #[doc = "VCOMP"]
669 pub VCOMP: VCOMP,
670 #[doc = "WDT"]
671 pub WDT: WDT,
672}
673impl Peripherals {
674 #[doc = r"Returns all the peripherals *once*"]
675 #[inline]
676 pub fn take() -> Option<Self> {
677 cortex_m::interrupt::free(|_| {
678 if unsafe { DEVICE_PERIPHERALS } {
679 None
680 } else {
681 Some(unsafe { Peripherals::steal() })
682 }
683 })
684 }
685 #[doc = r"Unchecked version of `Peripherals::take`"]
686 #[inline]
687 pub unsafe fn steal() -> Self {
688 DEVICE_PERIPHERALS = true;
689 Peripherals {
690 ADC: ADC {
691 _marker: PhantomData,
692 },
693 CACHECTRL: CACHECTRL {
694 _marker: PhantomData,
695 },
696 CLKGEN: CLKGEN {
697 _marker: PhantomData,
698 },
699 CTIMER: CTIMER {
700 _marker: PhantomData,
701 },
702 GPIO: GPIO {
703 _marker: PhantomData,
704 },
705 IOMSTR0: IOMSTR0 {
706 _marker: PhantomData,
707 },
708 IOMSTR1: IOMSTR1 {
709 _marker: PhantomData,
710 },
711 IOMSTR2: IOMSTR2 {
712 _marker: PhantomData,
713 },
714 IOMSTR3: IOMSTR3 {
715 _marker: PhantomData,
716 },
717 IOMSTR4: IOMSTR4 {
718 _marker: PhantomData,
719 },
720 IOMSTR5: IOMSTR5 {
721 _marker: PhantomData,
722 },
723 IOSLAVE: IOSLAVE {
724 _marker: PhantomData,
725 },
726 MCUCTRL: MCUCTRL {
727 _marker: PhantomData,
728 },
729 PDM: PDM {
730 _marker: PhantomData,
731 },
732 PWRCTRL: PWRCTRL {
733 _marker: PhantomData,
734 },
735 RSTGEN: RSTGEN {
736 _marker: PhantomData,
737 },
738 RTC: RTC {
739 _marker: PhantomData,
740 },
741 UART0: UART0 {
742 _marker: PhantomData,
743 },
744 UART1: UART1 {
745 _marker: PhantomData,
746 },
747 VCOMP: VCOMP {
748 _marker: PhantomData,
749 },
750 WDT: WDT {
751 _marker: PhantomData,
752 },
753 }
754 }
755}