ra4m1/
lib.rs

1#![doc = "Peripheral access API for R7FA4M1AB microcontrollers (generated using svd2rust v0.28.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.28.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(dead_code)]
4#![deny(improper_ctypes)]
5#![deny(missing_docs)]
6#![deny(no_mangle_generic_items)]
7#![deny(non_shorthand_field_patterns)]
8#![deny(overflowing_literals)]
9#![deny(path_statements)]
10#![deny(patterns_in_fns_without_body)]
11#![deny(private_in_public)]
12#![deny(unconditional_recursion)]
13#![deny(unused_allocation)]
14#![deny(unused_comparisons)]
15#![deny(unused_parens)]
16#![deny(while_true)]
17#![allow(non_camel_case_types)]
18#![allow(non_snake_case)]
19#![no_std]
20use core::marker::PhantomData;
21use core::ops::Deref;
22#[doc = r"Number available in the NVIC for configuring priority"]
23pub const NVIC_PRIO_BITS: u8 = 4;
24#[cfg(feature = "rt")]
25pub use self::Interrupt as interrupt;
26pub use cortex_m::peripheral::Peripherals as CorePeripherals;
27pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, MPU, NVIC, SCB, SYST, TPIU};
28#[cfg(feature = "rt")]
29pub use cortex_m_rt::interrupt;
30#[allow(unused_imports)]
31use generic::*;
32#[doc = r"Common register and bit access and modify traits"]
33pub mod generic;
34#[cfg(feature = "rt")]
35extern "C" {
36    fn IEL0();
37    fn IEL1();
38    fn IEL2();
39    fn IEL3();
40    fn IEL4();
41    fn IEL5();
42    fn IEL6();
43    fn IEL7();
44    fn IEL8();
45    fn IEL9();
46    fn IEL10();
47    fn IEL11();
48    fn IEL12();
49    fn IEL13();
50    fn IEL14();
51    fn IEL15();
52    fn IEL16();
53    fn IEL17();
54    fn IEL18();
55    fn IEL19();
56    fn IEL20();
57    fn IEL21();
58    fn IEL22();
59    fn IEL23();
60    fn IEL24();
61    fn IEL25();
62    fn IEL26();
63    fn IEL27();
64    fn IEL28();
65    fn IEL29();
66    fn IEL30();
67    fn IEL31();
68}
69#[doc(hidden)]
70pub union Vector {
71    _handler: unsafe extern "C" fn(),
72    _reserved: u32,
73}
74#[cfg(feature = "rt")]
75#[doc(hidden)]
76#[link_section = ".vector_table.interrupts"]
77#[no_mangle]
78pub static __INTERRUPTS: [Vector; 32] = [
79    Vector { _handler: IEL0 },
80    Vector { _handler: IEL1 },
81    Vector { _handler: IEL2 },
82    Vector { _handler: IEL3 },
83    Vector { _handler: IEL4 },
84    Vector { _handler: IEL5 },
85    Vector { _handler: IEL6 },
86    Vector { _handler: IEL7 },
87    Vector { _handler: IEL8 },
88    Vector { _handler: IEL9 },
89    Vector { _handler: IEL10 },
90    Vector { _handler: IEL11 },
91    Vector { _handler: IEL12 },
92    Vector { _handler: IEL13 },
93    Vector { _handler: IEL14 },
94    Vector { _handler: IEL15 },
95    Vector { _handler: IEL16 },
96    Vector { _handler: IEL17 },
97    Vector { _handler: IEL18 },
98    Vector { _handler: IEL19 },
99    Vector { _handler: IEL20 },
100    Vector { _handler: IEL21 },
101    Vector { _handler: IEL22 },
102    Vector { _handler: IEL23 },
103    Vector { _handler: IEL24 },
104    Vector { _handler: IEL25 },
105    Vector { _handler: IEL26 },
106    Vector { _handler: IEL27 },
107    Vector { _handler: IEL28 },
108    Vector { _handler: IEL29 },
109    Vector { _handler: IEL30 },
110    Vector { _handler: IEL31 },
111];
112#[doc = r"Enumeration of all the interrupts."]
113#[derive(Copy, Clone, Debug, PartialEq, Eq)]
114#[repr(u16)]
115pub enum Interrupt {
116    #[doc = "0 - ICU Interrupt 0"]
117    IEL0 = 0,
118    #[doc = "1 - ICU Interrupt 1"]
119    IEL1 = 1,
120    #[doc = "2 - ICU Interrupt 2"]
121    IEL2 = 2,
122    #[doc = "3 - ICU Interrupt 3"]
123    IEL3 = 3,
124    #[doc = "4 - ICU Interrupt 4"]
125    IEL4 = 4,
126    #[doc = "5 - ICU Interrupt 5"]
127    IEL5 = 5,
128    #[doc = "6 - ICU Interrupt 6"]
129    IEL6 = 6,
130    #[doc = "7 - ICU Interrupt 7"]
131    IEL7 = 7,
132    #[doc = "8 - ICU Interrupt 8"]
133    IEL8 = 8,
134    #[doc = "9 - ICU Interrupt 9"]
135    IEL9 = 9,
136    #[doc = "10 - ICU Interrupt 10"]
137    IEL10 = 10,
138    #[doc = "11 - ICU Interrupt 11"]
139    IEL11 = 11,
140    #[doc = "12 - ICU Interrupt 12"]
141    IEL12 = 12,
142    #[doc = "13 - ICU Interrupt 13"]
143    IEL13 = 13,
144    #[doc = "14 - ICU Interrupt 14"]
145    IEL14 = 14,
146    #[doc = "15 - ICU Interrupt 15"]
147    IEL15 = 15,
148    #[doc = "16 - ICU Interrupt 16"]
149    IEL16 = 16,
150    #[doc = "17 - ICU Interrupt 17"]
151    IEL17 = 17,
152    #[doc = "18 - ICU Interrupt 18"]
153    IEL18 = 18,
154    #[doc = "19 - ICU Interrupt 19"]
155    IEL19 = 19,
156    #[doc = "20 - ICU Interrupt 20"]
157    IEL20 = 20,
158    #[doc = "21 - ICU Interrupt 21"]
159    IEL21 = 21,
160    #[doc = "22 - ICU Interrupt 22"]
161    IEL22 = 22,
162    #[doc = "23 - ICU Interrupt 23"]
163    IEL23 = 23,
164    #[doc = "24 - ICU Interrupt 24"]
165    IEL24 = 24,
166    #[doc = "25 - ICU Interrupt 25"]
167    IEL25 = 25,
168    #[doc = "26 - ICU Interrupt 26"]
169    IEL26 = 26,
170    #[doc = "27 - ICU Interrupt 27"]
171    IEL27 = 27,
172    #[doc = "28 - ICU Interrupt 28"]
173    IEL28 = 28,
174    #[doc = "29 - ICU Interrupt 29"]
175    IEL29 = 29,
176    #[doc = "30 - ICU Interrupt 30"]
177    IEL30 = 30,
178    #[doc = "31 - ICU Interrupt 31"]
179    IEL31 = 31,
180}
181unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
182    #[inline(always)]
183    fn number(self) -> u16 {
184        self as u16
185    }
186}
187#[doc = "System Control"]
188pub struct SYSTEM {
189    _marker: PhantomData<*const ()>,
190}
191unsafe impl Send for SYSTEM {}
192impl SYSTEM {
193    #[doc = r"Pointer to the register block"]
194    pub const PTR: *const system::RegisterBlock = 0x4001_e000 as *const _;
195    #[doc = r"Return the pointer to the register block"]
196    #[inline(always)]
197    pub const fn ptr() -> *const system::RegisterBlock {
198        Self::PTR
199    }
200}
201impl Deref for SYSTEM {
202    type Target = system::RegisterBlock;
203    #[inline(always)]
204    fn deref(&self) -> &Self::Target {
205        unsafe { &*Self::PTR }
206    }
207}
208impl core::fmt::Debug for SYSTEM {
209    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
210        f.debug_struct("SYSTEM").finish()
211    }
212}
213#[doc = "System Control"]
214pub mod system;
215#[doc = "BUS Control"]
216pub struct BUS {
217    _marker: PhantomData<*const ()>,
218}
219unsafe impl Send for BUS {}
220impl BUS {
221    #[doc = r"Pointer to the register block"]
222    pub const PTR: *const bus::RegisterBlock = 0x4000_3000 as *const _;
223    #[doc = r"Return the pointer to the register block"]
224    #[inline(always)]
225    pub const fn ptr() -> *const bus::RegisterBlock {
226        Self::PTR
227    }
228}
229impl Deref for BUS {
230    type Target = bus::RegisterBlock;
231    #[inline(always)]
232    fn deref(&self) -> &Self::Target {
233        unsafe { &*Self::PTR }
234    }
235}
236impl core::fmt::Debug for BUS {
237    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
238        f.debug_struct("BUS").finish()
239    }
240}
241#[doc = "BUS Control"]
242pub mod bus;
243#[doc = "Clock Frequency Accuracy Measurement Circuit"]
244pub struct CAC {
245    _marker: PhantomData<*const ()>,
246}
247unsafe impl Send for CAC {}
248impl CAC {
249    #[doc = r"Pointer to the register block"]
250    pub const PTR: *const cac::RegisterBlock = 0x4004_4600 as *const _;
251    #[doc = r"Return the pointer to the register block"]
252    #[inline(always)]
253    pub const fn ptr() -> *const cac::RegisterBlock {
254        Self::PTR
255    }
256}
257impl Deref for CAC {
258    type Target = cac::RegisterBlock;
259    #[inline(always)]
260    fn deref(&self) -> &Self::Target {
261        unsafe { &*Self::PTR }
262    }
263}
264impl core::fmt::Debug for CAC {
265    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
266        f.debug_struct("CAC").finish()
267    }
268}
269#[doc = "Clock Frequency Accuracy Measurement Circuit"]
270pub mod cac;
271#[doc = "CAN0 Module"]
272pub struct CAN0 {
273    _marker: PhantomData<*const ()>,
274}
275unsafe impl Send for CAN0 {}
276impl CAN0 {
277    #[doc = r"Pointer to the register block"]
278    pub const PTR: *const can0::RegisterBlock = 0x4005_0000 as *const _;
279    #[doc = r"Return the pointer to the register block"]
280    #[inline(always)]
281    pub const fn ptr() -> *const can0::RegisterBlock {
282        Self::PTR
283    }
284}
285impl Deref for CAN0 {
286    type Target = can0::RegisterBlock;
287    #[inline(always)]
288    fn deref(&self) -> &Self::Target {
289        unsafe { &*Self::PTR }
290    }
291}
292impl core::fmt::Debug for CAN0 {
293    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
294        f.debug_struct("CAN0").finish()
295    }
296}
297#[doc = "CAN0 Module"]
298pub mod can0;
299#[doc = "Debug Function"]
300pub struct DBG {
301    _marker: PhantomData<*const ()>,
302}
303unsafe impl Send for DBG {}
304impl DBG {
305    #[doc = r"Pointer to the register block"]
306    pub const PTR: *const dbg::RegisterBlock = 0x4001_b000 as *const _;
307    #[doc = r"Return the pointer to the register block"]
308    #[inline(always)]
309    pub const fn ptr() -> *const dbg::RegisterBlock {
310        Self::PTR
311    }
312}
313impl Deref for DBG {
314    type Target = dbg::RegisterBlock;
315    #[inline(always)]
316    fn deref(&self) -> &Self::Target {
317        unsafe { &*Self::PTR }
318    }
319}
320impl core::fmt::Debug for DBG {
321    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
322        f.debug_struct("DBG").finish()
323    }
324}
325#[doc = "Debug Function"]
326pub mod dbg;
327#[doc = "CRC Calculator"]
328pub struct CRC {
329    _marker: PhantomData<*const ()>,
330}
331unsafe impl Send for CRC {}
332impl CRC {
333    #[doc = r"Pointer to the register block"]
334    pub const PTR: *const crc::RegisterBlock = 0x4007_4000 as *const _;
335    #[doc = r"Return the pointer to the register block"]
336    #[inline(always)]
337    pub const fn ptr() -> *const crc::RegisterBlock {
338        Self::PTR
339    }
340}
341impl Deref for CRC {
342    type Target = crc::RegisterBlock;
343    #[inline(always)]
344    fn deref(&self) -> &Self::Target {
345        unsafe { &*Self::PTR }
346    }
347}
348impl core::fmt::Debug for CRC {
349    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
350        f.debug_struct("CRC").finish()
351    }
352}
353#[doc = "CRC Calculator"]
354pub mod crc;
355#[doc = "Capacitive Touch Sensing Unit"]
356pub struct CTSU {
357    _marker: PhantomData<*const ()>,
358}
359unsafe impl Send for CTSU {}
360impl CTSU {
361    #[doc = r"Pointer to the register block"]
362    pub const PTR: *const ctsu::RegisterBlock = 0x4008_1000 as *const _;
363    #[doc = r"Return the pointer to the register block"]
364    #[inline(always)]
365    pub const fn ptr() -> *const ctsu::RegisterBlock {
366        Self::PTR
367    }
368}
369impl Deref for CTSU {
370    type Target = ctsu::RegisterBlock;
371    #[inline(always)]
372    fn deref(&self) -> &Self::Target {
373        unsafe { &*Self::PTR }
374    }
375}
376impl core::fmt::Debug for CTSU {
377    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
378        f.debug_struct("CTSU").finish()
379    }
380}
381#[doc = "Capacitive Touch Sensing Unit"]
382pub mod ctsu;
383#[doc = "12-bit D/A converter"]
384pub struct DAC12 {
385    _marker: PhantomData<*const ()>,
386}
387unsafe impl Send for DAC12 {}
388impl DAC12 {
389    #[doc = r"Pointer to the register block"]
390    pub const PTR: *const dac12::RegisterBlock = 0x4005_e000 as *const _;
391    #[doc = r"Return the pointer to the register block"]
392    #[inline(always)]
393    pub const fn ptr() -> *const dac12::RegisterBlock {
394        Self::PTR
395    }
396}
397impl Deref for DAC12 {
398    type Target = dac12::RegisterBlock;
399    #[inline(always)]
400    fn deref(&self) -> &Self::Target {
401        unsafe { &*Self::PTR }
402    }
403}
404impl core::fmt::Debug for DAC12 {
405    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
406        f.debug_struct("DAC12").finish()
407    }
408}
409#[doc = "12-bit D/A converter"]
410pub mod dac12;
411#[doc = "8-bit D/A converter"]
412pub struct DAC8 {
413    _marker: PhantomData<*const ()>,
414}
415unsafe impl Send for DAC8 {}
416impl DAC8 {
417    #[doc = r"Pointer to the register block"]
418    pub const PTR: *const dac8::RegisterBlock = 0x4009_e000 as *const _;
419    #[doc = r"Return the pointer to the register block"]
420    #[inline(always)]
421    pub const fn ptr() -> *const dac8::RegisterBlock {
422        Self::PTR
423    }
424}
425impl Deref for DAC8 {
426    type Target = dac8::RegisterBlock;
427    #[inline(always)]
428    fn deref(&self) -> &Self::Target {
429        unsafe { &*Self::PTR }
430    }
431}
432impl core::fmt::Debug for DAC8 {
433    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
434        f.debug_struct("DAC8").finish()
435    }
436}
437#[doc = "8-bit D/A converter"]
438pub mod dac8;
439#[doc = "Direct memory access controller 0"]
440pub struct DMAC0 {
441    _marker: PhantomData<*const ()>,
442}
443unsafe impl Send for DMAC0 {}
444impl DMAC0 {
445    #[doc = r"Pointer to the register block"]
446    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5000 as *const _;
447    #[doc = r"Return the pointer to the register block"]
448    #[inline(always)]
449    pub const fn ptr() -> *const dmac0::RegisterBlock {
450        Self::PTR
451    }
452}
453impl Deref for DMAC0 {
454    type Target = dmac0::RegisterBlock;
455    #[inline(always)]
456    fn deref(&self) -> &Self::Target {
457        unsafe { &*Self::PTR }
458    }
459}
460impl core::fmt::Debug for DMAC0 {
461    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
462        f.debug_struct("DMAC0").finish()
463    }
464}
465#[doc = "Direct memory access controller 0"]
466pub mod dmac0;
467#[doc = "Direct memory access controller 1"]
468pub struct DMAC1 {
469    _marker: PhantomData<*const ()>,
470}
471unsafe impl Send for DMAC1 {}
472impl DMAC1 {
473    #[doc = r"Pointer to the register block"]
474    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5040 as *const _;
475    #[doc = r"Return the pointer to the register block"]
476    #[inline(always)]
477    pub const fn ptr() -> *const dmac0::RegisterBlock {
478        Self::PTR
479    }
480}
481impl Deref for DMAC1 {
482    type Target = dmac0::RegisterBlock;
483    #[inline(always)]
484    fn deref(&self) -> &Self::Target {
485        unsafe { &*Self::PTR }
486    }
487}
488impl core::fmt::Debug for DMAC1 {
489    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
490        f.debug_struct("DMAC1").finish()
491    }
492}
493#[doc = "Direct memory access controller 1"]
494pub use self::dmac0 as dmac1;
495#[doc = "Direct memory access controller 2"]
496pub struct DMAC2 {
497    _marker: PhantomData<*const ()>,
498}
499unsafe impl Send for DMAC2 {}
500impl DMAC2 {
501    #[doc = r"Pointer to the register block"]
502    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5080 as *const _;
503    #[doc = r"Return the pointer to the register block"]
504    #[inline(always)]
505    pub const fn ptr() -> *const dmac0::RegisterBlock {
506        Self::PTR
507    }
508}
509impl Deref for DMAC2 {
510    type Target = dmac0::RegisterBlock;
511    #[inline(always)]
512    fn deref(&self) -> &Self::Target {
513        unsafe { &*Self::PTR }
514    }
515}
516impl core::fmt::Debug for DMAC2 {
517    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
518        f.debug_struct("DMAC2").finish()
519    }
520}
521#[doc = "Direct memory access controller 2"]
522pub use self::dmac0 as dmac2;
523#[doc = "Direct memory access controller 3"]
524pub struct DMAC3 {
525    _marker: PhantomData<*const ()>,
526}
527unsafe impl Send for DMAC3 {}
528impl DMAC3 {
529    #[doc = r"Pointer to the register block"]
530    pub const PTR: *const dmac0::RegisterBlock = 0x4000_50c0 as *const _;
531    #[doc = r"Return the pointer to the register block"]
532    #[inline(always)]
533    pub const fn ptr() -> *const dmac0::RegisterBlock {
534        Self::PTR
535    }
536}
537impl Deref for DMAC3 {
538    type Target = dmac0::RegisterBlock;
539    #[inline(always)]
540    fn deref(&self) -> &Self::Target {
541        unsafe { &*Self::PTR }
542    }
543}
544impl core::fmt::Debug for DMAC3 {
545    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
546        f.debug_struct("DMAC3").finish()
547    }
548}
549#[doc = "Direct memory access controller 3"]
550pub use self::dmac0 as dmac3;
551#[doc = "DMAC Module Activation"]
552pub struct DMA {
553    _marker: PhantomData<*const ()>,
554}
555unsafe impl Send for DMA {}
556impl DMA {
557    #[doc = r"Pointer to the register block"]
558    pub const PTR: *const dma::RegisterBlock = 0x4000_5200 as *const _;
559    #[doc = r"Return the pointer to the register block"]
560    #[inline(always)]
561    pub const fn ptr() -> *const dma::RegisterBlock {
562        Self::PTR
563    }
564}
565impl Deref for DMA {
566    type Target = dma::RegisterBlock;
567    #[inline(always)]
568    fn deref(&self) -> &Self::Target {
569        unsafe { &*Self::PTR }
570    }
571}
572impl core::fmt::Debug for DMA {
573    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
574        f.debug_struct("DMA").finish()
575    }
576}
577#[doc = "DMAC Module Activation"]
578pub mod dma;
579#[doc = "Data Operation Circuit"]
580pub struct DOC {
581    _marker: PhantomData<*const ()>,
582}
583unsafe impl Send for DOC {}
584impl DOC {
585    #[doc = r"Pointer to the register block"]
586    pub const PTR: *const doc::RegisterBlock = 0x4005_4100 as *const _;
587    #[doc = r"Return the pointer to the register block"]
588    #[inline(always)]
589    pub const fn ptr() -> *const doc::RegisterBlock {
590        Self::PTR
591    }
592}
593impl Deref for DOC {
594    type Target = doc::RegisterBlock;
595    #[inline(always)]
596    fn deref(&self) -> &Self::Target {
597        unsafe { &*Self::PTR }
598    }
599}
600impl core::fmt::Debug for DOC {
601    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
602        f.debug_struct("DOC").finish()
603    }
604}
605#[doc = "Data Operation Circuit"]
606pub mod doc;
607#[doc = "Data Transfer Controller"]
608pub struct DTC {
609    _marker: PhantomData<*const ()>,
610}
611unsafe impl Send for DTC {}
612impl DTC {
613    #[doc = r"Pointer to the register block"]
614    pub const PTR: *const dtc::RegisterBlock = 0x4000_5400 as *const _;
615    #[doc = r"Return the pointer to the register block"]
616    #[inline(always)]
617    pub const fn ptr() -> *const dtc::RegisterBlock {
618        Self::PTR
619    }
620}
621impl Deref for DTC {
622    type Target = dtc::RegisterBlock;
623    #[inline(always)]
624    fn deref(&self) -> &Self::Target {
625        unsafe { &*Self::PTR }
626    }
627}
628impl core::fmt::Debug for DTC {
629    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
630        f.debug_struct("DTC").finish()
631    }
632}
633#[doc = "Data Transfer Controller"]
634pub mod dtc;
635#[doc = "Event Link Controller"]
636pub struct ELC {
637    _marker: PhantomData<*const ()>,
638}
639unsafe impl Send for ELC {}
640impl ELC {
641    #[doc = r"Pointer to the register block"]
642    pub const PTR: *const elc::RegisterBlock = 0x4004_1000 as *const _;
643    #[doc = r"Return the pointer to the register block"]
644    #[inline(always)]
645    pub const fn ptr() -> *const elc::RegisterBlock {
646        Self::PTR
647    }
648}
649impl Deref for ELC {
650    type Target = elc::RegisterBlock;
651    #[inline(always)]
652    fn deref(&self) -> &Self::Target {
653        unsafe { &*Self::PTR }
654    }
655}
656impl core::fmt::Debug for ELC {
657    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
658        f.debug_struct("ELC").finish()
659    }
660}
661#[doc = "Event Link Controller"]
662pub mod elc;
663#[doc = "Flash Cache"]
664pub struct FCACHE {
665    _marker: PhantomData<*const ()>,
666}
667unsafe impl Send for FCACHE {}
668impl FCACHE {
669    #[doc = r"Pointer to the register block"]
670    pub const PTR: *const fcache::RegisterBlock = 0x4001_c000 as *const _;
671    #[doc = r"Return the pointer to the register block"]
672    #[inline(always)]
673    pub const fn ptr() -> *const fcache::RegisterBlock {
674        Self::PTR
675    }
676}
677impl Deref for FCACHE {
678    type Target = fcache::RegisterBlock;
679    #[inline(always)]
680    fn deref(&self) -> &Self::Target {
681        unsafe { &*Self::PTR }
682    }
683}
684impl core::fmt::Debug for FCACHE {
685    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
686        f.debug_struct("FCACHE").finish()
687    }
688}
689#[doc = "Flash Cache"]
690pub mod fcache;
691#[doc = "Port 0 Control Registers"]
692pub struct PORT0 {
693    _marker: PhantomData<*const ()>,
694}
695unsafe impl Send for PORT0 {}
696impl PORT0 {
697    #[doc = r"Pointer to the register block"]
698    pub const PTR: *const port0::RegisterBlock = 0x4004_0000 as *const _;
699    #[doc = r"Return the pointer to the register block"]
700    #[inline(always)]
701    pub const fn ptr() -> *const port0::RegisterBlock {
702        Self::PTR
703    }
704}
705impl Deref for PORT0 {
706    type Target = port0::RegisterBlock;
707    #[inline(always)]
708    fn deref(&self) -> &Self::Target {
709        unsafe { &*Self::PTR }
710    }
711}
712impl core::fmt::Debug for PORT0 {
713    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
714        f.debug_struct("PORT0").finish()
715    }
716}
717#[doc = "Port 0 Control Registers"]
718pub mod port0;
719#[doc = "Port 1 Control Registers"]
720pub struct PORT1 {
721    _marker: PhantomData<*const ()>,
722}
723unsafe impl Send for PORT1 {}
724impl PORT1 {
725    #[doc = r"Pointer to the register block"]
726    pub const PTR: *const port1::RegisterBlock = 0x4004_0020 as *const _;
727    #[doc = r"Return the pointer to the register block"]
728    #[inline(always)]
729    pub const fn ptr() -> *const port1::RegisterBlock {
730        Self::PTR
731    }
732}
733impl Deref for PORT1 {
734    type Target = port1::RegisterBlock;
735    #[inline(always)]
736    fn deref(&self) -> &Self::Target {
737        unsafe { &*Self::PTR }
738    }
739}
740impl core::fmt::Debug for PORT1 {
741    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
742        f.debug_struct("PORT1").finish()
743    }
744}
745#[doc = "Port 1 Control Registers"]
746pub mod port1;
747#[doc = "Port 2 Control Registers"]
748pub struct PORT2 {
749    _marker: PhantomData<*const ()>,
750}
751unsafe impl Send for PORT2 {}
752impl PORT2 {
753    #[doc = r"Pointer to the register block"]
754    pub const PTR: *const port1::RegisterBlock = 0x4004_0040 as *const _;
755    #[doc = r"Return the pointer to the register block"]
756    #[inline(always)]
757    pub const fn ptr() -> *const port1::RegisterBlock {
758        Self::PTR
759    }
760}
761impl Deref for PORT2 {
762    type Target = port1::RegisterBlock;
763    #[inline(always)]
764    fn deref(&self) -> &Self::Target {
765        unsafe { &*Self::PTR }
766    }
767}
768impl core::fmt::Debug for PORT2 {
769    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
770        f.debug_struct("PORT2").finish()
771    }
772}
773#[doc = "Port 2 Control Registers"]
774pub use self::port1 as port2;
775#[doc = "Port 3 Control Registers"]
776pub struct PORT3 {
777    _marker: PhantomData<*const ()>,
778}
779unsafe impl Send for PORT3 {}
780impl PORT3 {
781    #[doc = r"Pointer to the register block"]
782    pub const PTR: *const port1::RegisterBlock = 0x4004_0060 as *const _;
783    #[doc = r"Return the pointer to the register block"]
784    #[inline(always)]
785    pub const fn ptr() -> *const port1::RegisterBlock {
786        Self::PTR
787    }
788}
789impl Deref for PORT3 {
790    type Target = port1::RegisterBlock;
791    #[inline(always)]
792    fn deref(&self) -> &Self::Target {
793        unsafe { &*Self::PTR }
794    }
795}
796impl core::fmt::Debug for PORT3 {
797    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
798        f.debug_struct("PORT3").finish()
799    }
800}
801#[doc = "Port 3 Control Registers"]
802pub use self::port1 as port3;
803#[doc = "Port 4 Control Registers"]
804pub struct PORT4 {
805    _marker: PhantomData<*const ()>,
806}
807unsafe impl Send for PORT4 {}
808impl PORT4 {
809    #[doc = r"Pointer to the register block"]
810    pub const PTR: *const port1::RegisterBlock = 0x4004_0080 as *const _;
811    #[doc = r"Return the pointer to the register block"]
812    #[inline(always)]
813    pub const fn ptr() -> *const port1::RegisterBlock {
814        Self::PTR
815    }
816}
817impl Deref for PORT4 {
818    type Target = port1::RegisterBlock;
819    #[inline(always)]
820    fn deref(&self) -> &Self::Target {
821        unsafe { &*Self::PTR }
822    }
823}
824impl core::fmt::Debug for PORT4 {
825    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
826        f.debug_struct("PORT4").finish()
827    }
828}
829#[doc = "Port 4 Control Registers"]
830pub use self::port1 as port4;
831#[doc = "Port 5 Control Registers"]
832pub struct PORT5 {
833    _marker: PhantomData<*const ()>,
834}
835unsafe impl Send for PORT5 {}
836impl PORT5 {
837    #[doc = r"Pointer to the register block"]
838    pub const PTR: *const port0::RegisterBlock = 0x4004_00a0 as *const _;
839    #[doc = r"Return the pointer to the register block"]
840    #[inline(always)]
841    pub const fn ptr() -> *const port0::RegisterBlock {
842        Self::PTR
843    }
844}
845impl Deref for PORT5 {
846    type Target = port0::RegisterBlock;
847    #[inline(always)]
848    fn deref(&self) -> &Self::Target {
849        unsafe { &*Self::PTR }
850    }
851}
852impl core::fmt::Debug for PORT5 {
853    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
854        f.debug_struct("PORT5").finish()
855    }
856}
857#[doc = "Port 5 Control Registers"]
858pub use self::port0 as port5;
859#[doc = "Port 6 Control Registers"]
860pub struct PORT6 {
861    _marker: PhantomData<*const ()>,
862}
863unsafe impl Send for PORT6 {}
864impl PORT6 {
865    #[doc = r"Pointer to the register block"]
866    pub const PTR: *const port0::RegisterBlock = 0x4004_00c0 as *const _;
867    #[doc = r"Return the pointer to the register block"]
868    #[inline(always)]
869    pub const fn ptr() -> *const port0::RegisterBlock {
870        Self::PTR
871    }
872}
873impl Deref for PORT6 {
874    type Target = port0::RegisterBlock;
875    #[inline(always)]
876    fn deref(&self) -> &Self::Target {
877        unsafe { &*Self::PTR }
878    }
879}
880impl core::fmt::Debug for PORT6 {
881    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
882        f.debug_struct("PORT6").finish()
883    }
884}
885#[doc = "Port 6 Control Registers"]
886pub use self::port0 as port6;
887#[doc = "Port 7 Control Registers"]
888pub struct PORT7 {
889    _marker: PhantomData<*const ()>,
890}
891unsafe impl Send for PORT7 {}
892impl PORT7 {
893    #[doc = r"Pointer to the register block"]
894    pub const PTR: *const port0::RegisterBlock = 0x4004_00e0 as *const _;
895    #[doc = r"Return the pointer to the register block"]
896    #[inline(always)]
897    pub const fn ptr() -> *const port0::RegisterBlock {
898        Self::PTR
899    }
900}
901impl Deref for PORT7 {
902    type Target = port0::RegisterBlock;
903    #[inline(always)]
904    fn deref(&self) -> &Self::Target {
905        unsafe { &*Self::PTR }
906    }
907}
908impl core::fmt::Debug for PORT7 {
909    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
910        f.debug_struct("PORT7").finish()
911    }
912}
913#[doc = "Port 7 Control Registers"]
914pub use self::port0 as port7;
915#[doc = "Port 8 Control Registers"]
916pub struct PORT8 {
917    _marker: PhantomData<*const ()>,
918}
919unsafe impl Send for PORT8 {}
920impl PORT8 {
921    #[doc = r"Pointer to the register block"]
922    pub const PTR: *const port0::RegisterBlock = 0x4004_0100 as *const _;
923    #[doc = r"Return the pointer to the register block"]
924    #[inline(always)]
925    pub const fn ptr() -> *const port0::RegisterBlock {
926        Self::PTR
927    }
928}
929impl Deref for PORT8 {
930    type Target = port0::RegisterBlock;
931    #[inline(always)]
932    fn deref(&self) -> &Self::Target {
933        unsafe { &*Self::PTR }
934    }
935}
936impl core::fmt::Debug for PORT8 {
937    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
938        f.debug_struct("PORT8").finish()
939    }
940}
941#[doc = "Port 8 Control Registers"]
942pub use self::port0 as port8;
943#[doc = "Port 9 Control Registers"]
944pub struct PORT9 {
945    _marker: PhantomData<*const ()>,
946}
947unsafe impl Send for PORT9 {}
948impl PORT9 {
949    #[doc = r"Pointer to the register block"]
950    pub const PTR: *const port0::RegisterBlock = 0x4004_0120 as *const _;
951    #[doc = r"Return the pointer to the register block"]
952    #[inline(always)]
953    pub const fn ptr() -> *const port0::RegisterBlock {
954        Self::PTR
955    }
956}
957impl Deref for PORT9 {
958    type Target = port0::RegisterBlock;
959    #[inline(always)]
960    fn deref(&self) -> &Self::Target {
961        unsafe { &*Self::PTR }
962    }
963}
964impl core::fmt::Debug for PORT9 {
965    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
966        f.debug_struct("PORT9").finish()
967    }
968}
969#[doc = "Port 9 Control Registers"]
970pub use self::port0 as port9;
971#[doc = "Pmn Pin Function Control Register"]
972pub struct PFS {
973    _marker: PhantomData<*const ()>,
974}
975unsafe impl Send for PFS {}
976impl PFS {
977    #[doc = r"Pointer to the register block"]
978    pub const PTR: *const pfs::RegisterBlock = 0x4004_0800 as *const _;
979    #[doc = r"Return the pointer to the register block"]
980    #[inline(always)]
981    pub const fn ptr() -> *const pfs::RegisterBlock {
982        Self::PTR
983    }
984}
985impl Deref for PFS {
986    type Target = pfs::RegisterBlock;
987    #[inline(always)]
988    fn deref(&self) -> &Self::Target {
989        unsafe { &*Self::PTR }
990    }
991}
992impl core::fmt::Debug for PFS {
993    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
994        f.debug_struct("PFS").finish()
995    }
996}
997#[doc = "Pmn Pin Function Control Register"]
998pub mod pfs;
999#[doc = "Miscellaneous Port Control Register"]
1000pub struct PMISC {
1001    _marker: PhantomData<*const ()>,
1002}
1003unsafe impl Send for PMISC {}
1004impl PMISC {
1005    #[doc = r"Pointer to the register block"]
1006    pub const PTR: *const pmisc::RegisterBlock = 0x4004_0d00 as *const _;
1007    #[doc = r"Return the pointer to the register block"]
1008    #[inline(always)]
1009    pub const fn ptr() -> *const pmisc::RegisterBlock {
1010        Self::PTR
1011    }
1012}
1013impl Deref for PMISC {
1014    type Target = pmisc::RegisterBlock;
1015    #[inline(always)]
1016    fn deref(&self) -> &Self::Target {
1017        unsafe { &*Self::PTR }
1018    }
1019}
1020impl core::fmt::Debug for PMISC {
1021    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1022        f.debug_struct("PMISC").finish()
1023    }
1024}
1025#[doc = "Miscellaneous Port Control Register"]
1026pub mod pmisc;
1027#[doc = "Interrupt Controller"]
1028pub struct ICU {
1029    _marker: PhantomData<*const ()>,
1030}
1031unsafe impl Send for ICU {}
1032impl ICU {
1033    #[doc = r"Pointer to the register block"]
1034    pub const PTR: *const icu::RegisterBlock = 0x4000_6000 as *const _;
1035    #[doc = r"Return the pointer to the register block"]
1036    #[inline(always)]
1037    pub const fn ptr() -> *const icu::RegisterBlock {
1038        Self::PTR
1039    }
1040}
1041impl Deref for ICU {
1042    type Target = icu::RegisterBlock;
1043    #[inline(always)]
1044    fn deref(&self) -> &Self::Target {
1045        unsafe { &*Self::PTR }
1046    }
1047}
1048impl core::fmt::Debug for ICU {
1049    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1050        f.debug_struct("ICU").finish()
1051    }
1052}
1053#[doc = "Interrupt Controller"]
1054pub mod icu;
1055#[doc = "Inter-Integrated Circuit 0"]
1056pub struct IIC0 {
1057    _marker: PhantomData<*const ()>,
1058}
1059unsafe impl Send for IIC0 {}
1060impl IIC0 {
1061    #[doc = r"Pointer to the register block"]
1062    pub const PTR: *const iic0::RegisterBlock = 0x4005_3000 as *const _;
1063    #[doc = r"Return the pointer to the register block"]
1064    #[inline(always)]
1065    pub const fn ptr() -> *const iic0::RegisterBlock {
1066        Self::PTR
1067    }
1068}
1069impl Deref for IIC0 {
1070    type Target = iic0::RegisterBlock;
1071    #[inline(always)]
1072    fn deref(&self) -> &Self::Target {
1073        unsafe { &*Self::PTR }
1074    }
1075}
1076impl core::fmt::Debug for IIC0 {
1077    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1078        f.debug_struct("IIC0").finish()
1079    }
1080}
1081#[doc = "Inter-Integrated Circuit 0"]
1082pub mod iic0;
1083#[doc = "Inter-Integrated Circuit 1"]
1084pub struct IIC1 {
1085    _marker: PhantomData<*const ()>,
1086}
1087unsafe impl Send for IIC1 {}
1088impl IIC1 {
1089    #[doc = r"Pointer to the register block"]
1090    pub const PTR: *const iic1::RegisterBlock = 0x4005_3100 as *const _;
1091    #[doc = r"Return the pointer to the register block"]
1092    #[inline(always)]
1093    pub const fn ptr() -> *const iic1::RegisterBlock {
1094        Self::PTR
1095    }
1096}
1097impl Deref for IIC1 {
1098    type Target = iic1::RegisterBlock;
1099    #[inline(always)]
1100    fn deref(&self) -> &Self::Target {
1101        unsafe { &*Self::PTR }
1102    }
1103}
1104impl core::fmt::Debug for IIC1 {
1105    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1106        f.debug_struct("IIC1").finish()
1107    }
1108}
1109#[doc = "Inter-Integrated Circuit 1"]
1110pub mod iic1;
1111#[doc = "Independent Watchdog Timer"]
1112pub struct IWDT {
1113    _marker: PhantomData<*const ()>,
1114}
1115unsafe impl Send for IWDT {}
1116impl IWDT {
1117    #[doc = r"Pointer to the register block"]
1118    pub const PTR: *const iwdt::RegisterBlock = 0x4004_4400 as *const _;
1119    #[doc = r"Return the pointer to the register block"]
1120    #[inline(always)]
1121    pub const fn ptr() -> *const iwdt::RegisterBlock {
1122        Self::PTR
1123    }
1124}
1125impl Deref for IWDT {
1126    type Target = iwdt::RegisterBlock;
1127    #[inline(always)]
1128    fn deref(&self) -> &Self::Target {
1129        unsafe { &*Self::PTR }
1130    }
1131}
1132impl core::fmt::Debug for IWDT {
1133    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1134        f.debug_struct("IWDT").finish()
1135    }
1136}
1137#[doc = "Independent Watchdog Timer"]
1138pub mod iwdt;
1139#[doc = "Key Interrupt Function"]
1140pub struct KINT {
1141    _marker: PhantomData<*const ()>,
1142}
1143unsafe impl Send for KINT {}
1144impl KINT {
1145    #[doc = r"Pointer to the register block"]
1146    pub const PTR: *const kint::RegisterBlock = 0x4008_0000 as *const _;
1147    #[doc = r"Return the pointer to the register block"]
1148    #[inline(always)]
1149    pub const fn ptr() -> *const kint::RegisterBlock {
1150        Self::PTR
1151    }
1152}
1153impl Deref for KINT {
1154    type Target = kint::RegisterBlock;
1155    #[inline(always)]
1156    fn deref(&self) -> &Self::Target {
1157        unsafe { &*Self::PTR }
1158    }
1159}
1160impl core::fmt::Debug for KINT {
1161    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1162        f.debug_struct("KINT").finish()
1163    }
1164}
1165#[doc = "Key Interrupt Function"]
1166pub mod kint;
1167#[doc = "Module Stop Control B,C,D"]
1168pub struct MSTP {
1169    _marker: PhantomData<*const ()>,
1170}
1171unsafe impl Send for MSTP {}
1172impl MSTP {
1173    #[doc = r"Pointer to the register block"]
1174    pub const PTR: *const mstp::RegisterBlock = 0x4004_7000 as *const _;
1175    #[doc = r"Return the pointer to the register block"]
1176    #[inline(always)]
1177    pub const fn ptr() -> *const mstp::RegisterBlock {
1178        Self::PTR
1179    }
1180}
1181impl Deref for MSTP {
1182    type Target = mstp::RegisterBlock;
1183    #[inline(always)]
1184    fn deref(&self) -> &Self::Target {
1185        unsafe { &*Self::PTR }
1186    }
1187}
1188impl core::fmt::Debug for MSTP {
1189    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1190        f.debug_struct("MSTP").finish()
1191    }
1192}
1193#[doc = "Module Stop Control B,C,D"]
1194pub mod mstp;
1195#[doc = "Bus Master MPU"]
1196pub struct MMPU {
1197    _marker: PhantomData<*const ()>,
1198}
1199unsafe impl Send for MMPU {}
1200impl MMPU {
1201    #[doc = r"Pointer to the register block"]
1202    pub const PTR: *const mmpu::RegisterBlock = 0x4000_0000 as *const _;
1203    #[doc = r"Return the pointer to the register block"]
1204    #[inline(always)]
1205    pub const fn ptr() -> *const mmpu::RegisterBlock {
1206        Self::PTR
1207    }
1208}
1209impl Deref for MMPU {
1210    type Target = mmpu::RegisterBlock;
1211    #[inline(always)]
1212    fn deref(&self) -> &Self::Target {
1213        unsafe { &*Self::PTR }
1214    }
1215}
1216impl core::fmt::Debug for MMPU {
1217    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1218        f.debug_struct("MMPU").finish()
1219    }
1220}
1221#[doc = "Bus Master MPU"]
1222pub mod mmpu;
1223#[doc = "Bus Slave MPU"]
1224pub struct SMPU {
1225    _marker: PhantomData<*const ()>,
1226}
1227unsafe impl Send for SMPU {}
1228impl SMPU {
1229    #[doc = r"Pointer to the register block"]
1230    pub const PTR: *const smpu::RegisterBlock = 0x4000_0c00 as *const _;
1231    #[doc = r"Return the pointer to the register block"]
1232    #[inline(always)]
1233    pub const fn ptr() -> *const smpu::RegisterBlock {
1234        Self::PTR
1235    }
1236}
1237impl Deref for SMPU {
1238    type Target = smpu::RegisterBlock;
1239    #[inline(always)]
1240    fn deref(&self) -> &Self::Target {
1241        unsafe { &*Self::PTR }
1242    }
1243}
1244impl core::fmt::Debug for SMPU {
1245    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1246        f.debug_struct("SMPU").finish()
1247    }
1248}
1249#[doc = "Bus Slave MPU"]
1250pub mod smpu;
1251#[doc = "CPU Stack Pointer Monitor"]
1252pub struct SPMON {
1253    _marker: PhantomData<*const ()>,
1254}
1255unsafe impl Send for SPMON {}
1256impl SPMON {
1257    #[doc = r"Pointer to the register block"]
1258    pub const PTR: *const spmon::RegisterBlock = 0x4000_0d00 as *const _;
1259    #[doc = r"Return the pointer to the register block"]
1260    #[inline(always)]
1261    pub const fn ptr() -> *const spmon::RegisterBlock {
1262        Self::PTR
1263    }
1264}
1265impl Deref for SPMON {
1266    type Target = spmon::RegisterBlock;
1267    #[inline(always)]
1268    fn deref(&self) -> &Self::Target {
1269        unsafe { &*Self::PTR }
1270    }
1271}
1272impl core::fmt::Debug for SPMON {
1273    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1274        f.debug_struct("SPMON").finish()
1275    }
1276}
1277#[doc = "CPU Stack Pointer Monitor"]
1278pub mod spmon;
1279#[doc = "OperationalAmplifier"]
1280pub struct OPAMP {
1281    _marker: PhantomData<*const ()>,
1282}
1283unsafe impl Send for OPAMP {}
1284impl OPAMP {
1285    #[doc = r"Pointer to the register block"]
1286    pub const PTR: *const opamp::RegisterBlock = 0x4008_6000 as *const _;
1287    #[doc = r"Return the pointer to the register block"]
1288    #[inline(always)]
1289    pub const fn ptr() -> *const opamp::RegisterBlock {
1290        Self::PTR
1291    }
1292}
1293impl Deref for OPAMP {
1294    type Target = opamp::RegisterBlock;
1295    #[inline(always)]
1296    fn deref(&self) -> &Self::Target {
1297        unsafe { &*Self::PTR }
1298    }
1299}
1300impl core::fmt::Debug for OPAMP {
1301    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1302        f.debug_struct("OPAMP").finish()
1303    }
1304}
1305#[doc = "OperationalAmplifier"]
1306pub mod opamp;
1307#[doc = "Port Output Enable Module for GPT"]
1308pub struct POEG {
1309    _marker: PhantomData<*const ()>,
1310}
1311unsafe impl Send for POEG {}
1312impl POEG {
1313    #[doc = r"Pointer to the register block"]
1314    pub const PTR: *const poeg::RegisterBlock = 0x4004_2000 as *const _;
1315    #[doc = r"Return the pointer to the register block"]
1316    #[inline(always)]
1317    pub const fn ptr() -> *const poeg::RegisterBlock {
1318        Self::PTR
1319    }
1320}
1321impl Deref for POEG {
1322    type Target = poeg::RegisterBlock;
1323    #[inline(always)]
1324    fn deref(&self) -> &Self::Target {
1325        unsafe { &*Self::PTR }
1326    }
1327}
1328impl core::fmt::Debug for POEG {
1329    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1330        f.debug_struct("POEG").finish()
1331    }
1332}
1333#[doc = "Port Output Enable Module for GPT"]
1334pub mod poeg;
1335#[doc = "SRAM Control"]
1336pub struct SRAM {
1337    _marker: PhantomData<*const ()>,
1338}
1339unsafe impl Send for SRAM {}
1340impl SRAM {
1341    #[doc = r"Pointer to the register block"]
1342    pub const PTR: *const sram::RegisterBlock = 0x4000_2000 as *const _;
1343    #[doc = r"Return the pointer to the register block"]
1344    #[inline(always)]
1345    pub const fn ptr() -> *const sram::RegisterBlock {
1346        Self::PTR
1347    }
1348}
1349impl Deref for SRAM {
1350    type Target = sram::RegisterBlock;
1351    #[inline(always)]
1352    fn deref(&self) -> &Self::Target {
1353        unsafe { &*Self::PTR }
1354    }
1355}
1356impl core::fmt::Debug for SRAM {
1357    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1358        f.debug_struct("SRAM").finish()
1359    }
1360}
1361#[doc = "SRAM Control"]
1362pub mod sram;
1363#[doc = "Realtime Clock"]
1364pub struct RTC {
1365    _marker: PhantomData<*const ()>,
1366}
1367unsafe impl Send for RTC {}
1368impl RTC {
1369    #[doc = r"Pointer to the register block"]
1370    pub const PTR: *const rtc::RegisterBlock = 0x4004_4000 as *const _;
1371    #[doc = r"Return the pointer to the register block"]
1372    #[inline(always)]
1373    pub const fn ptr() -> *const rtc::RegisterBlock {
1374        Self::PTR
1375    }
1376}
1377impl Deref for RTC {
1378    type Target = rtc::RegisterBlock;
1379    #[inline(always)]
1380    fn deref(&self) -> &Self::Target {
1381        unsafe { &*Self::PTR }
1382    }
1383}
1384impl core::fmt::Debug for RTC {
1385    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1386        f.debug_struct("RTC").finish()
1387    }
1388}
1389#[doc = "Realtime Clock"]
1390pub mod rtc;
1391#[doc = "Serial Communication Interface 0"]
1392pub struct SCI0 {
1393    _marker: PhantomData<*const ()>,
1394}
1395unsafe impl Send for SCI0 {}
1396impl SCI0 {
1397    #[doc = r"Pointer to the register block"]
1398    pub const PTR: *const sci0::RegisterBlock = 0x4007_0000 as *const _;
1399    #[doc = r"Return the pointer to the register block"]
1400    #[inline(always)]
1401    pub const fn ptr() -> *const sci0::RegisterBlock {
1402        Self::PTR
1403    }
1404}
1405impl Deref for SCI0 {
1406    type Target = sci0::RegisterBlock;
1407    #[inline(always)]
1408    fn deref(&self) -> &Self::Target {
1409        unsafe { &*Self::PTR }
1410    }
1411}
1412impl core::fmt::Debug for SCI0 {
1413    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1414        f.debug_struct("SCI0").finish()
1415    }
1416}
1417#[doc = "Serial Communication Interface 0"]
1418pub mod sci0;
1419#[doc = "Serial Communication Interface 1"]
1420pub struct SCI1 {
1421    _marker: PhantomData<*const ()>,
1422}
1423unsafe impl Send for SCI1 {}
1424impl SCI1 {
1425    #[doc = r"Pointer to the register block"]
1426    pub const PTR: *const sci0::RegisterBlock = 0x4007_0020 as *const _;
1427    #[doc = r"Return the pointer to the register block"]
1428    #[inline(always)]
1429    pub const fn ptr() -> *const sci0::RegisterBlock {
1430        Self::PTR
1431    }
1432}
1433impl Deref for SCI1 {
1434    type Target = sci0::RegisterBlock;
1435    #[inline(always)]
1436    fn deref(&self) -> &Self::Target {
1437        unsafe { &*Self::PTR }
1438    }
1439}
1440impl core::fmt::Debug for SCI1 {
1441    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1442        f.debug_struct("SCI1").finish()
1443    }
1444}
1445#[doc = "Serial Communication Interface 1"]
1446pub use self::sci0 as sci1;
1447#[doc = "Serial Communication Interface 2"]
1448pub struct SCI2 {
1449    _marker: PhantomData<*const ()>,
1450}
1451unsafe impl Send for SCI2 {}
1452impl SCI2 {
1453    #[doc = r"Pointer to the register block"]
1454    pub const PTR: *const sci2::RegisterBlock = 0x4007_0040 as *const _;
1455    #[doc = r"Return the pointer to the register block"]
1456    #[inline(always)]
1457    pub const fn ptr() -> *const sci2::RegisterBlock {
1458        Self::PTR
1459    }
1460}
1461impl Deref for SCI2 {
1462    type Target = sci2::RegisterBlock;
1463    #[inline(always)]
1464    fn deref(&self) -> &Self::Target {
1465        unsafe { &*Self::PTR }
1466    }
1467}
1468impl core::fmt::Debug for SCI2 {
1469    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1470        f.debug_struct("SCI2").finish()
1471    }
1472}
1473#[doc = "Serial Communication Interface 2"]
1474pub mod sci2;
1475#[doc = "Serial Communication Interface 9"]
1476pub struct SCI9 {
1477    _marker: PhantomData<*const ()>,
1478}
1479unsafe impl Send for SCI9 {}
1480impl SCI9 {
1481    #[doc = r"Pointer to the register block"]
1482    pub const PTR: *const sci2::RegisterBlock = 0x4007_0120 as *const _;
1483    #[doc = r"Return the pointer to the register block"]
1484    #[inline(always)]
1485    pub const fn ptr() -> *const sci2::RegisterBlock {
1486        Self::PTR
1487    }
1488}
1489impl Deref for SCI9 {
1490    type Target = sci2::RegisterBlock;
1491    #[inline(always)]
1492    fn deref(&self) -> &Self::Target {
1493        unsafe { &*Self::PTR }
1494    }
1495}
1496impl core::fmt::Debug for SCI9 {
1497    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1498        f.debug_struct("SCI9").finish()
1499    }
1500}
1501#[doc = "Serial Communication Interface 9"]
1502pub use self::sci2 as sci9;
1503#[doc = "Segment LCD Controller/Driver"]
1504pub struct SLCDC {
1505    _marker: PhantomData<*const ()>,
1506}
1507unsafe impl Send for SLCDC {}
1508impl SLCDC {
1509    #[doc = r"Pointer to the register block"]
1510    pub const PTR: *const slcdc::RegisterBlock = 0x4008_2000 as *const _;
1511    #[doc = r"Return the pointer to the register block"]
1512    #[inline(always)]
1513    pub const fn ptr() -> *const slcdc::RegisterBlock {
1514        Self::PTR
1515    }
1516}
1517impl Deref for SLCDC {
1518    type Target = slcdc::RegisterBlock;
1519    #[inline(always)]
1520    fn deref(&self) -> &Self::Target {
1521        unsafe { &*Self::PTR }
1522    }
1523}
1524impl core::fmt::Debug for SLCDC {
1525    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1526        f.debug_struct("SLCDC").finish()
1527    }
1528}
1529#[doc = "Segment LCD Controller/Driver"]
1530pub mod slcdc;
1531#[doc = "Serial Peripheral Interface 0"]
1532pub struct SPI0 {
1533    _marker: PhantomData<*const ()>,
1534}
1535unsafe impl Send for SPI0 {}
1536impl SPI0 {
1537    #[doc = r"Pointer to the register block"]
1538    pub const PTR: *const spi0::RegisterBlock = 0x4007_2000 as *const _;
1539    #[doc = r"Return the pointer to the register block"]
1540    #[inline(always)]
1541    pub const fn ptr() -> *const spi0::RegisterBlock {
1542        Self::PTR
1543    }
1544}
1545impl Deref for SPI0 {
1546    type Target = spi0::RegisterBlock;
1547    #[inline(always)]
1548    fn deref(&self) -> &Self::Target {
1549        unsafe { &*Self::PTR }
1550    }
1551}
1552impl core::fmt::Debug for SPI0 {
1553    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1554        f.debug_struct("SPI0").finish()
1555    }
1556}
1557#[doc = "Serial Peripheral Interface 0"]
1558pub mod spi0;
1559#[doc = "Serial Peripheral Interface 1"]
1560pub struct SPI1 {
1561    _marker: PhantomData<*const ()>,
1562}
1563unsafe impl Send for SPI1 {}
1564impl SPI1 {
1565    #[doc = r"Pointer to the register block"]
1566    pub const PTR: *const spi1::RegisterBlock = 0x4007_2100 as *const _;
1567    #[doc = r"Return the pointer to the register block"]
1568    #[inline(always)]
1569    pub const fn ptr() -> *const spi1::RegisterBlock {
1570        Self::PTR
1571    }
1572}
1573impl Deref for SPI1 {
1574    type Target = spi1::RegisterBlock;
1575    #[inline(always)]
1576    fn deref(&self) -> &Self::Target {
1577        unsafe { &*Self::PTR }
1578    }
1579}
1580impl core::fmt::Debug for SPI1 {
1581    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1582        f.debug_struct("SPI1").finish()
1583    }
1584}
1585#[doc = "Serial Peripheral Interface 1"]
1586pub mod spi1;
1587#[doc = "Serial Sound Interface Ver.2.0"]
1588pub struct SSIE0 {
1589    _marker: PhantomData<*const ()>,
1590}
1591unsafe impl Send for SSIE0 {}
1592impl SSIE0 {
1593    #[doc = r"Pointer to the register block"]
1594    pub const PTR: *const ssie0::RegisterBlock = 0x4004_e000 as *const _;
1595    #[doc = r"Return the pointer to the register block"]
1596    #[inline(always)]
1597    pub const fn ptr() -> *const ssie0::RegisterBlock {
1598        Self::PTR
1599    }
1600}
1601impl Deref for SSIE0 {
1602    type Target = ssie0::RegisterBlock;
1603    #[inline(always)]
1604    fn deref(&self) -> &Self::Target {
1605        unsafe { &*Self::PTR }
1606    }
1607}
1608impl core::fmt::Debug for SSIE0 {
1609    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1610        f.debug_struct("SSIE0").finish()
1611    }
1612}
1613#[doc = "Serial Sound Interface Ver.2.0"]
1614pub mod ssie0;
1615#[doc = "Temperature Sensor"]
1616pub struct TSN {
1617    _marker: PhantomData<*const ()>,
1618}
1619unsafe impl Send for TSN {}
1620impl TSN {
1621    #[doc = r"Pointer to the register block"]
1622    pub const PTR: *const tsn::RegisterBlock = 0x407e_c000 as *const _;
1623    #[doc = r"Return the pointer to the register block"]
1624    #[inline(always)]
1625    pub const fn ptr() -> *const tsn::RegisterBlock {
1626        Self::PTR
1627    }
1628}
1629impl Deref for TSN {
1630    type Target = tsn::RegisterBlock;
1631    #[inline(always)]
1632    fn deref(&self) -> &Self::Target {
1633        unsafe { &*Self::PTR }
1634    }
1635}
1636impl core::fmt::Debug for TSN {
1637    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1638        f.debug_struct("TSN").finish()
1639    }
1640}
1641#[doc = "Temperature Sensor"]
1642pub mod tsn;
1643#[doc = "USB 2.0 FS Module"]
1644pub struct USBFS {
1645    _marker: PhantomData<*const ()>,
1646}
1647unsafe impl Send for USBFS {}
1648impl USBFS {
1649    #[doc = r"Pointer to the register block"]
1650    pub const PTR: *const usbfs::RegisterBlock = 0x4009_0000 as *const _;
1651    #[doc = r"Return the pointer to the register block"]
1652    #[inline(always)]
1653    pub const fn ptr() -> *const usbfs::RegisterBlock {
1654        Self::PTR
1655    }
1656}
1657impl Deref for USBFS {
1658    type Target = usbfs::RegisterBlock;
1659    #[inline(always)]
1660    fn deref(&self) -> &Self::Target {
1661        unsafe { &*Self::PTR }
1662    }
1663}
1664impl core::fmt::Debug for USBFS {
1665    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1666        f.debug_struct("USBFS").finish()
1667    }
1668}
1669#[doc = "USB 2.0 FS Module"]
1670pub mod usbfs;
1671#[doc = "Watchdog Timer"]
1672pub struct WDT {
1673    _marker: PhantomData<*const ()>,
1674}
1675unsafe impl Send for WDT {}
1676impl WDT {
1677    #[doc = r"Pointer to the register block"]
1678    pub const PTR: *const wdt::RegisterBlock = 0x4004_4200 as *const _;
1679    #[doc = r"Return the pointer to the register block"]
1680    #[inline(always)]
1681    pub const fn ptr() -> *const wdt::RegisterBlock {
1682        Self::PTR
1683    }
1684}
1685impl Deref for WDT {
1686    type Target = wdt::RegisterBlock;
1687    #[inline(always)]
1688    fn deref(&self) -> &Self::Target {
1689        unsafe { &*Self::PTR }
1690    }
1691}
1692impl core::fmt::Debug for WDT {
1693    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1694        f.debug_struct("WDT").finish()
1695    }
1696}
1697#[doc = "Watchdog Timer"]
1698pub mod wdt;
1699#[doc = "Low-Power Analog Comparator"]
1700pub struct ACMPLP {
1701    _marker: PhantomData<*const ()>,
1702}
1703unsafe impl Send for ACMPLP {}
1704impl ACMPLP {
1705    #[doc = r"Pointer to the register block"]
1706    pub const PTR: *const acmplp::RegisterBlock = 0x4008_5e00 as *const _;
1707    #[doc = r"Return the pointer to the register block"]
1708    #[inline(always)]
1709    pub const fn ptr() -> *const acmplp::RegisterBlock {
1710        Self::PTR
1711    }
1712}
1713impl Deref for ACMPLP {
1714    type Target = acmplp::RegisterBlock;
1715    #[inline(always)]
1716    fn deref(&self) -> &Self::Target {
1717        unsafe { &*Self::PTR }
1718    }
1719}
1720impl core::fmt::Debug for ACMPLP {
1721    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1722        f.debug_struct("ACMPLP").finish()
1723    }
1724}
1725#[doc = "Low-Power Analog Comparator"]
1726pub mod acmplp;
1727#[doc = "14bit A/D Converter"]
1728pub struct ADC140 {
1729    _marker: PhantomData<*const ()>,
1730}
1731unsafe impl Send for ADC140 {}
1732impl ADC140 {
1733    #[doc = r"Pointer to the register block"]
1734    pub const PTR: *const adc140::RegisterBlock = 0x4005_c000 as *const _;
1735    #[doc = r"Return the pointer to the register block"]
1736    #[inline(always)]
1737    pub const fn ptr() -> *const adc140::RegisterBlock {
1738        Self::PTR
1739    }
1740}
1741impl Deref for ADC140 {
1742    type Target = adc140::RegisterBlock;
1743    #[inline(always)]
1744    fn deref(&self) -> &Self::Target {
1745        unsafe { &*Self::PTR }
1746    }
1747}
1748impl core::fmt::Debug for ADC140 {
1749    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1750        f.debug_struct("ADC140").finish()
1751    }
1752}
1753#[doc = "14bit A/D Converter"]
1754pub mod adc140;
1755#[doc = "Asynchronous General purpose Timer 0"]
1756pub struct AGT0 {
1757    _marker: PhantomData<*const ()>,
1758}
1759unsafe impl Send for AGT0 {}
1760impl AGT0 {
1761    #[doc = r"Pointer to the register block"]
1762    pub const PTR: *const agt0::RegisterBlock = 0x4008_4000 as *const _;
1763    #[doc = r"Return the pointer to the register block"]
1764    #[inline(always)]
1765    pub const fn ptr() -> *const agt0::RegisterBlock {
1766        Self::PTR
1767    }
1768}
1769impl Deref for AGT0 {
1770    type Target = agt0::RegisterBlock;
1771    #[inline(always)]
1772    fn deref(&self) -> &Self::Target {
1773        unsafe { &*Self::PTR }
1774    }
1775}
1776impl core::fmt::Debug for AGT0 {
1777    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1778        f.debug_struct("AGT0").finish()
1779    }
1780}
1781#[doc = "Asynchronous General purpose Timer 0"]
1782pub mod agt0;
1783#[doc = "Asynchronous General purpose Timer 1"]
1784pub struct AGT1 {
1785    _marker: PhantomData<*const ()>,
1786}
1787unsafe impl Send for AGT1 {}
1788impl AGT1 {
1789    #[doc = r"Pointer to the register block"]
1790    pub const PTR: *const agt0::RegisterBlock = 0x4008_4100 as *const _;
1791    #[doc = r"Return the pointer to the register block"]
1792    #[inline(always)]
1793    pub const fn ptr() -> *const agt0::RegisterBlock {
1794        Self::PTR
1795    }
1796}
1797impl Deref for AGT1 {
1798    type Target = agt0::RegisterBlock;
1799    #[inline(always)]
1800    fn deref(&self) -> &Self::Target {
1801        unsafe { &*Self::PTR }
1802    }
1803}
1804impl core::fmt::Debug for AGT1 {
1805    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1806        f.debug_struct("AGT1").finish()
1807    }
1808}
1809#[doc = "Asynchronous General purpose Timer 1"]
1810pub use self::agt0 as agt1;
1811#[doc = "General PWM Timer 0 (32-bit)"]
1812pub struct GPT320 {
1813    _marker: PhantomData<*const ()>,
1814}
1815unsafe impl Send for GPT320 {}
1816impl GPT320 {
1817    #[doc = r"Pointer to the register block"]
1818    pub const PTR: *const gpt320::RegisterBlock = 0x4007_8000 as *const _;
1819    #[doc = r"Return the pointer to the register block"]
1820    #[inline(always)]
1821    pub const fn ptr() -> *const gpt320::RegisterBlock {
1822        Self::PTR
1823    }
1824}
1825impl Deref for GPT320 {
1826    type Target = gpt320::RegisterBlock;
1827    #[inline(always)]
1828    fn deref(&self) -> &Self::Target {
1829        unsafe { &*Self::PTR }
1830    }
1831}
1832impl core::fmt::Debug for GPT320 {
1833    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1834        f.debug_struct("GPT320").finish()
1835    }
1836}
1837#[doc = "General PWM Timer 0 (32-bit)"]
1838pub mod gpt320;
1839#[doc = "General PWM Timer 1 (32-bit)"]
1840pub struct GPT321 {
1841    _marker: PhantomData<*const ()>,
1842}
1843unsafe impl Send for GPT321 {}
1844impl GPT321 {
1845    #[doc = r"Pointer to the register block"]
1846    pub const PTR: *const gpt320::RegisterBlock = 0x4007_8100 as *const _;
1847    #[doc = r"Return the pointer to the register block"]
1848    #[inline(always)]
1849    pub const fn ptr() -> *const gpt320::RegisterBlock {
1850        Self::PTR
1851    }
1852}
1853impl Deref for GPT321 {
1854    type Target = gpt320::RegisterBlock;
1855    #[inline(always)]
1856    fn deref(&self) -> &Self::Target {
1857        unsafe { &*Self::PTR }
1858    }
1859}
1860impl core::fmt::Debug for GPT321 {
1861    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1862        f.debug_struct("GPT321").finish()
1863    }
1864}
1865#[doc = "General PWM Timer 1 (32-bit)"]
1866pub use self::gpt320 as gpt321;
1867#[doc = "General PWM Timer 2 (16-bit)"]
1868pub struct GPT162 {
1869    _marker: PhantomData<*const ()>,
1870}
1871unsafe impl Send for GPT162 {}
1872impl GPT162 {
1873    #[doc = r"Pointer to the register block"]
1874    pub const PTR: *const gpt162::RegisterBlock = 0x4007_8200 as *const _;
1875    #[doc = r"Return the pointer to the register block"]
1876    #[inline(always)]
1877    pub const fn ptr() -> *const gpt162::RegisterBlock {
1878        Self::PTR
1879    }
1880}
1881impl Deref for GPT162 {
1882    type Target = gpt162::RegisterBlock;
1883    #[inline(always)]
1884    fn deref(&self) -> &Self::Target {
1885        unsafe { &*Self::PTR }
1886    }
1887}
1888impl core::fmt::Debug for GPT162 {
1889    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1890        f.debug_struct("GPT162").finish()
1891    }
1892}
1893#[doc = "General PWM Timer 2 (16-bit)"]
1894pub mod gpt162;
1895#[doc = "General PWM Timer 3 (16-bit)"]
1896pub struct GPT163 {
1897    _marker: PhantomData<*const ()>,
1898}
1899unsafe impl Send for GPT163 {}
1900impl GPT163 {
1901    #[doc = r"Pointer to the register block"]
1902    pub const PTR: *const gpt162::RegisterBlock = 0x4007_8300 as *const _;
1903    #[doc = r"Return the pointer to the register block"]
1904    #[inline(always)]
1905    pub const fn ptr() -> *const gpt162::RegisterBlock {
1906        Self::PTR
1907    }
1908}
1909impl Deref for GPT163 {
1910    type Target = gpt162::RegisterBlock;
1911    #[inline(always)]
1912    fn deref(&self) -> &Self::Target {
1913        unsafe { &*Self::PTR }
1914    }
1915}
1916impl core::fmt::Debug for GPT163 {
1917    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1918        f.debug_struct("GPT163").finish()
1919    }
1920}
1921#[doc = "General PWM Timer 3 (16-bit)"]
1922pub use self::gpt162 as gpt163;
1923#[doc = "General PWM Timer 4 (16-bit)"]
1924pub struct GPT164 {
1925    _marker: PhantomData<*const ()>,
1926}
1927unsafe impl Send for GPT164 {}
1928impl GPT164 {
1929    #[doc = r"Pointer to the register block"]
1930    pub const PTR: *const gpt162::RegisterBlock = 0x4007_8400 as *const _;
1931    #[doc = r"Return the pointer to the register block"]
1932    #[inline(always)]
1933    pub const fn ptr() -> *const gpt162::RegisterBlock {
1934        Self::PTR
1935    }
1936}
1937impl Deref for GPT164 {
1938    type Target = gpt162::RegisterBlock;
1939    #[inline(always)]
1940    fn deref(&self) -> &Self::Target {
1941        unsafe { &*Self::PTR }
1942    }
1943}
1944impl core::fmt::Debug for GPT164 {
1945    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1946        f.debug_struct("GPT164").finish()
1947    }
1948}
1949#[doc = "General PWM Timer 4 (16-bit)"]
1950pub use self::gpt162 as gpt164;
1951#[doc = "General PWM Timer 5 (16-bit)"]
1952pub struct GPT165 {
1953    _marker: PhantomData<*const ()>,
1954}
1955unsafe impl Send for GPT165 {}
1956impl GPT165 {
1957    #[doc = r"Pointer to the register block"]
1958    pub const PTR: *const gpt162::RegisterBlock = 0x4007_8500 as *const _;
1959    #[doc = r"Return the pointer to the register block"]
1960    #[inline(always)]
1961    pub const fn ptr() -> *const gpt162::RegisterBlock {
1962        Self::PTR
1963    }
1964}
1965impl Deref for GPT165 {
1966    type Target = gpt162::RegisterBlock;
1967    #[inline(always)]
1968    fn deref(&self) -> &Self::Target {
1969        unsafe { &*Self::PTR }
1970    }
1971}
1972impl core::fmt::Debug for GPT165 {
1973    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1974        f.debug_struct("GPT165").finish()
1975    }
1976}
1977#[doc = "General PWM Timer 5 (16-bit)"]
1978pub use self::gpt162 as gpt165;
1979#[doc = "General PWM Timer 6 (16-bit)"]
1980pub struct GPT166 {
1981    _marker: PhantomData<*const ()>,
1982}
1983unsafe impl Send for GPT166 {}
1984impl GPT166 {
1985    #[doc = r"Pointer to the register block"]
1986    pub const PTR: *const gpt162::RegisterBlock = 0x4007_8600 as *const _;
1987    #[doc = r"Return the pointer to the register block"]
1988    #[inline(always)]
1989    pub const fn ptr() -> *const gpt162::RegisterBlock {
1990        Self::PTR
1991    }
1992}
1993impl Deref for GPT166 {
1994    type Target = gpt162::RegisterBlock;
1995    #[inline(always)]
1996    fn deref(&self) -> &Self::Target {
1997        unsafe { &*Self::PTR }
1998    }
1999}
2000impl core::fmt::Debug for GPT166 {
2001    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2002        f.debug_struct("GPT166").finish()
2003    }
2004}
2005#[doc = "General PWM Timer 6 (16-bit)"]
2006pub use self::gpt162 as gpt166;
2007#[doc = "General PWM Timer 7 (16-bit)"]
2008pub struct GPT167 {
2009    _marker: PhantomData<*const ()>,
2010}
2011unsafe impl Send for GPT167 {}
2012impl GPT167 {
2013    #[doc = r"Pointer to the register block"]
2014    pub const PTR: *const gpt162::RegisterBlock = 0x4007_8700 as *const _;
2015    #[doc = r"Return the pointer to the register block"]
2016    #[inline(always)]
2017    pub const fn ptr() -> *const gpt162::RegisterBlock {
2018        Self::PTR
2019    }
2020}
2021impl Deref for GPT167 {
2022    type Target = gpt162::RegisterBlock;
2023    #[inline(always)]
2024    fn deref(&self) -> &Self::Target {
2025        unsafe { &*Self::PTR }
2026    }
2027}
2028impl core::fmt::Debug for GPT167 {
2029    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2030        f.debug_struct("GPT167").finish()
2031    }
2032}
2033#[doc = "General PWM Timer 7 (16-bit)"]
2034pub use self::gpt162 as gpt167;
2035#[doc = "Output Phase Switching Controller"]
2036pub struct GPT_OPS {
2037    _marker: PhantomData<*const ()>,
2038}
2039unsafe impl Send for GPT_OPS {}
2040impl GPT_OPS {
2041    #[doc = r"Pointer to the register block"]
2042    pub const PTR: *const gpt_ops::RegisterBlock = 0x4007_8ff0 as *const _;
2043    #[doc = r"Return the pointer to the register block"]
2044    #[inline(always)]
2045    pub const fn ptr() -> *const gpt_ops::RegisterBlock {
2046        Self::PTR
2047    }
2048}
2049impl Deref for GPT_OPS {
2050    type Target = gpt_ops::RegisterBlock;
2051    #[inline(always)]
2052    fn deref(&self) -> &Self::Target {
2053        unsafe { &*Self::PTR }
2054    }
2055}
2056impl core::fmt::Debug for GPT_OPS {
2057    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2058        f.debug_struct("GPT_OPS").finish()
2059    }
2060}
2061#[doc = "Output Phase Switching Controller"]
2062pub mod gpt_ops;
2063#[no_mangle]
2064static mut DEVICE_PERIPHERALS: bool = false;
2065#[doc = r" All the peripherals."]
2066#[allow(non_snake_case)]
2067pub struct Peripherals {
2068    #[doc = "SYSTEM"]
2069    pub SYSTEM: SYSTEM,
2070    #[doc = "BUS"]
2071    pub BUS: BUS,
2072    #[doc = "CAC"]
2073    pub CAC: CAC,
2074    #[doc = "CAN0"]
2075    pub CAN0: CAN0,
2076    #[doc = "DBG"]
2077    pub DBG: DBG,
2078    #[doc = "CRC"]
2079    pub CRC: CRC,
2080    #[doc = "CTSU"]
2081    pub CTSU: CTSU,
2082    #[doc = "DAC12"]
2083    pub DAC12: DAC12,
2084    #[doc = "DAC8"]
2085    pub DAC8: DAC8,
2086    #[doc = "DMAC0"]
2087    pub DMAC0: DMAC0,
2088    #[doc = "DMAC1"]
2089    pub DMAC1: DMAC1,
2090    #[doc = "DMAC2"]
2091    pub DMAC2: DMAC2,
2092    #[doc = "DMAC3"]
2093    pub DMAC3: DMAC3,
2094    #[doc = "DMA"]
2095    pub DMA: DMA,
2096    #[doc = "DOC"]
2097    pub DOC: DOC,
2098    #[doc = "DTC"]
2099    pub DTC: DTC,
2100    #[doc = "ELC"]
2101    pub ELC: ELC,
2102    #[doc = "FCACHE"]
2103    pub FCACHE: FCACHE,
2104    #[doc = "PORT0"]
2105    pub PORT0: PORT0,
2106    #[doc = "PORT1"]
2107    pub PORT1: PORT1,
2108    #[doc = "PORT2"]
2109    pub PORT2: PORT2,
2110    #[doc = "PORT3"]
2111    pub PORT3: PORT3,
2112    #[doc = "PORT4"]
2113    pub PORT4: PORT4,
2114    #[doc = "PORT5"]
2115    pub PORT5: PORT5,
2116    #[doc = "PORT6"]
2117    pub PORT6: PORT6,
2118    #[doc = "PORT7"]
2119    pub PORT7: PORT7,
2120    #[doc = "PORT8"]
2121    pub PORT8: PORT8,
2122    #[doc = "PORT9"]
2123    pub PORT9: PORT9,
2124    #[doc = "PFS"]
2125    pub PFS: PFS,
2126    #[doc = "PMISC"]
2127    pub PMISC: PMISC,
2128    #[doc = "ICU"]
2129    pub ICU: ICU,
2130    #[doc = "IIC0"]
2131    pub IIC0: IIC0,
2132    #[doc = "IIC1"]
2133    pub IIC1: IIC1,
2134    #[doc = "IWDT"]
2135    pub IWDT: IWDT,
2136    #[doc = "KINT"]
2137    pub KINT: KINT,
2138    #[doc = "MSTP"]
2139    pub MSTP: MSTP,
2140    #[doc = "MMPU"]
2141    pub MMPU: MMPU,
2142    #[doc = "SMPU"]
2143    pub SMPU: SMPU,
2144    #[doc = "SPMON"]
2145    pub SPMON: SPMON,
2146    #[doc = "OPAMP"]
2147    pub OPAMP: OPAMP,
2148    #[doc = "POEG"]
2149    pub POEG: POEG,
2150    #[doc = "SRAM"]
2151    pub SRAM: SRAM,
2152    #[doc = "RTC"]
2153    pub RTC: RTC,
2154    #[doc = "SCI0"]
2155    pub SCI0: SCI0,
2156    #[doc = "SCI1"]
2157    pub SCI1: SCI1,
2158    #[doc = "SCI2"]
2159    pub SCI2: SCI2,
2160    #[doc = "SCI9"]
2161    pub SCI9: SCI9,
2162    #[doc = "SLCDC"]
2163    pub SLCDC: SLCDC,
2164    #[doc = "SPI0"]
2165    pub SPI0: SPI0,
2166    #[doc = "SPI1"]
2167    pub SPI1: SPI1,
2168    #[doc = "SSIE0"]
2169    pub SSIE0: SSIE0,
2170    #[doc = "TSN"]
2171    pub TSN: TSN,
2172    #[doc = "USBFS"]
2173    pub USBFS: USBFS,
2174    #[doc = "WDT"]
2175    pub WDT: WDT,
2176    #[doc = "ACMPLP"]
2177    pub ACMPLP: ACMPLP,
2178    #[doc = "ADC140"]
2179    pub ADC140: ADC140,
2180    #[doc = "AGT0"]
2181    pub AGT0: AGT0,
2182    #[doc = "AGT1"]
2183    pub AGT1: AGT1,
2184    #[doc = "GPT320"]
2185    pub GPT320: GPT320,
2186    #[doc = "GPT321"]
2187    pub GPT321: GPT321,
2188    #[doc = "GPT162"]
2189    pub GPT162: GPT162,
2190    #[doc = "GPT163"]
2191    pub GPT163: GPT163,
2192    #[doc = "GPT164"]
2193    pub GPT164: GPT164,
2194    #[doc = "GPT165"]
2195    pub GPT165: GPT165,
2196    #[doc = "GPT166"]
2197    pub GPT166: GPT166,
2198    #[doc = "GPT167"]
2199    pub GPT167: GPT167,
2200    #[doc = "GPT_OPS"]
2201    pub GPT_OPS: GPT_OPS,
2202}
2203impl Peripherals {
2204    #[doc = r" Returns all the peripherals *once*."]
2205    #[cfg(feature = "critical-section")]
2206    #[inline]
2207    pub fn take() -> Option<Self> {
2208        critical_section::with(|_| {
2209            if unsafe { DEVICE_PERIPHERALS } {
2210                return None;
2211            }
2212            Some(unsafe { Peripherals::steal() })
2213        })
2214    }
2215    #[doc = r" Unchecked version of `Peripherals::take`."]
2216    #[doc = r""]
2217    #[doc = r" # Safety"]
2218    #[doc = r""]
2219    #[doc = r" Each of the returned peripherals must be used at most once."]
2220    #[inline]
2221    pub unsafe fn steal() -> Self {
2222        DEVICE_PERIPHERALS = true;
2223        Peripherals {
2224            SYSTEM: SYSTEM {
2225                _marker: PhantomData,
2226            },
2227            BUS: BUS {
2228                _marker: PhantomData,
2229            },
2230            CAC: CAC {
2231                _marker: PhantomData,
2232            },
2233            CAN0: CAN0 {
2234                _marker: PhantomData,
2235            },
2236            DBG: DBG {
2237                _marker: PhantomData,
2238            },
2239            CRC: CRC {
2240                _marker: PhantomData,
2241            },
2242            CTSU: CTSU {
2243                _marker: PhantomData,
2244            },
2245            DAC12: DAC12 {
2246                _marker: PhantomData,
2247            },
2248            DAC8: DAC8 {
2249                _marker: PhantomData,
2250            },
2251            DMAC0: DMAC0 {
2252                _marker: PhantomData,
2253            },
2254            DMAC1: DMAC1 {
2255                _marker: PhantomData,
2256            },
2257            DMAC2: DMAC2 {
2258                _marker: PhantomData,
2259            },
2260            DMAC3: DMAC3 {
2261                _marker: PhantomData,
2262            },
2263            DMA: DMA {
2264                _marker: PhantomData,
2265            },
2266            DOC: DOC {
2267                _marker: PhantomData,
2268            },
2269            DTC: DTC {
2270                _marker: PhantomData,
2271            },
2272            ELC: ELC {
2273                _marker: PhantomData,
2274            },
2275            FCACHE: FCACHE {
2276                _marker: PhantomData,
2277            },
2278            PORT0: PORT0 {
2279                _marker: PhantomData,
2280            },
2281            PORT1: PORT1 {
2282                _marker: PhantomData,
2283            },
2284            PORT2: PORT2 {
2285                _marker: PhantomData,
2286            },
2287            PORT3: PORT3 {
2288                _marker: PhantomData,
2289            },
2290            PORT4: PORT4 {
2291                _marker: PhantomData,
2292            },
2293            PORT5: PORT5 {
2294                _marker: PhantomData,
2295            },
2296            PORT6: PORT6 {
2297                _marker: PhantomData,
2298            },
2299            PORT7: PORT7 {
2300                _marker: PhantomData,
2301            },
2302            PORT8: PORT8 {
2303                _marker: PhantomData,
2304            },
2305            PORT9: PORT9 {
2306                _marker: PhantomData,
2307            },
2308            PFS: PFS {
2309                _marker: PhantomData,
2310            },
2311            PMISC: PMISC {
2312                _marker: PhantomData,
2313            },
2314            ICU: ICU {
2315                _marker: PhantomData,
2316            },
2317            IIC0: IIC0 {
2318                _marker: PhantomData,
2319            },
2320            IIC1: IIC1 {
2321                _marker: PhantomData,
2322            },
2323            IWDT: IWDT {
2324                _marker: PhantomData,
2325            },
2326            KINT: KINT {
2327                _marker: PhantomData,
2328            },
2329            MSTP: MSTP {
2330                _marker: PhantomData,
2331            },
2332            MMPU: MMPU {
2333                _marker: PhantomData,
2334            },
2335            SMPU: SMPU {
2336                _marker: PhantomData,
2337            },
2338            SPMON: SPMON {
2339                _marker: PhantomData,
2340            },
2341            OPAMP: OPAMP {
2342                _marker: PhantomData,
2343            },
2344            POEG: POEG {
2345                _marker: PhantomData,
2346            },
2347            SRAM: SRAM {
2348                _marker: PhantomData,
2349            },
2350            RTC: RTC {
2351                _marker: PhantomData,
2352            },
2353            SCI0: SCI0 {
2354                _marker: PhantomData,
2355            },
2356            SCI1: SCI1 {
2357                _marker: PhantomData,
2358            },
2359            SCI2: SCI2 {
2360                _marker: PhantomData,
2361            },
2362            SCI9: SCI9 {
2363                _marker: PhantomData,
2364            },
2365            SLCDC: SLCDC {
2366                _marker: PhantomData,
2367            },
2368            SPI0: SPI0 {
2369                _marker: PhantomData,
2370            },
2371            SPI1: SPI1 {
2372                _marker: PhantomData,
2373            },
2374            SSIE0: SSIE0 {
2375                _marker: PhantomData,
2376            },
2377            TSN: TSN {
2378                _marker: PhantomData,
2379            },
2380            USBFS: USBFS {
2381                _marker: PhantomData,
2382            },
2383            WDT: WDT {
2384                _marker: PhantomData,
2385            },
2386            ACMPLP: ACMPLP {
2387                _marker: PhantomData,
2388            },
2389            ADC140: ADC140 {
2390                _marker: PhantomData,
2391            },
2392            AGT0: AGT0 {
2393                _marker: PhantomData,
2394            },
2395            AGT1: AGT1 {
2396                _marker: PhantomData,
2397            },
2398            GPT320: GPT320 {
2399                _marker: PhantomData,
2400            },
2401            GPT321: GPT321 {
2402                _marker: PhantomData,
2403            },
2404            GPT162: GPT162 {
2405                _marker: PhantomData,
2406            },
2407            GPT163: GPT163 {
2408                _marker: PhantomData,
2409            },
2410            GPT164: GPT164 {
2411                _marker: PhantomData,
2412            },
2413            GPT165: GPT165 {
2414                _marker: PhantomData,
2415            },
2416            GPT166: GPT166 {
2417                _marker: PhantomData,
2418            },
2419            GPT167: GPT167 {
2420                _marker: PhantomData,
2421            },
2422            GPT_OPS: GPT_OPS {
2423                _marker: PhantomData,
2424            },
2425        }
2426    }
2427}