efm32tg11b140_pac/
lib.rs

1#![doc = "Peripheral access API for EFM32TG11B140F64GM32 microcontrollers (generated using svd2rust v0.24.0 ( ))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next]
2svd2rust release can be generated by cloning the svd2rust [repository], checking out the above commit, and running `cargo doc --open`.\n\n[here]: https://docs.rs/svd2rust/0.24.0/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
3#![deny(const_err)]
4#![deny(dead_code)]
5#![deny(improper_ctypes)]
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(private_in_public)]
13#![deny(unconditional_recursion)]
14#![deny(unused_allocation)]
15#![deny(unused_comparisons)]
16#![deny(unused_parens)]
17#![deny(while_true)]
18#![allow(non_camel_case_types)]
19#![allow(non_snake_case)]
20#![no_std]
21use core::marker::PhantomData;
22use core::ops::Deref;
23#[doc = r"Number available in the NVIC for configuring priority"]
24pub const NVIC_PRIO_BITS: u8 = 3;
25#[cfg(feature = "rt")]
26pub use self::Interrupt as interrupt;
27pub use cortex_m::peripheral::Peripherals as CorePeripherals;
28pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, ITM, MPU, NVIC, SCB, SYST, TPIU};
29#[cfg(feature = "rt")]
30pub use cortex_m_rt::interrupt;
31#[allow(unused_imports)]
32use generic::*;
33#[doc = r"Common register and bit access and modify traits"]
34pub mod generic;
35#[cfg(feature = "rt")]
36extern "C" {
37    fn EMU();
38    fn WDOG0();
39    fn LDMA();
40    fn GPIO_EVEN();
41    fn SMU();
42    fn TIMER0();
43    fn USART0();
44    fn ACMP0();
45    fn ADC0();
46    fn I2C0();
47    fn I2C1();
48    fn GPIO_ODD();
49    fn TIMER1();
50    fn USART1();
51    fn USART2();
52    fn UART0();
53    fn LEUART0();
54    fn LETIMER0();
55    fn PCNT0();
56    fn RTCC();
57    fn CMU();
58    fn MSC();
59    fn CRYPTO0();
60    fn CRYOTIMER();
61    fn USART3();
62    fn WTIMER0();
63    fn WTIMER1();
64    fn VDAC0();
65    fn CSEN();
66    fn LESENSE();
67    fn CAN0();
68}
69#[doc(hidden)]
70pub union Vector {
71    _handler: unsafe extern "C" fn(),
72    _reserved: u32,
73}
74#[cfg(feature = "rt")]
75#[doc(hidden)]
76#[link_section = ".vector_table.interrupts"]
77#[no_mangle]
78pub static __INTERRUPTS: [Vector; 32] = [
79    Vector { _handler: EMU },
80    Vector { _handler: WDOG0 },
81    Vector { _handler: LDMA },
82    Vector {
83        _handler: GPIO_EVEN,
84    },
85    Vector { _handler: SMU },
86    Vector { _handler: TIMER0 },
87    Vector { _handler: USART0 },
88    Vector { _handler: ACMP0 },
89    Vector { _handler: ADC0 },
90    Vector { _handler: I2C0 },
91    Vector { _handler: I2C1 },
92    Vector { _handler: GPIO_ODD },
93    Vector { _handler: TIMER1 },
94    Vector { _handler: USART1 },
95    Vector { _handler: USART2 },
96    Vector { _handler: UART0 },
97    Vector { _handler: LEUART0 },
98    Vector { _handler: LETIMER0 },
99    Vector { _handler: PCNT0 },
100    Vector { _handler: RTCC },
101    Vector { _handler: CMU },
102    Vector { _handler: MSC },
103    Vector { _handler: CRYPTO0 },
104    Vector {
105        _handler: CRYOTIMER,
106    },
107    Vector { _handler: USART3 },
108    Vector { _handler: WTIMER0 },
109    Vector { _handler: WTIMER1 },
110    Vector { _handler: VDAC0 },
111    Vector { _handler: CSEN },
112    Vector { _handler: LESENSE },
113    Vector { _reserved: 0 },
114    Vector { _handler: CAN0 },
115];
116#[doc = r"Enumeration of all the interrupts."]
117#[derive(Copy, Clone, Debug, PartialEq, Eq)]
118#[repr(u16)]
119pub enum Interrupt {
120    #[doc = "0 - EMU"]
121    EMU = 0,
122    #[doc = "1 - WDOG0"]
123    WDOG0 = 1,
124    #[doc = "2 - LDMA"]
125    LDMA = 2,
126    #[doc = "3 - GPIO_EVEN"]
127    GPIO_EVEN = 3,
128    #[doc = "4 - SMU"]
129    SMU = 4,
130    #[doc = "5 - TIMER0"]
131    TIMER0 = 5,
132    #[doc = "6 - USART0"]
133    USART0 = 6,
134    #[doc = "7 - ACMP0"]
135    ACMP0 = 7,
136    #[doc = "8 - ADC0"]
137    ADC0 = 8,
138    #[doc = "9 - I2C0"]
139    I2C0 = 9,
140    #[doc = "10 - I2C1"]
141    I2C1 = 10,
142    #[doc = "11 - GPIO_ODD"]
143    GPIO_ODD = 11,
144    #[doc = "12 - TIMER1"]
145    TIMER1 = 12,
146    #[doc = "13 - USART1"]
147    USART1 = 13,
148    #[doc = "14 - USART2"]
149    USART2 = 14,
150    #[doc = "15 - UART0"]
151    UART0 = 15,
152    #[doc = "16 - LEUART0"]
153    LEUART0 = 16,
154    #[doc = "17 - LETIMER0"]
155    LETIMER0 = 17,
156    #[doc = "18 - PCNT0"]
157    PCNT0 = 18,
158    #[doc = "19 - RTCC"]
159    RTCC = 19,
160    #[doc = "20 - CMU"]
161    CMU = 20,
162    #[doc = "21 - MSC"]
163    MSC = 21,
164    #[doc = "22 - CRYPTO0"]
165    CRYPTO0 = 22,
166    #[doc = "23 - CRYOTIMER"]
167    CRYOTIMER = 23,
168    #[doc = "24 - USART3"]
169    USART3 = 24,
170    #[doc = "25 - WTIMER0"]
171    WTIMER0 = 25,
172    #[doc = "26 - WTIMER1"]
173    WTIMER1 = 26,
174    #[doc = "27 - VDAC0"]
175    VDAC0 = 27,
176    #[doc = "28 - CSEN"]
177    CSEN = 28,
178    #[doc = "29 - LESENSE"]
179    LESENSE = 29,
180    #[doc = "31 - CAN0"]
181    CAN0 = 31,
182}
183unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
184    #[inline(always)]
185    fn number(self) -> u16 {
186        self as u16
187    }
188}
189#[doc = "MSC"]
190pub struct MSC {
191    _marker: PhantomData<*const ()>,
192}
193unsafe impl Send for MSC {}
194impl MSC {
195    #[doc = r"Pointer to the register block"]
196    pub const PTR: *const msc::RegisterBlock = 0x4000_0000 as *const _;
197    #[doc = r"Return the pointer to the register block"]
198    #[inline(always)]
199    pub const fn ptr() -> *const msc::RegisterBlock {
200        Self::PTR
201    }
202}
203impl Deref for MSC {
204    type Target = msc::RegisterBlock;
205    #[inline(always)]
206    fn deref(&self) -> &Self::Target {
207        unsafe { &*Self::PTR }
208    }
209}
210impl core::fmt::Debug for MSC {
211    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
212        f.debug_struct("MSC").finish()
213    }
214}
215#[doc = "MSC"]
216pub mod msc;
217#[doc = "EMU"]
218pub struct EMU {
219    _marker: PhantomData<*const ()>,
220}
221unsafe impl Send for EMU {}
222impl EMU {
223    #[doc = r"Pointer to the register block"]
224    pub const PTR: *const emu::RegisterBlock = 0x400e_3000 as *const _;
225    #[doc = r"Return the pointer to the register block"]
226    #[inline(always)]
227    pub const fn ptr() -> *const emu::RegisterBlock {
228        Self::PTR
229    }
230}
231impl Deref for EMU {
232    type Target = emu::RegisterBlock;
233    #[inline(always)]
234    fn deref(&self) -> &Self::Target {
235        unsafe { &*Self::PTR }
236    }
237}
238impl core::fmt::Debug for EMU {
239    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
240        f.debug_struct("EMU").finish()
241    }
242}
243#[doc = "EMU"]
244pub mod emu;
245#[doc = "RMU"]
246pub struct RMU {
247    _marker: PhantomData<*const ()>,
248}
249unsafe impl Send for RMU {}
250impl RMU {
251    #[doc = r"Pointer to the register block"]
252    pub const PTR: *const rmu::RegisterBlock = 0x400e_5000 as *const _;
253    #[doc = r"Return the pointer to the register block"]
254    #[inline(always)]
255    pub const fn ptr() -> *const rmu::RegisterBlock {
256        Self::PTR
257    }
258}
259impl Deref for RMU {
260    type Target = rmu::RegisterBlock;
261    #[inline(always)]
262    fn deref(&self) -> &Self::Target {
263        unsafe { &*Self::PTR }
264    }
265}
266impl core::fmt::Debug for RMU {
267    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
268        f.debug_struct("RMU").finish()
269    }
270}
271#[doc = "RMU"]
272pub mod rmu;
273#[doc = "CMU"]
274pub struct CMU {
275    _marker: PhantomData<*const ()>,
276}
277unsafe impl Send for CMU {}
278impl CMU {
279    #[doc = r"Pointer to the register block"]
280    pub const PTR: *const cmu::RegisterBlock = 0x400e_4000 as *const _;
281    #[doc = r"Return the pointer to the register block"]
282    #[inline(always)]
283    pub const fn ptr() -> *const cmu::RegisterBlock {
284        Self::PTR
285    }
286}
287impl Deref for CMU {
288    type Target = cmu::RegisterBlock;
289    #[inline(always)]
290    fn deref(&self) -> &Self::Target {
291        unsafe { &*Self::PTR }
292    }
293}
294impl core::fmt::Debug for CMU {
295    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
296        f.debug_struct("CMU").finish()
297    }
298}
299#[doc = "CMU"]
300pub mod cmu;
301#[doc = "CRYPTO0"]
302pub struct CRYPTO0 {
303    _marker: PhantomData<*const ()>,
304}
305unsafe impl Send for CRYPTO0 {}
306impl CRYPTO0 {
307    #[doc = r"Pointer to the register block"]
308    pub const PTR: *const crypto0::RegisterBlock = 0x400f_0000 as *const _;
309    #[doc = r"Return the pointer to the register block"]
310    #[inline(always)]
311    pub const fn ptr() -> *const crypto0::RegisterBlock {
312        Self::PTR
313    }
314}
315impl Deref for CRYPTO0 {
316    type Target = crypto0::RegisterBlock;
317    #[inline(always)]
318    fn deref(&self) -> &Self::Target {
319        unsafe { &*Self::PTR }
320    }
321}
322impl core::fmt::Debug for CRYPTO0 {
323    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
324        f.debug_struct("CRYPTO0").finish()
325    }
326}
327#[doc = "CRYPTO0"]
328pub mod crypto0;
329#[doc = "LESENSE"]
330pub struct LESENSE {
331    _marker: PhantomData<*const ()>,
332}
333unsafe impl Send for LESENSE {}
334impl LESENSE {
335    #[doc = r"Pointer to the register block"]
336    pub const PTR: *const lesense::RegisterBlock = 0x4005_5000 as *const _;
337    #[doc = r"Return the pointer to the register block"]
338    #[inline(always)]
339    pub const fn ptr() -> *const lesense::RegisterBlock {
340        Self::PTR
341    }
342}
343impl Deref for LESENSE {
344    type Target = lesense::RegisterBlock;
345    #[inline(always)]
346    fn deref(&self) -> &Self::Target {
347        unsafe { &*Self::PTR }
348    }
349}
350impl core::fmt::Debug for LESENSE {
351    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
352        f.debug_struct("LESENSE").finish()
353    }
354}
355#[doc = "LESENSE"]
356pub mod lesense;
357#[doc = "GPIO"]
358pub struct GPIO {
359    _marker: PhantomData<*const ()>,
360}
361unsafe impl Send for GPIO {}
362impl GPIO {
363    #[doc = r"Pointer to the register block"]
364    pub const PTR: *const gpio::RegisterBlock = 0x4008_8000 as *const _;
365    #[doc = r"Return the pointer to the register block"]
366    #[inline(always)]
367    pub const fn ptr() -> *const gpio::RegisterBlock {
368        Self::PTR
369    }
370}
371impl Deref for GPIO {
372    type Target = gpio::RegisterBlock;
373    #[inline(always)]
374    fn deref(&self) -> &Self::Target {
375        unsafe { &*Self::PTR }
376    }
377}
378impl core::fmt::Debug for GPIO {
379    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
380        f.debug_struct("GPIO").finish()
381    }
382}
383#[doc = "GPIO"]
384pub mod gpio;
385#[doc = "PRS"]
386pub struct PRS {
387    _marker: PhantomData<*const ()>,
388}
389unsafe impl Send for PRS {}
390impl PRS {
391    #[doc = r"Pointer to the register block"]
392    pub const PTR: *const prs::RegisterBlock = 0x400e_6000 as *const _;
393    #[doc = r"Return the pointer to the register block"]
394    #[inline(always)]
395    pub const fn ptr() -> *const prs::RegisterBlock {
396        Self::PTR
397    }
398}
399impl Deref for PRS {
400    type Target = prs::RegisterBlock;
401    #[inline(always)]
402    fn deref(&self) -> &Self::Target {
403        unsafe { &*Self::PTR }
404    }
405}
406impl core::fmt::Debug for PRS {
407    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
408        f.debug_struct("PRS").finish()
409    }
410}
411#[doc = "PRS"]
412pub mod prs;
413#[doc = "LDMA"]
414pub struct LDMA {
415    _marker: PhantomData<*const ()>,
416}
417unsafe impl Send for LDMA {}
418impl LDMA {
419    #[doc = r"Pointer to the register block"]
420    pub const PTR: *const ldma::RegisterBlock = 0x4000_2000 as *const _;
421    #[doc = r"Return the pointer to the register block"]
422    #[inline(always)]
423    pub const fn ptr() -> *const ldma::RegisterBlock {
424        Self::PTR
425    }
426}
427impl Deref for LDMA {
428    type Target = ldma::RegisterBlock;
429    #[inline(always)]
430    fn deref(&self) -> &Self::Target {
431        unsafe { &*Self::PTR }
432    }
433}
434impl core::fmt::Debug for LDMA {
435    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
436        f.debug_struct("LDMA").finish()
437    }
438}
439#[doc = "LDMA"]
440pub mod ldma;
441#[doc = "GPCRC"]
442pub struct GPCRC {
443    _marker: PhantomData<*const ()>,
444}
445unsafe impl Send for GPCRC {}
446impl GPCRC {
447    #[doc = r"Pointer to the register block"]
448    pub const PTR: *const gpcrc::RegisterBlock = 0x4001_c000 as *const _;
449    #[doc = r"Return the pointer to the register block"]
450    #[inline(always)]
451    pub const fn ptr() -> *const gpcrc::RegisterBlock {
452        Self::PTR
453    }
454}
455impl Deref for GPCRC {
456    type Target = gpcrc::RegisterBlock;
457    #[inline(always)]
458    fn deref(&self) -> &Self::Target {
459        unsafe { &*Self::PTR }
460    }
461}
462impl core::fmt::Debug for GPCRC {
463    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
464        f.debug_struct("GPCRC").finish()
465    }
466}
467#[doc = "GPCRC"]
468pub mod gpcrc;
469#[doc = "CAN0"]
470pub struct CAN0 {
471    _marker: PhantomData<*const ()>,
472}
473unsafe impl Send for CAN0 {}
474impl CAN0 {
475    #[doc = r"Pointer to the register block"]
476    pub const PTR: *const can0::RegisterBlock = 0x4000_4000 as *const _;
477    #[doc = r"Return the pointer to the register block"]
478    #[inline(always)]
479    pub const fn ptr() -> *const can0::RegisterBlock {
480        Self::PTR
481    }
482}
483impl Deref for CAN0 {
484    type Target = can0::RegisterBlock;
485    #[inline(always)]
486    fn deref(&self) -> &Self::Target {
487        unsafe { &*Self::PTR }
488    }
489}
490impl core::fmt::Debug for CAN0 {
491    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
492        f.debug_struct("CAN0").finish()
493    }
494}
495#[doc = "CAN0"]
496pub mod can0;
497#[doc = "TIMER0"]
498pub struct TIMER0 {
499    _marker: PhantomData<*const ()>,
500}
501unsafe impl Send for TIMER0 {}
502impl TIMER0 {
503    #[doc = r"Pointer to the register block"]
504    pub const PTR: *const timer0::RegisterBlock = 0x4001_8000 as *const _;
505    #[doc = r"Return the pointer to the register block"]
506    #[inline(always)]
507    pub const fn ptr() -> *const timer0::RegisterBlock {
508        Self::PTR
509    }
510}
511impl Deref for TIMER0 {
512    type Target = timer0::RegisterBlock;
513    #[inline(always)]
514    fn deref(&self) -> &Self::Target {
515        unsafe { &*Self::PTR }
516    }
517}
518impl core::fmt::Debug for TIMER0 {
519    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
520        f.debug_struct("TIMER0").finish()
521    }
522}
523#[doc = "TIMER0"]
524pub mod timer0;
525#[doc = "TIMER1"]
526pub struct TIMER1 {
527    _marker: PhantomData<*const ()>,
528}
529unsafe impl Send for TIMER1 {}
530impl TIMER1 {
531    #[doc = r"Pointer to the register block"]
532    pub const PTR: *const timer1::RegisterBlock = 0x4001_8400 as *const _;
533    #[doc = r"Return the pointer to the register block"]
534    #[inline(always)]
535    pub const fn ptr() -> *const timer1::RegisterBlock {
536        Self::PTR
537    }
538}
539impl Deref for TIMER1 {
540    type Target = timer1::RegisterBlock;
541    #[inline(always)]
542    fn deref(&self) -> &Self::Target {
543        unsafe { &*Self::PTR }
544    }
545}
546impl core::fmt::Debug for TIMER1 {
547    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
548        f.debug_struct("TIMER1").finish()
549    }
550}
551#[doc = "TIMER1"]
552pub mod timer1;
553#[doc = "WTIMER0"]
554pub struct WTIMER0 {
555    _marker: PhantomData<*const ()>,
556}
557unsafe impl Send for WTIMER0 {}
558impl WTIMER0 {
559    #[doc = r"Pointer to the register block"]
560    pub const PTR: *const wtimer0::RegisterBlock = 0x4001_a000 as *const _;
561    #[doc = r"Return the pointer to the register block"]
562    #[inline(always)]
563    pub const fn ptr() -> *const wtimer0::RegisterBlock {
564        Self::PTR
565    }
566}
567impl Deref for WTIMER0 {
568    type Target = wtimer0::RegisterBlock;
569    #[inline(always)]
570    fn deref(&self) -> &Self::Target {
571        unsafe { &*Self::PTR }
572    }
573}
574impl core::fmt::Debug for WTIMER0 {
575    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
576        f.debug_struct("WTIMER0").finish()
577    }
578}
579#[doc = "WTIMER0"]
580pub mod wtimer0;
581#[doc = "WTIMER1"]
582pub struct WTIMER1 {
583    _marker: PhantomData<*const ()>,
584}
585unsafe impl Send for WTIMER1 {}
586impl WTIMER1 {
587    #[doc = r"Pointer to the register block"]
588    pub const PTR: *const wtimer1::RegisterBlock = 0x4001_a400 as *const _;
589    #[doc = r"Return the pointer to the register block"]
590    #[inline(always)]
591    pub const fn ptr() -> *const wtimer1::RegisterBlock {
592        Self::PTR
593    }
594}
595impl Deref for WTIMER1 {
596    type Target = wtimer1::RegisterBlock;
597    #[inline(always)]
598    fn deref(&self) -> &Self::Target {
599        unsafe { &*Self::PTR }
600    }
601}
602impl core::fmt::Debug for WTIMER1 {
603    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
604        f.debug_struct("WTIMER1").finish()
605    }
606}
607#[doc = "WTIMER1"]
608pub mod wtimer1;
609#[doc = "USART0"]
610pub struct USART0 {
611    _marker: PhantomData<*const ()>,
612}
613unsafe impl Send for USART0 {}
614impl USART0 {
615    #[doc = r"Pointer to the register block"]
616    pub const PTR: *const usart0::RegisterBlock = 0x4001_0000 as *const _;
617    #[doc = r"Return the pointer to the register block"]
618    #[inline(always)]
619    pub const fn ptr() -> *const usart0::RegisterBlock {
620        Self::PTR
621    }
622}
623impl Deref for USART0 {
624    type Target = usart0::RegisterBlock;
625    #[inline(always)]
626    fn deref(&self) -> &Self::Target {
627        unsafe { &*Self::PTR }
628    }
629}
630impl core::fmt::Debug for USART0 {
631    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
632        f.debug_struct("USART0").finish()
633    }
634}
635#[doc = "USART0"]
636pub mod usart0;
637#[doc = "USART1"]
638pub struct USART1 {
639    _marker: PhantomData<*const ()>,
640}
641unsafe impl Send for USART1 {}
642impl USART1 {
643    #[doc = r"Pointer to the register block"]
644    pub const PTR: *const usart1::RegisterBlock = 0x4001_0400 as *const _;
645    #[doc = r"Return the pointer to the register block"]
646    #[inline(always)]
647    pub const fn ptr() -> *const usart1::RegisterBlock {
648        Self::PTR
649    }
650}
651impl Deref for USART1 {
652    type Target = usart1::RegisterBlock;
653    #[inline(always)]
654    fn deref(&self) -> &Self::Target {
655        unsafe { &*Self::PTR }
656    }
657}
658impl core::fmt::Debug for USART1 {
659    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
660        f.debug_struct("USART1").finish()
661    }
662}
663#[doc = "USART1"]
664pub mod usart1;
665#[doc = "USART2"]
666pub struct USART2 {
667    _marker: PhantomData<*const ()>,
668}
669unsafe impl Send for USART2 {}
670impl USART2 {
671    #[doc = r"Pointer to the register block"]
672    pub const PTR: *const usart2::RegisterBlock = 0x4001_0800 as *const _;
673    #[doc = r"Return the pointer to the register block"]
674    #[inline(always)]
675    pub const fn ptr() -> *const usart2::RegisterBlock {
676        Self::PTR
677    }
678}
679impl Deref for USART2 {
680    type Target = usart2::RegisterBlock;
681    #[inline(always)]
682    fn deref(&self) -> &Self::Target {
683        unsafe { &*Self::PTR }
684    }
685}
686impl core::fmt::Debug for USART2 {
687    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
688        f.debug_struct("USART2").finish()
689    }
690}
691#[doc = "USART2"]
692pub mod usart2;
693#[doc = "USART3"]
694pub struct USART3 {
695    _marker: PhantomData<*const ()>,
696}
697unsafe impl Send for USART3 {}
698impl USART3 {
699    #[doc = r"Pointer to the register block"]
700    pub const PTR: *const usart3::RegisterBlock = 0x4001_0c00 as *const _;
701    #[doc = r"Return the pointer to the register block"]
702    #[inline(always)]
703    pub const fn ptr() -> *const usart3::RegisterBlock {
704        Self::PTR
705    }
706}
707impl Deref for USART3 {
708    type Target = usart3::RegisterBlock;
709    #[inline(always)]
710    fn deref(&self) -> &Self::Target {
711        unsafe { &*Self::PTR }
712    }
713}
714impl core::fmt::Debug for USART3 {
715    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
716        f.debug_struct("USART3").finish()
717    }
718}
719#[doc = "USART3"]
720pub mod usart3;
721#[doc = "UART0"]
722pub struct UART0 {
723    _marker: PhantomData<*const ()>,
724}
725unsafe impl Send for UART0 {}
726impl UART0 {
727    #[doc = r"Pointer to the register block"]
728    pub const PTR: *const uart0::RegisterBlock = 0x4001_4000 as *const _;
729    #[doc = r"Return the pointer to the register block"]
730    #[inline(always)]
731    pub const fn ptr() -> *const uart0::RegisterBlock {
732        Self::PTR
733    }
734}
735impl Deref for UART0 {
736    type Target = uart0::RegisterBlock;
737    #[inline(always)]
738    fn deref(&self) -> &Self::Target {
739        unsafe { &*Self::PTR }
740    }
741}
742impl core::fmt::Debug for UART0 {
743    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
744        f.debug_struct("UART0").finish()
745    }
746}
747#[doc = "UART0"]
748pub mod uart0;
749#[doc = "LEUART0"]
750pub struct LEUART0 {
751    _marker: PhantomData<*const ()>,
752}
753unsafe impl Send for LEUART0 {}
754impl LEUART0 {
755    #[doc = r"Pointer to the register block"]
756    pub const PTR: *const leuart0::RegisterBlock = 0x4006_a000 as *const _;
757    #[doc = r"Return the pointer to the register block"]
758    #[inline(always)]
759    pub const fn ptr() -> *const leuart0::RegisterBlock {
760        Self::PTR
761    }
762}
763impl Deref for LEUART0 {
764    type Target = leuart0::RegisterBlock;
765    #[inline(always)]
766    fn deref(&self) -> &Self::Target {
767        unsafe { &*Self::PTR }
768    }
769}
770impl core::fmt::Debug for LEUART0 {
771    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
772        f.debug_struct("LEUART0").finish()
773    }
774}
775#[doc = "LEUART0"]
776pub mod leuart0;
777#[doc = "LETIMER0"]
778pub struct LETIMER0 {
779    _marker: PhantomData<*const ()>,
780}
781unsafe impl Send for LETIMER0 {}
782impl LETIMER0 {
783    #[doc = r"Pointer to the register block"]
784    pub const PTR: *const letimer0::RegisterBlock = 0x4006_6000 as *const _;
785    #[doc = r"Return the pointer to the register block"]
786    #[inline(always)]
787    pub const fn ptr() -> *const letimer0::RegisterBlock {
788        Self::PTR
789    }
790}
791impl Deref for LETIMER0 {
792    type Target = letimer0::RegisterBlock;
793    #[inline(always)]
794    fn deref(&self) -> &Self::Target {
795        unsafe { &*Self::PTR }
796    }
797}
798impl core::fmt::Debug for LETIMER0 {
799    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
800        f.debug_struct("LETIMER0").finish()
801    }
802}
803#[doc = "LETIMER0"]
804pub mod letimer0;
805#[doc = "CRYOTIMER"]
806pub struct CRYOTIMER {
807    _marker: PhantomData<*const ()>,
808}
809unsafe impl Send for CRYOTIMER {}
810impl CRYOTIMER {
811    #[doc = r"Pointer to the register block"]
812    pub const PTR: *const cryotimer::RegisterBlock = 0x4008_f000 as *const _;
813    #[doc = r"Return the pointer to the register block"]
814    #[inline(always)]
815    pub const fn ptr() -> *const cryotimer::RegisterBlock {
816        Self::PTR
817    }
818}
819impl Deref for CRYOTIMER {
820    type Target = cryotimer::RegisterBlock;
821    #[inline(always)]
822    fn deref(&self) -> &Self::Target {
823        unsafe { &*Self::PTR }
824    }
825}
826impl core::fmt::Debug for CRYOTIMER {
827    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
828        f.debug_struct("CRYOTIMER").finish()
829    }
830}
831#[doc = "CRYOTIMER"]
832pub mod cryotimer;
833#[doc = "PCNT0"]
834pub struct PCNT0 {
835    _marker: PhantomData<*const ()>,
836}
837unsafe impl Send for PCNT0 {}
838impl PCNT0 {
839    #[doc = r"Pointer to the register block"]
840    pub const PTR: *const pcnt0::RegisterBlock = 0x4006_e000 as *const _;
841    #[doc = r"Return the pointer to the register block"]
842    #[inline(always)]
843    pub const fn ptr() -> *const pcnt0::RegisterBlock {
844        Self::PTR
845    }
846}
847impl Deref for PCNT0 {
848    type Target = pcnt0::RegisterBlock;
849    #[inline(always)]
850    fn deref(&self) -> &Self::Target {
851        unsafe { &*Self::PTR }
852    }
853}
854impl core::fmt::Debug for PCNT0 {
855    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
856        f.debug_struct("PCNT0").finish()
857    }
858}
859#[doc = "PCNT0"]
860pub mod pcnt0;
861#[doc = "I2C0"]
862pub struct I2C0 {
863    _marker: PhantomData<*const ()>,
864}
865unsafe impl Send for I2C0 {}
866impl I2C0 {
867    #[doc = r"Pointer to the register block"]
868    pub const PTR: *const i2c0::RegisterBlock = 0x4008_9000 as *const _;
869    #[doc = r"Return the pointer to the register block"]
870    #[inline(always)]
871    pub const fn ptr() -> *const i2c0::RegisterBlock {
872        Self::PTR
873    }
874}
875impl Deref for I2C0 {
876    type Target = i2c0::RegisterBlock;
877    #[inline(always)]
878    fn deref(&self) -> &Self::Target {
879        unsafe { &*Self::PTR }
880    }
881}
882impl core::fmt::Debug for I2C0 {
883    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
884        f.debug_struct("I2C0").finish()
885    }
886}
887#[doc = "I2C0"]
888pub mod i2c0;
889#[doc = "I2C1"]
890pub struct I2C1 {
891    _marker: PhantomData<*const ()>,
892}
893unsafe impl Send for I2C1 {}
894impl I2C1 {
895    #[doc = r"Pointer to the register block"]
896    pub const PTR: *const i2c1::RegisterBlock = 0x4008_9400 as *const _;
897    #[doc = r"Return the pointer to the register block"]
898    #[inline(always)]
899    pub const fn ptr() -> *const i2c1::RegisterBlock {
900        Self::PTR
901    }
902}
903impl Deref for I2C1 {
904    type Target = i2c1::RegisterBlock;
905    #[inline(always)]
906    fn deref(&self) -> &Self::Target {
907        unsafe { &*Self::PTR }
908    }
909}
910impl core::fmt::Debug for I2C1 {
911    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
912        f.debug_struct("I2C1").finish()
913    }
914}
915#[doc = "I2C1"]
916pub mod i2c1;
917#[doc = "ADC0"]
918pub struct ADC0 {
919    _marker: PhantomData<*const ()>,
920}
921unsafe impl Send for ADC0 {}
922impl ADC0 {
923    #[doc = r"Pointer to the register block"]
924    pub const PTR: *const adc0::RegisterBlock = 0x4008_2000 as *const _;
925    #[doc = r"Return the pointer to the register block"]
926    #[inline(always)]
927    pub const fn ptr() -> *const adc0::RegisterBlock {
928        Self::PTR
929    }
930}
931impl Deref for ADC0 {
932    type Target = adc0::RegisterBlock;
933    #[inline(always)]
934    fn deref(&self) -> &Self::Target {
935        unsafe { &*Self::PTR }
936    }
937}
938impl core::fmt::Debug for ADC0 {
939    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
940        f.debug_struct("ADC0").finish()
941    }
942}
943#[doc = "ADC0"]
944pub mod adc0;
945#[doc = "ACMP0"]
946pub struct ACMP0 {
947    _marker: PhantomData<*const ()>,
948}
949unsafe impl Send for ACMP0 {}
950impl ACMP0 {
951    #[doc = r"Pointer to the register block"]
952    pub const PTR: *const acmp0::RegisterBlock = 0x4008_0000 as *const _;
953    #[doc = r"Return the pointer to the register block"]
954    #[inline(always)]
955    pub const fn ptr() -> *const acmp0::RegisterBlock {
956        Self::PTR
957    }
958}
959impl Deref for ACMP0 {
960    type Target = acmp0::RegisterBlock;
961    #[inline(always)]
962    fn deref(&self) -> &Self::Target {
963        unsafe { &*Self::PTR }
964    }
965}
966impl core::fmt::Debug for ACMP0 {
967    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
968        f.debug_struct("ACMP0").finish()
969    }
970}
971#[doc = "ACMP0"]
972pub mod acmp0;
973#[doc = "ACMP1"]
974pub struct ACMP1 {
975    _marker: PhantomData<*const ()>,
976}
977unsafe impl Send for ACMP1 {}
978impl ACMP1 {
979    #[doc = r"Pointer to the register block"]
980    pub const PTR: *const acmp1::RegisterBlock = 0x4008_0400 as *const _;
981    #[doc = r"Return the pointer to the register block"]
982    #[inline(always)]
983    pub const fn ptr() -> *const acmp1::RegisterBlock {
984        Self::PTR
985    }
986}
987impl Deref for ACMP1 {
988    type Target = acmp1::RegisterBlock;
989    #[inline(always)]
990    fn deref(&self) -> &Self::Target {
991        unsafe { &*Self::PTR }
992    }
993}
994impl core::fmt::Debug for ACMP1 {
995    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
996        f.debug_struct("ACMP1").finish()
997    }
998}
999#[doc = "ACMP1"]
1000pub mod acmp1;
1001#[doc = "VDAC0"]
1002pub struct VDAC0 {
1003    _marker: PhantomData<*const ()>,
1004}
1005unsafe impl Send for VDAC0 {}
1006impl VDAC0 {
1007    #[doc = r"Pointer to the register block"]
1008    pub const PTR: *const vdac0::RegisterBlock = 0x4008_6000 as *const _;
1009    #[doc = r"Return the pointer to the register block"]
1010    #[inline(always)]
1011    pub const fn ptr() -> *const vdac0::RegisterBlock {
1012        Self::PTR
1013    }
1014}
1015impl Deref for VDAC0 {
1016    type Target = vdac0::RegisterBlock;
1017    #[inline(always)]
1018    fn deref(&self) -> &Self::Target {
1019        unsafe { &*Self::PTR }
1020    }
1021}
1022impl core::fmt::Debug for VDAC0 {
1023    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1024        f.debug_struct("VDAC0").finish()
1025    }
1026}
1027#[doc = "VDAC0"]
1028pub mod vdac0;
1029#[doc = "CSEN"]
1030pub struct CSEN {
1031    _marker: PhantomData<*const ()>,
1032}
1033unsafe impl Send for CSEN {}
1034impl CSEN {
1035    #[doc = r"Pointer to the register block"]
1036    pub const PTR: *const csen::RegisterBlock = 0x4008_e000 as *const _;
1037    #[doc = r"Return the pointer to the register block"]
1038    #[inline(always)]
1039    pub const fn ptr() -> *const csen::RegisterBlock {
1040        Self::PTR
1041    }
1042}
1043impl Deref for CSEN {
1044    type Target = csen::RegisterBlock;
1045    #[inline(always)]
1046    fn deref(&self) -> &Self::Target {
1047        unsafe { &*Self::PTR }
1048    }
1049}
1050impl core::fmt::Debug for CSEN {
1051    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1052        f.debug_struct("CSEN").finish()
1053    }
1054}
1055#[doc = "CSEN"]
1056pub mod csen;
1057#[doc = "RTCC"]
1058pub struct RTCC {
1059    _marker: PhantomData<*const ()>,
1060}
1061unsafe impl Send for RTCC {}
1062impl RTCC {
1063    #[doc = r"Pointer to the register block"]
1064    pub const PTR: *const rtcc::RegisterBlock = 0x4006_2000 as *const _;
1065    #[doc = r"Return the pointer to the register block"]
1066    #[inline(always)]
1067    pub const fn ptr() -> *const rtcc::RegisterBlock {
1068        Self::PTR
1069    }
1070}
1071impl Deref for RTCC {
1072    type Target = rtcc::RegisterBlock;
1073    #[inline(always)]
1074    fn deref(&self) -> &Self::Target {
1075        unsafe { &*Self::PTR }
1076    }
1077}
1078impl core::fmt::Debug for RTCC {
1079    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1080        f.debug_struct("RTCC").finish()
1081    }
1082}
1083#[doc = "RTCC"]
1084pub mod rtcc;
1085#[doc = "WDOG0"]
1086pub struct WDOG0 {
1087    _marker: PhantomData<*const ()>,
1088}
1089unsafe impl Send for WDOG0 {}
1090impl WDOG0 {
1091    #[doc = r"Pointer to the register block"]
1092    pub const PTR: *const wdog0::RegisterBlock = 0x4005_2000 as *const _;
1093    #[doc = r"Return the pointer to the register block"]
1094    #[inline(always)]
1095    pub const fn ptr() -> *const wdog0::RegisterBlock {
1096        Self::PTR
1097    }
1098}
1099impl Deref for WDOG0 {
1100    type Target = wdog0::RegisterBlock;
1101    #[inline(always)]
1102    fn deref(&self) -> &Self::Target {
1103        unsafe { &*Self::PTR }
1104    }
1105}
1106impl core::fmt::Debug for WDOG0 {
1107    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1108        f.debug_struct("WDOG0").finish()
1109    }
1110}
1111#[doc = "WDOG0"]
1112pub mod wdog0;
1113#[doc = "SMU"]
1114pub struct SMU {
1115    _marker: PhantomData<*const ()>,
1116}
1117unsafe impl Send for SMU {}
1118impl SMU {
1119    #[doc = r"Pointer to the register block"]
1120    pub const PTR: *const smu::RegisterBlock = 0x4002_0000 as *const _;
1121    #[doc = r"Return the pointer to the register block"]
1122    #[inline(always)]
1123    pub const fn ptr() -> *const smu::RegisterBlock {
1124        Self::PTR
1125    }
1126}
1127impl Deref for SMU {
1128    type Target = smu::RegisterBlock;
1129    #[inline(always)]
1130    fn deref(&self) -> &Self::Target {
1131        unsafe { &*Self::PTR }
1132    }
1133}
1134impl core::fmt::Debug for SMU {
1135    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1136        f.debug_struct("SMU").finish()
1137    }
1138}
1139#[doc = "SMU"]
1140pub mod smu;
1141#[doc = "TRNG0"]
1142pub struct TRNG0 {
1143    _marker: PhantomData<*const ()>,
1144}
1145unsafe impl Send for TRNG0 {}
1146impl TRNG0 {
1147    #[doc = r"Pointer to the register block"]
1148    pub const PTR: *const trng0::RegisterBlock = 0x4001_d000 as *const _;
1149    #[doc = r"Return the pointer to the register block"]
1150    #[inline(always)]
1151    pub const fn ptr() -> *const trng0::RegisterBlock {
1152        Self::PTR
1153    }
1154}
1155impl Deref for TRNG0 {
1156    type Target = trng0::RegisterBlock;
1157    #[inline(always)]
1158    fn deref(&self) -> &Self::Target {
1159        unsafe { &*Self::PTR }
1160    }
1161}
1162impl core::fmt::Debug for TRNG0 {
1163    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1164        f.debug_struct("TRNG0").finish()
1165    }
1166}
1167#[doc = "TRNG0"]
1168pub mod trng0;
1169#[doc = "MTB"]
1170pub struct MTB {
1171    _marker: PhantomData<*const ()>,
1172}
1173unsafe impl Send for MTB {}
1174impl MTB {
1175    #[doc = r"Pointer to the register block"]
1176    pub const PTR: *const mtb::RegisterBlock = 0xf004_0000 as *const _;
1177    #[doc = r"Return the pointer to the register block"]
1178    #[inline(always)]
1179    pub const fn ptr() -> *const mtb::RegisterBlock {
1180        Self::PTR
1181    }
1182}
1183impl Deref for MTB {
1184    type Target = mtb::RegisterBlock;
1185    #[inline(always)]
1186    fn deref(&self) -> &Self::Target {
1187        unsafe { &*Self::PTR }
1188    }
1189}
1190impl core::fmt::Debug for MTB {
1191    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1192        f.debug_struct("MTB").finish()
1193    }
1194}
1195#[doc = "MTB"]
1196pub mod mtb;
1197#[no_mangle]
1198static mut DEVICE_PERIPHERALS: bool = false;
1199#[doc = r"All the peripherals"]
1200#[allow(non_snake_case)]
1201pub struct Peripherals {
1202    #[doc = "MSC"]
1203    pub MSC: MSC,
1204    #[doc = "EMU"]
1205    pub EMU: EMU,
1206    #[doc = "RMU"]
1207    pub RMU: RMU,
1208    #[doc = "CMU"]
1209    pub CMU: CMU,
1210    #[doc = "CRYPTO0"]
1211    pub CRYPTO0: CRYPTO0,
1212    #[doc = "LESENSE"]
1213    pub LESENSE: LESENSE,
1214    #[doc = "GPIO"]
1215    pub GPIO: GPIO,
1216    #[doc = "PRS"]
1217    pub PRS: PRS,
1218    #[doc = "LDMA"]
1219    pub LDMA: LDMA,
1220    #[doc = "GPCRC"]
1221    pub GPCRC: GPCRC,
1222    #[doc = "CAN0"]
1223    pub CAN0: CAN0,
1224    #[doc = "TIMER0"]
1225    pub TIMER0: TIMER0,
1226    #[doc = "TIMER1"]
1227    pub TIMER1: TIMER1,
1228    #[doc = "WTIMER0"]
1229    pub WTIMER0: WTIMER0,
1230    #[doc = "WTIMER1"]
1231    pub WTIMER1: WTIMER1,
1232    #[doc = "USART0"]
1233    pub USART0: USART0,
1234    #[doc = "USART1"]
1235    pub USART1: USART1,
1236    #[doc = "USART2"]
1237    pub USART2: USART2,
1238    #[doc = "USART3"]
1239    pub USART3: USART3,
1240    #[doc = "UART0"]
1241    pub UART0: UART0,
1242    #[doc = "LEUART0"]
1243    pub LEUART0: LEUART0,
1244    #[doc = "LETIMER0"]
1245    pub LETIMER0: LETIMER0,
1246    #[doc = "CRYOTIMER"]
1247    pub CRYOTIMER: CRYOTIMER,
1248    #[doc = "PCNT0"]
1249    pub PCNT0: PCNT0,
1250    #[doc = "I2C0"]
1251    pub I2C0: I2C0,
1252    #[doc = "I2C1"]
1253    pub I2C1: I2C1,
1254    #[doc = "ADC0"]
1255    pub ADC0: ADC0,
1256    #[doc = "ACMP0"]
1257    pub ACMP0: ACMP0,
1258    #[doc = "ACMP1"]
1259    pub ACMP1: ACMP1,
1260    #[doc = "VDAC0"]
1261    pub VDAC0: VDAC0,
1262    #[doc = "CSEN"]
1263    pub CSEN: CSEN,
1264    #[doc = "RTCC"]
1265    pub RTCC: RTCC,
1266    #[doc = "WDOG0"]
1267    pub WDOG0: WDOG0,
1268    #[doc = "SMU"]
1269    pub SMU: SMU,
1270    #[doc = "TRNG0"]
1271    pub TRNG0: TRNG0,
1272    #[doc = "MTB"]
1273    pub MTB: MTB,
1274}
1275impl Peripherals {
1276    #[doc = r"Returns all the peripherals *once*"]
1277    #[inline]
1278    pub fn take() -> Option<Self> {
1279        cortex_m::interrupt::free(|_| {
1280            if unsafe { DEVICE_PERIPHERALS } {
1281                None
1282            } else {
1283                Some(unsafe { Peripherals::steal() })
1284            }
1285        })
1286    }
1287    #[doc = r"Unchecked version of `Peripherals::take`"]
1288    #[inline]
1289    pub unsafe fn steal() -> Self {
1290        DEVICE_PERIPHERALS = true;
1291        Peripherals {
1292            MSC: MSC {
1293                _marker: PhantomData,
1294            },
1295            EMU: EMU {
1296                _marker: PhantomData,
1297            },
1298            RMU: RMU {
1299                _marker: PhantomData,
1300            },
1301            CMU: CMU {
1302                _marker: PhantomData,
1303            },
1304            CRYPTO0: CRYPTO0 {
1305                _marker: PhantomData,
1306            },
1307            LESENSE: LESENSE {
1308                _marker: PhantomData,
1309            },
1310            GPIO: GPIO {
1311                _marker: PhantomData,
1312            },
1313            PRS: PRS {
1314                _marker: PhantomData,
1315            },
1316            LDMA: LDMA {
1317                _marker: PhantomData,
1318            },
1319            GPCRC: GPCRC {
1320                _marker: PhantomData,
1321            },
1322            CAN0: CAN0 {
1323                _marker: PhantomData,
1324            },
1325            TIMER0: TIMER0 {
1326                _marker: PhantomData,
1327            },
1328            TIMER1: TIMER1 {
1329                _marker: PhantomData,
1330            },
1331            WTIMER0: WTIMER0 {
1332                _marker: PhantomData,
1333            },
1334            WTIMER1: WTIMER1 {
1335                _marker: PhantomData,
1336            },
1337            USART0: USART0 {
1338                _marker: PhantomData,
1339            },
1340            USART1: USART1 {
1341                _marker: PhantomData,
1342            },
1343            USART2: USART2 {
1344                _marker: PhantomData,
1345            },
1346            USART3: USART3 {
1347                _marker: PhantomData,
1348            },
1349            UART0: UART0 {
1350                _marker: PhantomData,
1351            },
1352            LEUART0: LEUART0 {
1353                _marker: PhantomData,
1354            },
1355            LETIMER0: LETIMER0 {
1356                _marker: PhantomData,
1357            },
1358            CRYOTIMER: CRYOTIMER {
1359                _marker: PhantomData,
1360            },
1361            PCNT0: PCNT0 {
1362                _marker: PhantomData,
1363            },
1364            I2C0: I2C0 {
1365                _marker: PhantomData,
1366            },
1367            I2C1: I2C1 {
1368                _marker: PhantomData,
1369            },
1370            ADC0: ADC0 {
1371                _marker: PhantomData,
1372            },
1373            ACMP0: ACMP0 {
1374                _marker: PhantomData,
1375            },
1376            ACMP1: ACMP1 {
1377                _marker: PhantomData,
1378            },
1379            VDAC0: VDAC0 {
1380                _marker: PhantomData,
1381            },
1382            CSEN: CSEN {
1383                _marker: PhantomData,
1384            },
1385            RTCC: RTCC {
1386                _marker: PhantomData,
1387            },
1388            WDOG0: WDOG0 {
1389                _marker: PhantomData,
1390            },
1391            SMU: SMU {
1392                _marker: PhantomData,
1393            },
1394            TRNG0: TRNG0 {
1395                _marker: PhantomData,
1396            },
1397            MTB: MTB {
1398                _marker: PhantomData,
1399            },
1400        }
1401    }
1402}