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}