ra4m3/
lib.rs

1#![doc = "Peripheral access API for R7FA4M3AF 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    fn IEL32();
69    fn IEL33();
70    fn IEL34();
71    fn IEL35();
72    fn IEL36();
73    fn IEL37();
74    fn IEL38();
75    fn IEL39();
76    fn IEL40();
77    fn IEL41();
78    fn IEL42();
79    fn IEL43();
80    fn IEL44();
81    fn IEL45();
82    fn IEL46();
83    fn IEL47();
84    fn IEL48();
85    fn IEL49();
86    fn IEL50();
87    fn IEL51();
88    fn IEL52();
89    fn IEL53();
90    fn IEL54();
91    fn IEL55();
92    fn IEL56();
93    fn IEL57();
94    fn IEL58();
95    fn IEL59();
96    fn IEL60();
97    fn IEL61();
98    fn IEL62();
99    fn IEL63();
100    fn IEL64();
101    fn IEL65();
102    fn IEL66();
103    fn IEL67();
104    fn IEL68();
105    fn IEL69();
106    fn IEL70();
107    fn IEL71();
108    fn IEL72();
109    fn IEL73();
110    fn IEL74();
111    fn IEL75();
112    fn IEL76();
113    fn IEL77();
114    fn IEL78();
115    fn IEL79();
116    fn IEL80();
117    fn IEL81();
118    fn IEL82();
119    fn IEL83();
120    fn IEL84();
121    fn IEL85();
122    fn IEL86();
123    fn IEL87();
124    fn IEL88();
125    fn IEL89();
126    fn IEL90();
127    fn IEL91();
128    fn IEL92();
129    fn IEL93();
130    fn IEL94();
131    fn IEL95();
132}
133#[doc(hidden)]
134pub union Vector {
135    _handler: unsafe extern "C" fn(),
136    _reserved: u32,
137}
138#[cfg(feature = "rt")]
139#[doc(hidden)]
140#[link_section = ".vector_table.interrupts"]
141#[no_mangle]
142pub static __INTERRUPTS: [Vector; 96] = [
143    Vector { _handler: IEL0 },
144    Vector { _handler: IEL1 },
145    Vector { _handler: IEL2 },
146    Vector { _handler: IEL3 },
147    Vector { _handler: IEL4 },
148    Vector { _handler: IEL5 },
149    Vector { _handler: IEL6 },
150    Vector { _handler: IEL7 },
151    Vector { _handler: IEL8 },
152    Vector { _handler: IEL9 },
153    Vector { _handler: IEL10 },
154    Vector { _handler: IEL11 },
155    Vector { _handler: IEL12 },
156    Vector { _handler: IEL13 },
157    Vector { _handler: IEL14 },
158    Vector { _handler: IEL15 },
159    Vector { _handler: IEL16 },
160    Vector { _handler: IEL17 },
161    Vector { _handler: IEL18 },
162    Vector { _handler: IEL19 },
163    Vector { _handler: IEL20 },
164    Vector { _handler: IEL21 },
165    Vector { _handler: IEL22 },
166    Vector { _handler: IEL23 },
167    Vector { _handler: IEL24 },
168    Vector { _handler: IEL25 },
169    Vector { _handler: IEL26 },
170    Vector { _handler: IEL27 },
171    Vector { _handler: IEL28 },
172    Vector { _handler: IEL29 },
173    Vector { _handler: IEL30 },
174    Vector { _handler: IEL31 },
175    Vector { _handler: IEL32 },
176    Vector { _handler: IEL33 },
177    Vector { _handler: IEL34 },
178    Vector { _handler: IEL35 },
179    Vector { _handler: IEL36 },
180    Vector { _handler: IEL37 },
181    Vector { _handler: IEL38 },
182    Vector { _handler: IEL39 },
183    Vector { _handler: IEL40 },
184    Vector { _handler: IEL41 },
185    Vector { _handler: IEL42 },
186    Vector { _handler: IEL43 },
187    Vector { _handler: IEL44 },
188    Vector { _handler: IEL45 },
189    Vector { _handler: IEL46 },
190    Vector { _handler: IEL47 },
191    Vector { _handler: IEL48 },
192    Vector { _handler: IEL49 },
193    Vector { _handler: IEL50 },
194    Vector { _handler: IEL51 },
195    Vector { _handler: IEL52 },
196    Vector { _handler: IEL53 },
197    Vector { _handler: IEL54 },
198    Vector { _handler: IEL55 },
199    Vector { _handler: IEL56 },
200    Vector { _handler: IEL57 },
201    Vector { _handler: IEL58 },
202    Vector { _handler: IEL59 },
203    Vector { _handler: IEL60 },
204    Vector { _handler: IEL61 },
205    Vector { _handler: IEL62 },
206    Vector { _handler: IEL63 },
207    Vector { _handler: IEL64 },
208    Vector { _handler: IEL65 },
209    Vector { _handler: IEL66 },
210    Vector { _handler: IEL67 },
211    Vector { _handler: IEL68 },
212    Vector { _handler: IEL69 },
213    Vector { _handler: IEL70 },
214    Vector { _handler: IEL71 },
215    Vector { _handler: IEL72 },
216    Vector { _handler: IEL73 },
217    Vector { _handler: IEL74 },
218    Vector { _handler: IEL75 },
219    Vector { _handler: IEL76 },
220    Vector { _handler: IEL77 },
221    Vector { _handler: IEL78 },
222    Vector { _handler: IEL79 },
223    Vector { _handler: IEL80 },
224    Vector { _handler: IEL81 },
225    Vector { _handler: IEL82 },
226    Vector { _handler: IEL83 },
227    Vector { _handler: IEL84 },
228    Vector { _handler: IEL85 },
229    Vector { _handler: IEL86 },
230    Vector { _handler: IEL87 },
231    Vector { _handler: IEL88 },
232    Vector { _handler: IEL89 },
233    Vector { _handler: IEL90 },
234    Vector { _handler: IEL91 },
235    Vector { _handler: IEL92 },
236    Vector { _handler: IEL93 },
237    Vector { _handler: IEL94 },
238    Vector { _handler: IEL95 },
239];
240#[doc = r"Enumeration of all the interrupts."]
241#[derive(Copy, Clone, Debug, PartialEq, Eq)]
242#[repr(u16)]
243pub enum Interrupt {
244    #[doc = "0 - ICU Interrupt 0"]
245    IEL0 = 0,
246    #[doc = "1 - ICU Interrupt 1"]
247    IEL1 = 1,
248    #[doc = "2 - ICU Interrupt 2"]
249    IEL2 = 2,
250    #[doc = "3 - ICU Interrupt 3"]
251    IEL3 = 3,
252    #[doc = "4 - ICU Interrupt 4"]
253    IEL4 = 4,
254    #[doc = "5 - ICU Interrupt 5"]
255    IEL5 = 5,
256    #[doc = "6 - ICU Interrupt 6"]
257    IEL6 = 6,
258    #[doc = "7 - ICU Interrupt 7"]
259    IEL7 = 7,
260    #[doc = "8 - ICU Interrupt 8"]
261    IEL8 = 8,
262    #[doc = "9 - ICU Interrupt 9"]
263    IEL9 = 9,
264    #[doc = "10 - ICU Interrupt 10"]
265    IEL10 = 10,
266    #[doc = "11 - ICU Interrupt 11"]
267    IEL11 = 11,
268    #[doc = "12 - ICU Interrupt 12"]
269    IEL12 = 12,
270    #[doc = "13 - ICU Interrupt 13"]
271    IEL13 = 13,
272    #[doc = "14 - ICU Interrupt 14"]
273    IEL14 = 14,
274    #[doc = "15 - ICU Interrupt 15"]
275    IEL15 = 15,
276    #[doc = "16 - ICU Interrupt 16"]
277    IEL16 = 16,
278    #[doc = "17 - ICU Interrupt 17"]
279    IEL17 = 17,
280    #[doc = "18 - ICU Interrupt 18"]
281    IEL18 = 18,
282    #[doc = "19 - ICU Interrupt 19"]
283    IEL19 = 19,
284    #[doc = "20 - ICU Interrupt 20"]
285    IEL20 = 20,
286    #[doc = "21 - ICU Interrupt 21"]
287    IEL21 = 21,
288    #[doc = "22 - ICU Interrupt 22"]
289    IEL22 = 22,
290    #[doc = "23 - ICU Interrupt 23"]
291    IEL23 = 23,
292    #[doc = "24 - ICU Interrupt 24"]
293    IEL24 = 24,
294    #[doc = "25 - ICU Interrupt 25"]
295    IEL25 = 25,
296    #[doc = "26 - ICU Interrupt 26"]
297    IEL26 = 26,
298    #[doc = "27 - ICU Interrupt 27"]
299    IEL27 = 27,
300    #[doc = "28 - ICU Interrupt 28"]
301    IEL28 = 28,
302    #[doc = "29 - ICU Interrupt 29"]
303    IEL29 = 29,
304    #[doc = "30 - ICU Interrupt 30"]
305    IEL30 = 30,
306    #[doc = "31 - ICU Interrupt 31"]
307    IEL31 = 31,
308    #[doc = "32 - ICU Interrupt 32"]
309    IEL32 = 32,
310    #[doc = "33 - ICU Interrupt 33"]
311    IEL33 = 33,
312    #[doc = "34 - ICU Interrupt 34"]
313    IEL34 = 34,
314    #[doc = "35 - ICU Interrupt 35"]
315    IEL35 = 35,
316    #[doc = "36 - ICU Interrupt 36"]
317    IEL36 = 36,
318    #[doc = "37 - ICU Interrupt 37"]
319    IEL37 = 37,
320    #[doc = "38 - ICU Interrupt 38"]
321    IEL38 = 38,
322    #[doc = "39 - ICU Interrupt 39"]
323    IEL39 = 39,
324    #[doc = "40 - ICU Interrupt 40"]
325    IEL40 = 40,
326    #[doc = "41 - ICU Interrupt 41"]
327    IEL41 = 41,
328    #[doc = "42 - ICU Interrupt 42"]
329    IEL42 = 42,
330    #[doc = "43 - ICU Interrupt 43"]
331    IEL43 = 43,
332    #[doc = "44 - ICU Interrupt 44"]
333    IEL44 = 44,
334    #[doc = "45 - ICU Interrupt 45"]
335    IEL45 = 45,
336    #[doc = "46 - ICU Interrupt 46"]
337    IEL46 = 46,
338    #[doc = "47 - ICU Interrupt 47"]
339    IEL47 = 47,
340    #[doc = "48 - ICU Interrupt 48"]
341    IEL48 = 48,
342    #[doc = "49 - ICU Interrupt 49"]
343    IEL49 = 49,
344    #[doc = "50 - ICU Interrupt 50"]
345    IEL50 = 50,
346    #[doc = "51 - ICU Interrupt 51"]
347    IEL51 = 51,
348    #[doc = "52 - ICU Interrupt 52"]
349    IEL52 = 52,
350    #[doc = "53 - ICU Interrupt 53"]
351    IEL53 = 53,
352    #[doc = "54 - ICU Interrupt 54"]
353    IEL54 = 54,
354    #[doc = "55 - ICU Interrupt 55"]
355    IEL55 = 55,
356    #[doc = "56 - ICU Interrupt 56"]
357    IEL56 = 56,
358    #[doc = "57 - ICU Interrupt 57"]
359    IEL57 = 57,
360    #[doc = "58 - ICU Interrupt 58"]
361    IEL58 = 58,
362    #[doc = "59 - ICU Interrupt 59"]
363    IEL59 = 59,
364    #[doc = "60 - ICU Interrupt 60"]
365    IEL60 = 60,
366    #[doc = "61 - ICU Interrupt 61"]
367    IEL61 = 61,
368    #[doc = "62 - ICU Interrupt 62"]
369    IEL62 = 62,
370    #[doc = "63 - ICU Interrupt 63"]
371    IEL63 = 63,
372    #[doc = "64 - ICU Interrupt 64"]
373    IEL64 = 64,
374    #[doc = "65 - ICU Interrupt 65"]
375    IEL65 = 65,
376    #[doc = "66 - ICU Interrupt 66"]
377    IEL66 = 66,
378    #[doc = "67 - ICU Interrupt 67"]
379    IEL67 = 67,
380    #[doc = "68 - ICU Interrupt 68"]
381    IEL68 = 68,
382    #[doc = "69 - ICU Interrupt 69"]
383    IEL69 = 69,
384    #[doc = "70 - ICU Interrupt 70"]
385    IEL70 = 70,
386    #[doc = "71 - ICU Interrupt 71"]
387    IEL71 = 71,
388    #[doc = "72 - ICU Interrupt 72"]
389    IEL72 = 72,
390    #[doc = "73 - ICU Interrupt 73"]
391    IEL73 = 73,
392    #[doc = "74 - ICU Interrupt 74"]
393    IEL74 = 74,
394    #[doc = "75 - ICU Interrupt 75"]
395    IEL75 = 75,
396    #[doc = "76 - ICU Interrupt 76"]
397    IEL76 = 76,
398    #[doc = "77 - ICU Interrupt 77"]
399    IEL77 = 77,
400    #[doc = "78 - ICU Interrupt 78"]
401    IEL78 = 78,
402    #[doc = "79 - ICU Interrupt 79"]
403    IEL79 = 79,
404    #[doc = "80 - ICU Interrupt 80"]
405    IEL80 = 80,
406    #[doc = "81 - ICU Interrupt 81"]
407    IEL81 = 81,
408    #[doc = "82 - ICU Interrupt 82"]
409    IEL82 = 82,
410    #[doc = "83 - ICU Interrupt 83"]
411    IEL83 = 83,
412    #[doc = "84 - ICU Interrupt 84"]
413    IEL84 = 84,
414    #[doc = "85 - ICU Interrupt 85"]
415    IEL85 = 85,
416    #[doc = "86 - ICU Interrupt 86"]
417    IEL86 = 86,
418    #[doc = "87 - ICU Interrupt 87"]
419    IEL87 = 87,
420    #[doc = "88 - ICU Interrupt 88"]
421    IEL88 = 88,
422    #[doc = "89 - ICU Interrupt 89"]
423    IEL89 = 89,
424    #[doc = "90 - ICU Interrupt 90"]
425    IEL90 = 90,
426    #[doc = "91 - ICU Interrupt 91"]
427    IEL91 = 91,
428    #[doc = "92 - ICU Interrupt 92"]
429    IEL92 = 92,
430    #[doc = "93 - ICU Interrupt 93"]
431    IEL93 = 93,
432    #[doc = "94 - ICU Interrupt 94"]
433    IEL94 = 94,
434    #[doc = "95 - ICU Interrupt 95"]
435    IEL95 = 95,
436}
437unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
438    #[inline(always)]
439    fn number(self) -> u16 {
440        self as u16
441    }
442}
443#[doc = "Renesas Memory Protection Unit"]
444pub struct RMPU {
445    _marker: PhantomData<*const ()>,
446}
447unsafe impl Send for RMPU {}
448impl RMPU {
449    #[doc = r"Pointer to the register block"]
450    pub const PTR: *const rmpu::RegisterBlock = 0x4000_0000 as *const _;
451    #[doc = r"Return the pointer to the register block"]
452    #[inline(always)]
453    pub const fn ptr() -> *const rmpu::RegisterBlock {
454        Self::PTR
455    }
456}
457impl Deref for RMPU {
458    type Target = rmpu::RegisterBlock;
459    #[inline(always)]
460    fn deref(&self) -> &Self::Target {
461        unsafe { &*Self::PTR }
462    }
463}
464impl core::fmt::Debug for RMPU {
465    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
466        f.debug_struct("RMPU").finish()
467    }
468}
469#[doc = "Renesas Memory Protection Unit"]
470pub mod rmpu;
471#[doc = "TrustZone Filter"]
472pub struct TZF {
473    _marker: PhantomData<*const ()>,
474}
475unsafe impl Send for TZF {}
476impl TZF {
477    #[doc = r"Pointer to the register block"]
478    pub const PTR: *const tzf::RegisterBlock = 0x4000_0e00 as *const _;
479    #[doc = r"Return the pointer to the register block"]
480    #[inline(always)]
481    pub const fn ptr() -> *const tzf::RegisterBlock {
482        Self::PTR
483    }
484}
485impl Deref for TZF {
486    type Target = tzf::RegisterBlock;
487    #[inline(always)]
488    fn deref(&self) -> &Self::Target {
489        unsafe { &*Self::PTR }
490    }
491}
492impl core::fmt::Debug for TZF {
493    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
494        f.debug_struct("TZF").finish()
495    }
496}
497#[doc = "TrustZone Filter"]
498pub mod tzf;
499#[doc = "SRAM Control"]
500pub struct SRAM {
501    _marker: PhantomData<*const ()>,
502}
503unsafe impl Send for SRAM {}
504impl SRAM {
505    #[doc = r"Pointer to the register block"]
506    pub const PTR: *const sram::RegisterBlock = 0x4000_2000 as *const _;
507    #[doc = r"Return the pointer to the register block"]
508    #[inline(always)]
509    pub const fn ptr() -> *const sram::RegisterBlock {
510        Self::PTR
511    }
512}
513impl Deref for SRAM {
514    type Target = sram::RegisterBlock;
515    #[inline(always)]
516    fn deref(&self) -> &Self::Target {
517        unsafe { &*Self::PTR }
518    }
519}
520impl core::fmt::Debug for SRAM {
521    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
522        f.debug_struct("SRAM").finish()
523    }
524}
525#[doc = "SRAM Control"]
526pub mod sram;
527#[doc = "Bus Control"]
528pub struct BUS {
529    _marker: PhantomData<*const ()>,
530}
531unsafe impl Send for BUS {}
532impl BUS {
533    #[doc = r"Pointer to the register block"]
534    pub const PTR: *const bus::RegisterBlock = 0x4000_3000 as *const _;
535    #[doc = r"Return the pointer to the register block"]
536    #[inline(always)]
537    pub const fn ptr() -> *const bus::RegisterBlock {
538        Self::PTR
539    }
540}
541impl Deref for BUS {
542    type Target = bus::RegisterBlock;
543    #[inline(always)]
544    fn deref(&self) -> &Self::Target {
545        unsafe { &*Self::PTR }
546    }
547}
548impl core::fmt::Debug for BUS {
549    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
550        f.debug_struct("BUS").finish()
551    }
552}
553#[doc = "Bus Control"]
554pub mod bus;
555#[doc = "Direct memory access controller 0"]
556pub struct DMAC0 {
557    _marker: PhantomData<*const ()>,
558}
559unsafe impl Send for DMAC0 {}
560impl DMAC0 {
561    #[doc = r"Pointer to the register block"]
562    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5000 as *const _;
563    #[doc = r"Return the pointer to the register block"]
564    #[inline(always)]
565    pub const fn ptr() -> *const dmac0::RegisterBlock {
566        Self::PTR
567    }
568}
569impl Deref for DMAC0 {
570    type Target = dmac0::RegisterBlock;
571    #[inline(always)]
572    fn deref(&self) -> &Self::Target {
573        unsafe { &*Self::PTR }
574    }
575}
576impl core::fmt::Debug for DMAC0 {
577    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
578        f.debug_struct("DMAC0").finish()
579    }
580}
581#[doc = "Direct memory access controller 0"]
582pub mod dmac0;
583#[doc = "Direct memory access controller 1"]
584pub struct DMAC1 {
585    _marker: PhantomData<*const ()>,
586}
587unsafe impl Send for DMAC1 {}
588impl DMAC1 {
589    #[doc = r"Pointer to the register block"]
590    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5040 as *const _;
591    #[doc = r"Return the pointer to the register block"]
592    #[inline(always)]
593    pub const fn ptr() -> *const dmac0::RegisterBlock {
594        Self::PTR
595    }
596}
597impl Deref for DMAC1 {
598    type Target = dmac0::RegisterBlock;
599    #[inline(always)]
600    fn deref(&self) -> &Self::Target {
601        unsafe { &*Self::PTR }
602    }
603}
604impl core::fmt::Debug for DMAC1 {
605    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
606        f.debug_struct("DMAC1").finish()
607    }
608}
609#[doc = "Direct memory access controller 1"]
610pub use self::dmac0 as dmac1;
611#[doc = "Direct memory access controller 2"]
612pub struct DMAC2 {
613    _marker: PhantomData<*const ()>,
614}
615unsafe impl Send for DMAC2 {}
616impl DMAC2 {
617    #[doc = r"Pointer to the register block"]
618    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5080 as *const _;
619    #[doc = r"Return the pointer to the register block"]
620    #[inline(always)]
621    pub const fn ptr() -> *const dmac0::RegisterBlock {
622        Self::PTR
623    }
624}
625impl Deref for DMAC2 {
626    type Target = dmac0::RegisterBlock;
627    #[inline(always)]
628    fn deref(&self) -> &Self::Target {
629        unsafe { &*Self::PTR }
630    }
631}
632impl core::fmt::Debug for DMAC2 {
633    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
634        f.debug_struct("DMAC2").finish()
635    }
636}
637#[doc = "Direct memory access controller 2"]
638pub use self::dmac0 as dmac2;
639#[doc = "Direct memory access controller 3"]
640pub struct DMAC3 {
641    _marker: PhantomData<*const ()>,
642}
643unsafe impl Send for DMAC3 {}
644impl DMAC3 {
645    #[doc = r"Pointer to the register block"]
646    pub const PTR: *const dmac0::RegisterBlock = 0x4000_50c0 as *const _;
647    #[doc = r"Return the pointer to the register block"]
648    #[inline(always)]
649    pub const fn ptr() -> *const dmac0::RegisterBlock {
650        Self::PTR
651    }
652}
653impl Deref for DMAC3 {
654    type Target = dmac0::RegisterBlock;
655    #[inline(always)]
656    fn deref(&self) -> &Self::Target {
657        unsafe { &*Self::PTR }
658    }
659}
660impl core::fmt::Debug for DMAC3 {
661    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
662        f.debug_struct("DMAC3").finish()
663    }
664}
665#[doc = "Direct memory access controller 3"]
666pub use self::dmac0 as dmac3;
667#[doc = "Direct memory access controller 4"]
668pub struct DMAC4 {
669    _marker: PhantomData<*const ()>,
670}
671unsafe impl Send for DMAC4 {}
672impl DMAC4 {
673    #[doc = r"Pointer to the register block"]
674    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5100 as *const _;
675    #[doc = r"Return the pointer to the register block"]
676    #[inline(always)]
677    pub const fn ptr() -> *const dmac0::RegisterBlock {
678        Self::PTR
679    }
680}
681impl Deref for DMAC4 {
682    type Target = dmac0::RegisterBlock;
683    #[inline(always)]
684    fn deref(&self) -> &Self::Target {
685        unsafe { &*Self::PTR }
686    }
687}
688impl core::fmt::Debug for DMAC4 {
689    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
690        f.debug_struct("DMAC4").finish()
691    }
692}
693#[doc = "Direct memory access controller 4"]
694pub use self::dmac0 as dmac4;
695#[doc = "Direct memory access controller 5"]
696pub struct DMAC5 {
697    _marker: PhantomData<*const ()>,
698}
699unsafe impl Send for DMAC5 {}
700impl DMAC5 {
701    #[doc = r"Pointer to the register block"]
702    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5140 as *const _;
703    #[doc = r"Return the pointer to the register block"]
704    #[inline(always)]
705    pub const fn ptr() -> *const dmac0::RegisterBlock {
706        Self::PTR
707    }
708}
709impl Deref for DMAC5 {
710    type Target = dmac0::RegisterBlock;
711    #[inline(always)]
712    fn deref(&self) -> &Self::Target {
713        unsafe { &*Self::PTR }
714    }
715}
716impl core::fmt::Debug for DMAC5 {
717    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
718        f.debug_struct("DMAC5").finish()
719    }
720}
721#[doc = "Direct memory access controller 5"]
722pub use self::dmac0 as dmac5;
723#[doc = "Direct memory access controller 6"]
724pub struct DMAC6 {
725    _marker: PhantomData<*const ()>,
726}
727unsafe impl Send for DMAC6 {}
728impl DMAC6 {
729    #[doc = r"Pointer to the register block"]
730    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5180 as *const _;
731    #[doc = r"Return the pointer to the register block"]
732    #[inline(always)]
733    pub const fn ptr() -> *const dmac0::RegisterBlock {
734        Self::PTR
735    }
736}
737impl Deref for DMAC6 {
738    type Target = dmac0::RegisterBlock;
739    #[inline(always)]
740    fn deref(&self) -> &Self::Target {
741        unsafe { &*Self::PTR }
742    }
743}
744impl core::fmt::Debug for DMAC6 {
745    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
746        f.debug_struct("DMAC6").finish()
747    }
748}
749#[doc = "Direct memory access controller 6"]
750pub use self::dmac0 as dmac6;
751#[doc = "Direct memory access controller 7"]
752pub struct DMAC7 {
753    _marker: PhantomData<*const ()>,
754}
755unsafe impl Send for DMAC7 {}
756impl DMAC7 {
757    #[doc = r"Pointer to the register block"]
758    pub const PTR: *const dmac0::RegisterBlock = 0x4000_51c0 as *const _;
759    #[doc = r"Return the pointer to the register block"]
760    #[inline(always)]
761    pub const fn ptr() -> *const dmac0::RegisterBlock {
762        Self::PTR
763    }
764}
765impl Deref for DMAC7 {
766    type Target = dmac0::RegisterBlock;
767    #[inline(always)]
768    fn deref(&self) -> &Self::Target {
769        unsafe { &*Self::PTR }
770    }
771}
772impl core::fmt::Debug for DMAC7 {
773    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
774        f.debug_struct("DMAC7").finish()
775    }
776}
777#[doc = "Direct memory access controller 7"]
778pub use self::dmac0 as dmac7;
779#[doc = "DMAC Module Activation"]
780pub struct DMA {
781    _marker: PhantomData<*const ()>,
782}
783unsafe impl Send for DMA {}
784impl DMA {
785    #[doc = r"Pointer to the register block"]
786    pub const PTR: *const dma::RegisterBlock = 0x4000_5200 as *const _;
787    #[doc = r"Return the pointer to the register block"]
788    #[inline(always)]
789    pub const fn ptr() -> *const dma::RegisterBlock {
790        Self::PTR
791    }
792}
793impl Deref for DMA {
794    type Target = dma::RegisterBlock;
795    #[inline(always)]
796    fn deref(&self) -> &Self::Target {
797        unsafe { &*Self::PTR }
798    }
799}
800impl core::fmt::Debug for DMA {
801    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
802        f.debug_struct("DMA").finish()
803    }
804}
805#[doc = "DMAC Module Activation"]
806pub mod dma;
807#[doc = "Data Transfer Controller"]
808pub struct DTC {
809    _marker: PhantomData<*const ()>,
810}
811unsafe impl Send for DTC {}
812impl DTC {
813    #[doc = r"Pointer to the register block"]
814    pub const PTR: *const dtc::RegisterBlock = 0x4000_5400 as *const _;
815    #[doc = r"Return the pointer to the register block"]
816    #[inline(always)]
817    pub const fn ptr() -> *const dtc::RegisterBlock {
818        Self::PTR
819    }
820}
821impl Deref for DTC {
822    type Target = dtc::RegisterBlock;
823    #[inline(always)]
824    fn deref(&self) -> &Self::Target {
825        unsafe { &*Self::PTR }
826    }
827}
828impl core::fmt::Debug for DTC {
829    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
830        f.debug_struct("DTC").finish()
831    }
832}
833#[doc = "Data Transfer Controller"]
834pub mod dtc;
835#[doc = "Interrupt Controller"]
836pub struct ICU {
837    _marker: PhantomData<*const ()>,
838}
839unsafe impl Send for ICU {}
840impl ICU {
841    #[doc = r"Pointer to the register block"]
842    pub const PTR: *const icu::RegisterBlock = 0x4000_6000 as *const _;
843    #[doc = r"Return the pointer to the register block"]
844    #[inline(always)]
845    pub const fn ptr() -> *const icu::RegisterBlock {
846        Self::PTR
847    }
848}
849impl Deref for ICU {
850    type Target = icu::RegisterBlock;
851    #[inline(always)]
852    fn deref(&self) -> &Self::Target {
853        unsafe { &*Self::PTR }
854    }
855}
856impl core::fmt::Debug for ICU {
857    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
858        f.debug_struct("ICU").finish()
859    }
860}
861#[doc = "Interrupt Controller"]
862pub mod icu;
863#[doc = "CACHE"]
864pub struct CACHE {
865    _marker: PhantomData<*const ()>,
866}
867unsafe impl Send for CACHE {}
868impl CACHE {
869    #[doc = r"Pointer to the register block"]
870    pub const PTR: *const cache::RegisterBlock = 0x4000_7000 as *const _;
871    #[doc = r"Return the pointer to the register block"]
872    #[inline(always)]
873    pub const fn ptr() -> *const cache::RegisterBlock {
874        Self::PTR
875    }
876}
877impl Deref for CACHE {
878    type Target = cache::RegisterBlock;
879    #[inline(always)]
880    fn deref(&self) -> &Self::Target {
881        unsafe { &*Self::PTR }
882    }
883}
884impl core::fmt::Debug for CACHE {
885    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
886        f.debug_struct("CACHE").finish()
887    }
888}
889#[doc = "CACHE"]
890pub mod cache;
891#[doc = "CPU System Security Control Unit"]
892pub struct CPSCU {
893    _marker: PhantomData<*const ()>,
894}
895unsafe impl Send for CPSCU {}
896impl CPSCU {
897    #[doc = r"Pointer to the register block"]
898    pub const PTR: *const cpscu::RegisterBlock = 0x4000_8000 as *const _;
899    #[doc = r"Return the pointer to the register block"]
900    #[inline(always)]
901    pub const fn ptr() -> *const cpscu::RegisterBlock {
902        Self::PTR
903    }
904}
905impl Deref for CPSCU {
906    type Target = cpscu::RegisterBlock;
907    #[inline(always)]
908    fn deref(&self) -> &Self::Target {
909        unsafe { &*Self::PTR }
910    }
911}
912impl core::fmt::Debug for CPSCU {
913    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
914        f.debug_struct("CPSCU").finish()
915    }
916}
917#[doc = "CPU System Security Control Unit"]
918pub mod cpscu;
919#[doc = "Debug Function"]
920pub struct DBG {
921    _marker: PhantomData<*const ()>,
922}
923unsafe impl Send for DBG {}
924impl DBG {
925    #[doc = r"Pointer to the register block"]
926    pub const PTR: *const dbg::RegisterBlock = 0x4001_b000 as *const _;
927    #[doc = r"Return the pointer to the register block"]
928    #[inline(always)]
929    pub const fn ptr() -> *const dbg::RegisterBlock {
930        Self::PTR
931    }
932}
933impl Deref for DBG {
934    type Target = dbg::RegisterBlock;
935    #[inline(always)]
936    fn deref(&self) -> &Self::Target {
937        unsafe { &*Self::PTR }
938    }
939}
940impl core::fmt::Debug for DBG {
941    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
942        f.debug_struct("DBG").finish()
943    }
944}
945#[doc = "Debug Function"]
946pub mod dbg;
947#[doc = "SYSTEM/FLASH"]
948pub struct FCACHE {
949    _marker: PhantomData<*const ()>,
950}
951unsafe impl Send for FCACHE {}
952impl FCACHE {
953    #[doc = r"Pointer to the register block"]
954    pub const PTR: *const fcache::RegisterBlock = 0x4001_c100 as *const _;
955    #[doc = r"Return the pointer to the register block"]
956    #[inline(always)]
957    pub const fn ptr() -> *const fcache::RegisterBlock {
958        Self::PTR
959    }
960}
961impl Deref for FCACHE {
962    type Target = fcache::RegisterBlock;
963    #[inline(always)]
964    fn deref(&self) -> &Self::Target {
965        unsafe { &*Self::PTR }
966    }
967}
968impl core::fmt::Debug for FCACHE {
969    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
970        f.debug_struct("FCACHE").finish()
971    }
972}
973#[doc = "SYSTEM/FLASH"]
974pub mod fcache;
975#[doc = "System Control"]
976pub struct SYSC {
977    _marker: PhantomData<*const ()>,
978}
979unsafe impl Send for SYSC {}
980impl SYSC {
981    #[doc = r"Pointer to the register block"]
982    pub const PTR: *const sysc::RegisterBlock = 0x4001_e000 as *const _;
983    #[doc = r"Return the pointer to the register block"]
984    #[inline(always)]
985    pub const fn ptr() -> *const sysc::RegisterBlock {
986        Self::PTR
987    }
988}
989impl Deref for SYSC {
990    type Target = sysc::RegisterBlock;
991    #[inline(always)]
992    fn deref(&self) -> &Self::Target {
993        unsafe { &*Self::PTR }
994    }
995}
996impl core::fmt::Debug for SYSC {
997    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
998        f.debug_struct("SYSC").finish()
999    }
1000}
1001#[doc = "System Control"]
1002pub mod sysc;
1003#[doc = "Pmn Pin FunctionPort 0 Control RegistersPmn Pin Function Control Register"]
1004pub struct PORT0 {
1005    _marker: PhantomData<*const ()>,
1006}
1007unsafe impl Send for PORT0 {}
1008impl PORT0 {
1009    #[doc = r"Pointer to the register block"]
1010    pub const PTR: *const port0::RegisterBlock = 0x4008_0000 as *const _;
1011    #[doc = r"Return the pointer to the register block"]
1012    #[inline(always)]
1013    pub const fn ptr() -> *const port0::RegisterBlock {
1014        Self::PTR
1015    }
1016}
1017impl Deref for PORT0 {
1018    type Target = port0::RegisterBlock;
1019    #[inline(always)]
1020    fn deref(&self) -> &Self::Target {
1021        unsafe { &*Self::PTR }
1022    }
1023}
1024impl core::fmt::Debug for PORT0 {
1025    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1026        f.debug_struct("PORT0").finish()
1027    }
1028}
1029#[doc = "Pmn Pin FunctionPort 0 Control RegistersPmn Pin Function Control Register"]
1030pub mod port0;
1031#[doc = "Pmn Pin FunctionPort 1 Control RegistersPmn Pin Function Control Register"]
1032pub struct PORT1 {
1033    _marker: PhantomData<*const ()>,
1034}
1035unsafe impl Send for PORT1 {}
1036impl PORT1 {
1037    #[doc = r"Pointer to the register block"]
1038    pub const PTR: *const port1::RegisterBlock = 0x4008_0020 as *const _;
1039    #[doc = r"Return the pointer to the register block"]
1040    #[inline(always)]
1041    pub const fn ptr() -> *const port1::RegisterBlock {
1042        Self::PTR
1043    }
1044}
1045impl Deref for PORT1 {
1046    type Target = port1::RegisterBlock;
1047    #[inline(always)]
1048    fn deref(&self) -> &Self::Target {
1049        unsafe { &*Self::PTR }
1050    }
1051}
1052impl core::fmt::Debug for PORT1 {
1053    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1054        f.debug_struct("PORT1").finish()
1055    }
1056}
1057#[doc = "Pmn Pin FunctionPort 1 Control RegistersPmn Pin Function Control Register"]
1058pub mod port1;
1059#[doc = "Pmn Pin FunctionPort 2 Control RegistersPmn Pin Function Control Register"]
1060pub struct PORT2 {
1061    _marker: PhantomData<*const ()>,
1062}
1063unsafe impl Send for PORT2 {}
1064impl PORT2 {
1065    #[doc = r"Pointer to the register block"]
1066    pub const PTR: *const port1::RegisterBlock = 0x4008_0040 as *const _;
1067    #[doc = r"Return the pointer to the register block"]
1068    #[inline(always)]
1069    pub const fn ptr() -> *const port1::RegisterBlock {
1070        Self::PTR
1071    }
1072}
1073impl Deref for PORT2 {
1074    type Target = port1::RegisterBlock;
1075    #[inline(always)]
1076    fn deref(&self) -> &Self::Target {
1077        unsafe { &*Self::PTR }
1078    }
1079}
1080impl core::fmt::Debug for PORT2 {
1081    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1082        f.debug_struct("PORT2").finish()
1083    }
1084}
1085#[doc = "Pmn Pin FunctionPort 2 Control RegistersPmn Pin Function Control Register"]
1086pub use self::port1 as port2;
1087#[doc = "Pmn Pin FunctionPort 3 Control RegistersPmn Pin Function Control Register"]
1088pub struct PORT3 {
1089    _marker: PhantomData<*const ()>,
1090}
1091unsafe impl Send for PORT3 {}
1092impl PORT3 {
1093    #[doc = r"Pointer to the register block"]
1094    pub const PTR: *const port1::RegisterBlock = 0x4008_0060 as *const _;
1095    #[doc = r"Return the pointer to the register block"]
1096    #[inline(always)]
1097    pub const fn ptr() -> *const port1::RegisterBlock {
1098        Self::PTR
1099    }
1100}
1101impl Deref for PORT3 {
1102    type Target = port1::RegisterBlock;
1103    #[inline(always)]
1104    fn deref(&self) -> &Self::Target {
1105        unsafe { &*Self::PTR }
1106    }
1107}
1108impl core::fmt::Debug for PORT3 {
1109    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1110        f.debug_struct("PORT3").finish()
1111    }
1112}
1113#[doc = "Pmn Pin FunctionPort 3 Control RegistersPmn Pin Function Control Register"]
1114pub use self::port1 as port3;
1115#[doc = "Pmn Pin FunctionPort 4 Control RegistersPmn Pin Function Control Register"]
1116pub struct PORT4 {
1117    _marker: PhantomData<*const ()>,
1118}
1119unsafe impl Send for PORT4 {}
1120impl PORT4 {
1121    #[doc = r"Pointer to the register block"]
1122    pub const PTR: *const port1::RegisterBlock = 0x4008_0080 as *const _;
1123    #[doc = r"Return the pointer to the register block"]
1124    #[inline(always)]
1125    pub const fn ptr() -> *const port1::RegisterBlock {
1126        Self::PTR
1127    }
1128}
1129impl Deref for PORT4 {
1130    type Target = port1::RegisterBlock;
1131    #[inline(always)]
1132    fn deref(&self) -> &Self::Target {
1133        unsafe { &*Self::PTR }
1134    }
1135}
1136impl core::fmt::Debug for PORT4 {
1137    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1138        f.debug_struct("PORT4").finish()
1139    }
1140}
1141#[doc = "Pmn Pin FunctionPort 4 Control RegistersPmn Pin Function Control Register"]
1142pub use self::port1 as port4;
1143#[doc = "Pmn Pin FunctionPort 5 Control RegistersPmn Pin Function Control Register"]
1144pub struct PORT5 {
1145    _marker: PhantomData<*const ()>,
1146}
1147unsafe impl Send for PORT5 {}
1148impl PORT5 {
1149    #[doc = r"Pointer to the register block"]
1150    pub const PTR: *const port0::RegisterBlock = 0x4008_00a0 as *const _;
1151    #[doc = r"Return the pointer to the register block"]
1152    #[inline(always)]
1153    pub const fn ptr() -> *const port0::RegisterBlock {
1154        Self::PTR
1155    }
1156}
1157impl Deref for PORT5 {
1158    type Target = port0::RegisterBlock;
1159    #[inline(always)]
1160    fn deref(&self) -> &Self::Target {
1161        unsafe { &*Self::PTR }
1162    }
1163}
1164impl core::fmt::Debug for PORT5 {
1165    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1166        f.debug_struct("PORT5").finish()
1167    }
1168}
1169#[doc = "Pmn Pin FunctionPort 5 Control RegistersPmn Pin Function Control Register"]
1170pub use self::port0 as port5;
1171#[doc = "Pmn Pin FunctionPort 6 Control RegistersPmn Pin Function Control Register"]
1172pub struct PORT6 {
1173    _marker: PhantomData<*const ()>,
1174}
1175unsafe impl Send for PORT6 {}
1176impl PORT6 {
1177    #[doc = r"Pointer to the register block"]
1178    pub const PTR: *const port0::RegisterBlock = 0x4008_00c0 as *const _;
1179    #[doc = r"Return the pointer to the register block"]
1180    #[inline(always)]
1181    pub const fn ptr() -> *const port0::RegisterBlock {
1182        Self::PTR
1183    }
1184}
1185impl Deref for PORT6 {
1186    type Target = port0::RegisterBlock;
1187    #[inline(always)]
1188    fn deref(&self) -> &Self::Target {
1189        unsafe { &*Self::PTR }
1190    }
1191}
1192impl core::fmt::Debug for PORT6 {
1193    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1194        f.debug_struct("PORT6").finish()
1195    }
1196}
1197#[doc = "Pmn Pin FunctionPort 6 Control RegistersPmn Pin Function Control Register"]
1198pub use self::port0 as port6;
1199#[doc = "Pmn Pin FunctionPort 7 Control RegistersPmn Pin Function Control Register"]
1200pub struct PORT7 {
1201    _marker: PhantomData<*const ()>,
1202}
1203unsafe impl Send for PORT7 {}
1204impl PORT7 {
1205    #[doc = r"Pointer to the register block"]
1206    pub const PTR: *const port0::RegisterBlock = 0x4008_00e0 as *const _;
1207    #[doc = r"Return the pointer to the register block"]
1208    #[inline(always)]
1209    pub const fn ptr() -> *const port0::RegisterBlock {
1210        Self::PTR
1211    }
1212}
1213impl Deref for PORT7 {
1214    type Target = port0::RegisterBlock;
1215    #[inline(always)]
1216    fn deref(&self) -> &Self::Target {
1217        unsafe { &*Self::PTR }
1218    }
1219}
1220impl core::fmt::Debug for PORT7 {
1221    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1222        f.debug_struct("PORT7").finish()
1223    }
1224}
1225#[doc = "Pmn Pin FunctionPort 7 Control RegistersPmn Pin Function Control Register"]
1226pub use self::port0 as port7;
1227#[doc = "Pmn Pin FunctionPort 8 Control RegistersPmn Pin Function Control Register"]
1228pub struct PORT8 {
1229    _marker: PhantomData<*const ()>,
1230}
1231unsafe impl Send for PORT8 {}
1232impl PORT8 {
1233    #[doc = r"Pointer to the register block"]
1234    pub const PTR: *const port0::RegisterBlock = 0x4008_0100 as *const _;
1235    #[doc = r"Return the pointer to the register block"]
1236    #[inline(always)]
1237    pub const fn ptr() -> *const port0::RegisterBlock {
1238        Self::PTR
1239    }
1240}
1241impl Deref for PORT8 {
1242    type Target = port0::RegisterBlock;
1243    #[inline(always)]
1244    fn deref(&self) -> &Self::Target {
1245        unsafe { &*Self::PTR }
1246    }
1247}
1248impl core::fmt::Debug for PORT8 {
1249    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1250        f.debug_struct("PORT8").finish()
1251    }
1252}
1253#[doc = "Pmn Pin FunctionPort 8 Control RegistersPmn Pin Function Control Register"]
1254pub use self::port0 as port8;
1255#[doc = "Control Register"]
1256pub struct PFS {
1257    _marker: PhantomData<*const ()>,
1258}
1259unsafe impl Send for PFS {}
1260impl PFS {
1261    #[doc = r"Pointer to the register block"]
1262    pub const PTR: *const pfs::RegisterBlock = 0x4008_0800 as *const _;
1263    #[doc = r"Return the pointer to the register block"]
1264    #[inline(always)]
1265    pub const fn ptr() -> *const pfs::RegisterBlock {
1266        Self::PTR
1267    }
1268}
1269impl Deref for PFS {
1270    type Target = pfs::RegisterBlock;
1271    #[inline(always)]
1272    fn deref(&self) -> &Self::Target {
1273        unsafe { &*Self::PTR }
1274    }
1275}
1276impl core::fmt::Debug for PFS {
1277    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1278        f.debug_struct("PFS").finish()
1279    }
1280}
1281#[doc = "Control Register"]
1282pub mod pfs;
1283#[doc = "Event Link Controller"]
1284pub struct ELC {
1285    _marker: PhantomData<*const ()>,
1286}
1287unsafe impl Send for ELC {}
1288impl ELC {
1289    #[doc = r"Pointer to the register block"]
1290    pub const PTR: *const elc::RegisterBlock = 0x4008_2000 as *const _;
1291    #[doc = r"Return the pointer to the register block"]
1292    #[inline(always)]
1293    pub const fn ptr() -> *const elc::RegisterBlock {
1294        Self::PTR
1295    }
1296}
1297impl Deref for ELC {
1298    type Target = elc::RegisterBlock;
1299    #[inline(always)]
1300    fn deref(&self) -> &Self::Target {
1301        unsafe { &*Self::PTR }
1302    }
1303}
1304impl core::fmt::Debug for ELC {
1305    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1306        f.debug_struct("ELC").finish()
1307    }
1308}
1309#[doc = "Event Link Controller"]
1310pub mod elc;
1311#[doc = "Realtime Clock"]
1312pub struct RTC {
1313    _marker: PhantomData<*const ()>,
1314}
1315unsafe impl Send for RTC {}
1316impl RTC {
1317    #[doc = r"Pointer to the register block"]
1318    pub const PTR: *const rtc::RegisterBlock = 0x4008_3000 as *const _;
1319    #[doc = r"Return the pointer to the register block"]
1320    #[inline(always)]
1321    pub const fn ptr() -> *const rtc::RegisterBlock {
1322        Self::PTR
1323    }
1324}
1325impl Deref for RTC {
1326    type Target = rtc::RegisterBlock;
1327    #[inline(always)]
1328    fn deref(&self) -> &Self::Target {
1329        unsafe { &*Self::PTR }
1330    }
1331}
1332impl core::fmt::Debug for RTC {
1333    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1334        f.debug_struct("RTC").finish()
1335    }
1336}
1337#[doc = "Realtime Clock"]
1338pub mod rtc;
1339#[doc = "Independent Watchdog Timer"]
1340pub struct IWDT {
1341    _marker: PhantomData<*const ()>,
1342}
1343unsafe impl Send for IWDT {}
1344impl IWDT {
1345    #[doc = r"Pointer to the register block"]
1346    pub const PTR: *const iwdt::RegisterBlock = 0x4008_3200 as *const _;
1347    #[doc = r"Return the pointer to the register block"]
1348    #[inline(always)]
1349    pub const fn ptr() -> *const iwdt::RegisterBlock {
1350        Self::PTR
1351    }
1352}
1353impl Deref for IWDT {
1354    type Target = iwdt::RegisterBlock;
1355    #[inline(always)]
1356    fn deref(&self) -> &Self::Target {
1357        unsafe { &*Self::PTR }
1358    }
1359}
1360impl core::fmt::Debug for IWDT {
1361    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1362        f.debug_struct("IWDT").finish()
1363    }
1364}
1365#[doc = "Independent Watchdog Timer"]
1366pub mod iwdt;
1367#[doc = "Watchdog Timer"]
1368pub struct WDT {
1369    _marker: PhantomData<*const ()>,
1370}
1371unsafe impl Send for WDT {}
1372impl WDT {
1373    #[doc = r"Pointer to the register block"]
1374    pub const PTR: *const wdt::RegisterBlock = 0x4008_3400 as *const _;
1375    #[doc = r"Return the pointer to the register block"]
1376    #[inline(always)]
1377    pub const fn ptr() -> *const wdt::RegisterBlock {
1378        Self::PTR
1379    }
1380}
1381impl Deref for WDT {
1382    type Target = wdt::RegisterBlock;
1383    #[inline(always)]
1384    fn deref(&self) -> &Self::Target {
1385        unsafe { &*Self::PTR }
1386    }
1387}
1388impl core::fmt::Debug for WDT {
1389    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1390        f.debug_struct("WDT").finish()
1391    }
1392}
1393#[doc = "Watchdog Timer"]
1394pub mod wdt;
1395#[doc = "Clock Frequency Accuracy Measurement Circuit"]
1396pub struct CAC {
1397    _marker: PhantomData<*const ()>,
1398}
1399unsafe impl Send for CAC {}
1400impl CAC {
1401    #[doc = r"Pointer to the register block"]
1402    pub const PTR: *const cac::RegisterBlock = 0x4008_3600 as *const _;
1403    #[doc = r"Return the pointer to the register block"]
1404    #[inline(always)]
1405    pub const fn ptr() -> *const cac::RegisterBlock {
1406        Self::PTR
1407    }
1408}
1409impl Deref for CAC {
1410    type Target = cac::RegisterBlock;
1411    #[inline(always)]
1412    fn deref(&self) -> &Self::Target {
1413        unsafe { &*Self::PTR }
1414    }
1415}
1416impl core::fmt::Debug for CAC {
1417    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1418        f.debug_struct("CAC").finish()
1419    }
1420}
1421#[doc = "Clock Frequency Accuracy Measurement Circuit"]
1422pub mod cac;
1423#[doc = "Module Stop Control"]
1424pub struct MSTP {
1425    _marker: PhantomData<*const ()>,
1426}
1427unsafe impl Send for MSTP {}
1428impl MSTP {
1429    #[doc = r"Pointer to the register block"]
1430    pub const PTR: *const mstp::RegisterBlock = 0x4008_4000 as *const _;
1431    #[doc = r"Return the pointer to the register block"]
1432    #[inline(always)]
1433    pub const fn ptr() -> *const mstp::RegisterBlock {
1434        Self::PTR
1435    }
1436}
1437impl Deref for MSTP {
1438    type Target = mstp::RegisterBlock;
1439    #[inline(always)]
1440    fn deref(&self) -> &Self::Target {
1441        unsafe { &*Self::PTR }
1442    }
1443}
1444impl core::fmt::Debug for MSTP {
1445    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1446        f.debug_struct("MSTP").finish()
1447    }
1448}
1449#[doc = "Module Stop Control"]
1450pub mod mstp;
1451#[doc = "Port Output Enable Module for GPT"]
1452pub struct POEG {
1453    _marker: PhantomData<*const ()>,
1454}
1455unsafe impl Send for POEG {}
1456impl POEG {
1457    #[doc = r"Pointer to the register block"]
1458    pub const PTR: *const poeg::RegisterBlock = 0x4008_a000 as *const _;
1459    #[doc = r"Return the pointer to the register block"]
1460    #[inline(always)]
1461    pub const fn ptr() -> *const poeg::RegisterBlock {
1462        Self::PTR
1463    }
1464}
1465impl Deref for POEG {
1466    type Target = poeg::RegisterBlock;
1467    #[inline(always)]
1468    fn deref(&self) -> &Self::Target {
1469        unsafe { &*Self::PTR }
1470    }
1471}
1472impl core::fmt::Debug for POEG {
1473    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1474        f.debug_struct("POEG").finish()
1475    }
1476}
1477#[doc = "Port Output Enable Module for GPT"]
1478pub mod poeg;
1479#[doc = "USB 2.0 Full-Speed Module"]
1480pub struct USBFS {
1481    _marker: PhantomData<*const ()>,
1482}
1483unsafe impl Send for USBFS {}
1484impl USBFS {
1485    #[doc = r"Pointer to the register block"]
1486    pub const PTR: *const usbfs::RegisterBlock = 0x4009_0000 as *const _;
1487    #[doc = r"Return the pointer to the register block"]
1488    #[inline(always)]
1489    pub const fn ptr() -> *const usbfs::RegisterBlock {
1490        Self::PTR
1491    }
1492}
1493impl Deref for USBFS {
1494    type Target = usbfs::RegisterBlock;
1495    #[inline(always)]
1496    fn deref(&self) -> &Self::Target {
1497        unsafe { &*Self::PTR }
1498    }
1499}
1500impl core::fmt::Debug for USBFS {
1501    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1502        f.debug_struct("USBFS").finish()
1503    }
1504}
1505#[doc = "USB 2.0 Full-Speed Module"]
1506pub mod usbfs;
1507#[doc = "SD Host Interface 0"]
1508pub struct SDHI0 {
1509    _marker: PhantomData<*const ()>,
1510}
1511unsafe impl Send for SDHI0 {}
1512impl SDHI0 {
1513    #[doc = r"Pointer to the register block"]
1514    pub const PTR: *const sdhi0::RegisterBlock = 0x4009_2000 as *const _;
1515    #[doc = r"Return the pointer to the register block"]
1516    #[inline(always)]
1517    pub const fn ptr() -> *const sdhi0::RegisterBlock {
1518        Self::PTR
1519    }
1520}
1521impl Deref for SDHI0 {
1522    type Target = sdhi0::RegisterBlock;
1523    #[inline(always)]
1524    fn deref(&self) -> &Self::Target {
1525        unsafe { &*Self::PTR }
1526    }
1527}
1528impl core::fmt::Debug for SDHI0 {
1529    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1530        f.debug_struct("SDHI0").finish()
1531    }
1532}
1533#[doc = "SD Host Interface 0"]
1534pub mod sdhi0;
1535#[doc = "Serial Sound Interface Enhanced (SSIE)"]
1536pub struct SSIE0 {
1537    _marker: PhantomData<*const ()>,
1538}
1539unsafe impl Send for SSIE0 {}
1540impl SSIE0 {
1541    #[doc = r"Pointer to the register block"]
1542    pub const PTR: *const ssie0::RegisterBlock = 0x4009_d000 as *const _;
1543    #[doc = r"Return the pointer to the register block"]
1544    #[inline(always)]
1545    pub const fn ptr() -> *const ssie0::RegisterBlock {
1546        Self::PTR
1547    }
1548}
1549impl Deref for SSIE0 {
1550    type Target = ssie0::RegisterBlock;
1551    #[inline(always)]
1552    fn deref(&self) -> &Self::Target {
1553        unsafe { &*Self::PTR }
1554    }
1555}
1556impl core::fmt::Debug for SSIE0 {
1557    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1558        f.debug_struct("SSIE0").finish()
1559    }
1560}
1561#[doc = "Serial Sound Interface Enhanced (SSIE)"]
1562pub mod ssie0;
1563#[doc = "Inter-Integrated Circuit 0"]
1564pub struct IIC0 {
1565    _marker: PhantomData<*const ()>,
1566}
1567unsafe impl Send for IIC0 {}
1568impl IIC0 {
1569    #[doc = r"Pointer to the register block"]
1570    pub const PTR: *const iic0::RegisterBlock = 0x4009_f000 as *const _;
1571    #[doc = r"Return the pointer to the register block"]
1572    #[inline(always)]
1573    pub const fn ptr() -> *const iic0::RegisterBlock {
1574        Self::PTR
1575    }
1576}
1577impl Deref for IIC0 {
1578    type Target = iic0::RegisterBlock;
1579    #[inline(always)]
1580    fn deref(&self) -> &Self::Target {
1581        unsafe { &*Self::PTR }
1582    }
1583}
1584impl core::fmt::Debug for IIC0 {
1585    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1586        f.debug_struct("IIC0").finish()
1587    }
1588}
1589#[doc = "Inter-Integrated Circuit 0"]
1590pub mod iic0;
1591#[doc = "Inter-Integrated Circuit 0 Wake-up Unit"]
1592pub struct IIC0WU {
1593    _marker: PhantomData<*const ()>,
1594}
1595unsafe impl Send for IIC0WU {}
1596impl IIC0WU {
1597    #[doc = r"Pointer to the register block"]
1598    pub const PTR: *const iic0wu::RegisterBlock = 0x4009_f014 as *const _;
1599    #[doc = r"Return the pointer to the register block"]
1600    #[inline(always)]
1601    pub const fn ptr() -> *const iic0wu::RegisterBlock {
1602        Self::PTR
1603    }
1604}
1605impl Deref for IIC0WU {
1606    type Target = iic0wu::RegisterBlock;
1607    #[inline(always)]
1608    fn deref(&self) -> &Self::Target {
1609        unsafe { &*Self::PTR }
1610    }
1611}
1612impl core::fmt::Debug for IIC0WU {
1613    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1614        f.debug_struct("IIC0WU").finish()
1615    }
1616}
1617#[doc = "Inter-Integrated Circuit 0 Wake-up Unit"]
1618pub mod iic0wu;
1619#[doc = "Inter-Integrated Circuit 1"]
1620pub struct IIC1 {
1621    _marker: PhantomData<*const ()>,
1622}
1623unsafe impl Send for IIC1 {}
1624impl IIC1 {
1625    #[doc = r"Pointer to the register block"]
1626    pub const PTR: *const iic0::RegisterBlock = 0x4009_f100 as *const _;
1627    #[doc = r"Return the pointer to the register block"]
1628    #[inline(always)]
1629    pub const fn ptr() -> *const iic0::RegisterBlock {
1630        Self::PTR
1631    }
1632}
1633impl Deref for IIC1 {
1634    type Target = iic0::RegisterBlock;
1635    #[inline(always)]
1636    fn deref(&self) -> &Self::Target {
1637        unsafe { &*Self::PTR }
1638    }
1639}
1640impl core::fmt::Debug for IIC1 {
1641    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1642        f.debug_struct("IIC1").finish()
1643    }
1644}
1645#[doc = "Inter-Integrated Circuit 1"]
1646pub use self::iic0 as iic1;
1647#[doc = "Controller Area Network 0"]
1648pub struct CAN0 {
1649    _marker: PhantomData<*const ()>,
1650}
1651unsafe impl Send for CAN0 {}
1652impl CAN0 {
1653    #[doc = r"Pointer to the register block"]
1654    pub const PTR: *const can0::RegisterBlock = 0x400a_8000 as *const _;
1655    #[doc = r"Return the pointer to the register block"]
1656    #[inline(always)]
1657    pub const fn ptr() -> *const can0::RegisterBlock {
1658        Self::PTR
1659    }
1660}
1661impl Deref for CAN0 {
1662    type Target = can0::RegisterBlock;
1663    #[inline(always)]
1664    fn deref(&self) -> &Self::Target {
1665        unsafe { &*Self::PTR }
1666    }
1667}
1668impl core::fmt::Debug for CAN0 {
1669    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1670        f.debug_struct("CAN0").finish()
1671    }
1672}
1673#[doc = "Controller Area Network 0"]
1674pub mod can0;
1675#[doc = "Controller Area Network 1"]
1676pub struct CAN1 {
1677    _marker: PhantomData<*const ()>,
1678}
1679unsafe impl Send for CAN1 {}
1680impl CAN1 {
1681    #[doc = r"Pointer to the register block"]
1682    pub const PTR: *const can0::RegisterBlock = 0x400a_9000 as *const _;
1683    #[doc = r"Return the pointer to the register block"]
1684    #[inline(always)]
1685    pub const fn ptr() -> *const can0::RegisterBlock {
1686        Self::PTR
1687    }
1688}
1689impl Deref for CAN1 {
1690    type Target = can0::RegisterBlock;
1691    #[inline(always)]
1692    fn deref(&self) -> &Self::Target {
1693        unsafe { &*Self::PTR }
1694    }
1695}
1696impl core::fmt::Debug for CAN1 {
1697    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1698        f.debug_struct("CAN1").finish()
1699    }
1700}
1701#[doc = "Controller Area Network 1"]
1702pub use self::can0 as can1;
1703#[doc = "Capacitive Touch Sensing Unit"]
1704pub struct CTSU {
1705    _marker: PhantomData<*const ()>,
1706}
1707unsafe impl Send for CTSU {}
1708impl CTSU {
1709    #[doc = r"Pointer to the register block"]
1710    pub const PTR: *const ctsu::RegisterBlock = 0x400d_0000 as *const _;
1711    #[doc = r"Return the pointer to the register block"]
1712    #[inline(always)]
1713    pub const fn ptr() -> *const ctsu::RegisterBlock {
1714        Self::PTR
1715    }
1716}
1717impl Deref for CTSU {
1718    type Target = ctsu::RegisterBlock;
1719    #[inline(always)]
1720    fn deref(&self) -> &Self::Target {
1721        unsafe { &*Self::PTR }
1722    }
1723}
1724impl core::fmt::Debug for CTSU {
1725    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1726        f.debug_struct("CTSU").finish()
1727    }
1728}
1729#[doc = "Capacitive Touch Sensing Unit"]
1730pub mod ctsu;
1731#[doc = "Peripheral Security Control Unit"]
1732pub struct PSCU {
1733    _marker: PhantomData<*const ()>,
1734}
1735unsafe impl Send for PSCU {}
1736impl PSCU {
1737    #[doc = r"Pointer to the register block"]
1738    pub const PTR: *const pscu::RegisterBlock = 0x400e_0000 as *const _;
1739    #[doc = r"Return the pointer to the register block"]
1740    #[inline(always)]
1741    pub const fn ptr() -> *const pscu::RegisterBlock {
1742        Self::PTR
1743    }
1744}
1745impl Deref for PSCU {
1746    type Target = pscu::RegisterBlock;
1747    #[inline(always)]
1748    fn deref(&self) -> &Self::Target {
1749        unsafe { &*Self::PTR }
1750    }
1751}
1752impl core::fmt::Debug for PSCU {
1753    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1754        f.debug_struct("PSCU").finish()
1755    }
1756}
1757#[doc = "Peripheral Security Control Unit"]
1758pub mod pscu;
1759#[doc = "Low Power Asynchronous General Purpose Timer 0"]
1760pub struct AGT0 {
1761    _marker: PhantomData<*const ()>,
1762}
1763unsafe impl Send for AGT0 {}
1764impl AGT0 {
1765    #[doc = r"Pointer to the register block"]
1766    pub const PTR: *const agt0::RegisterBlock = 0x400e_8000 as *const _;
1767    #[doc = r"Return the pointer to the register block"]
1768    #[inline(always)]
1769    pub const fn ptr() -> *const agt0::RegisterBlock {
1770        Self::PTR
1771    }
1772}
1773impl Deref for AGT0 {
1774    type Target = agt0::RegisterBlock;
1775    #[inline(always)]
1776    fn deref(&self) -> &Self::Target {
1777        unsafe { &*Self::PTR }
1778    }
1779}
1780impl core::fmt::Debug for AGT0 {
1781    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1782        f.debug_struct("AGT0").finish()
1783    }
1784}
1785#[doc = "Low Power Asynchronous General Purpose Timer 0"]
1786pub mod agt0;
1787#[doc = "Low Power Asynchronous General Purpose Timer 1"]
1788pub struct AGT1 {
1789    _marker: PhantomData<*const ()>,
1790}
1791unsafe impl Send for AGT1 {}
1792impl AGT1 {
1793    #[doc = r"Pointer to the register block"]
1794    pub const PTR: *const agt0::RegisterBlock = 0x400e_8100 as *const _;
1795    #[doc = r"Return the pointer to the register block"]
1796    #[inline(always)]
1797    pub const fn ptr() -> *const agt0::RegisterBlock {
1798        Self::PTR
1799    }
1800}
1801impl Deref for AGT1 {
1802    type Target = agt0::RegisterBlock;
1803    #[inline(always)]
1804    fn deref(&self) -> &Self::Target {
1805        unsafe { &*Self::PTR }
1806    }
1807}
1808impl core::fmt::Debug for AGT1 {
1809    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1810        f.debug_struct("AGT1").finish()
1811    }
1812}
1813#[doc = "Low Power Asynchronous General Purpose Timer 1"]
1814pub use self::agt0 as agt1;
1815#[doc = "Low Power Asynchronous General Purpose Timer 2"]
1816pub struct AGT2 {
1817    _marker: PhantomData<*const ()>,
1818}
1819unsafe impl Send for AGT2 {}
1820impl AGT2 {
1821    #[doc = r"Pointer to the register block"]
1822    pub const PTR: *const agt0::RegisterBlock = 0x400e_8200 as *const _;
1823    #[doc = r"Return the pointer to the register block"]
1824    #[inline(always)]
1825    pub const fn ptr() -> *const agt0::RegisterBlock {
1826        Self::PTR
1827    }
1828}
1829impl Deref for AGT2 {
1830    type Target = agt0::RegisterBlock;
1831    #[inline(always)]
1832    fn deref(&self) -> &Self::Target {
1833        unsafe { &*Self::PTR }
1834    }
1835}
1836impl core::fmt::Debug for AGT2 {
1837    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1838        f.debug_struct("AGT2").finish()
1839    }
1840}
1841#[doc = "Low Power Asynchronous General Purpose Timer 2"]
1842pub use self::agt0 as agt2;
1843#[doc = "Low Power Asynchronous General Purpose Timer 3"]
1844pub struct AGT3 {
1845    _marker: PhantomData<*const ()>,
1846}
1847unsafe impl Send for AGT3 {}
1848impl AGT3 {
1849    #[doc = r"Pointer to the register block"]
1850    pub const PTR: *const agt0::RegisterBlock = 0x400e_8300 as *const _;
1851    #[doc = r"Return the pointer to the register block"]
1852    #[inline(always)]
1853    pub const fn ptr() -> *const agt0::RegisterBlock {
1854        Self::PTR
1855    }
1856}
1857impl Deref for AGT3 {
1858    type Target = agt0::RegisterBlock;
1859    #[inline(always)]
1860    fn deref(&self) -> &Self::Target {
1861        unsafe { &*Self::PTR }
1862    }
1863}
1864impl core::fmt::Debug for AGT3 {
1865    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1866        f.debug_struct("AGT3").finish()
1867    }
1868}
1869#[doc = "Low Power Asynchronous General Purpose Timer 3"]
1870pub use self::agt0 as agt3;
1871#[doc = "Low Power Asynchronous General Purpose Timer 4"]
1872pub struct AGT4 {
1873    _marker: PhantomData<*const ()>,
1874}
1875unsafe impl Send for AGT4 {}
1876impl AGT4 {
1877    #[doc = r"Pointer to the register block"]
1878    pub const PTR: *const agt0::RegisterBlock = 0x400e_8400 as *const _;
1879    #[doc = r"Return the pointer to the register block"]
1880    #[inline(always)]
1881    pub const fn ptr() -> *const agt0::RegisterBlock {
1882        Self::PTR
1883    }
1884}
1885impl Deref for AGT4 {
1886    type Target = agt0::RegisterBlock;
1887    #[inline(always)]
1888    fn deref(&self) -> &Self::Target {
1889        unsafe { &*Self::PTR }
1890    }
1891}
1892impl core::fmt::Debug for AGT4 {
1893    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1894        f.debug_struct("AGT4").finish()
1895    }
1896}
1897#[doc = "Low Power Asynchronous General Purpose Timer 4"]
1898pub use self::agt0 as agt4;
1899#[doc = "Low Power Asynchronous General Purpose Timer 5"]
1900pub struct AGT5 {
1901    _marker: PhantomData<*const ()>,
1902}
1903unsafe impl Send for AGT5 {}
1904impl AGT5 {
1905    #[doc = r"Pointer to the register block"]
1906    pub const PTR: *const agt0::RegisterBlock = 0x400e_8500 as *const _;
1907    #[doc = r"Return the pointer to the register block"]
1908    #[inline(always)]
1909    pub const fn ptr() -> *const agt0::RegisterBlock {
1910        Self::PTR
1911    }
1912}
1913impl Deref for AGT5 {
1914    type Target = agt0::RegisterBlock;
1915    #[inline(always)]
1916    fn deref(&self) -> &Self::Target {
1917        unsafe { &*Self::PTR }
1918    }
1919}
1920impl core::fmt::Debug for AGT5 {
1921    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1922        f.debug_struct("AGT5").finish()
1923    }
1924}
1925#[doc = "Low Power Asynchronous General Purpose Timer 5"]
1926pub use self::agt0 as agt5;
1927#[doc = "Temperature Sensor"]
1928pub struct TSN {
1929    _marker: PhantomData<*const ()>,
1930}
1931unsafe impl Send for TSN {}
1932impl TSN {
1933    #[doc = r"Pointer to the register block"]
1934    pub const PTR: *const tsn::RegisterBlock = 0x400f_3000 as *const _;
1935    #[doc = r"Return the pointer to the register block"]
1936    #[inline(always)]
1937    pub const fn ptr() -> *const tsn::RegisterBlock {
1938        Self::PTR
1939    }
1940}
1941impl Deref for TSN {
1942    type Target = tsn::RegisterBlock;
1943    #[inline(always)]
1944    fn deref(&self) -> &Self::Target {
1945        unsafe { &*Self::PTR }
1946    }
1947}
1948impl core::fmt::Debug for TSN {
1949    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1950        f.debug_struct("TSN").finish()
1951    }
1952}
1953#[doc = "Temperature Sensor"]
1954pub mod tsn;
1955#[doc = "Cyclic Redundancy Check Calculator"]
1956pub struct CRC {
1957    _marker: PhantomData<*const ()>,
1958}
1959unsafe impl Send for CRC {}
1960impl CRC {
1961    #[doc = r"Pointer to the register block"]
1962    pub const PTR: *const crc::RegisterBlock = 0x4010_8000 as *const _;
1963    #[doc = r"Return the pointer to the register block"]
1964    #[inline(always)]
1965    pub const fn ptr() -> *const crc::RegisterBlock {
1966        Self::PTR
1967    }
1968}
1969impl Deref for CRC {
1970    type Target = crc::RegisterBlock;
1971    #[inline(always)]
1972    fn deref(&self) -> &Self::Target {
1973        unsafe { &*Self::PTR }
1974    }
1975}
1976impl core::fmt::Debug for CRC {
1977    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1978        f.debug_struct("CRC").finish()
1979    }
1980}
1981#[doc = "Cyclic Redundancy Check Calculator"]
1982pub mod crc;
1983#[doc = "Data Operation Circuit"]
1984pub struct DOC {
1985    _marker: PhantomData<*const ()>,
1986}
1987unsafe impl Send for DOC {}
1988impl DOC {
1989    #[doc = r"Pointer to the register block"]
1990    pub const PTR: *const doc::RegisterBlock = 0x4010_9000 as *const _;
1991    #[doc = r"Return the pointer to the register block"]
1992    #[inline(always)]
1993    pub const fn ptr() -> *const doc::RegisterBlock {
1994        Self::PTR
1995    }
1996}
1997impl Deref for DOC {
1998    type Target = doc::RegisterBlock;
1999    #[inline(always)]
2000    fn deref(&self) -> &Self::Target {
2001        unsafe { &*Self::PTR }
2002    }
2003}
2004impl core::fmt::Debug for DOC {
2005    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2006        f.debug_struct("DOC").finish()
2007    }
2008}
2009#[doc = "Data Operation Circuit"]
2010pub mod doc;
2011#[doc = "Serial Communication Interface"]
2012pub struct SCI0 {
2013    _marker: PhantomData<*const ()>,
2014}
2015unsafe impl Send for SCI0 {}
2016impl SCI0 {
2017    #[doc = r"Pointer to the register block"]
2018    pub const PTR: *const sci0::RegisterBlock = 0x4011_8000 as *const _;
2019    #[doc = r"Return the pointer to the register block"]
2020    #[inline(always)]
2021    pub const fn ptr() -> *const sci0::RegisterBlock {
2022        Self::PTR
2023    }
2024}
2025impl Deref for SCI0 {
2026    type Target = sci0::RegisterBlock;
2027    #[inline(always)]
2028    fn deref(&self) -> &Self::Target {
2029        unsafe { &*Self::PTR }
2030    }
2031}
2032impl core::fmt::Debug for SCI0 {
2033    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2034        f.debug_struct("SCI0").finish()
2035    }
2036}
2037#[doc = "Serial Communication Interface"]
2038pub mod sci0;
2039#[doc = "Serial Communication Interface 0"]
2040pub struct SCI1 {
2041    _marker: PhantomData<*const ()>,
2042}
2043unsafe impl Send for SCI1 {}
2044impl SCI1 {
2045    #[doc = r"Pointer to the register block"]
2046    pub const PTR: *const sci1::RegisterBlock = 0x4011_8100 as *const _;
2047    #[doc = r"Return the pointer to the register block"]
2048    #[inline(always)]
2049    pub const fn ptr() -> *const sci1::RegisterBlock {
2050        Self::PTR
2051    }
2052}
2053impl Deref for SCI1 {
2054    type Target = sci1::RegisterBlock;
2055    #[inline(always)]
2056    fn deref(&self) -> &Self::Target {
2057        unsafe { &*Self::PTR }
2058    }
2059}
2060impl core::fmt::Debug for SCI1 {
2061    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2062        f.debug_struct("SCI1").finish()
2063    }
2064}
2065#[doc = "Serial Communication Interface 0"]
2066pub mod sci1;
2067#[doc = "Serial Communication Interface 0"]
2068pub struct SCI2 {
2069    _marker: PhantomData<*const ()>,
2070}
2071unsafe impl Send for SCI2 {}
2072impl SCI2 {
2073    #[doc = r"Pointer to the register block"]
2074    pub const PTR: *const sci1::RegisterBlock = 0x4011_8200 as *const _;
2075    #[doc = r"Return the pointer to the register block"]
2076    #[inline(always)]
2077    pub const fn ptr() -> *const sci1::RegisterBlock {
2078        Self::PTR
2079    }
2080}
2081impl Deref for SCI2 {
2082    type Target = sci1::RegisterBlock;
2083    #[inline(always)]
2084    fn deref(&self) -> &Self::Target {
2085        unsafe { &*Self::PTR }
2086    }
2087}
2088impl core::fmt::Debug for SCI2 {
2089    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2090        f.debug_struct("SCI2").finish()
2091    }
2092}
2093#[doc = "Serial Communication Interface 0"]
2094pub use self::sci1 as sci2;
2095#[doc = "Serial Communication Interface"]
2096pub struct SCI3 {
2097    _marker: PhantomData<*const ()>,
2098}
2099unsafe impl Send for SCI3 {}
2100impl SCI3 {
2101    #[doc = r"Pointer to the register block"]
2102    pub const PTR: *const sci3::RegisterBlock = 0x4011_8300 as *const _;
2103    #[doc = r"Return the pointer to the register block"]
2104    #[inline(always)]
2105    pub const fn ptr() -> *const sci3::RegisterBlock {
2106        Self::PTR
2107    }
2108}
2109impl Deref for SCI3 {
2110    type Target = sci3::RegisterBlock;
2111    #[inline(always)]
2112    fn deref(&self) -> &Self::Target {
2113        unsafe { &*Self::PTR }
2114    }
2115}
2116impl core::fmt::Debug for SCI3 {
2117    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2118        f.debug_struct("SCI3").finish()
2119    }
2120}
2121#[doc = "Serial Communication Interface"]
2122pub mod sci3;
2123#[doc = "Serial Communication Interface"]
2124pub struct SCI4 {
2125    _marker: PhantomData<*const ()>,
2126}
2127unsafe impl Send for SCI4 {}
2128impl SCI4 {
2129    #[doc = r"Pointer to the register block"]
2130    pub const PTR: *const sci3::RegisterBlock = 0x4011_8400 as *const _;
2131    #[doc = r"Return the pointer to the register block"]
2132    #[inline(always)]
2133    pub const fn ptr() -> *const sci3::RegisterBlock {
2134        Self::PTR
2135    }
2136}
2137impl Deref for SCI4 {
2138    type Target = sci3::RegisterBlock;
2139    #[inline(always)]
2140    fn deref(&self) -> &Self::Target {
2141        unsafe { &*Self::PTR }
2142    }
2143}
2144impl core::fmt::Debug for SCI4 {
2145    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2146        f.debug_struct("SCI4").finish()
2147    }
2148}
2149#[doc = "Serial Communication Interface"]
2150pub use self::sci3 as sci4;
2151#[doc = "Serial Communication Interface"]
2152pub struct SCI9 {
2153    _marker: PhantomData<*const ()>,
2154}
2155unsafe impl Send for SCI9 {}
2156impl SCI9 {
2157    #[doc = r"Pointer to the register block"]
2158    pub const PTR: *const sci0::RegisterBlock = 0x4011_8900 as *const _;
2159    #[doc = r"Return the pointer to the register block"]
2160    #[inline(always)]
2161    pub const fn ptr() -> *const sci0::RegisterBlock {
2162        Self::PTR
2163    }
2164}
2165impl Deref for SCI9 {
2166    type Target = sci0::RegisterBlock;
2167    #[inline(always)]
2168    fn deref(&self) -> &Self::Target {
2169        unsafe { &*Self::PTR }
2170    }
2171}
2172impl core::fmt::Debug for SCI9 {
2173    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2174        f.debug_struct("SCI9").finish()
2175    }
2176}
2177#[doc = "Serial Communication Interface"]
2178pub use self::sci0 as sci9;
2179#[doc = "Serial Peripheral Interface"]
2180pub struct SPI0 {
2181    _marker: PhantomData<*const ()>,
2182}
2183unsafe impl Send for SPI0 {}
2184impl SPI0 {
2185    #[doc = r"Pointer to the register block"]
2186    pub const PTR: *const spi0::RegisterBlock = 0x4011_a000 as *const _;
2187    #[doc = r"Return the pointer to the register block"]
2188    #[inline(always)]
2189    pub const fn ptr() -> *const spi0::RegisterBlock {
2190        Self::PTR
2191    }
2192}
2193impl Deref for SPI0 {
2194    type Target = spi0::RegisterBlock;
2195    #[inline(always)]
2196    fn deref(&self) -> &Self::Target {
2197        unsafe { &*Self::PTR }
2198    }
2199}
2200impl core::fmt::Debug for SPI0 {
2201    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2202        f.debug_struct("SPI0").finish()
2203    }
2204}
2205#[doc = "Serial Peripheral Interface"]
2206pub mod spi0;
2207#[doc = "General PWM 32-bit Timer 0"]
2208pub struct GPT320 {
2209    _marker: PhantomData<*const ()>,
2210}
2211unsafe impl Send for GPT320 {}
2212impl GPT320 {
2213    #[doc = r"Pointer to the register block"]
2214    pub const PTR: *const gpt320::RegisterBlock = 0x4016_9000 as *const _;
2215    #[doc = r"Return the pointer to the register block"]
2216    #[inline(always)]
2217    pub const fn ptr() -> *const gpt320::RegisterBlock {
2218        Self::PTR
2219    }
2220}
2221impl Deref for GPT320 {
2222    type Target = gpt320::RegisterBlock;
2223    #[inline(always)]
2224    fn deref(&self) -> &Self::Target {
2225        unsafe { &*Self::PTR }
2226    }
2227}
2228impl core::fmt::Debug for GPT320 {
2229    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2230        f.debug_struct("GPT320").finish()
2231    }
2232}
2233#[doc = "General PWM 32-bit Timer 0"]
2234pub mod gpt320;
2235#[doc = "General PWM 32-bit Timer 1"]
2236pub struct GPT321 {
2237    _marker: PhantomData<*const ()>,
2238}
2239unsafe impl Send for GPT321 {}
2240impl GPT321 {
2241    #[doc = r"Pointer to the register block"]
2242    pub const PTR: *const gpt320::RegisterBlock = 0x4016_9100 as *const _;
2243    #[doc = r"Return the pointer to the register block"]
2244    #[inline(always)]
2245    pub const fn ptr() -> *const gpt320::RegisterBlock {
2246        Self::PTR
2247    }
2248}
2249impl Deref for GPT321 {
2250    type Target = gpt320::RegisterBlock;
2251    #[inline(always)]
2252    fn deref(&self) -> &Self::Target {
2253        unsafe { &*Self::PTR }
2254    }
2255}
2256impl core::fmt::Debug for GPT321 {
2257    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2258        f.debug_struct("GPT321").finish()
2259    }
2260}
2261#[doc = "General PWM 32-bit Timer 1"]
2262pub use self::gpt320 as gpt321;
2263#[doc = "General PWM 32-bit Timer 2"]
2264pub struct GPT322 {
2265    _marker: PhantomData<*const ()>,
2266}
2267unsafe impl Send for GPT322 {}
2268impl GPT322 {
2269    #[doc = r"Pointer to the register block"]
2270    pub const PTR: *const gpt320::RegisterBlock = 0x4016_9200 as *const _;
2271    #[doc = r"Return the pointer to the register block"]
2272    #[inline(always)]
2273    pub const fn ptr() -> *const gpt320::RegisterBlock {
2274        Self::PTR
2275    }
2276}
2277impl Deref for GPT322 {
2278    type Target = gpt320::RegisterBlock;
2279    #[inline(always)]
2280    fn deref(&self) -> &Self::Target {
2281        unsafe { &*Self::PTR }
2282    }
2283}
2284impl core::fmt::Debug for GPT322 {
2285    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2286        f.debug_struct("GPT322").finish()
2287    }
2288}
2289#[doc = "General PWM 32-bit Timer 2"]
2290pub use self::gpt320 as gpt322;
2291#[doc = "General PWM 32-bit Timer 3"]
2292pub struct GPT323 {
2293    _marker: PhantomData<*const ()>,
2294}
2295unsafe impl Send for GPT323 {}
2296impl GPT323 {
2297    #[doc = r"Pointer to the register block"]
2298    pub const PTR: *const gpt320::RegisterBlock = 0x4016_9300 as *const _;
2299    #[doc = r"Return the pointer to the register block"]
2300    #[inline(always)]
2301    pub const fn ptr() -> *const gpt320::RegisterBlock {
2302        Self::PTR
2303    }
2304}
2305impl Deref for GPT323 {
2306    type Target = gpt320::RegisterBlock;
2307    #[inline(always)]
2308    fn deref(&self) -> &Self::Target {
2309        unsafe { &*Self::PTR }
2310    }
2311}
2312impl core::fmt::Debug for GPT323 {
2313    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2314        f.debug_struct("GPT323").finish()
2315    }
2316}
2317#[doc = "General PWM 32-bit Timer 3"]
2318pub use self::gpt320 as gpt323;
2319#[doc = "General PWM 16-bit Timer 4"]
2320pub struct GPT164 {
2321    _marker: PhantomData<*const ()>,
2322}
2323unsafe impl Send for GPT164 {}
2324impl GPT164 {
2325    #[doc = r"Pointer to the register block"]
2326    pub const PTR: *const gpt164::RegisterBlock = 0x4016_9400 as *const _;
2327    #[doc = r"Return the pointer to the register block"]
2328    #[inline(always)]
2329    pub const fn ptr() -> *const gpt164::RegisterBlock {
2330        Self::PTR
2331    }
2332}
2333impl Deref for GPT164 {
2334    type Target = gpt164::RegisterBlock;
2335    #[inline(always)]
2336    fn deref(&self) -> &Self::Target {
2337        unsafe { &*Self::PTR }
2338    }
2339}
2340impl core::fmt::Debug for GPT164 {
2341    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2342        f.debug_struct("GPT164").finish()
2343    }
2344}
2345#[doc = "General PWM 16-bit Timer 4"]
2346pub mod gpt164;
2347#[doc = "General PWM 16-bit Timer 5"]
2348pub struct GPT165 {
2349    _marker: PhantomData<*const ()>,
2350}
2351unsafe impl Send for GPT165 {}
2352impl GPT165 {
2353    #[doc = r"Pointer to the register block"]
2354    pub const PTR: *const gpt164::RegisterBlock = 0x4016_9500 as *const _;
2355    #[doc = r"Return the pointer to the register block"]
2356    #[inline(always)]
2357    pub const fn ptr() -> *const gpt164::RegisterBlock {
2358        Self::PTR
2359    }
2360}
2361impl Deref for GPT165 {
2362    type Target = gpt164::RegisterBlock;
2363    #[inline(always)]
2364    fn deref(&self) -> &Self::Target {
2365        unsafe { &*Self::PTR }
2366    }
2367}
2368impl core::fmt::Debug for GPT165 {
2369    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2370        f.debug_struct("GPT165").finish()
2371    }
2372}
2373#[doc = "General PWM 16-bit Timer 5"]
2374pub use self::gpt164 as gpt165;
2375#[doc = "General PWM 16-bit Timer 6"]
2376pub struct GPT166 {
2377    _marker: PhantomData<*const ()>,
2378}
2379unsafe impl Send for GPT166 {}
2380impl GPT166 {
2381    #[doc = r"Pointer to the register block"]
2382    pub const PTR: *const gpt164::RegisterBlock = 0x4016_9600 as *const _;
2383    #[doc = r"Return the pointer to the register block"]
2384    #[inline(always)]
2385    pub const fn ptr() -> *const gpt164::RegisterBlock {
2386        Self::PTR
2387    }
2388}
2389impl Deref for GPT166 {
2390    type Target = gpt164::RegisterBlock;
2391    #[inline(always)]
2392    fn deref(&self) -> &Self::Target {
2393        unsafe { &*Self::PTR }
2394    }
2395}
2396impl core::fmt::Debug for GPT166 {
2397    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2398        f.debug_struct("GPT166").finish()
2399    }
2400}
2401#[doc = "General PWM 16-bit Timer 6"]
2402pub use self::gpt164 as gpt166;
2403#[doc = "General PWM 16-bit Timer 7"]
2404pub struct GPT167 {
2405    _marker: PhantomData<*const ()>,
2406}
2407unsafe impl Send for GPT167 {}
2408impl GPT167 {
2409    #[doc = r"Pointer to the register block"]
2410    pub const PTR: *const gpt164::RegisterBlock = 0x4016_9700 as *const _;
2411    #[doc = r"Return the pointer to the register block"]
2412    #[inline(always)]
2413    pub const fn ptr() -> *const gpt164::RegisterBlock {
2414        Self::PTR
2415    }
2416}
2417impl Deref for GPT167 {
2418    type Target = gpt164::RegisterBlock;
2419    #[inline(always)]
2420    fn deref(&self) -> &Self::Target {
2421        unsafe { &*Self::PTR }
2422    }
2423}
2424impl core::fmt::Debug for GPT167 {
2425    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2426        f.debug_struct("GPT167").finish()
2427    }
2428}
2429#[doc = "General PWM 16-bit Timer 7"]
2430pub use self::gpt164 as gpt167;
2431#[doc = "Output Phase Switching Controller"]
2432pub struct GPT_OPS {
2433    _marker: PhantomData<*const ()>,
2434}
2435unsafe impl Send for GPT_OPS {}
2436impl GPT_OPS {
2437    #[doc = r"Pointer to the register block"]
2438    pub const PTR: *const gpt_ops::RegisterBlock = 0x4016_9a00 as *const _;
2439    #[doc = r"Return the pointer to the register block"]
2440    #[inline(always)]
2441    pub const fn ptr() -> *const gpt_ops::RegisterBlock {
2442        Self::PTR
2443    }
2444}
2445impl Deref for GPT_OPS {
2446    type Target = gpt_ops::RegisterBlock;
2447    #[inline(always)]
2448    fn deref(&self) -> &Self::Target {
2449        unsafe { &*Self::PTR }
2450    }
2451}
2452impl core::fmt::Debug for GPT_OPS {
2453    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2454        f.debug_struct("GPT_OPS").finish()
2455    }
2456}
2457#[doc = "Output Phase Switching Controller"]
2458pub mod gpt_ops;
2459#[doc = "12-bit A/D Converter"]
2460pub struct ADC120 {
2461    _marker: PhantomData<*const ()>,
2462}
2463unsafe impl Send for ADC120 {}
2464impl ADC120 {
2465    #[doc = r"Pointer to the register block"]
2466    pub const PTR: *const adc120::RegisterBlock = 0x4017_0000 as *const _;
2467    #[doc = r"Return the pointer to the register block"]
2468    #[inline(always)]
2469    pub const fn ptr() -> *const adc120::RegisterBlock {
2470        Self::PTR
2471    }
2472}
2473impl Deref for ADC120 {
2474    type Target = adc120::RegisterBlock;
2475    #[inline(always)]
2476    fn deref(&self) -> &Self::Target {
2477        unsafe { &*Self::PTR }
2478    }
2479}
2480impl core::fmt::Debug for ADC120 {
2481    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2482        f.debug_struct("ADC120").finish()
2483    }
2484}
2485#[doc = "12-bit A/D Converter"]
2486pub mod adc120;
2487#[doc = "12-bit A/D Converter"]
2488pub struct ADC121 {
2489    _marker: PhantomData<*const ()>,
2490}
2491unsafe impl Send for ADC121 {}
2492impl ADC121 {
2493    #[doc = r"Pointer to the register block"]
2494    pub const PTR: *const adc121::RegisterBlock = 0x4017_0200 as *const _;
2495    #[doc = r"Return the pointer to the register block"]
2496    #[inline(always)]
2497    pub const fn ptr() -> *const adc121::RegisterBlock {
2498        Self::PTR
2499    }
2500}
2501impl Deref for ADC121 {
2502    type Target = adc121::RegisterBlock;
2503    #[inline(always)]
2504    fn deref(&self) -> &Self::Target {
2505        unsafe { &*Self::PTR }
2506    }
2507}
2508impl core::fmt::Debug for ADC121 {
2509    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2510        f.debug_struct("ADC121").finish()
2511    }
2512}
2513#[doc = "12-bit A/D Converter"]
2514pub mod adc121;
2515#[doc = "12-bit D/A converter"]
2516pub struct DAC12 {
2517    _marker: PhantomData<*const ()>,
2518}
2519unsafe impl Send for DAC12 {}
2520impl DAC12 {
2521    #[doc = r"Pointer to the register block"]
2522    pub const PTR: *const dac12::RegisterBlock = 0x4017_1000 as *const _;
2523    #[doc = r"Return the pointer to the register block"]
2524    #[inline(always)]
2525    pub const fn ptr() -> *const dac12::RegisterBlock {
2526        Self::PTR
2527    }
2528}
2529impl Deref for DAC12 {
2530    type Target = dac12::RegisterBlock;
2531    #[inline(always)]
2532    fn deref(&self) -> &Self::Target {
2533        unsafe { &*Self::PTR }
2534    }
2535}
2536impl core::fmt::Debug for DAC12 {
2537    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2538        f.debug_struct("DAC12").finish()
2539    }
2540}
2541#[doc = "12-bit D/A converter"]
2542pub mod dac12;
2543#[doc = "Temperature Sensor Calibration Data"]
2544pub struct TSD {
2545    _marker: PhantomData<*const ()>,
2546}
2547unsafe impl Send for TSD {}
2548impl TSD {
2549    #[doc = r"Pointer to the register block"]
2550    pub const PTR: *const tsd::RegisterBlock = 0x407f_b000 as *const _;
2551    #[doc = r"Return the pointer to the register block"]
2552    #[inline(always)]
2553    pub const fn ptr() -> *const tsd::RegisterBlock {
2554        Self::PTR
2555    }
2556}
2557impl Deref for TSD {
2558    type Target = tsd::RegisterBlock;
2559    #[inline(always)]
2560    fn deref(&self) -> &Self::Target {
2561        unsafe { &*Self::PTR }
2562    }
2563}
2564impl core::fmt::Debug for TSD {
2565    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2566        f.debug_struct("TSD").finish()
2567    }
2568}
2569#[doc = "Temperature Sensor Calibration Data"]
2570pub mod tsd;
2571#[doc = "Data Flash"]
2572pub struct FLAD {
2573    _marker: PhantomData<*const ()>,
2574}
2575unsafe impl Send for FLAD {}
2576impl FLAD {
2577    #[doc = r"Pointer to the register block"]
2578    pub const PTR: *const flad::RegisterBlock = 0x407f_c000 as *const _;
2579    #[doc = r"Return the pointer to the register block"]
2580    #[inline(always)]
2581    pub const fn ptr() -> *const flad::RegisterBlock {
2582        Self::PTR
2583    }
2584}
2585impl Deref for FLAD {
2586    type Target = flad::RegisterBlock;
2587    #[inline(always)]
2588    fn deref(&self) -> &Self::Target {
2589        unsafe { &*Self::PTR }
2590    }
2591}
2592impl core::fmt::Debug for FLAD {
2593    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2594        f.debug_struct("FLAD").finish()
2595    }
2596}
2597#[doc = "Data Flash"]
2598pub mod flad;
2599#[doc = "Flash/CPU Interface"]
2600pub struct FACI {
2601    _marker: PhantomData<*const ()>,
2602}
2603unsafe impl Send for FACI {}
2604impl FACI {
2605    #[doc = r"Pointer to the register block"]
2606    pub const PTR: *const faci::RegisterBlock = 0x407f_e000 as *const _;
2607    #[doc = r"Return the pointer to the register block"]
2608    #[inline(always)]
2609    pub const fn ptr() -> *const faci::RegisterBlock {
2610        Self::PTR
2611    }
2612}
2613impl Deref for FACI {
2614    type Target = faci::RegisterBlock;
2615    #[inline(always)]
2616    fn deref(&self) -> &Self::Target {
2617        unsafe { &*Self::PTR }
2618    }
2619}
2620impl core::fmt::Debug for FACI {
2621    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2622        f.debug_struct("FACI").finish()
2623    }
2624}
2625#[doc = "Flash/CPU Interface"]
2626pub mod faci;
2627#[doc = "Quad Serial Peripheral Interface"]
2628pub struct QSPI {
2629    _marker: PhantomData<*const ()>,
2630}
2631unsafe impl Send for QSPI {}
2632impl QSPI {
2633    #[doc = r"Pointer to the register block"]
2634    pub const PTR: *const qspi::RegisterBlock = 0x6400_0000 as *const _;
2635    #[doc = r"Return the pointer to the register block"]
2636    #[inline(always)]
2637    pub const fn ptr() -> *const qspi::RegisterBlock {
2638        Self::PTR
2639    }
2640}
2641impl Deref for QSPI {
2642    type Target = qspi::RegisterBlock;
2643    #[inline(always)]
2644    fn deref(&self) -> &Self::Target {
2645        unsafe { &*Self::PTR }
2646    }
2647}
2648impl core::fmt::Debug for QSPI {
2649    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2650        f.debug_struct("QSPI").finish()
2651    }
2652}
2653#[doc = "Quad Serial Peripheral Interface"]
2654pub mod qspi;
2655#[no_mangle]
2656static mut DEVICE_PERIPHERALS: bool = false;
2657#[doc = r" All the peripherals."]
2658#[allow(non_snake_case)]
2659pub struct Peripherals {
2660    #[doc = "RMPU"]
2661    pub RMPU: RMPU,
2662    #[doc = "TZF"]
2663    pub TZF: TZF,
2664    #[doc = "SRAM"]
2665    pub SRAM: SRAM,
2666    #[doc = "BUS"]
2667    pub BUS: BUS,
2668    #[doc = "DMAC0"]
2669    pub DMAC0: DMAC0,
2670    #[doc = "DMAC1"]
2671    pub DMAC1: DMAC1,
2672    #[doc = "DMAC2"]
2673    pub DMAC2: DMAC2,
2674    #[doc = "DMAC3"]
2675    pub DMAC3: DMAC3,
2676    #[doc = "DMAC4"]
2677    pub DMAC4: DMAC4,
2678    #[doc = "DMAC5"]
2679    pub DMAC5: DMAC5,
2680    #[doc = "DMAC6"]
2681    pub DMAC6: DMAC6,
2682    #[doc = "DMAC7"]
2683    pub DMAC7: DMAC7,
2684    #[doc = "DMA"]
2685    pub DMA: DMA,
2686    #[doc = "DTC"]
2687    pub DTC: DTC,
2688    #[doc = "ICU"]
2689    pub ICU: ICU,
2690    #[doc = "CACHE"]
2691    pub CACHE: CACHE,
2692    #[doc = "CPSCU"]
2693    pub CPSCU: CPSCU,
2694    #[doc = "DBG"]
2695    pub DBG: DBG,
2696    #[doc = "FCACHE"]
2697    pub FCACHE: FCACHE,
2698    #[doc = "SYSC"]
2699    pub SYSC: SYSC,
2700    #[doc = "PORT0"]
2701    pub PORT0: PORT0,
2702    #[doc = "PORT1"]
2703    pub PORT1: PORT1,
2704    #[doc = "PORT2"]
2705    pub PORT2: PORT2,
2706    #[doc = "PORT3"]
2707    pub PORT3: PORT3,
2708    #[doc = "PORT4"]
2709    pub PORT4: PORT4,
2710    #[doc = "PORT5"]
2711    pub PORT5: PORT5,
2712    #[doc = "PORT6"]
2713    pub PORT6: PORT6,
2714    #[doc = "PORT7"]
2715    pub PORT7: PORT7,
2716    #[doc = "PORT8"]
2717    pub PORT8: PORT8,
2718    #[doc = "PFS"]
2719    pub PFS: PFS,
2720    #[doc = "ELC"]
2721    pub ELC: ELC,
2722    #[doc = "RTC"]
2723    pub RTC: RTC,
2724    #[doc = "IWDT"]
2725    pub IWDT: IWDT,
2726    #[doc = "WDT"]
2727    pub WDT: WDT,
2728    #[doc = "CAC"]
2729    pub CAC: CAC,
2730    #[doc = "MSTP"]
2731    pub MSTP: MSTP,
2732    #[doc = "POEG"]
2733    pub POEG: POEG,
2734    #[doc = "USBFS"]
2735    pub USBFS: USBFS,
2736    #[doc = "SDHI0"]
2737    pub SDHI0: SDHI0,
2738    #[doc = "SSIE0"]
2739    pub SSIE0: SSIE0,
2740    #[doc = "IIC0"]
2741    pub IIC0: IIC0,
2742    #[doc = "IIC0WU"]
2743    pub IIC0WU: IIC0WU,
2744    #[doc = "IIC1"]
2745    pub IIC1: IIC1,
2746    #[doc = "CAN0"]
2747    pub CAN0: CAN0,
2748    #[doc = "CAN1"]
2749    pub CAN1: CAN1,
2750    #[doc = "CTSU"]
2751    pub CTSU: CTSU,
2752    #[doc = "PSCU"]
2753    pub PSCU: PSCU,
2754    #[doc = "AGT0"]
2755    pub AGT0: AGT0,
2756    #[doc = "AGT1"]
2757    pub AGT1: AGT1,
2758    #[doc = "AGT2"]
2759    pub AGT2: AGT2,
2760    #[doc = "AGT3"]
2761    pub AGT3: AGT3,
2762    #[doc = "AGT4"]
2763    pub AGT4: AGT4,
2764    #[doc = "AGT5"]
2765    pub AGT5: AGT5,
2766    #[doc = "TSN"]
2767    pub TSN: TSN,
2768    #[doc = "CRC"]
2769    pub CRC: CRC,
2770    #[doc = "DOC"]
2771    pub DOC: DOC,
2772    #[doc = "SCI0"]
2773    pub SCI0: SCI0,
2774    #[doc = "SCI1"]
2775    pub SCI1: SCI1,
2776    #[doc = "SCI2"]
2777    pub SCI2: SCI2,
2778    #[doc = "SCI3"]
2779    pub SCI3: SCI3,
2780    #[doc = "SCI4"]
2781    pub SCI4: SCI4,
2782    #[doc = "SCI9"]
2783    pub SCI9: SCI9,
2784    #[doc = "SPI0"]
2785    pub SPI0: SPI0,
2786    #[doc = "GPT320"]
2787    pub GPT320: GPT320,
2788    #[doc = "GPT321"]
2789    pub GPT321: GPT321,
2790    #[doc = "GPT322"]
2791    pub GPT322: GPT322,
2792    #[doc = "GPT323"]
2793    pub GPT323: GPT323,
2794    #[doc = "GPT164"]
2795    pub GPT164: GPT164,
2796    #[doc = "GPT165"]
2797    pub GPT165: GPT165,
2798    #[doc = "GPT166"]
2799    pub GPT166: GPT166,
2800    #[doc = "GPT167"]
2801    pub GPT167: GPT167,
2802    #[doc = "GPT_OPS"]
2803    pub GPT_OPS: GPT_OPS,
2804    #[doc = "ADC120"]
2805    pub ADC120: ADC120,
2806    #[doc = "ADC121"]
2807    pub ADC121: ADC121,
2808    #[doc = "DAC12"]
2809    pub DAC12: DAC12,
2810    #[doc = "TSD"]
2811    pub TSD: TSD,
2812    #[doc = "FLAD"]
2813    pub FLAD: FLAD,
2814    #[doc = "FACI"]
2815    pub FACI: FACI,
2816    #[doc = "QSPI"]
2817    pub QSPI: QSPI,
2818}
2819impl Peripherals {
2820    #[doc = r" Returns all the peripherals *once*."]
2821    #[cfg(feature = "critical-section")]
2822    #[inline]
2823    pub fn take() -> Option<Self> {
2824        critical_section::with(|_| {
2825            if unsafe { DEVICE_PERIPHERALS } {
2826                return None;
2827            }
2828            Some(unsafe { Peripherals::steal() })
2829        })
2830    }
2831    #[doc = r" Unchecked version of `Peripherals::take`."]
2832    #[doc = r""]
2833    #[doc = r" # Safety"]
2834    #[doc = r""]
2835    #[doc = r" Each of the returned peripherals must be used at most once."]
2836    #[inline]
2837    pub unsafe fn steal() -> Self {
2838        DEVICE_PERIPHERALS = true;
2839        Peripherals {
2840            RMPU: RMPU {
2841                _marker: PhantomData,
2842            },
2843            TZF: TZF {
2844                _marker: PhantomData,
2845            },
2846            SRAM: SRAM {
2847                _marker: PhantomData,
2848            },
2849            BUS: BUS {
2850                _marker: PhantomData,
2851            },
2852            DMAC0: DMAC0 {
2853                _marker: PhantomData,
2854            },
2855            DMAC1: DMAC1 {
2856                _marker: PhantomData,
2857            },
2858            DMAC2: DMAC2 {
2859                _marker: PhantomData,
2860            },
2861            DMAC3: DMAC3 {
2862                _marker: PhantomData,
2863            },
2864            DMAC4: DMAC4 {
2865                _marker: PhantomData,
2866            },
2867            DMAC5: DMAC5 {
2868                _marker: PhantomData,
2869            },
2870            DMAC6: DMAC6 {
2871                _marker: PhantomData,
2872            },
2873            DMAC7: DMAC7 {
2874                _marker: PhantomData,
2875            },
2876            DMA: DMA {
2877                _marker: PhantomData,
2878            },
2879            DTC: DTC {
2880                _marker: PhantomData,
2881            },
2882            ICU: ICU {
2883                _marker: PhantomData,
2884            },
2885            CACHE: CACHE {
2886                _marker: PhantomData,
2887            },
2888            CPSCU: CPSCU {
2889                _marker: PhantomData,
2890            },
2891            DBG: DBG {
2892                _marker: PhantomData,
2893            },
2894            FCACHE: FCACHE {
2895                _marker: PhantomData,
2896            },
2897            SYSC: SYSC {
2898                _marker: PhantomData,
2899            },
2900            PORT0: PORT0 {
2901                _marker: PhantomData,
2902            },
2903            PORT1: PORT1 {
2904                _marker: PhantomData,
2905            },
2906            PORT2: PORT2 {
2907                _marker: PhantomData,
2908            },
2909            PORT3: PORT3 {
2910                _marker: PhantomData,
2911            },
2912            PORT4: PORT4 {
2913                _marker: PhantomData,
2914            },
2915            PORT5: PORT5 {
2916                _marker: PhantomData,
2917            },
2918            PORT6: PORT6 {
2919                _marker: PhantomData,
2920            },
2921            PORT7: PORT7 {
2922                _marker: PhantomData,
2923            },
2924            PORT8: PORT8 {
2925                _marker: PhantomData,
2926            },
2927            PFS: PFS {
2928                _marker: PhantomData,
2929            },
2930            ELC: ELC {
2931                _marker: PhantomData,
2932            },
2933            RTC: RTC {
2934                _marker: PhantomData,
2935            },
2936            IWDT: IWDT {
2937                _marker: PhantomData,
2938            },
2939            WDT: WDT {
2940                _marker: PhantomData,
2941            },
2942            CAC: CAC {
2943                _marker: PhantomData,
2944            },
2945            MSTP: MSTP {
2946                _marker: PhantomData,
2947            },
2948            POEG: POEG {
2949                _marker: PhantomData,
2950            },
2951            USBFS: USBFS {
2952                _marker: PhantomData,
2953            },
2954            SDHI0: SDHI0 {
2955                _marker: PhantomData,
2956            },
2957            SSIE0: SSIE0 {
2958                _marker: PhantomData,
2959            },
2960            IIC0: IIC0 {
2961                _marker: PhantomData,
2962            },
2963            IIC0WU: IIC0WU {
2964                _marker: PhantomData,
2965            },
2966            IIC1: IIC1 {
2967                _marker: PhantomData,
2968            },
2969            CAN0: CAN0 {
2970                _marker: PhantomData,
2971            },
2972            CAN1: CAN1 {
2973                _marker: PhantomData,
2974            },
2975            CTSU: CTSU {
2976                _marker: PhantomData,
2977            },
2978            PSCU: PSCU {
2979                _marker: PhantomData,
2980            },
2981            AGT0: AGT0 {
2982                _marker: PhantomData,
2983            },
2984            AGT1: AGT1 {
2985                _marker: PhantomData,
2986            },
2987            AGT2: AGT2 {
2988                _marker: PhantomData,
2989            },
2990            AGT3: AGT3 {
2991                _marker: PhantomData,
2992            },
2993            AGT4: AGT4 {
2994                _marker: PhantomData,
2995            },
2996            AGT5: AGT5 {
2997                _marker: PhantomData,
2998            },
2999            TSN: TSN {
3000                _marker: PhantomData,
3001            },
3002            CRC: CRC {
3003                _marker: PhantomData,
3004            },
3005            DOC: DOC {
3006                _marker: PhantomData,
3007            },
3008            SCI0: SCI0 {
3009                _marker: PhantomData,
3010            },
3011            SCI1: SCI1 {
3012                _marker: PhantomData,
3013            },
3014            SCI2: SCI2 {
3015                _marker: PhantomData,
3016            },
3017            SCI3: SCI3 {
3018                _marker: PhantomData,
3019            },
3020            SCI4: SCI4 {
3021                _marker: PhantomData,
3022            },
3023            SCI9: SCI9 {
3024                _marker: PhantomData,
3025            },
3026            SPI0: SPI0 {
3027                _marker: PhantomData,
3028            },
3029            GPT320: GPT320 {
3030                _marker: PhantomData,
3031            },
3032            GPT321: GPT321 {
3033                _marker: PhantomData,
3034            },
3035            GPT322: GPT322 {
3036                _marker: PhantomData,
3037            },
3038            GPT323: GPT323 {
3039                _marker: PhantomData,
3040            },
3041            GPT164: GPT164 {
3042                _marker: PhantomData,
3043            },
3044            GPT165: GPT165 {
3045                _marker: PhantomData,
3046            },
3047            GPT166: GPT166 {
3048                _marker: PhantomData,
3049            },
3050            GPT167: GPT167 {
3051                _marker: PhantomData,
3052            },
3053            GPT_OPS: GPT_OPS {
3054                _marker: PhantomData,
3055            },
3056            ADC120: ADC120 {
3057                _marker: PhantomData,
3058            },
3059            ADC121: ADC121 {
3060                _marker: PhantomData,
3061            },
3062            DAC12: DAC12 {
3063                _marker: PhantomData,
3064            },
3065            TSD: TSD {
3066                _marker: PhantomData,
3067            },
3068            FLAD: FLAD {
3069                _marker: PhantomData,
3070            },
3071            FACI: FACI {
3072                _marker: PhantomData,
3073            },
3074            QSPI: QSPI {
3075                _marker: PhantomData,
3076            },
3077        }
3078    }
3079}