s32k142w_pac/
lib.rs

1#![doc = "Peripheral access API for S32K142W microcontrollers (generated using svd2rust v0.21.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.21.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 = 4;
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, FPU, 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#[doc(hidden)]
38pub union Vector {
39    _handler: unsafe extern "C" fn(),
40    _reserved: u32,
41}
42#[cfg(feature = "rt")]
43#[doc(hidden)]
44#[link_section = ".vector_table.interrupts"]
45#[no_mangle]
46pub static __INTERRUPTS: [Vector; 0] = [];
47#[doc = r"Enumeration of all the interrupts."]
48#[derive(Copy, Clone, Debug, PartialEq, Eq)]
49pub enum Interrupt {}
50unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
51    #[inline(always)]
52    fn number(self) -> u16 {
53        match self {}
54    }
55}
56#[doc = "AIPS"]
57pub struct AIPS {
58    _marker: PhantomData<*const ()>,
59}
60unsafe impl Send for AIPS {}
61impl AIPS {
62    #[doc = r"Pointer to the register block"]
63    pub const PTR: *const aips::RegisterBlock = 0x4000_0000 as *const _;
64    #[doc = r"Return the pointer to the register block"]
65    #[inline(always)]
66    pub const fn ptr() -> *const aips::RegisterBlock {
67        Self::PTR
68    }
69}
70impl Deref for AIPS {
71    type Target = aips::RegisterBlock;
72    #[inline(always)]
73    fn deref(&self) -> &Self::Target {
74        unsafe { &*Self::PTR }
75    }
76}
77impl core::fmt::Debug for AIPS {
78    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
79        f.debug_struct("AIPS").finish()
80    }
81}
82#[doc = "AIPS"]
83pub mod aips;
84#[doc = "MSCM"]
85pub struct MSCM {
86    _marker: PhantomData<*const ()>,
87}
88unsafe impl Send for MSCM {}
89impl MSCM {
90    #[doc = r"Pointer to the register block"]
91    pub const PTR: *const mscm::RegisterBlock = 0x4000_1000 as *const _;
92    #[doc = r"Return the pointer to the register block"]
93    #[inline(always)]
94    pub const fn ptr() -> *const mscm::RegisterBlock {
95        Self::PTR
96    }
97}
98impl Deref for MSCM {
99    type Target = mscm::RegisterBlock;
100    #[inline(always)]
101    fn deref(&self) -> &Self::Target {
102        unsafe { &*Self::PTR }
103    }
104}
105impl core::fmt::Debug for MSCM {
106    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
107        f.debug_struct("MSCM").finish()
108    }
109}
110#[doc = "MSCM"]
111pub mod mscm;
112#[doc = "DMA"]
113pub struct DMA {
114    _marker: PhantomData<*const ()>,
115}
116unsafe impl Send for DMA {}
117impl DMA {
118    #[doc = r"Pointer to the register block"]
119    pub const PTR: *const dma::RegisterBlock = 0x4000_8000 as *const _;
120    #[doc = r"Return the pointer to the register block"]
121    #[inline(always)]
122    pub const fn ptr() -> *const dma::RegisterBlock {
123        Self::PTR
124    }
125}
126impl Deref for DMA {
127    type Target = dma::RegisterBlock;
128    #[inline(always)]
129    fn deref(&self) -> &Self::Target {
130        unsafe { &*Self::PTR }
131    }
132}
133impl core::fmt::Debug for DMA {
134    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
135        f.debug_struct("DMA").finish()
136    }
137}
138#[doc = "DMA"]
139pub mod dma;
140#[doc = "ERM"]
141pub struct ERM {
142    _marker: PhantomData<*const ()>,
143}
144unsafe impl Send for ERM {}
145impl ERM {
146    #[doc = r"Pointer to the register block"]
147    pub const PTR: *const erm::RegisterBlock = 0x4001_8000 as *const _;
148    #[doc = r"Return the pointer to the register block"]
149    #[inline(always)]
150    pub const fn ptr() -> *const erm::RegisterBlock {
151        Self::PTR
152    }
153}
154impl Deref for ERM {
155    type Target = erm::RegisterBlock;
156    #[inline(always)]
157    fn deref(&self) -> &Self::Target {
158        unsafe { &*Self::PTR }
159    }
160}
161impl core::fmt::Debug for ERM {
162    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
163        f.debug_struct("ERM").finish()
164    }
165}
166#[doc = "ERM"]
167pub mod erm;
168#[doc = "EIM"]
169pub struct EIM {
170    _marker: PhantomData<*const ()>,
171}
172unsafe impl Send for EIM {}
173impl EIM {
174    #[doc = r"Pointer to the register block"]
175    pub const PTR: *const eim::RegisterBlock = 0x4001_9000 as *const _;
176    #[doc = r"Return the pointer to the register block"]
177    #[inline(always)]
178    pub const fn ptr() -> *const eim::RegisterBlock {
179        Self::PTR
180    }
181}
182impl Deref for EIM {
183    type Target = eim::RegisterBlock;
184    #[inline(always)]
185    fn deref(&self) -> &Self::Target {
186        unsafe { &*Self::PTR }
187    }
188}
189impl core::fmt::Debug for EIM {
190    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
191        f.debug_struct("EIM").finish()
192    }
193}
194#[doc = "EIM"]
195pub mod eim;
196#[doc = "FTFM"]
197pub struct FTFM {
198    _marker: PhantomData<*const ()>,
199}
200unsafe impl Send for FTFM {}
201impl FTFM {
202    #[doc = r"Pointer to the register block"]
203    pub const PTR: *const ftfm::RegisterBlock = 0x4002_0000 as *const _;
204    #[doc = r"Return the pointer to the register block"]
205    #[inline(always)]
206    pub const fn ptr() -> *const ftfm::RegisterBlock {
207        Self::PTR
208    }
209}
210impl Deref for FTFM {
211    type Target = ftfm::RegisterBlock;
212    #[inline(always)]
213    fn deref(&self) -> &Self::Target {
214        unsafe { &*Self::PTR }
215    }
216}
217impl core::fmt::Debug for FTFM {
218    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
219        f.debug_struct("FTFM").finish()
220    }
221}
222#[doc = "FTFM"]
223pub mod ftfm;
224#[doc = "DMAMUX"]
225pub struct DMAMUX {
226    _marker: PhantomData<*const ()>,
227}
228unsafe impl Send for DMAMUX {}
229impl DMAMUX {
230    #[doc = r"Pointer to the register block"]
231    pub const PTR: *const dmamux::RegisterBlock = 0x4002_1000 as *const _;
232    #[doc = r"Return the pointer to the register block"]
233    #[inline(always)]
234    pub const fn ptr() -> *const dmamux::RegisterBlock {
235        Self::PTR
236    }
237}
238impl Deref for DMAMUX {
239    type Target = dmamux::RegisterBlock;
240    #[inline(always)]
241    fn deref(&self) -> &Self::Target {
242        unsafe { &*Self::PTR }
243    }
244}
245impl core::fmt::Debug for DMAMUX {
246    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
247        f.debug_struct("DMAMUX").finish()
248    }
249}
250#[doc = "DMAMUX"]
251pub mod dmamux;
252#[doc = "CAN"]
253pub struct CAN0 {
254    _marker: PhantomData<*const ()>,
255}
256unsafe impl Send for CAN0 {}
257impl CAN0 {
258    #[doc = r"Pointer to the register block"]
259    pub const PTR: *const can0::RegisterBlock = 0x4002_4000 as *const _;
260    #[doc = r"Return the pointer to the register block"]
261    #[inline(always)]
262    pub const fn ptr() -> *const can0::RegisterBlock {
263        Self::PTR
264    }
265}
266impl Deref for CAN0 {
267    type Target = can0::RegisterBlock;
268    #[inline(always)]
269    fn deref(&self) -> &Self::Target {
270        unsafe { &*Self::PTR }
271    }
272}
273impl core::fmt::Debug for CAN0 {
274    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
275        f.debug_struct("CAN0").finish()
276    }
277}
278#[doc = "CAN"]
279pub mod can0;
280#[doc = "CAN"]
281pub struct CAN1 {
282    _marker: PhantomData<*const ()>,
283}
284unsafe impl Send for CAN1 {}
285impl CAN1 {
286    #[doc = r"Pointer to the register block"]
287    pub const PTR: *const can1::RegisterBlock = 0x4002_5000 as *const _;
288    #[doc = r"Return the pointer to the register block"]
289    #[inline(always)]
290    pub const fn ptr() -> *const can1::RegisterBlock {
291        Self::PTR
292    }
293}
294impl Deref for CAN1 {
295    type Target = can1::RegisterBlock;
296    #[inline(always)]
297    fn deref(&self) -> &Self::Target {
298        unsafe { &*Self::PTR }
299    }
300}
301impl core::fmt::Debug for CAN1 {
302    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
303        f.debug_struct("CAN1").finish()
304    }
305}
306#[doc = "CAN"]
307pub mod can1;
308#[doc = "LPSPI"]
309pub struct LPSPI0 {
310    _marker: PhantomData<*const ()>,
311}
312unsafe impl Send for LPSPI0 {}
313impl LPSPI0 {
314    #[doc = r"Pointer to the register block"]
315    pub const PTR: *const lpspi0::RegisterBlock = 0x4002_c000 as *const _;
316    #[doc = r"Return the pointer to the register block"]
317    #[inline(always)]
318    pub const fn ptr() -> *const lpspi0::RegisterBlock {
319        Self::PTR
320    }
321}
322impl Deref for LPSPI0 {
323    type Target = lpspi0::RegisterBlock;
324    #[inline(always)]
325    fn deref(&self) -> &Self::Target {
326        unsafe { &*Self::PTR }
327    }
328}
329impl core::fmt::Debug for LPSPI0 {
330    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
331        f.debug_struct("LPSPI0").finish()
332    }
333}
334#[doc = "LPSPI"]
335pub mod lpspi0;
336#[doc = "LPSPI"]
337pub struct LPSPI1 {
338    _marker: PhantomData<*const ()>,
339}
340unsafe impl Send for LPSPI1 {}
341impl LPSPI1 {
342    #[doc = r"Pointer to the register block"]
343    pub const PTR: *const lpspi0::RegisterBlock = 0x4002_d000 as *const _;
344    #[doc = r"Return the pointer to the register block"]
345    #[inline(always)]
346    pub const fn ptr() -> *const lpspi0::RegisterBlock {
347        Self::PTR
348    }
349}
350impl Deref for LPSPI1 {
351    type Target = lpspi0::RegisterBlock;
352    #[inline(always)]
353    fn deref(&self) -> &Self::Target {
354        unsafe { &*Self::PTR }
355    }
356}
357impl core::fmt::Debug for LPSPI1 {
358    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
359        f.debug_struct("LPSPI1").finish()
360    }
361}
362#[doc = "LPSPI"]
363pub use lpspi0 as lpspi1;
364#[doc = "LPSPI"]
365pub struct LPSPI2 {
366    _marker: PhantomData<*const ()>,
367}
368unsafe impl Send for LPSPI2 {}
369impl LPSPI2 {
370    #[doc = r"Pointer to the register block"]
371    pub const PTR: *const lpspi0::RegisterBlock = 0x4002_e000 as *const _;
372    #[doc = r"Return the pointer to the register block"]
373    #[inline(always)]
374    pub const fn ptr() -> *const lpspi0::RegisterBlock {
375        Self::PTR
376    }
377}
378impl Deref for LPSPI2 {
379    type Target = lpspi0::RegisterBlock;
380    #[inline(always)]
381    fn deref(&self) -> &Self::Target {
382        unsafe { &*Self::PTR }
383    }
384}
385impl core::fmt::Debug for LPSPI2 {
386    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
387        f.debug_struct("LPSPI2").finish()
388    }
389}
390#[doc = "LPSPI"]
391pub use lpspi0 as lpspi2;
392#[doc = "CRC"]
393pub struct CRC {
394    _marker: PhantomData<*const ()>,
395}
396unsafe impl Send for CRC {}
397impl CRC {
398    #[doc = r"Pointer to the register block"]
399    pub const PTR: *const crc::RegisterBlock = 0x4003_2000 as *const _;
400    #[doc = r"Return the pointer to the register block"]
401    #[inline(always)]
402    pub const fn ptr() -> *const crc::RegisterBlock {
403        Self::PTR
404    }
405}
406impl Deref for CRC {
407    type Target = crc::RegisterBlock;
408    #[inline(always)]
409    fn deref(&self) -> &Self::Target {
410        unsafe { &*Self::PTR }
411    }
412}
413impl core::fmt::Debug for CRC {
414    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
415        f.debug_struct("CRC").finish()
416    }
417}
418#[doc = "CRC"]
419pub mod crc;
420#[doc = "Programmable Delay Block"]
421pub struct PDB0 {
422    _marker: PhantomData<*const ()>,
423}
424unsafe impl Send for PDB0 {}
425impl PDB0 {
426    #[doc = r"Pointer to the register block"]
427    pub const PTR: *const pdb0::RegisterBlock = 0x4003_6000 as *const _;
428    #[doc = r"Return the pointer to the register block"]
429    #[inline(always)]
430    pub const fn ptr() -> *const pdb0::RegisterBlock {
431        Self::PTR
432    }
433}
434impl Deref for PDB0 {
435    type Target = pdb0::RegisterBlock;
436    #[inline(always)]
437    fn deref(&self) -> &Self::Target {
438        unsafe { &*Self::PTR }
439    }
440}
441impl core::fmt::Debug for PDB0 {
442    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
443        f.debug_struct("PDB0").finish()
444    }
445}
446#[doc = "Programmable Delay Block"]
447pub mod pdb0;
448#[doc = "Programmable Delay Block"]
449pub struct PDB1 {
450    _marker: PhantomData<*const ()>,
451}
452unsafe impl Send for PDB1 {}
453impl PDB1 {
454    #[doc = r"Pointer to the register block"]
455    pub const PTR: *const pdb0::RegisterBlock = 0x4003_1000 as *const _;
456    #[doc = r"Return the pointer to the register block"]
457    #[inline(always)]
458    pub const fn ptr() -> *const pdb0::RegisterBlock {
459        Self::PTR
460    }
461}
462impl Deref for PDB1 {
463    type Target = pdb0::RegisterBlock;
464    #[inline(always)]
465    fn deref(&self) -> &Self::Target {
466        unsafe { &*Self::PTR }
467    }
468}
469impl core::fmt::Debug for PDB1 {
470    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
471        f.debug_struct("PDB1").finish()
472    }
473}
474#[doc = "Programmable Delay Block"]
475pub use pdb0 as pdb1;
476#[doc = "LPIT"]
477pub struct LPIT0 {
478    _marker: PhantomData<*const ()>,
479}
480unsafe impl Send for LPIT0 {}
481impl LPIT0 {
482    #[doc = r"Pointer to the register block"]
483    pub const PTR: *const lpit0::RegisterBlock = 0x4003_7000 as *const _;
484    #[doc = r"Return the pointer to the register block"]
485    #[inline(always)]
486    pub const fn ptr() -> *const lpit0::RegisterBlock {
487        Self::PTR
488    }
489}
490impl Deref for LPIT0 {
491    type Target = lpit0::RegisterBlock;
492    #[inline(always)]
493    fn deref(&self) -> &Self::Target {
494        unsafe { &*Self::PTR }
495    }
496}
497impl core::fmt::Debug for LPIT0 {
498    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
499        f.debug_struct("LPIT0").finish()
500    }
501}
502#[doc = "LPIT"]
503pub mod lpit0;
504#[doc = "FTM"]
505pub struct FTM0 {
506    _marker: PhantomData<*const ()>,
507}
508unsafe impl Send for FTM0 {}
509impl FTM0 {
510    #[doc = r"Pointer to the register block"]
511    pub const PTR: *const ftm0::RegisterBlock = 0x4003_8000 as *const _;
512    #[doc = r"Return the pointer to the register block"]
513    #[inline(always)]
514    pub const fn ptr() -> *const ftm0::RegisterBlock {
515        Self::PTR
516    }
517}
518impl Deref for FTM0 {
519    type Target = ftm0::RegisterBlock;
520    #[inline(always)]
521    fn deref(&self) -> &Self::Target {
522        unsafe { &*Self::PTR }
523    }
524}
525impl core::fmt::Debug for FTM0 {
526    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
527        f.debug_struct("FTM0").finish()
528    }
529}
530#[doc = "FTM"]
531pub mod ftm0;
532#[doc = "FTM"]
533pub struct FTM3 {
534    _marker: PhantomData<*const ()>,
535}
536unsafe impl Send for FTM3 {}
537impl FTM3 {
538    #[doc = r"Pointer to the register block"]
539    pub const PTR: *const ftm0::RegisterBlock = 0x4002_6000 as *const _;
540    #[doc = r"Return the pointer to the register block"]
541    #[inline(always)]
542    pub const fn ptr() -> *const ftm0::RegisterBlock {
543        Self::PTR
544    }
545}
546impl Deref for FTM3 {
547    type Target = ftm0::RegisterBlock;
548    #[inline(always)]
549    fn deref(&self) -> &Self::Target {
550        unsafe { &*Self::PTR }
551    }
552}
553impl core::fmt::Debug for FTM3 {
554    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
555        f.debug_struct("FTM3").finish()
556    }
557}
558#[doc = "FTM"]
559pub use ftm0 as ftm3;
560#[doc = "FTM"]
561pub struct FTM1 {
562    _marker: PhantomData<*const ()>,
563}
564unsafe impl Send for FTM1 {}
565impl FTM1 {
566    #[doc = r"Pointer to the register block"]
567    pub const PTR: *const ftm1::RegisterBlock = 0x4003_9000 as *const _;
568    #[doc = r"Return the pointer to the register block"]
569    #[inline(always)]
570    pub const fn ptr() -> *const ftm1::RegisterBlock {
571        Self::PTR
572    }
573}
574impl Deref for FTM1 {
575    type Target = ftm1::RegisterBlock;
576    #[inline(always)]
577    fn deref(&self) -> &Self::Target {
578        unsafe { &*Self::PTR }
579    }
580}
581impl core::fmt::Debug for FTM1 {
582    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
583        f.debug_struct("FTM1").finish()
584    }
585}
586#[doc = "FTM"]
587pub mod ftm1;
588#[doc = "FTM"]
589pub struct FTM2 {
590    _marker: PhantomData<*const ()>,
591}
592unsafe impl Send for FTM2 {}
593impl FTM2 {
594    #[doc = r"Pointer to the register block"]
595    pub const PTR: *const ftm1::RegisterBlock = 0x4003_a000 as *const _;
596    #[doc = r"Return the pointer to the register block"]
597    #[inline(always)]
598    pub const fn ptr() -> *const ftm1::RegisterBlock {
599        Self::PTR
600    }
601}
602impl Deref for FTM2 {
603    type Target = ftm1::RegisterBlock;
604    #[inline(always)]
605    fn deref(&self) -> &Self::Target {
606        unsafe { &*Self::PTR }
607    }
608}
609impl core::fmt::Debug for FTM2 {
610    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
611        f.debug_struct("FTM2").finish()
612    }
613}
614#[doc = "FTM"]
615pub use ftm1 as ftm2;
616#[doc = "ADC"]
617pub struct ADC0 {
618    _marker: PhantomData<*const ()>,
619}
620unsafe impl Send for ADC0 {}
621impl ADC0 {
622    #[doc = r"Pointer to the register block"]
623    pub const PTR: *const adc0::RegisterBlock = 0x4003_b000 as *const _;
624    #[doc = r"Return the pointer to the register block"]
625    #[inline(always)]
626    pub const fn ptr() -> *const adc0::RegisterBlock {
627        Self::PTR
628    }
629}
630impl Deref for ADC0 {
631    type Target = adc0::RegisterBlock;
632    #[inline(always)]
633    fn deref(&self) -> &Self::Target {
634        unsafe { &*Self::PTR }
635    }
636}
637impl core::fmt::Debug for ADC0 {
638    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
639        f.debug_struct("ADC0").finish()
640    }
641}
642#[doc = "ADC"]
643pub mod adc0;
644#[doc = "ADC"]
645pub struct ADC1 {
646    _marker: PhantomData<*const ()>,
647}
648unsafe impl Send for ADC1 {}
649impl ADC1 {
650    #[doc = r"Pointer to the register block"]
651    pub const PTR: *const adc0::RegisterBlock = 0x4002_7000 as *const _;
652    #[doc = r"Return the pointer to the register block"]
653    #[inline(always)]
654    pub const fn ptr() -> *const adc0::RegisterBlock {
655        Self::PTR
656    }
657}
658impl Deref for ADC1 {
659    type Target = adc0::RegisterBlock;
660    #[inline(always)]
661    fn deref(&self) -> &Self::Target {
662        unsafe { &*Self::PTR }
663    }
664}
665impl core::fmt::Debug for ADC1 {
666    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
667        f.debug_struct("ADC1").finish()
668    }
669}
670#[doc = "ADC"]
671pub use adc0 as adc1;
672#[doc = "RTC"]
673pub struct RTC {
674    _marker: PhantomData<*const ()>,
675}
676unsafe impl Send for RTC {}
677impl RTC {
678    #[doc = r"Pointer to the register block"]
679    pub const PTR: *const rtc::RegisterBlock = 0x4003_d000 as *const _;
680    #[doc = r"Return the pointer to the register block"]
681    #[inline(always)]
682    pub const fn ptr() -> *const rtc::RegisterBlock {
683        Self::PTR
684    }
685}
686impl Deref for RTC {
687    type Target = rtc::RegisterBlock;
688    #[inline(always)]
689    fn deref(&self) -> &Self::Target {
690        unsafe { &*Self::PTR }
691    }
692}
693impl core::fmt::Debug for RTC {
694    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
695        f.debug_struct("RTC").finish()
696    }
697}
698#[doc = "RTC"]
699pub mod rtc;
700#[doc = "LPTMR"]
701pub struct LPTMR0 {
702    _marker: PhantomData<*const ()>,
703}
704unsafe impl Send for LPTMR0 {}
705impl LPTMR0 {
706    #[doc = r"Pointer to the register block"]
707    pub const PTR: *const lptmr0::RegisterBlock = 0x4004_0000 as *const _;
708    #[doc = r"Return the pointer to the register block"]
709    #[inline(always)]
710    pub const fn ptr() -> *const lptmr0::RegisterBlock {
711        Self::PTR
712    }
713}
714impl Deref for LPTMR0 {
715    type Target = lptmr0::RegisterBlock;
716    #[inline(always)]
717    fn deref(&self) -> &Self::Target {
718        unsafe { &*Self::PTR }
719    }
720}
721impl core::fmt::Debug for LPTMR0 {
722    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
723        f.debug_struct("LPTMR0").finish()
724    }
725}
726#[doc = "LPTMR"]
727pub mod lptmr0;
728#[doc = "SIM"]
729pub struct SIM {
730    _marker: PhantomData<*const ()>,
731}
732unsafe impl Send for SIM {}
733impl SIM {
734    #[doc = r"Pointer to the register block"]
735    pub const PTR: *const sim::RegisterBlock = 0x4004_8000 as *const _;
736    #[doc = r"Return the pointer to the register block"]
737    #[inline(always)]
738    pub const fn ptr() -> *const sim::RegisterBlock {
739        Self::PTR
740    }
741}
742impl Deref for SIM {
743    type Target = sim::RegisterBlock;
744    #[inline(always)]
745    fn deref(&self) -> &Self::Target {
746        unsafe { &*Self::PTR }
747    }
748}
749impl core::fmt::Debug for SIM {
750    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
751        f.debug_struct("SIM").finish()
752    }
753}
754#[doc = "SIM"]
755pub mod sim;
756#[doc = "Pin Control and Interrupts"]
757pub struct PORTA {
758    _marker: PhantomData<*const ()>,
759}
760unsafe impl Send for PORTA {}
761impl PORTA {
762    #[doc = r"Pointer to the register block"]
763    pub const PTR: *const porta::RegisterBlock = 0x4004_9000 as *const _;
764    #[doc = r"Return the pointer to the register block"]
765    #[inline(always)]
766    pub const fn ptr() -> *const porta::RegisterBlock {
767        Self::PTR
768    }
769}
770impl Deref for PORTA {
771    type Target = porta::RegisterBlock;
772    #[inline(always)]
773    fn deref(&self) -> &Self::Target {
774        unsafe { &*Self::PTR }
775    }
776}
777impl core::fmt::Debug for PORTA {
778    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
779        f.debug_struct("PORTA").finish()
780    }
781}
782#[doc = "Pin Control and Interrupts"]
783pub mod porta;
784#[doc = "Pin Control and Interrupts"]
785pub struct PORTB {
786    _marker: PhantomData<*const ()>,
787}
788unsafe impl Send for PORTB {}
789impl PORTB {
790    #[doc = r"Pointer to the register block"]
791    pub const PTR: *const porta::RegisterBlock = 0x4004_a000 as *const _;
792    #[doc = r"Return the pointer to the register block"]
793    #[inline(always)]
794    pub const fn ptr() -> *const porta::RegisterBlock {
795        Self::PTR
796    }
797}
798impl Deref for PORTB {
799    type Target = porta::RegisterBlock;
800    #[inline(always)]
801    fn deref(&self) -> &Self::Target {
802        unsafe { &*Self::PTR }
803    }
804}
805impl core::fmt::Debug for PORTB {
806    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
807        f.debug_struct("PORTB").finish()
808    }
809}
810#[doc = "Pin Control and Interrupts"]
811pub use porta as portb;
812#[doc = "Pin Control and Interrupts"]
813pub struct PORTC {
814    _marker: PhantomData<*const ()>,
815}
816unsafe impl Send for PORTC {}
817impl PORTC {
818    #[doc = r"Pointer to the register block"]
819    pub const PTR: *const porta::RegisterBlock = 0x4004_b000 as *const _;
820    #[doc = r"Return the pointer to the register block"]
821    #[inline(always)]
822    pub const fn ptr() -> *const porta::RegisterBlock {
823        Self::PTR
824    }
825}
826impl Deref for PORTC {
827    type Target = porta::RegisterBlock;
828    #[inline(always)]
829    fn deref(&self) -> &Self::Target {
830        unsafe { &*Self::PTR }
831    }
832}
833impl core::fmt::Debug for PORTC {
834    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
835        f.debug_struct("PORTC").finish()
836    }
837}
838#[doc = "Pin Control and Interrupts"]
839pub use porta as portc;
840#[doc = "Pin Control and Interrupts"]
841pub struct PORTD {
842    _marker: PhantomData<*const ()>,
843}
844unsafe impl Send for PORTD {}
845impl PORTD {
846    #[doc = r"Pointer to the register block"]
847    pub const PTR: *const porta::RegisterBlock = 0x4004_c000 as *const _;
848    #[doc = r"Return the pointer to the register block"]
849    #[inline(always)]
850    pub const fn ptr() -> *const porta::RegisterBlock {
851        Self::PTR
852    }
853}
854impl Deref for PORTD {
855    type Target = porta::RegisterBlock;
856    #[inline(always)]
857    fn deref(&self) -> &Self::Target {
858        unsafe { &*Self::PTR }
859    }
860}
861impl core::fmt::Debug for PORTD {
862    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
863        f.debug_struct("PORTD").finish()
864    }
865}
866#[doc = "Pin Control and Interrupts"]
867pub use porta as portd;
868#[doc = "Pin Control and Interrupts"]
869pub struct PORTE {
870    _marker: PhantomData<*const ()>,
871}
872unsafe impl Send for PORTE {}
873impl PORTE {
874    #[doc = r"Pointer to the register block"]
875    pub const PTR: *const porta::RegisterBlock = 0x4004_d000 as *const _;
876    #[doc = r"Return the pointer to the register block"]
877    #[inline(always)]
878    pub const fn ptr() -> *const porta::RegisterBlock {
879        Self::PTR
880    }
881}
882impl Deref for PORTE {
883    type Target = porta::RegisterBlock;
884    #[inline(always)]
885    fn deref(&self) -> &Self::Target {
886        unsafe { &*Self::PTR }
887    }
888}
889impl core::fmt::Debug for PORTE {
890    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
891        f.debug_struct("PORTE").finish()
892    }
893}
894#[doc = "Pin Control and Interrupts"]
895pub use porta as porte;
896#[doc = "WDOG"]
897pub struct WDOG {
898    _marker: PhantomData<*const ()>,
899}
900unsafe impl Send for WDOG {}
901impl WDOG {
902    #[doc = r"Pointer to the register block"]
903    pub const PTR: *const wdog::RegisterBlock = 0x4005_2000 as *const _;
904    #[doc = r"Return the pointer to the register block"]
905    #[inline(always)]
906    pub const fn ptr() -> *const wdog::RegisterBlock {
907        Self::PTR
908    }
909}
910impl Deref for WDOG {
911    type Target = wdog::RegisterBlock;
912    #[inline(always)]
913    fn deref(&self) -> &Self::Target {
914        unsafe { &*Self::PTR }
915    }
916}
917impl core::fmt::Debug for WDOG {
918    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
919        f.debug_struct("WDOG").finish()
920    }
921}
922#[doc = "WDOG"]
923pub mod wdog;
924#[doc = "FLEXIO"]
925pub struct FLEXIO {
926    _marker: PhantomData<*const ()>,
927}
928unsafe impl Send for FLEXIO {}
929impl FLEXIO {
930    #[doc = r"Pointer to the register block"]
931    pub const PTR: *const flexio::RegisterBlock = 0x4005_a000 as *const _;
932    #[doc = r"Return the pointer to the register block"]
933    #[inline(always)]
934    pub const fn ptr() -> *const flexio::RegisterBlock {
935        Self::PTR
936    }
937}
938impl Deref for FLEXIO {
939    type Target = flexio::RegisterBlock;
940    #[inline(always)]
941    fn deref(&self) -> &Self::Target {
942        unsafe { &*Self::PTR }
943    }
944}
945impl core::fmt::Debug for FLEXIO {
946    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
947        f.debug_struct("FLEXIO").finish()
948    }
949}
950#[doc = "FLEXIO"]
951pub mod flexio;
952#[doc = "EWM"]
953pub struct EWM {
954    _marker: PhantomData<*const ()>,
955}
956unsafe impl Send for EWM {}
957impl EWM {
958    #[doc = r"Pointer to the register block"]
959    pub const PTR: *const ewm::RegisterBlock = 0x4006_1000 as *const _;
960    #[doc = r"Return the pointer to the register block"]
961    #[inline(always)]
962    pub const fn ptr() -> *const ewm::RegisterBlock {
963        Self::PTR
964    }
965}
966impl Deref for EWM {
967    type Target = ewm::RegisterBlock;
968    #[inline(always)]
969    fn deref(&self) -> &Self::Target {
970        unsafe { &*Self::PTR }
971    }
972}
973impl core::fmt::Debug for EWM {
974    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
975        f.debug_struct("EWM").finish()
976    }
977}
978#[doc = "EWM"]
979pub mod ewm;
980#[doc = "TRGMUX"]
981pub struct TRGMUX {
982    _marker: PhantomData<*const ()>,
983}
984unsafe impl Send for TRGMUX {}
985impl TRGMUX {
986    #[doc = r"Pointer to the register block"]
987    pub const PTR: *const trgmux::RegisterBlock = 0x4006_3000 as *const _;
988    #[doc = r"Return the pointer to the register block"]
989    #[inline(always)]
990    pub const fn ptr() -> *const trgmux::RegisterBlock {
991        Self::PTR
992    }
993}
994impl Deref for TRGMUX {
995    type Target = trgmux::RegisterBlock;
996    #[inline(always)]
997    fn deref(&self) -> &Self::Target {
998        unsafe { &*Self::PTR }
999    }
1000}
1001impl core::fmt::Debug for TRGMUX {
1002    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1003        f.debug_struct("TRGMUX").finish()
1004    }
1005}
1006#[doc = "TRGMUX"]
1007pub mod trgmux;
1008#[doc = "System Clock Generator"]
1009pub struct SCG {
1010    _marker: PhantomData<*const ()>,
1011}
1012unsafe impl Send for SCG {}
1013impl SCG {
1014    #[doc = r"Pointer to the register block"]
1015    pub const PTR: *const scg::RegisterBlock = 0x4006_4000 as *const _;
1016    #[doc = r"Return the pointer to the register block"]
1017    #[inline(always)]
1018    pub const fn ptr() -> *const scg::RegisterBlock {
1019        Self::PTR
1020    }
1021}
1022impl Deref for SCG {
1023    type Target = scg::RegisterBlock;
1024    #[inline(always)]
1025    fn deref(&self) -> &Self::Target {
1026        unsafe { &*Self::PTR }
1027    }
1028}
1029impl core::fmt::Debug for SCG {
1030    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1031        f.debug_struct("SCG").finish()
1032    }
1033}
1034#[doc = "System Clock Generator"]
1035pub mod scg;
1036#[doc = "PCC"]
1037pub struct PCC {
1038    _marker: PhantomData<*const ()>,
1039}
1040unsafe impl Send for PCC {}
1041impl PCC {
1042    #[doc = r"Pointer to the register block"]
1043    pub const PTR: *const pcc::RegisterBlock = 0x4006_5000 as *const _;
1044    #[doc = r"Return the pointer to the register block"]
1045    #[inline(always)]
1046    pub const fn ptr() -> *const pcc::RegisterBlock {
1047        Self::PTR
1048    }
1049}
1050impl Deref for PCC {
1051    type Target = pcc::RegisterBlock;
1052    #[inline(always)]
1053    fn deref(&self) -> &Self::Target {
1054        unsafe { &*Self::PTR }
1055    }
1056}
1057impl core::fmt::Debug for PCC {
1058    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1059        f.debug_struct("PCC").finish()
1060    }
1061}
1062#[doc = "PCC"]
1063pub mod pcc;
1064#[doc = "LPI2C"]
1065pub struct LPI2C0 {
1066    _marker: PhantomData<*const ()>,
1067}
1068unsafe impl Send for LPI2C0 {}
1069impl LPI2C0 {
1070    #[doc = r"Pointer to the register block"]
1071    pub const PTR: *const lpi2c0::RegisterBlock = 0x4006_6000 as *const _;
1072    #[doc = r"Return the pointer to the register block"]
1073    #[inline(always)]
1074    pub const fn ptr() -> *const lpi2c0::RegisterBlock {
1075        Self::PTR
1076    }
1077}
1078impl Deref for LPI2C0 {
1079    type Target = lpi2c0::RegisterBlock;
1080    #[inline(always)]
1081    fn deref(&self) -> &Self::Target {
1082        unsafe { &*Self::PTR }
1083    }
1084}
1085impl core::fmt::Debug for LPI2C0 {
1086    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1087        f.debug_struct("LPI2C0").finish()
1088    }
1089}
1090#[doc = "LPI2C"]
1091pub mod lpi2c0;
1092#[doc = "LPUART"]
1093pub struct LPUART0 {
1094    _marker: PhantomData<*const ()>,
1095}
1096unsafe impl Send for LPUART0 {}
1097impl LPUART0 {
1098    #[doc = r"Pointer to the register block"]
1099    pub const PTR: *const lpuart0::RegisterBlock = 0x4006_a000 as *const _;
1100    #[doc = r"Return the pointer to the register block"]
1101    #[inline(always)]
1102    pub const fn ptr() -> *const lpuart0::RegisterBlock {
1103        Self::PTR
1104    }
1105}
1106impl Deref for LPUART0 {
1107    type Target = lpuart0::RegisterBlock;
1108    #[inline(always)]
1109    fn deref(&self) -> &Self::Target {
1110        unsafe { &*Self::PTR }
1111    }
1112}
1113impl core::fmt::Debug for LPUART0 {
1114    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1115        f.debug_struct("LPUART0").finish()
1116    }
1117}
1118#[doc = "LPUART"]
1119pub mod lpuart0;
1120#[doc = "LPUART"]
1121pub struct LPUART1 {
1122    _marker: PhantomData<*const ()>,
1123}
1124unsafe impl Send for LPUART1 {}
1125impl LPUART1 {
1126    #[doc = r"Pointer to the register block"]
1127    pub const PTR: *const lpuart0::RegisterBlock = 0x4006_b000 as *const _;
1128    #[doc = r"Return the pointer to the register block"]
1129    #[inline(always)]
1130    pub const fn ptr() -> *const lpuart0::RegisterBlock {
1131        Self::PTR
1132    }
1133}
1134impl Deref for LPUART1 {
1135    type Target = lpuart0::RegisterBlock;
1136    #[inline(always)]
1137    fn deref(&self) -> &Self::Target {
1138        unsafe { &*Self::PTR }
1139    }
1140}
1141impl core::fmt::Debug for LPUART1 {
1142    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1143        f.debug_struct("LPUART1").finish()
1144    }
1145}
1146#[doc = "LPUART"]
1147pub use lpuart0 as lpuart1;
1148#[doc = "LPUART"]
1149pub struct LPUART2 {
1150    _marker: PhantomData<*const ()>,
1151}
1152unsafe impl Send for LPUART2 {}
1153impl LPUART2 {
1154    #[doc = r"Pointer to the register block"]
1155    pub const PTR: *const lpuart0::RegisterBlock = 0x4006_c000 as *const _;
1156    #[doc = r"Return the pointer to the register block"]
1157    #[inline(always)]
1158    pub const fn ptr() -> *const lpuart0::RegisterBlock {
1159        Self::PTR
1160    }
1161}
1162impl Deref for LPUART2 {
1163    type Target = lpuart0::RegisterBlock;
1164    #[inline(always)]
1165    fn deref(&self) -> &Self::Target {
1166        unsafe { &*Self::PTR }
1167    }
1168}
1169impl core::fmt::Debug for LPUART2 {
1170    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1171        f.debug_struct("LPUART2").finish()
1172    }
1173}
1174#[doc = "LPUART"]
1175pub use lpuart0 as lpuart2;
1176#[doc = "High-Speed Comparator (CMP), Voltage Reference (VREF) Digital-to-Analog Converter (DAC), and Analog Mux (ANMUX)"]
1177pub struct CMP0 {
1178    _marker: PhantomData<*const ()>,
1179}
1180unsafe impl Send for CMP0 {}
1181impl CMP0 {
1182    #[doc = r"Pointer to the register block"]
1183    pub const PTR: *const cmp0::RegisterBlock = 0x4007_3000 as *const _;
1184    #[doc = r"Return the pointer to the register block"]
1185    #[inline(always)]
1186    pub const fn ptr() -> *const cmp0::RegisterBlock {
1187        Self::PTR
1188    }
1189}
1190impl Deref for CMP0 {
1191    type Target = cmp0::RegisterBlock;
1192    #[inline(always)]
1193    fn deref(&self) -> &Self::Target {
1194        unsafe { &*Self::PTR }
1195    }
1196}
1197impl core::fmt::Debug for CMP0 {
1198    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1199        f.debug_struct("CMP0").finish()
1200    }
1201}
1202#[doc = "High-Speed Comparator (CMP), Voltage Reference (VREF) Digital-to-Analog Converter (DAC), and Analog Mux (ANMUX)"]
1203pub mod cmp0;
1204#[doc = "PMC"]
1205pub struct PMC {
1206    _marker: PhantomData<*const ()>,
1207}
1208unsafe impl Send for PMC {}
1209impl PMC {
1210    #[doc = r"Pointer to the register block"]
1211    pub const PTR: *const pmc::RegisterBlock = 0x4007_d000 as *const _;
1212    #[doc = r"Return the pointer to the register block"]
1213    #[inline(always)]
1214    pub const fn ptr() -> *const pmc::RegisterBlock {
1215        Self::PTR
1216    }
1217}
1218impl Deref for PMC {
1219    type Target = pmc::RegisterBlock;
1220    #[inline(always)]
1221    fn deref(&self) -> &Self::Target {
1222        unsafe { &*Self::PTR }
1223    }
1224}
1225impl core::fmt::Debug for PMC {
1226    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1227        f.debug_struct("PMC").finish()
1228    }
1229}
1230#[doc = "PMC"]
1231pub mod pmc;
1232#[doc = "System Mode Controller"]
1233pub struct SMC {
1234    _marker: PhantomData<*const ()>,
1235}
1236unsafe impl Send for SMC {}
1237impl SMC {
1238    #[doc = r"Pointer to the register block"]
1239    pub const PTR: *const smc::RegisterBlock = 0x4007_e000 as *const _;
1240    #[doc = r"Return the pointer to the register block"]
1241    #[inline(always)]
1242    pub const fn ptr() -> *const smc::RegisterBlock {
1243        Self::PTR
1244    }
1245}
1246impl Deref for SMC {
1247    type Target = smc::RegisterBlock;
1248    #[inline(always)]
1249    fn deref(&self) -> &Self::Target {
1250        unsafe { &*Self::PTR }
1251    }
1252}
1253impl core::fmt::Debug for SMC {
1254    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1255        f.debug_struct("SMC").finish()
1256    }
1257}
1258#[doc = "System Mode Controller"]
1259pub mod smc;
1260#[doc = "Reset Control Module"]
1261pub struct RCM {
1262    _marker: PhantomData<*const ()>,
1263}
1264unsafe impl Send for RCM {}
1265impl RCM {
1266    #[doc = r"Pointer to the register block"]
1267    pub const PTR: *const rcm::RegisterBlock = 0x4007_f000 as *const _;
1268    #[doc = r"Return the pointer to the register block"]
1269    #[inline(always)]
1270    pub const fn ptr() -> *const rcm::RegisterBlock {
1271        Self::PTR
1272    }
1273}
1274impl Deref for RCM {
1275    type Target = rcm::RegisterBlock;
1276    #[inline(always)]
1277    fn deref(&self) -> &Self::Target {
1278        unsafe { &*Self::PTR }
1279    }
1280}
1281impl core::fmt::Debug for RCM {
1282    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1283        f.debug_struct("RCM").finish()
1284    }
1285}
1286#[doc = "Reset Control Module"]
1287pub mod rcm;
1288#[doc = "GPIO"]
1289pub struct PTA {
1290    _marker: PhantomData<*const ()>,
1291}
1292unsafe impl Send for PTA {}
1293impl PTA {
1294    #[doc = r"Pointer to the register block"]
1295    pub const PTR: *const pta::RegisterBlock = 0x400f_f000 as *const _;
1296    #[doc = r"Return the pointer to the register block"]
1297    #[inline(always)]
1298    pub const fn ptr() -> *const pta::RegisterBlock {
1299        Self::PTR
1300    }
1301}
1302impl Deref for PTA {
1303    type Target = pta::RegisterBlock;
1304    #[inline(always)]
1305    fn deref(&self) -> &Self::Target {
1306        unsafe { &*Self::PTR }
1307    }
1308}
1309impl core::fmt::Debug for PTA {
1310    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1311        f.debug_struct("PTA").finish()
1312    }
1313}
1314#[doc = "GPIO"]
1315pub mod pta;
1316#[doc = "GPIO"]
1317pub struct PTB {
1318    _marker: PhantomData<*const ()>,
1319}
1320unsafe impl Send for PTB {}
1321impl PTB {
1322    #[doc = r"Pointer to the register block"]
1323    pub const PTR: *const pta::RegisterBlock = 0x400f_f040 as *const _;
1324    #[doc = r"Return the pointer to the register block"]
1325    #[inline(always)]
1326    pub const fn ptr() -> *const pta::RegisterBlock {
1327        Self::PTR
1328    }
1329}
1330impl Deref for PTB {
1331    type Target = pta::RegisterBlock;
1332    #[inline(always)]
1333    fn deref(&self) -> &Self::Target {
1334        unsafe { &*Self::PTR }
1335    }
1336}
1337impl core::fmt::Debug for PTB {
1338    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1339        f.debug_struct("PTB").finish()
1340    }
1341}
1342#[doc = "GPIO"]
1343pub use pta as ptb;
1344#[doc = "GPIO"]
1345pub struct PTC {
1346    _marker: PhantomData<*const ()>,
1347}
1348unsafe impl Send for PTC {}
1349impl PTC {
1350    #[doc = r"Pointer to the register block"]
1351    pub const PTR: *const pta::RegisterBlock = 0x400f_f080 as *const _;
1352    #[doc = r"Return the pointer to the register block"]
1353    #[inline(always)]
1354    pub const fn ptr() -> *const pta::RegisterBlock {
1355        Self::PTR
1356    }
1357}
1358impl Deref for PTC {
1359    type Target = pta::RegisterBlock;
1360    #[inline(always)]
1361    fn deref(&self) -> &Self::Target {
1362        unsafe { &*Self::PTR }
1363    }
1364}
1365impl core::fmt::Debug for PTC {
1366    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1367        f.debug_struct("PTC").finish()
1368    }
1369}
1370#[doc = "GPIO"]
1371pub use pta as ptc;
1372#[doc = "GPIO"]
1373pub struct PTD {
1374    _marker: PhantomData<*const ()>,
1375}
1376unsafe impl Send for PTD {}
1377impl PTD {
1378    #[doc = r"Pointer to the register block"]
1379    pub const PTR: *const pta::RegisterBlock = 0x400f_f0c0 as *const _;
1380    #[doc = r"Return the pointer to the register block"]
1381    #[inline(always)]
1382    pub const fn ptr() -> *const pta::RegisterBlock {
1383        Self::PTR
1384    }
1385}
1386impl Deref for PTD {
1387    type Target = pta::RegisterBlock;
1388    #[inline(always)]
1389    fn deref(&self) -> &Self::Target {
1390        unsafe { &*Self::PTR }
1391    }
1392}
1393impl core::fmt::Debug for PTD {
1394    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1395        f.debug_struct("PTD").finish()
1396    }
1397}
1398#[doc = "GPIO"]
1399pub use pta as ptd;
1400#[doc = "GPIO"]
1401pub struct PTE {
1402    _marker: PhantomData<*const ()>,
1403}
1404unsafe impl Send for PTE {}
1405impl PTE {
1406    #[doc = r"Pointer to the register block"]
1407    pub const PTR: *const pta::RegisterBlock = 0x400f_f100 as *const _;
1408    #[doc = r"Return the pointer to the register block"]
1409    #[inline(always)]
1410    pub const fn ptr() -> *const pta::RegisterBlock {
1411        Self::PTR
1412    }
1413}
1414impl Deref for PTE {
1415    type Target = pta::RegisterBlock;
1416    #[inline(always)]
1417    fn deref(&self) -> &Self::Target {
1418        unsafe { &*Self::PTR }
1419    }
1420}
1421impl core::fmt::Debug for PTE {
1422    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1423        f.debug_struct("PTE").finish()
1424    }
1425}
1426#[doc = "GPIO"]
1427pub use pta as pte;
1428#[doc = "Core Platform Miscellaneous Control Module"]
1429pub struct MCM {
1430    _marker: PhantomData<*const ()>,
1431}
1432unsafe impl Send for MCM {}
1433impl MCM {
1434    #[doc = r"Pointer to the register block"]
1435    pub const PTR: *const mcm::RegisterBlock = 0xe008_0000 as *const _;
1436    #[doc = r"Return the pointer to the register block"]
1437    #[inline(always)]
1438    pub const fn ptr() -> *const mcm::RegisterBlock {
1439        Self::PTR
1440    }
1441}
1442impl Deref for MCM {
1443    type Target = mcm::RegisterBlock;
1444    #[inline(always)]
1445    fn deref(&self) -> &Self::Target {
1446        unsafe { &*Self::PTR }
1447    }
1448}
1449impl core::fmt::Debug for MCM {
1450    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1451        f.debug_struct("MCM").finish()
1452    }
1453}
1454#[doc = "Core Platform Miscellaneous Control Module"]
1455pub mod mcm;
1456#[doc = "LMEM"]
1457pub struct LMEM {
1458    _marker: PhantomData<*const ()>,
1459}
1460unsafe impl Send for LMEM {}
1461impl LMEM {
1462    #[doc = r"Pointer to the register block"]
1463    pub const PTR: *const lmem::RegisterBlock = 0xe008_2000 as *const _;
1464    #[doc = r"Return the pointer to the register block"]
1465    #[inline(always)]
1466    pub const fn ptr() -> *const lmem::RegisterBlock {
1467        Self::PTR
1468    }
1469}
1470impl Deref for LMEM {
1471    type Target = lmem::RegisterBlock;
1472    #[inline(always)]
1473    fn deref(&self) -> &Self::Target {
1474        unsafe { &*Self::PTR }
1475    }
1476}
1477impl core::fmt::Debug for LMEM {
1478    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1479        f.debug_struct("LMEM").finish()
1480    }
1481}
1482#[doc = "LMEM"]
1483pub mod lmem;
1484#[no_mangle]
1485static mut DEVICE_PERIPHERALS: bool = false;
1486#[doc = r"All the peripherals"]
1487#[allow(non_snake_case)]
1488pub struct Peripherals {
1489    #[doc = "AIPS"]
1490    pub AIPS: AIPS,
1491    #[doc = "MSCM"]
1492    pub MSCM: MSCM,
1493    #[doc = "DMA"]
1494    pub DMA: DMA,
1495    #[doc = "ERM"]
1496    pub ERM: ERM,
1497    #[doc = "EIM"]
1498    pub EIM: EIM,
1499    #[doc = "FTFM"]
1500    pub FTFM: FTFM,
1501    #[doc = "DMAMUX"]
1502    pub DMAMUX: DMAMUX,
1503    #[doc = "CAN0"]
1504    pub CAN0: CAN0,
1505    #[doc = "CAN1"]
1506    pub CAN1: CAN1,
1507    #[doc = "LPSPI0"]
1508    pub LPSPI0: LPSPI0,
1509    #[doc = "LPSPI1"]
1510    pub LPSPI1: LPSPI1,
1511    #[doc = "LPSPI2"]
1512    pub LPSPI2: LPSPI2,
1513    #[doc = "CRC"]
1514    pub CRC: CRC,
1515    #[doc = "PDB0"]
1516    pub PDB0: PDB0,
1517    #[doc = "PDB1"]
1518    pub PDB1: PDB1,
1519    #[doc = "LPIT0"]
1520    pub LPIT0: LPIT0,
1521    #[doc = "FTM0"]
1522    pub FTM0: FTM0,
1523    #[doc = "FTM3"]
1524    pub FTM3: FTM3,
1525    #[doc = "FTM1"]
1526    pub FTM1: FTM1,
1527    #[doc = "FTM2"]
1528    pub FTM2: FTM2,
1529    #[doc = "ADC0"]
1530    pub ADC0: ADC0,
1531    #[doc = "ADC1"]
1532    pub ADC1: ADC1,
1533    #[doc = "RTC"]
1534    pub RTC: RTC,
1535    #[doc = "LPTMR0"]
1536    pub LPTMR0: LPTMR0,
1537    #[doc = "SIM"]
1538    pub SIM: SIM,
1539    #[doc = "PORTA"]
1540    pub PORTA: PORTA,
1541    #[doc = "PORTB"]
1542    pub PORTB: PORTB,
1543    #[doc = "PORTC"]
1544    pub PORTC: PORTC,
1545    #[doc = "PORTD"]
1546    pub PORTD: PORTD,
1547    #[doc = "PORTE"]
1548    pub PORTE: PORTE,
1549    #[doc = "WDOG"]
1550    pub WDOG: WDOG,
1551    #[doc = "FLEXIO"]
1552    pub FLEXIO: FLEXIO,
1553    #[doc = "EWM"]
1554    pub EWM: EWM,
1555    #[doc = "TRGMUX"]
1556    pub TRGMUX: TRGMUX,
1557    #[doc = "SCG"]
1558    pub SCG: SCG,
1559    #[doc = "PCC"]
1560    pub PCC: PCC,
1561    #[doc = "LPI2C0"]
1562    pub LPI2C0: LPI2C0,
1563    #[doc = "LPUART0"]
1564    pub LPUART0: LPUART0,
1565    #[doc = "LPUART1"]
1566    pub LPUART1: LPUART1,
1567    #[doc = "LPUART2"]
1568    pub LPUART2: LPUART2,
1569    #[doc = "CMP0"]
1570    pub CMP0: CMP0,
1571    #[doc = "PMC"]
1572    pub PMC: PMC,
1573    #[doc = "SMC"]
1574    pub SMC: SMC,
1575    #[doc = "RCM"]
1576    pub RCM: RCM,
1577    #[doc = "PTA"]
1578    pub PTA: PTA,
1579    #[doc = "PTB"]
1580    pub PTB: PTB,
1581    #[doc = "PTC"]
1582    pub PTC: PTC,
1583    #[doc = "PTD"]
1584    pub PTD: PTD,
1585    #[doc = "PTE"]
1586    pub PTE: PTE,
1587    #[doc = "MCM"]
1588    pub MCM: MCM,
1589    #[doc = "LMEM"]
1590    pub LMEM: LMEM,
1591}
1592impl Peripherals {
1593    #[doc = r"Returns all the peripherals *once*"]
1594    #[inline]
1595    pub fn take() -> Option<Self> {
1596        cortex_m::interrupt::free(|_| {
1597            if unsafe { DEVICE_PERIPHERALS } {
1598                None
1599            } else {
1600                Some(unsafe { Peripherals::steal() })
1601            }
1602        })
1603    }
1604    #[doc = r"Unchecked version of `Peripherals::take`"]
1605    #[inline]
1606    pub unsafe fn steal() -> Self {
1607        DEVICE_PERIPHERALS = true;
1608        Peripherals {
1609            AIPS: AIPS {
1610                _marker: PhantomData,
1611            },
1612            MSCM: MSCM {
1613                _marker: PhantomData,
1614            },
1615            DMA: DMA {
1616                _marker: PhantomData,
1617            },
1618            ERM: ERM {
1619                _marker: PhantomData,
1620            },
1621            EIM: EIM {
1622                _marker: PhantomData,
1623            },
1624            FTFM: FTFM {
1625                _marker: PhantomData,
1626            },
1627            DMAMUX: DMAMUX {
1628                _marker: PhantomData,
1629            },
1630            CAN0: CAN0 {
1631                _marker: PhantomData,
1632            },
1633            CAN1: CAN1 {
1634                _marker: PhantomData,
1635            },
1636            LPSPI0: LPSPI0 {
1637                _marker: PhantomData,
1638            },
1639            LPSPI1: LPSPI1 {
1640                _marker: PhantomData,
1641            },
1642            LPSPI2: LPSPI2 {
1643                _marker: PhantomData,
1644            },
1645            CRC: CRC {
1646                _marker: PhantomData,
1647            },
1648            PDB0: PDB0 {
1649                _marker: PhantomData,
1650            },
1651            PDB1: PDB1 {
1652                _marker: PhantomData,
1653            },
1654            LPIT0: LPIT0 {
1655                _marker: PhantomData,
1656            },
1657            FTM0: FTM0 {
1658                _marker: PhantomData,
1659            },
1660            FTM3: FTM3 {
1661                _marker: PhantomData,
1662            },
1663            FTM1: FTM1 {
1664                _marker: PhantomData,
1665            },
1666            FTM2: FTM2 {
1667                _marker: PhantomData,
1668            },
1669            ADC0: ADC0 {
1670                _marker: PhantomData,
1671            },
1672            ADC1: ADC1 {
1673                _marker: PhantomData,
1674            },
1675            RTC: RTC {
1676                _marker: PhantomData,
1677            },
1678            LPTMR0: LPTMR0 {
1679                _marker: PhantomData,
1680            },
1681            SIM: SIM {
1682                _marker: PhantomData,
1683            },
1684            PORTA: PORTA {
1685                _marker: PhantomData,
1686            },
1687            PORTB: PORTB {
1688                _marker: PhantomData,
1689            },
1690            PORTC: PORTC {
1691                _marker: PhantomData,
1692            },
1693            PORTD: PORTD {
1694                _marker: PhantomData,
1695            },
1696            PORTE: PORTE {
1697                _marker: PhantomData,
1698            },
1699            WDOG: WDOG {
1700                _marker: PhantomData,
1701            },
1702            FLEXIO: FLEXIO {
1703                _marker: PhantomData,
1704            },
1705            EWM: EWM {
1706                _marker: PhantomData,
1707            },
1708            TRGMUX: TRGMUX {
1709                _marker: PhantomData,
1710            },
1711            SCG: SCG {
1712                _marker: PhantomData,
1713            },
1714            PCC: PCC {
1715                _marker: PhantomData,
1716            },
1717            LPI2C0: LPI2C0 {
1718                _marker: PhantomData,
1719            },
1720            LPUART0: LPUART0 {
1721                _marker: PhantomData,
1722            },
1723            LPUART1: LPUART1 {
1724                _marker: PhantomData,
1725            },
1726            LPUART2: LPUART2 {
1727                _marker: PhantomData,
1728            },
1729            CMP0: CMP0 {
1730                _marker: PhantomData,
1731            },
1732            PMC: PMC {
1733                _marker: PhantomData,
1734            },
1735            SMC: SMC {
1736                _marker: PhantomData,
1737            },
1738            RCM: RCM {
1739                _marker: PhantomData,
1740            },
1741            PTA: PTA {
1742                _marker: PhantomData,
1743            },
1744            PTB: PTB {
1745                _marker: PhantomData,
1746            },
1747            PTC: PTC {
1748                _marker: PhantomData,
1749            },
1750            PTD: PTD {
1751                _marker: PhantomData,
1752            },
1753            PTE: PTE {
1754                _marker: PhantomData,
1755            },
1756            MCM: MCM {
1757                _marker: PhantomData,
1758            },
1759            LMEM: LMEM {
1760                _marker: PhantomData,
1761            },
1762        }
1763    }
1764}