iwrl64xx_pac/
lib.rs

1#![doc = "Peripheral access API for IWRL6432 microcontrollers (generated using svd2rust v0.33.4 ( ))\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.33.4/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#![allow(non_camel_case_types)]
4#![allow(non_snake_case)]
5#![no_std]
6use core::marker::PhantomData;
7use core::ops::Deref;
8#[doc = r"Number available in the NVIC for configuring priority"]
9pub const NVIC_PRIO_BITS: u8 = 3;
10#[allow(unused_imports)]
11use generic::*;
12#[doc = r"Common register and bit access and modify traits"]
13pub mod generic;
14#[cfg(feature = "rt")]
15extern "C" {}
16#[doc(hidden)]
17#[repr(C)]
18pub union Vector {
19    _handler: unsafe extern "C" fn(),
20    _reserved: u32,
21}
22#[cfg(feature = "rt")]
23#[doc(hidden)]
24#[link_section = ".vector_table.interrupts"]
25#[no_mangle]
26pub static __INTERRUPTS: [Vector; 0] = [];
27#[doc = r"Enumeration of all the interrupts."]
28#[derive(Copy, Clone, Debug, PartialEq, Eq)]
29pub enum Interrupt {}
30unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
31    #[inline(always)]
32    fn number(self) -> u16 {
33        match self {}
34    }
35}
36#[doc = "GPADC_CTRL"]
37pub struct GpadcCtrl {
38    _marker: PhantomData<*const ()>,
39}
40unsafe impl Send for GpadcCtrl {}
41impl GpadcCtrl {
42    #[doc = r"Pointer to the register block"]
43    pub const PTR: *const gpadc_ctrl::RegisterBlock = 0x50f7_fc00 as *const _;
44    #[doc = r"Return the pointer to the register block"]
45    #[inline(always)]
46    pub const fn ptr() -> *const gpadc_ctrl::RegisterBlock {
47        Self::PTR
48    }
49    #[doc = r" Steal an instance of this peripheral"]
50    #[doc = r""]
51    #[doc = r" # Safety"]
52    #[doc = r""]
53    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
54    #[doc = r" that may race with any existing instances, for example by only"]
55    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
56    #[doc = r" original peripheral and using critical sections to coordinate"]
57    #[doc = r" access between multiple new instances."]
58    #[doc = r""]
59    #[doc = r" Additionally, other software such as HALs may rely on only one"]
60    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
61    #[doc = r" no stolen instances are passed to such software."]
62    pub unsafe fn steal() -> Self {
63        Self {
64            _marker: PhantomData,
65        }
66    }
67}
68impl Deref for GpadcCtrl {
69    type Target = gpadc_ctrl::RegisterBlock;
70    #[inline(always)]
71    fn deref(&self) -> &Self::Target {
72        unsafe { &*Self::PTR }
73    }
74}
75impl core::fmt::Debug for GpadcCtrl {
76    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
77        f.debug_struct("GpadcCtrl").finish()
78    }
79}
80#[doc = "GPADC_CTRL"]
81pub mod gpadc_ctrl;
82#[doc = "APP_LIN"]
83pub struct AppLin {
84    _marker: PhantomData<*const ()>,
85}
86unsafe impl Send for AppLin {}
87impl AppLin {
88    #[doc = r"Pointer to the register block"]
89    pub const PTR: *const app_lin::RegisterBlock = 0x5300_0000 as *const _;
90    #[doc = r"Return the pointer to the register block"]
91    #[inline(always)]
92    pub const fn ptr() -> *const app_lin::RegisterBlock {
93        Self::PTR
94    }
95    #[doc = r" Steal an instance of this peripheral"]
96    #[doc = r""]
97    #[doc = r" # Safety"]
98    #[doc = r""]
99    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
100    #[doc = r" that may race with any existing instances, for example by only"]
101    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
102    #[doc = r" original peripheral and using critical sections to coordinate"]
103    #[doc = r" access between multiple new instances."]
104    #[doc = r""]
105    #[doc = r" Additionally, other software such as HALs may rely on only one"]
106    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
107    #[doc = r" no stolen instances are passed to such software."]
108    pub unsafe fn steal() -> Self {
109        Self {
110            _marker: PhantomData,
111        }
112    }
113}
114impl Deref for AppLin {
115    type Target = app_lin::RegisterBlock;
116    #[inline(always)]
117    fn deref(&self) -> &Self::Target {
118        unsafe { &*Self::PTR }
119    }
120}
121impl core::fmt::Debug for AppLin {
122    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
123        f.debug_struct("AppLin").finish()
124    }
125}
126#[doc = "APP_LIN"]
127pub mod app_lin;
128#[doc = "APP_UART"]
129pub struct AppUart0 {
130    _marker: PhantomData<*const ()>,
131}
132unsafe impl Send for AppUart0 {}
133impl AppUart0 {
134    #[doc = r"Pointer to the register block"]
135    pub const PTR: *const app_uart_0::RegisterBlock = 0x53f7_f000 as *const _;
136    #[doc = r"Return the pointer to the register block"]
137    #[inline(always)]
138    pub const fn ptr() -> *const app_uart_0::RegisterBlock {
139        Self::PTR
140    }
141    #[doc = r" Steal an instance of this peripheral"]
142    #[doc = r""]
143    #[doc = r" # Safety"]
144    #[doc = r""]
145    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
146    #[doc = r" that may race with any existing instances, for example by only"]
147    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
148    #[doc = r" original peripheral and using critical sections to coordinate"]
149    #[doc = r" access between multiple new instances."]
150    #[doc = r""]
151    #[doc = r" Additionally, other software such as HALs may rely on only one"]
152    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
153    #[doc = r" no stolen instances are passed to such software."]
154    pub unsafe fn steal() -> Self {
155        Self {
156            _marker: PhantomData,
157        }
158    }
159}
160impl Deref for AppUart0 {
161    type Target = app_uart_0::RegisterBlock;
162    #[inline(always)]
163    fn deref(&self) -> &Self::Target {
164        unsafe { &*Self::PTR }
165    }
166}
167impl core::fmt::Debug for AppUart0 {
168    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
169        f.debug_struct("AppUart0").finish()
170    }
171}
172#[doc = "APP_UART"]
173pub mod app_uart_0;
174#[doc = "APP_SPI"]
175pub struct AppSpi0 {
176    _marker: PhantomData<*const ()>,
177}
178unsafe impl Send for AppSpi0 {}
179impl AppSpi0 {
180    #[doc = r"Pointer to the register block"]
181    pub const PTR: *const app_spi_0::RegisterBlock = 0x53f7_f400 as *const _;
182    #[doc = r"Return the pointer to the register block"]
183    #[inline(always)]
184    pub const fn ptr() -> *const app_spi_0::RegisterBlock {
185        Self::PTR
186    }
187    #[doc = r" Steal an instance of this peripheral"]
188    #[doc = r""]
189    #[doc = r" # Safety"]
190    #[doc = r""]
191    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
192    #[doc = r" that may race with any existing instances, for example by only"]
193    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
194    #[doc = r" original peripheral and using critical sections to coordinate"]
195    #[doc = r" access between multiple new instances."]
196    #[doc = r""]
197    #[doc = r" Additionally, other software such as HALs may rely on only one"]
198    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
199    #[doc = r" no stolen instances are passed to such software."]
200    pub unsafe fn steal() -> Self {
201        Self {
202            _marker: PhantomData,
203        }
204    }
205}
206impl Deref for AppSpi0 {
207    type Target = app_spi_0::RegisterBlock;
208    #[inline(always)]
209    fn deref(&self) -> &Self::Target {
210        unsafe { &*Self::PTR }
211    }
212}
213impl core::fmt::Debug for AppSpi0 {
214    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
215        f.debug_struct("AppSpi0").finish()
216    }
217}
218#[doc = "APP_SPI"]
219pub mod app_spi_0;
220#[doc = "APP_CANCFG"]
221pub struct AppCancfg {
222    _marker: PhantomData<*const ()>,
223}
224unsafe impl Send for AppCancfg {}
225impl AppCancfg {
226    #[doc = r"Pointer to the register block"]
227    pub const PTR: *const app_cancfg::RegisterBlock = 0x53f7_f800 as *const _;
228    #[doc = r"Return the pointer to the register block"]
229    #[inline(always)]
230    pub const fn ptr() -> *const app_cancfg::RegisterBlock {
231        Self::PTR
232    }
233    #[doc = r" Steal an instance of this peripheral"]
234    #[doc = r""]
235    #[doc = r" # Safety"]
236    #[doc = r""]
237    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
238    #[doc = r" that may race with any existing instances, for example by only"]
239    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
240    #[doc = r" original peripheral and using critical sections to coordinate"]
241    #[doc = r" access between multiple new instances."]
242    #[doc = r""]
243    #[doc = r" Additionally, other software such as HALs may rely on only one"]
244    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
245    #[doc = r" no stolen instances are passed to such software."]
246    pub unsafe fn steal() -> Self {
247        Self {
248            _marker: PhantomData,
249        }
250    }
251}
252impl Deref for AppCancfg {
253    type Target = app_cancfg::RegisterBlock;
254    #[inline(always)]
255    fn deref(&self) -> &Self::Target {
256        unsafe { &*Self::PTR }
257    }
258}
259impl core::fmt::Debug for AppCancfg {
260    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
261        f.debug_struct("AppCancfg").finish()
262    }
263}
264#[doc = "APP_CANCFG"]
265pub mod app_cancfg;
266#[doc = "APP_CANECC"]
267pub struct AppCanecc {
268    _marker: PhantomData<*const ()>,
269}
270unsafe impl Send for AppCanecc {}
271impl AppCanecc {
272    #[doc = r"Pointer to the register block"]
273    pub const PTR: *const app_canecc::RegisterBlock = 0x53f7_fc00 as *const _;
274    #[doc = r"Return the pointer to the register block"]
275    #[inline(always)]
276    pub const fn ptr() -> *const app_canecc::RegisterBlock {
277        Self::PTR
278    }
279    #[doc = r" Steal an instance of this peripheral"]
280    #[doc = r""]
281    #[doc = r" # Safety"]
282    #[doc = r""]
283    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
284    #[doc = r" that may race with any existing instances, for example by only"]
285    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
286    #[doc = r" original peripheral and using critical sections to coordinate"]
287    #[doc = r" access between multiple new instances."]
288    #[doc = r""]
289    #[doc = r" Additionally, other software such as HALs may rely on only one"]
290    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
291    #[doc = r" no stolen instances are passed to such software."]
292    pub unsafe fn steal() -> Self {
293        Self {
294            _marker: PhantomData,
295        }
296    }
297}
298impl Deref for AppCanecc {
299    type Target = app_canecc::RegisterBlock;
300    #[inline(always)]
301    fn deref(&self) -> &Self::Target {
302        unsafe { &*Self::PTR }
303    }
304}
305impl core::fmt::Debug for AppCanecc {
306    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
307        f.debug_struct("AppCanecc").finish()
308    }
309}
310#[doc = "APP_CANECC"]
311pub mod app_canecc;
312#[doc = "Register test environment"]
313pub struct TptcA0 {
314    _marker: PhantomData<*const ()>,
315}
316unsafe impl Send for TptcA0 {}
317impl TptcA0 {
318    #[doc = r"Pointer to the register block"]
319    pub const PTR: *const tptc_a0::RegisterBlock = 0x5400_0000 as *const _;
320    #[doc = r"Return the pointer to the register block"]
321    #[inline(always)]
322    pub const fn ptr() -> *const tptc_a0::RegisterBlock {
323        Self::PTR
324    }
325    #[doc = r" Steal an instance of this peripheral"]
326    #[doc = r""]
327    #[doc = r" # Safety"]
328    #[doc = r""]
329    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
330    #[doc = r" that may race with any existing instances, for example by only"]
331    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
332    #[doc = r" original peripheral and using critical sections to coordinate"]
333    #[doc = r" access between multiple new instances."]
334    #[doc = r""]
335    #[doc = r" Additionally, other software such as HALs may rely on only one"]
336    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
337    #[doc = r" no stolen instances are passed to such software."]
338    pub unsafe fn steal() -> Self {
339        Self {
340            _marker: PhantomData,
341        }
342    }
343}
344impl Deref for TptcA0 {
345    type Target = tptc_a0::RegisterBlock;
346    #[inline(always)]
347    fn deref(&self) -> &Self::Target {
348        unsafe { &*Self::PTR }
349    }
350}
351impl core::fmt::Debug for TptcA0 {
352    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
353        f.debug_struct("TptcA0").finish()
354    }
355}
356#[doc = "Register test environment"]
357pub mod tptc_a0;
358#[doc = "Register test environment"]
359pub struct TptcA1 {
360    _marker: PhantomData<*const ()>,
361}
362unsafe impl Send for TptcA1 {}
363impl TptcA1 {
364    #[doc = r"Pointer to the register block"]
365    pub const PTR: *const tptc_a1::RegisterBlock = 0x5401_0000 as *const _;
366    #[doc = r"Return the pointer to the register block"]
367    #[inline(always)]
368    pub const fn ptr() -> *const tptc_a1::RegisterBlock {
369        Self::PTR
370    }
371    #[doc = r" Steal an instance of this peripheral"]
372    #[doc = r""]
373    #[doc = r" # Safety"]
374    #[doc = r""]
375    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
376    #[doc = r" that may race with any existing instances, for example by only"]
377    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
378    #[doc = r" original peripheral and using critical sections to coordinate"]
379    #[doc = r" access between multiple new instances."]
380    #[doc = r""]
381    #[doc = r" Additionally, other software such as HALs may rely on only one"]
382    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
383    #[doc = r" no stolen instances are passed to such software."]
384    pub unsafe fn steal() -> Self {
385        Self {
386            _marker: PhantomData,
387        }
388    }
389}
390impl Deref for TptcA1 {
391    type Target = tptc_a1::RegisterBlock;
392    #[inline(always)]
393    fn deref(&self) -> &Self::Target {
394        unsafe { &*Self::PTR }
395    }
396}
397impl core::fmt::Debug for TptcA1 {
398    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
399        f.debug_struct("TptcA1").finish()
400    }
401}
402#[doc = "Register test environment"]
403pub mod tptc_a1;
404#[doc = "APP_CRC"]
405pub struct AppCrc {
406    _marker: PhantomData<*const ()>,
407}
408unsafe impl Send for AppCrc {}
409impl AppCrc {
410    #[doc = r"Pointer to the register block"]
411    pub const PTR: *const app_crc::RegisterBlock = 0x5402_0000 as *const _;
412    #[doc = r"Return the pointer to the register block"]
413    #[inline(always)]
414    pub const fn ptr() -> *const app_crc::RegisterBlock {
415        Self::PTR
416    }
417    #[doc = r" Steal an instance of this peripheral"]
418    #[doc = r""]
419    #[doc = r" # Safety"]
420    #[doc = r""]
421    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
422    #[doc = r" that may race with any existing instances, for example by only"]
423    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
424    #[doc = r" original peripheral and using critical sections to coordinate"]
425    #[doc = r" access between multiple new instances."]
426    #[doc = r""]
427    #[doc = r" Additionally, other software such as HALs may rely on only one"]
428    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
429    #[doc = r" no stolen instances are passed to such software."]
430    pub unsafe fn steal() -> Self {
431        Self {
432            _marker: PhantomData,
433        }
434    }
435}
436impl Deref for AppCrc {
437    type Target = app_crc::RegisterBlock;
438    #[inline(always)]
439    fn deref(&self) -> &Self::Target {
440        unsafe { &*Self::PTR }
441    }
442}
443impl core::fmt::Debug for AppCrc {
444    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
445        f.debug_struct("AppCrc").finish()
446    }
447}
448#[doc = "APP_CRC"]
449pub mod app_crc;
450#[doc = "HWA_CFG"]
451pub struct HwaCfg {
452    _marker: PhantomData<*const ()>,
453}
454unsafe impl Send for HwaCfg {}
455impl HwaCfg {
456    #[doc = r"Pointer to the register block"]
457    pub const PTR: *const hwa_cfg::RegisterBlock = 0x5501_0000 as *const _;
458    #[doc = r"Return the pointer to the register block"]
459    #[inline(always)]
460    pub const fn ptr() -> *const hwa_cfg::RegisterBlock {
461        Self::PTR
462    }
463    #[doc = r" Steal an instance of this peripheral"]
464    #[doc = r""]
465    #[doc = r" # Safety"]
466    #[doc = r""]
467    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
468    #[doc = r" that may race with any existing instances, for example by only"]
469    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
470    #[doc = r" original peripheral and using critical sections to coordinate"]
471    #[doc = r" access between multiple new instances."]
472    #[doc = r""]
473    #[doc = r" Additionally, other software such as HALs may rely on only one"]
474    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
475    #[doc = r" no stolen instances are passed to such software."]
476    pub unsafe fn steal() -> Self {
477        Self {
478            _marker: PhantomData,
479        }
480    }
481}
482impl Deref for HwaCfg {
483    type Target = hwa_cfg::RegisterBlock;
484    #[inline(always)]
485    fn deref(&self) -> &Self::Target {
486        unsafe { &*Self::PTR }
487    }
488}
489impl core::fmt::Debug for HwaCfg {
490    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
491        f.debug_struct("HwaCfg").finish()
492    }
493}
494#[doc = "HWA_CFG"]
495pub mod hwa_cfg;
496#[doc = "Register test environment"]
497pub struct TptcB0 {
498    _marker: PhantomData<*const ()>,
499}
500unsafe impl Send for TptcB0 {}
501impl TptcB0 {
502    #[doc = r"Pointer to the register block"]
503    pub const PTR: *const tptc_b0::RegisterBlock = 0x5502_0000 as *const _;
504    #[doc = r"Return the pointer to the register block"]
505    #[inline(always)]
506    pub const fn ptr() -> *const tptc_b0::RegisterBlock {
507        Self::PTR
508    }
509    #[doc = r" Steal an instance of this peripheral"]
510    #[doc = r""]
511    #[doc = r" # Safety"]
512    #[doc = r""]
513    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
514    #[doc = r" that may race with any existing instances, for example by only"]
515    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
516    #[doc = r" original peripheral and using critical sections to coordinate"]
517    #[doc = r" access between multiple new instances."]
518    #[doc = r""]
519    #[doc = r" Additionally, other software such as HALs may rely on only one"]
520    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
521    #[doc = r" no stolen instances are passed to such software."]
522    pub unsafe fn steal() -> Self {
523        Self {
524            _marker: PhantomData,
525        }
526    }
527}
528impl Deref for TptcB0 {
529    type Target = tptc_b0::RegisterBlock;
530    #[inline(always)]
531    fn deref(&self) -> &Self::Target {
532        unsafe { &*Self::PTR }
533    }
534}
535impl core::fmt::Debug for TptcB0 {
536    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
537        f.debug_struct("TptcB0").finish()
538    }
539}
540#[doc = "Register test environment"]
541pub mod tptc_b0;
542#[doc = "Register test environment"]
543pub struct TptcB0_1 {
544    _marker: PhantomData<*const ()>,
545}
546unsafe impl Send for TptcB0_1 {}
547impl TptcB0_1 {
548    #[doc = r"Pointer to the register block"]
549    pub const PTR: *const tptc_b0_1::RegisterBlock = 0x5504_0000 as *const _;
550    #[doc = r"Return the pointer to the register block"]
551    #[inline(always)]
552    pub const fn ptr() -> *const tptc_b0_1::RegisterBlock {
553        Self::PTR
554    }
555    #[doc = r" Steal an instance of this peripheral"]
556    #[doc = r""]
557    #[doc = r" # Safety"]
558    #[doc = r""]
559    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
560    #[doc = r" that may race with any existing instances, for example by only"]
561    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
562    #[doc = r" original peripheral and using critical sections to coordinate"]
563    #[doc = r" access between multiple new instances."]
564    #[doc = r""]
565    #[doc = r" Additionally, other software such as HALs may rely on only one"]
566    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
567    #[doc = r" no stolen instances are passed to such software."]
568    pub unsafe fn steal() -> Self {
569        Self {
570            _marker: PhantomData,
571        }
572    }
573}
574impl Deref for TptcB0_1 {
575    type Target = tptc_b0_1::RegisterBlock;
576    #[inline(always)]
577    fn deref(&self) -> &Self::Target {
578        unsafe { &*Self::PTR }
579    }
580}
581impl core::fmt::Debug for TptcB0_1 {
582    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
583        f.debug_struct("TptcB0_1").finish()
584    }
585}
586#[doc = "Register test environment"]
587pub mod tptc_b0_1;
588#[doc = "TPCC"]
589pub struct TpccB {
590    _marker: PhantomData<*const ()>,
591}
592unsafe impl Send for TpccB {}
593impl TpccB {
594    #[doc = r"Pointer to the register block"]
595    pub const PTR: *const tpcc_b::RegisterBlock = 0x5508_0000 as *const _;
596    #[doc = r"Return the pointer to the register block"]
597    #[inline(always)]
598    pub const fn ptr() -> *const tpcc_b::RegisterBlock {
599        Self::PTR
600    }
601    #[doc = r" Steal an instance of this peripheral"]
602    #[doc = r""]
603    #[doc = r" # Safety"]
604    #[doc = r""]
605    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
606    #[doc = r" that may race with any existing instances, for example by only"]
607    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
608    #[doc = r" original peripheral and using critical sections to coordinate"]
609    #[doc = r" access between multiple new instances."]
610    #[doc = r""]
611    #[doc = r" Additionally, other software such as HALs may rely on only one"]
612    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
613    #[doc = r" no stolen instances are passed to such software."]
614    pub unsafe fn steal() -> Self {
615        Self {
616            _marker: PhantomData,
617        }
618    }
619}
620impl Deref for TpccB {
621    type Target = tpcc_b::RegisterBlock;
622    #[inline(always)]
623    fn deref(&self) -> &Self::Target {
624        unsafe { &*Self::PTR }
625    }
626}
627impl core::fmt::Debug for TpccB {
628    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
629        f.debug_struct("TpccB").finish()
630    }
631}
632#[doc = "TPCC"]
633pub mod tpcc_b;
634#[doc = "TPCC"]
635pub struct TpccA {
636    _marker: PhantomData<*const ()>,
637}
638unsafe impl Send for TpccA {}
639impl TpccA {
640    #[doc = r"Pointer to the register block"]
641    pub const PTR: *const tpcc_a::RegisterBlock = 0x5600_0000 as *const _;
642    #[doc = r"Return the pointer to the register block"]
643    #[inline(always)]
644    pub const fn ptr() -> *const tpcc_a::RegisterBlock {
645        Self::PTR
646    }
647    #[doc = r" Steal an instance of this peripheral"]
648    #[doc = r""]
649    #[doc = r" # Safety"]
650    #[doc = r""]
651    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
652    #[doc = r" that may race with any existing instances, for example by only"]
653    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
654    #[doc = r" original peripheral and using critical sections to coordinate"]
655    #[doc = r" access between multiple new instances."]
656    #[doc = r""]
657    #[doc = r" Additionally, other software such as HALs may rely on only one"]
658    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
659    #[doc = r" no stolen instances are passed to such software."]
660    pub unsafe fn steal() -> Self {
661        Self {
662            _marker: PhantomData,
663        }
664    }
665}
666impl Deref for TpccA {
667    type Target = tpcc_a::RegisterBlock;
668    #[inline(always)]
669    fn deref(&self) -> &Self::Target {
670        unsafe { &*Self::PTR }
671    }
672}
673impl core::fmt::Debug for TpccA {
674    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
675        f.debug_struct("TpccA").finish()
676    }
677}
678#[doc = "TPCC"]
679pub mod tpcc_a;
680#[doc = "APP_RCM"]
681pub struct AppRcm {
682    _marker: PhantomData<*const ()>,
683}
684unsafe impl Send for AppRcm {}
685impl AppRcm {
686    #[doc = r"Pointer to the register block"]
687    pub const PTR: *const app_rcm::RegisterBlock = 0x5604_0000 as *const _;
688    #[doc = r"Return the pointer to the register block"]
689    #[inline(always)]
690    pub const fn ptr() -> *const app_rcm::RegisterBlock {
691        Self::PTR
692    }
693    #[doc = r" Steal an instance of this peripheral"]
694    #[doc = r""]
695    #[doc = r" # Safety"]
696    #[doc = r""]
697    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
698    #[doc = r" that may race with any existing instances, for example by only"]
699    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
700    #[doc = r" original peripheral and using critical sections to coordinate"]
701    #[doc = r" access between multiple new instances."]
702    #[doc = r""]
703    #[doc = r" Additionally, other software such as HALs may rely on only one"]
704    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
705    #[doc = r" no stolen instances are passed to such software."]
706    pub unsafe fn steal() -> Self {
707        Self {
708            _marker: PhantomData,
709        }
710    }
711}
712impl Deref for AppRcm {
713    type Target = app_rcm::RegisterBlock;
714    #[inline(always)]
715    fn deref(&self) -> &Self::Target {
716        unsafe { &*Self::PTR }
717    }
718}
719impl core::fmt::Debug for AppRcm {
720    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
721        f.debug_struct("AppRcm").finish()
722    }
723}
724#[doc = "APP_RCM"]
725pub mod app_rcm;
726#[doc = "APP_CTRL"]
727pub struct AppCtrl {
728    _marker: PhantomData<*const ()>,
729}
730unsafe impl Send for AppCtrl {}
731impl AppCtrl {
732    #[doc = r"Pointer to the register block"]
733    pub const PTR: *const app_ctrl::RegisterBlock = 0x5606_0000 as *const _;
734    #[doc = r"Return the pointer to the register block"]
735    #[inline(always)]
736    pub const fn ptr() -> *const app_ctrl::RegisterBlock {
737        Self::PTR
738    }
739    #[doc = r" Steal an instance of this peripheral"]
740    #[doc = r""]
741    #[doc = r" # Safety"]
742    #[doc = r""]
743    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
744    #[doc = r" that may race with any existing instances, for example by only"]
745    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
746    #[doc = r" original peripheral and using critical sections to coordinate"]
747    #[doc = r" access between multiple new instances."]
748    #[doc = r""]
749    #[doc = r" Additionally, other software such as HALs may rely on only one"]
750    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
751    #[doc = r" no stolen instances are passed to such software."]
752    pub unsafe fn steal() -> Self {
753        Self {
754            _marker: PhantomData,
755        }
756    }
757}
758impl Deref for AppCtrl {
759    type Target = app_ctrl::RegisterBlock;
760    #[inline(always)]
761    fn deref(&self) -> &Self::Target {
762        unsafe { &*Self::PTR }
763    }
764}
765impl core::fmt::Debug for AppCtrl {
766    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
767        f.debug_struct("AppCtrl").finish()
768    }
769}
770#[doc = "APP_CTRL"]
771pub mod app_ctrl;
772#[doc = "APP_HWA_ADCBUF_CTRL"]
773pub struct AppHwaAdcbufCtrl {
774    _marker: PhantomData<*const ()>,
775}
776unsafe impl Send for AppHwaAdcbufCtrl {}
777impl AppHwaAdcbufCtrl {
778    #[doc = r"Pointer to the register block"]
779    pub const PTR: *const app_hwa_adcbuf_ctrl::RegisterBlock = 0x5608_0000 as *const _;
780    #[doc = r"Return the pointer to the register block"]
781    #[inline(always)]
782    pub const fn ptr() -> *const app_hwa_adcbuf_ctrl::RegisterBlock {
783        Self::PTR
784    }
785    #[doc = r" Steal an instance of this peripheral"]
786    #[doc = r""]
787    #[doc = r" # Safety"]
788    #[doc = r""]
789    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
790    #[doc = r" that may race with any existing instances, for example by only"]
791    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
792    #[doc = r" original peripheral and using critical sections to coordinate"]
793    #[doc = r" access between multiple new instances."]
794    #[doc = r""]
795    #[doc = r" Additionally, other software such as HALs may rely on only one"]
796    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
797    #[doc = r" no stolen instances are passed to such software."]
798    pub unsafe fn steal() -> Self {
799        Self {
800            _marker: PhantomData,
801        }
802    }
803}
804impl Deref for AppHwaAdcbufCtrl {
805    type Target = app_hwa_adcbuf_ctrl::RegisterBlock;
806    #[inline(always)]
807    fn deref(&self) -> &Self::Target {
808        unsafe { &*Self::PTR }
809    }
810}
811impl core::fmt::Debug for AppHwaAdcbufCtrl {
812    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
813        f.debug_struct("AppHwaAdcbufCtrl").finish()
814    }
815}
816#[doc = "APP_HWA_ADCBUF_CTRL"]
817pub mod app_hwa_adcbuf_ctrl;
818#[doc = "APP_ECC_AGG"]
819pub struct AppEccAgg {
820    _marker: PhantomData<*const ()>,
821}
822unsafe impl Send for AppEccAgg {}
823impl AppEccAgg {
824    #[doc = r"Pointer to the register block"]
825    pub const PTR: *const app_ecc_agg::RegisterBlock = 0x56f7_ec00 as *const _;
826    #[doc = r"Return the pointer to the register block"]
827    #[inline(always)]
828    pub const fn ptr() -> *const app_ecc_agg::RegisterBlock {
829        Self::PTR
830    }
831    #[doc = r" Steal an instance of this peripheral"]
832    #[doc = r""]
833    #[doc = r" # Safety"]
834    #[doc = r""]
835    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
836    #[doc = r" that may race with any existing instances, for example by only"]
837    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
838    #[doc = r" original peripheral and using critical sections to coordinate"]
839    #[doc = r" access between multiple new instances."]
840    #[doc = r""]
841    #[doc = r" Additionally, other software such as HALs may rely on only one"]
842    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
843    #[doc = r" no stolen instances are passed to such software."]
844    pub unsafe fn steal() -> Self {
845        Self {
846            _marker: PhantomData,
847        }
848    }
849}
850impl Deref for AppEccAgg {
851    type Target = app_ecc_agg::RegisterBlock;
852    #[inline(always)]
853    fn deref(&self) -> &Self::Target {
854        unsafe { &*Self::PTR }
855    }
856}
857impl core::fmt::Debug for AppEccAgg {
858    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
859        f.debug_struct("AppEccAgg").finish()
860    }
861}
862#[doc = "APP_ECC_AGG"]
863pub mod app_ecc_agg;
864#[doc = "APP_RTI"]
865pub struct AppRti {
866    _marker: PhantomData<*const ()>,
867}
868unsafe impl Send for AppRti {}
869impl AppRti {
870    #[doc = r"Pointer to the register block"]
871    pub const PTR: *const app_rti::RegisterBlock = 0x56f7_f000 as *const _;
872    #[doc = r"Return the pointer to the register block"]
873    #[inline(always)]
874    pub const fn ptr() -> *const app_rti::RegisterBlock {
875        Self::PTR
876    }
877    #[doc = r" Steal an instance of this peripheral"]
878    #[doc = r""]
879    #[doc = r" # Safety"]
880    #[doc = r""]
881    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
882    #[doc = r" that may race with any existing instances, for example by only"]
883    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
884    #[doc = r" original peripheral and using critical sections to coordinate"]
885    #[doc = r" access between multiple new instances."]
886    #[doc = r""]
887    #[doc = r" Additionally, other software such as HALs may rely on only one"]
888    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
889    #[doc = r" no stolen instances are passed to such software."]
890    pub unsafe fn steal() -> Self {
891        Self {
892            _marker: PhantomData,
893        }
894    }
895}
896impl Deref for AppRti {
897    type Target = app_rti::RegisterBlock;
898    #[inline(always)]
899    fn deref(&self) -> &Self::Target {
900        unsafe { &*Self::PTR }
901    }
902}
903impl core::fmt::Debug for AppRti {
904    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
905        f.debug_struct("AppRti").finish()
906    }
907}
908#[doc = "APP_RTI"]
909pub mod app_rti;
910#[doc = "APP_WD"]
911pub struct AppWd {
912    _marker: PhantomData<*const ()>,
913}
914unsafe impl Send for AppWd {}
915impl AppWd {
916    #[doc = r"Pointer to the register block"]
917    pub const PTR: *const app_wd::RegisterBlock = 0x56f7_f400 as *const _;
918    #[doc = r"Return the pointer to the register block"]
919    #[inline(always)]
920    pub const fn ptr() -> *const app_wd::RegisterBlock {
921        Self::PTR
922    }
923    #[doc = r" Steal an instance of this peripheral"]
924    #[doc = r""]
925    #[doc = r" # Safety"]
926    #[doc = r""]
927    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
928    #[doc = r" that may race with any existing instances, for example by only"]
929    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
930    #[doc = r" original peripheral and using critical sections to coordinate"]
931    #[doc = r" access between multiple new instances."]
932    #[doc = r""]
933    #[doc = r" Additionally, other software such as HALs may rely on only one"]
934    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
935    #[doc = r" no stolen instances are passed to such software."]
936    pub unsafe fn steal() -> Self {
937        Self {
938            _marker: PhantomData,
939        }
940    }
941}
942impl Deref for AppWd {
943    type Target = app_wd::RegisterBlock;
944    #[inline(always)]
945    fn deref(&self) -> &Self::Target {
946        unsafe { &*Self::PTR }
947    }
948}
949impl core::fmt::Debug for AppWd {
950    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
951        f.debug_struct("AppWd").finish()
952    }
953}
954#[doc = "APP_WD"]
955pub mod app_wd;
956#[doc = "APP_DCC"]
957pub struct AppDcc {
958    _marker: PhantomData<*const ()>,
959}
960unsafe impl Send for AppDcc {}
961impl AppDcc {
962    #[doc = r"Pointer to the register block"]
963    pub const PTR: *const app_dcc::RegisterBlock = 0x56f7_f800 as *const _;
964    #[doc = r"Return the pointer to the register block"]
965    #[inline(always)]
966    pub const fn ptr() -> *const app_dcc::RegisterBlock {
967        Self::PTR
968    }
969    #[doc = r" Steal an instance of this peripheral"]
970    #[doc = r""]
971    #[doc = r" # Safety"]
972    #[doc = r""]
973    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
974    #[doc = r" that may race with any existing instances, for example by only"]
975    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
976    #[doc = r" original peripheral and using critical sections to coordinate"]
977    #[doc = r" access between multiple new instances."]
978    #[doc = r""]
979    #[doc = r" Additionally, other software such as HALs may rely on only one"]
980    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
981    #[doc = r" no stolen instances are passed to such software."]
982    pub unsafe fn steal() -> Self {
983        Self {
984            _marker: PhantomData,
985        }
986    }
987}
988impl Deref for AppDcc {
989    type Target = app_dcc::RegisterBlock;
990    #[inline(always)]
991    fn deref(&self) -> &Self::Target {
992        unsafe { &*Self::PTR }
993    }
994}
995impl core::fmt::Debug for AppDcc {
996    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
997        f.debug_struct("AppDcc").finish()
998    }
999}
1000#[doc = "APP_DCC"]
1001pub mod app_dcc;
1002#[doc = "APP_ESM"]
1003pub struct AppEsm {
1004    _marker: PhantomData<*const ()>,
1005}
1006unsafe impl Send for AppEsm {}
1007impl AppEsm {
1008    #[doc = r"Pointer to the register block"]
1009    pub const PTR: *const app_esm::RegisterBlock = 0x56f7_fc00 as *const _;
1010    #[doc = r"Return the pointer to the register block"]
1011    #[inline(always)]
1012    pub const fn ptr() -> *const app_esm::RegisterBlock {
1013        Self::PTR
1014    }
1015    #[doc = r" Steal an instance of this peripheral"]
1016    #[doc = r""]
1017    #[doc = r" # Safety"]
1018    #[doc = r""]
1019    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1020    #[doc = r" that may race with any existing instances, for example by only"]
1021    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1022    #[doc = r" original peripheral and using critical sections to coordinate"]
1023    #[doc = r" access between multiple new instances."]
1024    #[doc = r""]
1025    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1026    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1027    #[doc = r" no stolen instances are passed to such software."]
1028    pub unsafe fn steal() -> Self {
1029        Self {
1030            _marker: PhantomData,
1031        }
1032    }
1033}
1034impl Deref for AppEsm {
1035    type Target = app_esm::RegisterBlock;
1036    #[inline(always)]
1037    fn deref(&self) -> &Self::Target {
1038        unsafe { &*Self::PTR }
1039    }
1040}
1041impl core::fmt::Debug for AppEsm {
1042    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1043        f.debug_struct("AppEsm").finish()
1044    }
1045}
1046#[doc = "APP_ESM"]
1047pub mod app_esm;
1048#[doc = "APP_UART"]
1049pub struct AppUart1 {
1050    _marker: PhantomData<*const ()>,
1051}
1052unsafe impl Send for AppUart1 {}
1053impl AppUart1 {
1054    #[doc = r"Pointer to the register block"]
1055    pub const PTR: *const app_uart_1::RegisterBlock = 0x57f7_f000 as *const _;
1056    #[doc = r"Return the pointer to the register block"]
1057    #[inline(always)]
1058    pub const fn ptr() -> *const app_uart_1::RegisterBlock {
1059        Self::PTR
1060    }
1061    #[doc = r" Steal an instance of this peripheral"]
1062    #[doc = r""]
1063    #[doc = r" # Safety"]
1064    #[doc = r""]
1065    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1066    #[doc = r" that may race with any existing instances, for example by only"]
1067    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1068    #[doc = r" original peripheral and using critical sections to coordinate"]
1069    #[doc = r" access between multiple new instances."]
1070    #[doc = r""]
1071    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1072    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1073    #[doc = r" no stolen instances are passed to such software."]
1074    pub unsafe fn steal() -> Self {
1075        Self {
1076            _marker: PhantomData,
1077        }
1078    }
1079}
1080impl Deref for AppUart1 {
1081    type Target = app_uart_1::RegisterBlock;
1082    #[inline(always)]
1083    fn deref(&self) -> &Self::Target {
1084        unsafe { &*Self::PTR }
1085    }
1086}
1087impl core::fmt::Debug for AppUart1 {
1088    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1089        f.debug_struct("AppUart1").finish()
1090    }
1091}
1092#[doc = "APP_UART"]
1093pub mod app_uart_1;
1094#[doc = "APP_SPI"]
1095pub struct AppSpi1 {
1096    _marker: PhantomData<*const ()>,
1097}
1098unsafe impl Send for AppSpi1 {}
1099impl AppSpi1 {
1100    #[doc = r"Pointer to the register block"]
1101    pub const PTR: *const app_spi_1::RegisterBlock = 0x57f7_f400 as *const _;
1102    #[doc = r"Return the pointer to the register block"]
1103    #[inline(always)]
1104    pub const fn ptr() -> *const app_spi_1::RegisterBlock {
1105        Self::PTR
1106    }
1107    #[doc = r" Steal an instance of this peripheral"]
1108    #[doc = r""]
1109    #[doc = r" # Safety"]
1110    #[doc = r""]
1111    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1112    #[doc = r" that may race with any existing instances, for example by only"]
1113    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1114    #[doc = r" original peripheral and using critical sections to coordinate"]
1115    #[doc = r" access between multiple new instances."]
1116    #[doc = r""]
1117    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1118    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1119    #[doc = r" no stolen instances are passed to such software."]
1120    pub unsafe fn steal() -> Self {
1121        Self {
1122            _marker: PhantomData,
1123        }
1124    }
1125}
1126impl Deref for AppSpi1 {
1127    type Target = app_spi_1::RegisterBlock;
1128    #[inline(always)]
1129    fn deref(&self) -> &Self::Target {
1130        unsafe { &*Self::PTR }
1131    }
1132}
1133impl core::fmt::Debug for AppSpi1 {
1134    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1135        f.debug_struct("AppSpi1").finish()
1136    }
1137}
1138#[doc = "APP_SPI"]
1139pub mod app_spi_1;
1140#[doc = "APP_I2C"]
1141pub struct AppI2c {
1142    _marker: PhantomData<*const ()>,
1143}
1144unsafe impl Send for AppI2c {}
1145impl AppI2c {
1146    #[doc = r"Pointer to the register block"]
1147    pub const PTR: *const app_i2c::RegisterBlock = 0x57f7_f800 as *const _;
1148    #[doc = r"Return the pointer to the register block"]
1149    #[inline(always)]
1150    pub const fn ptr() -> *const app_i2c::RegisterBlock {
1151        Self::PTR
1152    }
1153    #[doc = r" Steal an instance of this peripheral"]
1154    #[doc = r""]
1155    #[doc = r" # Safety"]
1156    #[doc = r""]
1157    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1158    #[doc = r" that may race with any existing instances, for example by only"]
1159    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1160    #[doc = r" original peripheral and using critical sections to coordinate"]
1161    #[doc = r" access between multiple new instances."]
1162    #[doc = r""]
1163    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1164    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1165    #[doc = r" no stolen instances are passed to such software."]
1166    pub unsafe fn steal() -> Self {
1167        Self {
1168            _marker: PhantomData,
1169        }
1170    }
1171}
1172impl Deref for AppI2c {
1173    type Target = app_i2c::RegisterBlock;
1174    #[inline(always)]
1175    fn deref(&self) -> &Self::Target {
1176        unsafe { &*Self::PTR }
1177    }
1178}
1179impl core::fmt::Debug for AppI2c {
1180    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1181        f.debug_struct("AppI2c").finish()
1182    }
1183}
1184#[doc = "APP_I2C"]
1185pub mod app_i2c;
1186#[doc = "APP_PWM"]
1187pub struct AppPwm {
1188    _marker: PhantomData<*const ()>,
1189}
1190unsafe impl Send for AppPwm {}
1191impl AppPwm {
1192    #[doc = r"Pointer to the register block"]
1193    pub const PTR: *const app_pwm::RegisterBlock = 0x57f7_fc00 as *const _;
1194    #[doc = r"Return the pointer to the register block"]
1195    #[inline(always)]
1196    pub const fn ptr() -> *const app_pwm::RegisterBlock {
1197        Self::PTR
1198    }
1199    #[doc = r" Steal an instance of this peripheral"]
1200    #[doc = r""]
1201    #[doc = r" # Safety"]
1202    #[doc = r""]
1203    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1204    #[doc = r" that may race with any existing instances, for example by only"]
1205    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1206    #[doc = r" original peripheral and using critical sections to coordinate"]
1207    #[doc = r" access between multiple new instances."]
1208    #[doc = r""]
1209    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1210    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1211    #[doc = r" no stolen instances are passed to such software."]
1212    pub unsafe fn steal() -> Self {
1213        Self {
1214            _marker: PhantomData,
1215        }
1216    }
1217}
1218impl Deref for AppPwm {
1219    type Target = app_pwm::RegisterBlock;
1220    #[inline(always)]
1221    fn deref(&self) -> &Self::Target {
1222        unsafe { &*Self::PTR }
1223    }
1224}
1225impl core::fmt::Debug for AppPwm {
1226    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1227        f.debug_struct("AppPwm").finish()
1228    }
1229}
1230#[doc = "APP_PWM"]
1231pub mod app_pwm;
1232#[doc = "TOP_IO_MUX"]
1233pub struct TopIoMux {
1234    _marker: PhantomData<*const ()>,
1235}
1236unsafe impl Send for TopIoMux {}
1237impl TopIoMux {
1238    #[doc = r"Pointer to the register block"]
1239    pub const PTR: *const top_io_mux::RegisterBlock = 0x5a00_0000 as *const _;
1240    #[doc = r"Return the pointer to the register block"]
1241    #[inline(always)]
1242    pub const fn ptr() -> *const top_io_mux::RegisterBlock {
1243        Self::PTR
1244    }
1245    #[doc = r" Steal an instance of this peripheral"]
1246    #[doc = r""]
1247    #[doc = r" # Safety"]
1248    #[doc = r""]
1249    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1250    #[doc = r" that may race with any existing instances, for example by only"]
1251    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1252    #[doc = r" original peripheral and using critical sections to coordinate"]
1253    #[doc = r" access between multiple new instances."]
1254    #[doc = r""]
1255    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1256    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1257    #[doc = r" no stolen instances are passed to such software."]
1258    pub unsafe fn steal() -> Self {
1259        Self {
1260            _marker: PhantomData,
1261        }
1262    }
1263}
1264impl Deref for TopIoMux {
1265    type Target = top_io_mux::RegisterBlock;
1266    #[inline(always)]
1267    fn deref(&self) -> &Self::Target {
1268        unsafe { &*Self::PTR }
1269    }
1270}
1271impl core::fmt::Debug for TopIoMux {
1272    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1273        f.debug_struct("TopIoMux").finish()
1274    }
1275}
1276#[doc = "TOP_IO_MUX"]
1277pub mod top_io_mux;
1278#[doc = "APP_PRCM"]
1279pub struct AppPrcm {
1280    _marker: PhantomData<*const ()>,
1281}
1282unsafe impl Send for AppPrcm {}
1283impl AppPrcm {
1284    #[doc = r"Pointer to the register block"]
1285    pub const PTR: *const app_prcm::RegisterBlock = 0x5a04_0000 as *const _;
1286    #[doc = r"Return the pointer to the register block"]
1287    #[inline(always)]
1288    pub const fn ptr() -> *const app_prcm::RegisterBlock {
1289        Self::PTR
1290    }
1291    #[doc = r" Steal an instance of this peripheral"]
1292    #[doc = r""]
1293    #[doc = r" # Safety"]
1294    #[doc = r""]
1295    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1296    #[doc = r" that may race with any existing instances, for example by only"]
1297    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1298    #[doc = r" original peripheral and using critical sections to coordinate"]
1299    #[doc = r" access between multiple new instances."]
1300    #[doc = r""]
1301    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1302    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1303    #[doc = r" no stolen instances are passed to such software."]
1304    pub unsafe fn steal() -> Self {
1305        Self {
1306            _marker: PhantomData,
1307        }
1308    }
1309}
1310impl Deref for AppPrcm {
1311    type Target = app_prcm::RegisterBlock;
1312    #[inline(always)]
1313    fn deref(&self) -> &Self::Target {
1314        unsafe { &*Self::PTR }
1315    }
1316}
1317impl core::fmt::Debug for AppPrcm {
1318    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1319        f.debug_struct("AppPrcm").finish()
1320    }
1321}
1322#[doc = "APP_PRCM"]
1323pub mod app_prcm;
1324#[doc = "TOP_GIO"]
1325pub struct TopGio {
1326    _marker: PhantomData<*const ()>,
1327}
1328unsafe impl Send for TopGio {}
1329impl TopGio {
1330    #[doc = r"Pointer to the register block"]
1331    pub const PTR: *const top_gio::RegisterBlock = 0x5af7_fc00 as *const _;
1332    #[doc = r"Return the pointer to the register block"]
1333    #[inline(always)]
1334    pub const fn ptr() -> *const top_gio::RegisterBlock {
1335        Self::PTR
1336    }
1337    #[doc = r" Steal an instance of this peripheral"]
1338    #[doc = r""]
1339    #[doc = r" # Safety"]
1340    #[doc = r""]
1341    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1342    #[doc = r" that may race with any existing instances, for example by only"]
1343    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1344    #[doc = r" original peripheral and using critical sections to coordinate"]
1345    #[doc = r" access between multiple new instances."]
1346    #[doc = r""]
1347    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1348    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1349    #[doc = r" no stolen instances are passed to such software."]
1350    pub unsafe fn steal() -> Self {
1351        Self {
1352            _marker: PhantomData,
1353        }
1354    }
1355}
1356impl Deref for TopGio {
1357    type Target = top_gio::RegisterBlock;
1358    #[inline(always)]
1359    fn deref(&self) -> &Self::Target {
1360        unsafe { &*Self::PTR }
1361    }
1362}
1363impl core::fmt::Debug for TopGio {
1364    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1365        f.debug_struct("TopGio").finish()
1366    }
1367}
1368#[doc = "TOP_GIO"]
1369pub mod top_gio;
1370#[doc = "TOPSS_CTRL"]
1371pub struct TopssCtrl {
1372    _marker: PhantomData<*const ()>,
1373}
1374unsafe impl Send for TopssCtrl {}
1375impl TopssCtrl {
1376    #[doc = r"Pointer to the register block"]
1377    pub const PTR: *const topss_ctrl::RegisterBlock = 0x5b02_0000 as *const _;
1378    #[doc = r"Return the pointer to the register block"]
1379    #[inline(always)]
1380    pub const fn ptr() -> *const topss_ctrl::RegisterBlock {
1381        Self::PTR
1382    }
1383    #[doc = r" Steal an instance of this peripheral"]
1384    #[doc = r""]
1385    #[doc = r" # Safety"]
1386    #[doc = r""]
1387    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1388    #[doc = r" that may race with any existing instances, for example by only"]
1389    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1390    #[doc = r" original peripheral and using critical sections to coordinate"]
1391    #[doc = r" access between multiple new instances."]
1392    #[doc = r""]
1393    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1394    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1395    #[doc = r" no stolen instances are passed to such software."]
1396    pub unsafe fn steal() -> Self {
1397        Self {
1398            _marker: PhantomData,
1399        }
1400    }
1401}
1402impl Deref for TopssCtrl {
1403    type Target = topss_ctrl::RegisterBlock;
1404    #[inline(always)]
1405    fn deref(&self) -> &Self::Target {
1406        unsafe { &*Self::PTR }
1407    }
1408}
1409impl core::fmt::Debug for TopssCtrl {
1410    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1411        f.debug_struct("TopssCtrl").finish()
1412    }
1413}
1414#[doc = "TOPSS_CTRL"]
1415pub mod topss_ctrl;
1416#[doc = "PLLDIG_CTRL"]
1417pub struct PlldigCtrl {
1418    _marker: PhantomData<*const ()>,
1419}
1420unsafe impl Send for PlldigCtrl {}
1421impl PlldigCtrl {
1422    #[doc = r"Pointer to the register block"]
1423    pub const PTR: *const plldig_ctrl::RegisterBlock = 0x5b04_0000 as *const _;
1424    #[doc = r"Return the pointer to the register block"]
1425    #[inline(always)]
1426    pub const fn ptr() -> *const plldig_ctrl::RegisterBlock {
1427        Self::PTR
1428    }
1429    #[doc = r" Steal an instance of this peripheral"]
1430    #[doc = r""]
1431    #[doc = r" # Safety"]
1432    #[doc = r""]
1433    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1434    #[doc = r" that may race with any existing instances, for example by only"]
1435    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1436    #[doc = r" original peripheral and using critical sections to coordinate"]
1437    #[doc = r" access between multiple new instances."]
1438    #[doc = r""]
1439    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1440    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1441    #[doc = r" no stolen instances are passed to such software."]
1442    pub unsafe fn steal() -> Self {
1443        Self {
1444            _marker: PhantomData,
1445        }
1446    }
1447}
1448impl Deref for PlldigCtrl {
1449    type Target = plldig_ctrl::RegisterBlock;
1450    #[inline(always)]
1451    fn deref(&self) -> &Self::Target {
1452        unsafe { &*Self::PTR }
1453    }
1454}
1455impl core::fmt::Debug for PlldigCtrl {
1456    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1457        f.debug_struct("PlldigCtrl").finish()
1458    }
1459}
1460#[doc = "PLLDIG_CTRL"]
1461pub mod plldig_ctrl;
1462#[doc = "PBIST"]
1463pub struct Pbist {
1464    _marker: PhantomData<*const ()>,
1465}
1466unsafe impl Send for Pbist {}
1467impl Pbist {
1468    #[doc = r"Pointer to the register block"]
1469    pub const PTR: *const pbist::RegisterBlock = 0x5c02_0000 as *const _;
1470    #[doc = r"Return the pointer to the register block"]
1471    #[inline(always)]
1472    pub const fn ptr() -> *const pbist::RegisterBlock {
1473        Self::PTR
1474    }
1475    #[doc = r" Steal an instance of this peripheral"]
1476    #[doc = r""]
1477    #[doc = r" # Safety"]
1478    #[doc = r""]
1479    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1480    #[doc = r" that may race with any existing instances, for example by only"]
1481    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1482    #[doc = r" original peripheral and using critical sections to coordinate"]
1483    #[doc = r" access between multiple new instances."]
1484    #[doc = r""]
1485    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1486    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1487    #[doc = r" no stolen instances are passed to such software."]
1488    pub unsafe fn steal() -> Self {
1489        Self {
1490            _marker: PhantomData,
1491        }
1492    }
1493}
1494impl Deref for Pbist {
1495    type Target = pbist::RegisterBlock;
1496    #[inline(always)]
1497    fn deref(&self) -> &Self::Target {
1498        unsafe { &*Self::PTR }
1499    }
1500}
1501impl core::fmt::Debug for Pbist {
1502    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1503        f.debug_struct("Pbist").finish()
1504    }
1505}
1506#[doc = "PBIST"]
1507pub mod pbist;
1508#[doc = "TOP_DEBUGSS"]
1509pub struct TopDebugss {
1510    _marker: PhantomData<*const ()>,
1511}
1512unsafe impl Send for TopDebugss {}
1513impl TopDebugss {
1514    #[doc = r"Pointer to the register block"]
1515    pub const PTR: *const top_debugss::RegisterBlock = 0x5ca0_0000 as *const _;
1516    #[doc = r"Return the pointer to the register block"]
1517    #[inline(always)]
1518    pub const fn ptr() -> *const top_debugss::RegisterBlock {
1519        Self::PTR
1520    }
1521    #[doc = r" Steal an instance of this peripheral"]
1522    #[doc = r""]
1523    #[doc = r" # Safety"]
1524    #[doc = r""]
1525    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1526    #[doc = r" that may race with any existing instances, for example by only"]
1527    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1528    #[doc = r" original peripheral and using critical sections to coordinate"]
1529    #[doc = r" access between multiple new instances."]
1530    #[doc = r""]
1531    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1532    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1533    #[doc = r" no stolen instances are passed to such software."]
1534    pub unsafe fn steal() -> Self {
1535        Self {
1536            _marker: PhantomData,
1537        }
1538    }
1539}
1540impl Deref for TopDebugss {
1541    type Target = top_debugss::RegisterBlock;
1542    #[inline(always)]
1543    fn deref(&self) -> &Self::Target {
1544        unsafe { &*Self::PTR }
1545    }
1546}
1547impl core::fmt::Debug for TopDebugss {
1548    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1549        f.debug_struct("TopDebugss").finish()
1550    }
1551}
1552#[doc = "TOP_DEBUGSS"]
1553pub mod top_debugss;
1554#[doc = "APP_CFG_QSPI"]
1555pub struct AppCfgQspi {
1556    _marker: PhantomData<*const ()>,
1557}
1558unsafe impl Send for AppCfgQspi {}
1559impl AppCfgQspi {
1560    #[doc = r"Pointer to the register block"]
1561    pub const PTR: *const app_cfg_qspi::RegisterBlock = 0x7800_0000 as *const _;
1562    #[doc = r"Return the pointer to the register block"]
1563    #[inline(always)]
1564    pub const fn ptr() -> *const app_cfg_qspi::RegisterBlock {
1565        Self::PTR
1566    }
1567    #[doc = r" Steal an instance of this peripheral"]
1568    #[doc = r""]
1569    #[doc = r" # Safety"]
1570    #[doc = r""]
1571    #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1572    #[doc = r" that may race with any existing instances, for example by only"]
1573    #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1574    #[doc = r" original peripheral and using critical sections to coordinate"]
1575    #[doc = r" access between multiple new instances."]
1576    #[doc = r""]
1577    #[doc = r" Additionally, other software such as HALs may rely on only one"]
1578    #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1579    #[doc = r" no stolen instances are passed to such software."]
1580    pub unsafe fn steal() -> Self {
1581        Self {
1582            _marker: PhantomData,
1583        }
1584    }
1585}
1586impl Deref for AppCfgQspi {
1587    type Target = app_cfg_qspi::RegisterBlock;
1588    #[inline(always)]
1589    fn deref(&self) -> &Self::Target {
1590        unsafe { &*Self::PTR }
1591    }
1592}
1593impl core::fmt::Debug for AppCfgQspi {
1594    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1595        f.debug_struct("AppCfgQspi").finish()
1596    }
1597}
1598#[doc = "APP_CFG_QSPI"]
1599pub mod app_cfg_qspi;
1600#[no_mangle]
1601static mut DEVICE_PERIPHERALS: bool = false;
1602#[doc = r" All the peripherals."]
1603#[allow(non_snake_case)]
1604pub struct Peripherals {
1605    #[doc = "GPADC_CTRL"]
1606    pub gpadc_ctrl: GpadcCtrl,
1607    #[doc = "APP_LIN"]
1608    pub app_lin: AppLin,
1609    #[doc = "APP_UART_0"]
1610    pub app_uart_0: AppUart0,
1611    #[doc = "APP_SPI_0"]
1612    pub app_spi_0: AppSpi0,
1613    #[doc = "APP_CANCFG"]
1614    pub app_cancfg: AppCancfg,
1615    #[doc = "APP_CANECC"]
1616    pub app_canecc: AppCanecc,
1617    #[doc = "TPTC_A0"]
1618    pub tptc_a0: TptcA0,
1619    #[doc = "TPTC_A1"]
1620    pub tptc_a1: TptcA1,
1621    #[doc = "APP_CRC"]
1622    pub app_crc: AppCrc,
1623    #[doc = "HWA_CFG"]
1624    pub hwa_cfg: HwaCfg,
1625    #[doc = "TPTC_B0"]
1626    pub tptc_b0: TptcB0,
1627    #[doc = "TPTC_B0_1"]
1628    pub tptc_b0_1: TptcB0_1,
1629    #[doc = "TPCC_B"]
1630    pub tpcc_b: TpccB,
1631    #[doc = "TPCC_A"]
1632    pub tpcc_a: TpccA,
1633    #[doc = "APP_RCM"]
1634    pub app_rcm: AppRcm,
1635    #[doc = "APP_CTRL"]
1636    pub app_ctrl: AppCtrl,
1637    #[doc = "APP_HWA_ADCBUF_CTRL"]
1638    pub app_hwa_adcbuf_ctrl: AppHwaAdcbufCtrl,
1639    #[doc = "APP_ECC_AGG"]
1640    pub app_ecc_agg: AppEccAgg,
1641    #[doc = "APP_RTI"]
1642    pub app_rti: AppRti,
1643    #[doc = "APP_WD"]
1644    pub app_wd: AppWd,
1645    #[doc = "APP_DCC"]
1646    pub app_dcc: AppDcc,
1647    #[doc = "APP_ESM"]
1648    pub app_esm: AppEsm,
1649    #[doc = "APP_UART_1"]
1650    pub app_uart_1: AppUart1,
1651    #[doc = "APP_SPI_1"]
1652    pub app_spi_1: AppSpi1,
1653    #[doc = "APP_I2C"]
1654    pub app_i2c: AppI2c,
1655    #[doc = "APP_PWM"]
1656    pub app_pwm: AppPwm,
1657    #[doc = "TOP_IO_MUX"]
1658    pub top_io_mux: TopIoMux,
1659    #[doc = "APP_PRCM"]
1660    pub app_prcm: AppPrcm,
1661    #[doc = "TOP_GIO"]
1662    pub top_gio: TopGio,
1663    #[doc = "TOPSS_CTRL"]
1664    pub topss_ctrl: TopssCtrl,
1665    #[doc = "PLLDIG_CTRL"]
1666    pub plldig_ctrl: PlldigCtrl,
1667    #[doc = "PBIST"]
1668    pub pbist: Pbist,
1669    #[doc = "TOP_DEBUGSS"]
1670    pub top_debugss: TopDebugss,
1671    #[doc = "APP_CFG_QSPI"]
1672    pub app_cfg_qspi: AppCfgQspi,
1673}
1674impl Peripherals {
1675    #[doc = r" Returns all the peripherals *once*."]
1676    #[cfg(feature = "critical-section")]
1677    #[inline]
1678    pub fn take() -> Option<Self> {
1679        critical_section::with(|_| {
1680            if unsafe { DEVICE_PERIPHERALS } {
1681                return None;
1682            }
1683            Some(unsafe { Peripherals::steal() })
1684        })
1685    }
1686    #[doc = r" Unchecked version of `Peripherals::take`."]
1687    #[doc = r""]
1688    #[doc = r" # Safety"]
1689    #[doc = r""]
1690    #[doc = r" Each of the returned peripherals must be used at most once."]
1691    #[inline]
1692    pub unsafe fn steal() -> Self {
1693        DEVICE_PERIPHERALS = true;
1694        Peripherals {
1695            gpadc_ctrl: GpadcCtrl::steal(),
1696            app_lin: AppLin::steal(),
1697            app_uart_0: AppUart0::steal(),
1698            app_spi_0: AppSpi0::steal(),
1699            app_cancfg: AppCancfg::steal(),
1700            app_canecc: AppCanecc::steal(),
1701            tptc_a0: TptcA0::steal(),
1702            tptc_a1: TptcA1::steal(),
1703            app_crc: AppCrc::steal(),
1704            hwa_cfg: HwaCfg::steal(),
1705            tptc_b0: TptcB0::steal(),
1706            tptc_b0_1: TptcB0_1::steal(),
1707            tpcc_b: TpccB::steal(),
1708            tpcc_a: TpccA::steal(),
1709            app_rcm: AppRcm::steal(),
1710            app_ctrl: AppCtrl::steal(),
1711            app_hwa_adcbuf_ctrl: AppHwaAdcbufCtrl::steal(),
1712            app_ecc_agg: AppEccAgg::steal(),
1713            app_rti: AppRti::steal(),
1714            app_wd: AppWd::steal(),
1715            app_dcc: AppDcc::steal(),
1716            app_esm: AppEsm::steal(),
1717            app_uart_1: AppUart1::steal(),
1718            app_spi_1: AppSpi1::steal(),
1719            app_i2c: AppI2c::steal(),
1720            app_pwm: AppPwm::steal(),
1721            top_io_mux: TopIoMux::steal(),
1722            app_prcm: AppPrcm::steal(),
1723            top_gio: TopGio::steal(),
1724            topss_ctrl: TopssCtrl::steal(),
1725            plldig_ctrl: PlldigCtrl::steal(),
1726            pbist: Pbist::steal(),
1727            top_debugss: TopDebugss::steal(),
1728            app_cfg_qspi: AppCfgQspi::steal(),
1729        }
1730    }
1731}