ra6t1/
lib.rs

1#![doc = "Peripheral access API for R7FA6T1AD 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 = "12-bit D/A converter"]
444pub struct DAC12 {
445    _marker: PhantomData<*const ()>,
446}
447unsafe impl Send for DAC12 {}
448impl DAC12 {
449    #[doc = r"Pointer to the register block"]
450    pub const PTR: *const dac12::RegisterBlock = 0x4005_e000 as *const _;
451    #[doc = r"Return the pointer to the register block"]
452    #[inline(always)]
453    pub const fn ptr() -> *const dac12::RegisterBlock {
454        Self::PTR
455    }
456}
457impl Deref for DAC12 {
458    type Target = dac12::RegisterBlock;
459    #[inline(always)]
460    fn deref(&self) -> &Self::Target {
461        unsafe { &*Self::PTR }
462    }
463}
464impl core::fmt::Debug for DAC12 {
465    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
466        f.debug_struct("DAC12").finish()
467    }
468}
469#[doc = "12-bit D/A converter"]
470pub mod dac12;
471#[doc = "High-Speed Analog Comparator 0"]
472pub struct ACMPHS0 {
473    _marker: PhantomData<*const ()>,
474}
475unsafe impl Send for ACMPHS0 {}
476impl ACMPHS0 {
477    #[doc = r"Pointer to the register block"]
478    pub const PTR: *const acmphs0::RegisterBlock = 0x4008_5000 as *const _;
479    #[doc = r"Return the pointer to the register block"]
480    #[inline(always)]
481    pub const fn ptr() -> *const acmphs0::RegisterBlock {
482        Self::PTR
483    }
484}
485impl Deref for ACMPHS0 {
486    type Target = acmphs0::RegisterBlock;
487    #[inline(always)]
488    fn deref(&self) -> &Self::Target {
489        unsafe { &*Self::PTR }
490    }
491}
492impl core::fmt::Debug for ACMPHS0 {
493    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
494        f.debug_struct("ACMPHS0").finish()
495    }
496}
497#[doc = "High-Speed Analog Comparator 0"]
498pub mod acmphs0;
499#[doc = "High-Speed Analog Comparator 1"]
500pub struct ACMPHS1 {
501    _marker: PhantomData<*const ()>,
502}
503unsafe impl Send for ACMPHS1 {}
504impl ACMPHS1 {
505    #[doc = r"Pointer to the register block"]
506    pub const PTR: *const acmphs1::RegisterBlock = 0x4008_5100 as *const _;
507    #[doc = r"Return the pointer to the register block"]
508    #[inline(always)]
509    pub const fn ptr() -> *const acmphs1::RegisterBlock {
510        Self::PTR
511    }
512}
513impl Deref for ACMPHS1 {
514    type Target = acmphs1::RegisterBlock;
515    #[inline(always)]
516    fn deref(&self) -> &Self::Target {
517        unsafe { &*Self::PTR }
518    }
519}
520impl core::fmt::Debug for ACMPHS1 {
521    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
522        f.debug_struct("ACMPHS1").finish()
523    }
524}
525#[doc = "High-Speed Analog Comparator 1"]
526pub mod acmphs1;
527#[doc = "High-Speed Analog Comparator 2"]
528pub struct ACMPHS2 {
529    _marker: PhantomData<*const ()>,
530}
531unsafe impl Send for ACMPHS2 {}
532impl ACMPHS2 {
533    #[doc = r"Pointer to the register block"]
534    pub const PTR: *const acmphs1::RegisterBlock = 0x4008_5200 as *const _;
535    #[doc = r"Return the pointer to the register block"]
536    #[inline(always)]
537    pub const fn ptr() -> *const acmphs1::RegisterBlock {
538        Self::PTR
539    }
540}
541impl Deref for ACMPHS2 {
542    type Target = acmphs1::RegisterBlock;
543    #[inline(always)]
544    fn deref(&self) -> &Self::Target {
545        unsafe { &*Self::PTR }
546    }
547}
548impl core::fmt::Debug for ACMPHS2 {
549    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
550        f.debug_struct("ACMPHS2").finish()
551    }
552}
553#[doc = "High-Speed Analog Comparator 2"]
554pub use self::acmphs1 as acmphs2;
555#[doc = "High-Speed Analog Comparator 3"]
556pub struct ACMPHS3 {
557    _marker: PhantomData<*const ()>,
558}
559unsafe impl Send for ACMPHS3 {}
560impl ACMPHS3 {
561    #[doc = r"Pointer to the register block"]
562    pub const PTR: *const acmphs1::RegisterBlock = 0x4008_5300 as *const _;
563    #[doc = r"Return the pointer to the register block"]
564    #[inline(always)]
565    pub const fn ptr() -> *const acmphs1::RegisterBlock {
566        Self::PTR
567    }
568}
569impl Deref for ACMPHS3 {
570    type Target = acmphs1::RegisterBlock;
571    #[inline(always)]
572    fn deref(&self) -> &Self::Target {
573        unsafe { &*Self::PTR }
574    }
575}
576impl core::fmt::Debug for ACMPHS3 {
577    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
578        f.debug_struct("ACMPHS3").finish()
579    }
580}
581#[doc = "High-Speed Analog Comparator 3"]
582pub use self::acmphs1 as acmphs3;
583#[doc = "High-Speed Analog Comparator 4"]
584pub struct ACMPHS4 {
585    _marker: PhantomData<*const ()>,
586}
587unsafe impl Send for ACMPHS4 {}
588impl ACMPHS4 {
589    #[doc = r"Pointer to the register block"]
590    pub const PTR: *const acmphs1::RegisterBlock = 0x4008_5400 as *const _;
591    #[doc = r"Return the pointer to the register block"]
592    #[inline(always)]
593    pub const fn ptr() -> *const acmphs1::RegisterBlock {
594        Self::PTR
595    }
596}
597impl Deref for ACMPHS4 {
598    type Target = acmphs1::RegisterBlock;
599    #[inline(always)]
600    fn deref(&self) -> &Self::Target {
601        unsafe { &*Self::PTR }
602    }
603}
604impl core::fmt::Debug for ACMPHS4 {
605    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
606        f.debug_struct("ACMPHS4").finish()
607    }
608}
609#[doc = "High-Speed Analog Comparator 4"]
610pub use self::acmphs1 as acmphs4;
611#[doc = "High-Speed Analog Comparator 5"]
612pub struct ACMPHS5 {
613    _marker: PhantomData<*const ()>,
614}
615unsafe impl Send for ACMPHS5 {}
616impl ACMPHS5 {
617    #[doc = r"Pointer to the register block"]
618    pub const PTR: *const acmphs1::RegisterBlock = 0x4008_5500 as *const _;
619    #[doc = r"Return the pointer to the register block"]
620    #[inline(always)]
621    pub const fn ptr() -> *const acmphs1::RegisterBlock {
622        Self::PTR
623    }
624}
625impl Deref for ACMPHS5 {
626    type Target = acmphs1::RegisterBlock;
627    #[inline(always)]
628    fn deref(&self) -> &Self::Target {
629        unsafe { &*Self::PTR }
630    }
631}
632impl core::fmt::Debug for ACMPHS5 {
633    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
634        f.debug_struct("ACMPHS5").finish()
635    }
636}
637#[doc = "High-Speed Analog Comparator 5"]
638pub use self::acmphs1 as acmphs5;
639#[doc = "Temperature Sensor"]
640pub struct TSN {
641    _marker: PhantomData<*const ()>,
642}
643unsafe impl Send for TSN {}
644impl TSN {
645    #[doc = r"Pointer to the register block"]
646    pub const PTR: *const tsn::RegisterBlock = 0x4005_d000 as *const _;
647    #[doc = r"Return the pointer to the register block"]
648    #[inline(always)]
649    pub const fn ptr() -> *const tsn::RegisterBlock {
650        Self::PTR
651    }
652}
653impl Deref for TSN {
654    type Target = tsn::RegisterBlock;
655    #[inline(always)]
656    fn deref(&self) -> &Self::Target {
657        unsafe { &*Self::PTR }
658    }
659}
660impl core::fmt::Debug for TSN {
661    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
662        f.debug_struct("TSN").finish()
663    }
664}
665#[doc = "Temperature Sensor"]
666pub mod tsn;
667#[doc = "CRC Calculator"]
668pub struct CRC {
669    _marker: PhantomData<*const ()>,
670}
671unsafe impl Send for CRC {}
672impl CRC {
673    #[doc = r"Pointer to the register block"]
674    pub const PTR: *const crc::RegisterBlock = 0x4007_4000 as *const _;
675    #[doc = r"Return the pointer to the register block"]
676    #[inline(always)]
677    pub const fn ptr() -> *const crc::RegisterBlock {
678        Self::PTR
679    }
680}
681impl Deref for CRC {
682    type Target = crc::RegisterBlock;
683    #[inline(always)]
684    fn deref(&self) -> &Self::Target {
685        unsafe { &*Self::PTR }
686    }
687}
688impl core::fmt::Debug for CRC {
689    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
690        f.debug_struct("CRC").finish()
691    }
692}
693#[doc = "CRC Calculator"]
694pub mod crc;
695#[doc = "Event Link Controller"]
696pub struct ELC {
697    _marker: PhantomData<*const ()>,
698}
699unsafe impl Send for ELC {}
700impl ELC {
701    #[doc = r"Pointer to the register block"]
702    pub const PTR: *const elc::RegisterBlock = 0x4004_1000 as *const _;
703    #[doc = r"Return the pointer to the register block"]
704    #[inline(always)]
705    pub const fn ptr() -> *const elc::RegisterBlock {
706        Self::PTR
707    }
708}
709impl Deref for ELC {
710    type Target = elc::RegisterBlock;
711    #[inline(always)]
712    fn deref(&self) -> &Self::Target {
713        unsafe { &*Self::PTR }
714    }
715}
716impl core::fmt::Debug for ELC {
717    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
718        f.debug_struct("ELC").finish()
719    }
720}
721#[doc = "Event Link Controller"]
722pub mod elc;
723#[doc = "Clock Frequency Accuracy Measurement Circuit"]
724pub struct CAC {
725    _marker: PhantomData<*const ()>,
726}
727unsafe impl Send for CAC {}
728impl CAC {
729    #[doc = r"Pointer to the register block"]
730    pub const PTR: *const cac::RegisterBlock = 0x4004_4600 as *const _;
731    #[doc = r"Return the pointer to the register block"]
732    #[inline(always)]
733    pub const fn ptr() -> *const cac::RegisterBlock {
734        Self::PTR
735    }
736}
737impl Deref for CAC {
738    type Target = cac::RegisterBlock;
739    #[inline(always)]
740    fn deref(&self) -> &Self::Target {
741        unsafe { &*Self::PTR }
742    }
743}
744impl core::fmt::Debug for CAC {
745    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
746        f.debug_struct("CAC").finish()
747    }
748}
749#[doc = "Clock Frequency Accuracy Measurement Circuit"]
750pub mod cac;
751#[doc = "Data Operation Circuit"]
752pub struct DOC {
753    _marker: PhantomData<*const ()>,
754}
755unsafe impl Send for DOC {}
756impl DOC {
757    #[doc = r"Pointer to the register block"]
758    pub const PTR: *const doc::RegisterBlock = 0x4005_4100 as *const _;
759    #[doc = r"Return the pointer to the register block"]
760    #[inline(always)]
761    pub const fn ptr() -> *const doc::RegisterBlock {
762        Self::PTR
763    }
764}
765impl Deref for DOC {
766    type Target = doc::RegisterBlock;
767    #[inline(always)]
768    fn deref(&self) -> &Self::Target {
769        unsafe { &*Self::PTR }
770    }
771}
772impl core::fmt::Debug for DOC {
773    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
774        f.debug_struct("DOC").finish()
775    }
776}
777#[doc = "Data Operation Circuit"]
778pub mod doc;
779#[doc = "Independent Watchdog Timer"]
780pub struct IWDT {
781    _marker: PhantomData<*const ()>,
782}
783unsafe impl Send for IWDT {}
784impl IWDT {
785    #[doc = r"Pointer to the register block"]
786    pub const PTR: *const iwdt::RegisterBlock = 0x4004_4400 as *const _;
787    #[doc = r"Return the pointer to the register block"]
788    #[inline(always)]
789    pub const fn ptr() -> *const iwdt::RegisterBlock {
790        Self::PTR
791    }
792}
793impl Deref for IWDT {
794    type Target = iwdt::RegisterBlock;
795    #[inline(always)]
796    fn deref(&self) -> &Self::Target {
797        unsafe { &*Self::PTR }
798    }
799}
800impl core::fmt::Debug for IWDT {
801    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
802        f.debug_struct("IWDT").finish()
803    }
804}
805#[doc = "Independent Watchdog Timer"]
806pub mod iwdt;
807#[doc = "Key Interrupt Function"]
808pub struct KINT {
809    _marker: PhantomData<*const ()>,
810}
811unsafe impl Send for KINT {}
812impl KINT {
813    #[doc = r"Pointer to the register block"]
814    pub const PTR: *const kint::RegisterBlock = 0x4008_0000 as *const _;
815    #[doc = r"Return the pointer to the register block"]
816    #[inline(always)]
817    pub const fn ptr() -> *const kint::RegisterBlock {
818        Self::PTR
819    }
820}
821impl Deref for KINT {
822    type Target = kint::RegisterBlock;
823    #[inline(always)]
824    fn deref(&self) -> &Self::Target {
825        unsafe { &*Self::PTR }
826    }
827}
828impl core::fmt::Debug for KINT {
829    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
830        f.debug_struct("KINT").finish()
831    }
832}
833#[doc = "Key Interrupt Function"]
834pub mod kint;
835#[doc = "Watchdog Timer"]
836pub struct WDT {
837    _marker: PhantomData<*const ()>,
838}
839unsafe impl Send for WDT {}
840impl WDT {
841    #[doc = r"Pointer to the register block"]
842    pub const PTR: *const wdt::RegisterBlock = 0x4004_4200 as *const _;
843    #[doc = r"Return the pointer to the register block"]
844    #[inline(always)]
845    pub const fn ptr() -> *const wdt::RegisterBlock {
846        Self::PTR
847    }
848}
849impl Deref for WDT {
850    type Target = wdt::RegisterBlock;
851    #[inline(always)]
852    fn deref(&self) -> &Self::Target {
853        unsafe { &*Self::PTR }
854    }
855}
856impl core::fmt::Debug for WDT {
857    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
858        f.debug_struct("WDT").finish()
859    }
860}
861#[doc = "Watchdog Timer"]
862pub mod wdt;
863#[doc = "CAN0 Module"]
864pub struct CAN0 {
865    _marker: PhantomData<*const ()>,
866}
867unsafe impl Send for CAN0 {}
868impl CAN0 {
869    #[doc = r"Pointer to the register block"]
870    pub const PTR: *const can0::RegisterBlock = 0x4005_0000 as *const _;
871    #[doc = r"Return the pointer to the register block"]
872    #[inline(always)]
873    pub const fn ptr() -> *const can0::RegisterBlock {
874        Self::PTR
875    }
876}
877impl Deref for CAN0 {
878    type Target = can0::RegisterBlock;
879    #[inline(always)]
880    fn deref(&self) -> &Self::Target {
881        unsafe { &*Self::PTR }
882    }
883}
884impl core::fmt::Debug for CAN0 {
885    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
886        f.debug_struct("CAN0").finish()
887    }
888}
889#[doc = "CAN0 Module"]
890pub mod can0;
891#[doc = "CAN1 Module"]
892pub struct CAN1 {
893    _marker: PhantomData<*const ()>,
894}
895unsafe impl Send for CAN1 {}
896impl CAN1 {
897    #[doc = r"Pointer to the register block"]
898    pub const PTR: *const can0::RegisterBlock = 0x4005_1000 as *const _;
899    #[doc = r"Return the pointer to the register block"]
900    #[inline(always)]
901    pub const fn ptr() -> *const can0::RegisterBlock {
902        Self::PTR
903    }
904}
905impl Deref for CAN1 {
906    type Target = can0::RegisterBlock;
907    #[inline(always)]
908    fn deref(&self) -> &Self::Target {
909        unsafe { &*Self::PTR }
910    }
911}
912impl core::fmt::Debug for CAN1 {
913    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
914        f.debug_struct("CAN1").finish()
915    }
916}
917#[doc = "CAN1 Module"]
918pub use self::can0 as can1;
919#[doc = "Infrared Data Association"]
920pub struct IRDA {
921    _marker: PhantomData<*const ()>,
922}
923unsafe impl Send for IRDA {}
924impl IRDA {
925    #[doc = r"Pointer to the register block"]
926    pub const PTR: *const irda::RegisterBlock = 0x4007_0f00 as *const _;
927    #[doc = r"Return the pointer to the register block"]
928    #[inline(always)]
929    pub const fn ptr() -> *const irda::RegisterBlock {
930        Self::PTR
931    }
932}
933impl Deref for IRDA {
934    type Target = irda::RegisterBlock;
935    #[inline(always)]
936    fn deref(&self) -> &Self::Target {
937        unsafe { &*Self::PTR }
938    }
939}
940impl core::fmt::Debug for IRDA {
941    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
942        f.debug_struct("IRDA").finish()
943    }
944}
945#[doc = "Infrared Data Association"]
946pub mod irda;
947#[doc = "Serial Peripheral Interface 0"]
948pub struct SPI0 {
949    _marker: PhantomData<*const ()>,
950}
951unsafe impl Send for SPI0 {}
952impl SPI0 {
953    #[doc = r"Pointer to the register block"]
954    pub const PTR: *const spi0::RegisterBlock = 0x4007_2000 as *const _;
955    #[doc = r"Return the pointer to the register block"]
956    #[inline(always)]
957    pub const fn ptr() -> *const spi0::RegisterBlock {
958        Self::PTR
959    }
960}
961impl Deref for SPI0 {
962    type Target = spi0::RegisterBlock;
963    #[inline(always)]
964    fn deref(&self) -> &Self::Target {
965        unsafe { &*Self::PTR }
966    }
967}
968impl core::fmt::Debug for SPI0 {
969    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
970        f.debug_struct("SPI0").finish()
971    }
972}
973#[doc = "Serial Peripheral Interface 0"]
974pub mod spi0;
975#[doc = "Serial Peripheral Interface 1"]
976pub struct SPI1 {
977    _marker: PhantomData<*const ()>,
978}
979unsafe impl Send for SPI1 {}
980impl SPI1 {
981    #[doc = r"Pointer to the register block"]
982    pub const PTR: *const spi0::RegisterBlock = 0x4007_2100 as *const _;
983    #[doc = r"Return the pointer to the register block"]
984    #[inline(always)]
985    pub const fn ptr() -> *const spi0::RegisterBlock {
986        Self::PTR
987    }
988}
989impl Deref for SPI1 {
990    type Target = spi0::RegisterBlock;
991    #[inline(always)]
992    fn deref(&self) -> &Self::Target {
993        unsafe { &*Self::PTR }
994    }
995}
996impl core::fmt::Debug for SPI1 {
997    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
998        f.debug_struct("SPI1").finish()
999    }
1000}
1001#[doc = "Serial Peripheral Interface 1"]
1002pub use self::spi0 as spi1;
1003#[doc = "Sampling Rate Converter RAM"]
1004pub struct SRCRAM {
1005    _marker: PhantomData<*const ()>,
1006}
1007unsafe impl Send for SRCRAM {}
1008impl SRCRAM {
1009    #[doc = r"Pointer to the register block"]
1010    pub const PTR: *const srcram::RegisterBlock = 0x4004_8000 as *const _;
1011    #[doc = r"Return the pointer to the register block"]
1012    #[inline(always)]
1013    pub const fn ptr() -> *const srcram::RegisterBlock {
1014        Self::PTR
1015    }
1016}
1017impl Deref for SRCRAM {
1018    type Target = srcram::RegisterBlock;
1019    #[inline(always)]
1020    fn deref(&self) -> &Self::Target {
1021        unsafe { &*Self::PTR }
1022    }
1023}
1024impl core::fmt::Debug for SRCRAM {
1025    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1026        f.debug_struct("SRCRAM").finish()
1027    }
1028}
1029#[doc = "Sampling Rate Converter RAM"]
1030pub mod srcram;
1031#[doc = "Sampling Rate Converter"]
1032pub struct SRC {
1033    _marker: PhantomData<*const ()>,
1034}
1035unsafe impl Send for SRC {}
1036impl SRC {
1037    #[doc = r"Pointer to the register block"]
1038    pub const PTR: *const src::RegisterBlock = 0x4004_dff0 as *const _;
1039    #[doc = r"Return the pointer to the register block"]
1040    #[inline(always)]
1041    pub const fn ptr() -> *const src::RegisterBlock {
1042        Self::PTR
1043    }
1044}
1045impl Deref for SRC {
1046    type Target = src::RegisterBlock;
1047    #[inline(always)]
1048    fn deref(&self) -> &Self::Target {
1049        unsafe { &*Self::PTR }
1050    }
1051}
1052impl core::fmt::Debug for SRC {
1053    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1054        f.debug_struct("SRC").finish()
1055    }
1056}
1057#[doc = "Sampling Rate Converter"]
1058pub mod src;
1059#[doc = "Debug Function"]
1060pub struct DBG {
1061    _marker: PhantomData<*const ()>,
1062}
1063unsafe impl Send for DBG {}
1064impl DBG {
1065    #[doc = r"Pointer to the register block"]
1066    pub const PTR: *const dbg::RegisterBlock = 0x4001_b000 as *const _;
1067    #[doc = r"Return the pointer to the register block"]
1068    #[inline(always)]
1069    pub const fn ptr() -> *const dbg::RegisterBlock {
1070        Self::PTR
1071    }
1072}
1073impl Deref for DBG {
1074    type Target = dbg::RegisterBlock;
1075    #[inline(always)]
1076    fn deref(&self) -> &Self::Target {
1077        unsafe { &*Self::PTR }
1078    }
1079}
1080impl core::fmt::Debug for DBG {
1081    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1082        f.debug_struct("DBG").finish()
1083    }
1084}
1085#[doc = "Debug Function"]
1086pub mod dbg;
1087#[doc = "Direct memory access controller 0"]
1088pub struct DMAC0 {
1089    _marker: PhantomData<*const ()>,
1090}
1091unsafe impl Send for DMAC0 {}
1092impl DMAC0 {
1093    #[doc = r"Pointer to the register block"]
1094    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5000 as *const _;
1095    #[doc = r"Return the pointer to the register block"]
1096    #[inline(always)]
1097    pub const fn ptr() -> *const dmac0::RegisterBlock {
1098        Self::PTR
1099    }
1100}
1101impl Deref for DMAC0 {
1102    type Target = dmac0::RegisterBlock;
1103    #[inline(always)]
1104    fn deref(&self) -> &Self::Target {
1105        unsafe { &*Self::PTR }
1106    }
1107}
1108impl core::fmt::Debug for DMAC0 {
1109    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1110        f.debug_struct("DMAC0").finish()
1111    }
1112}
1113#[doc = "Direct memory access controller 0"]
1114pub mod dmac0;
1115#[doc = "Direct memory access controller 1"]
1116pub struct DMAC1 {
1117    _marker: PhantomData<*const ()>,
1118}
1119unsafe impl Send for DMAC1 {}
1120impl DMAC1 {
1121    #[doc = r"Pointer to the register block"]
1122    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5040 as *const _;
1123    #[doc = r"Return the pointer to the register block"]
1124    #[inline(always)]
1125    pub const fn ptr() -> *const dmac0::RegisterBlock {
1126        Self::PTR
1127    }
1128}
1129impl Deref for DMAC1 {
1130    type Target = dmac0::RegisterBlock;
1131    #[inline(always)]
1132    fn deref(&self) -> &Self::Target {
1133        unsafe { &*Self::PTR }
1134    }
1135}
1136impl core::fmt::Debug for DMAC1 {
1137    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1138        f.debug_struct("DMAC1").finish()
1139    }
1140}
1141#[doc = "Direct memory access controller 1"]
1142pub use self::dmac0 as dmac1;
1143#[doc = "Direct memory access controller 2"]
1144pub struct DMAC2 {
1145    _marker: PhantomData<*const ()>,
1146}
1147unsafe impl Send for DMAC2 {}
1148impl DMAC2 {
1149    #[doc = r"Pointer to the register block"]
1150    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5080 as *const _;
1151    #[doc = r"Return the pointer to the register block"]
1152    #[inline(always)]
1153    pub const fn ptr() -> *const dmac0::RegisterBlock {
1154        Self::PTR
1155    }
1156}
1157impl Deref for DMAC2 {
1158    type Target = dmac0::RegisterBlock;
1159    #[inline(always)]
1160    fn deref(&self) -> &Self::Target {
1161        unsafe { &*Self::PTR }
1162    }
1163}
1164impl core::fmt::Debug for DMAC2 {
1165    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1166        f.debug_struct("DMAC2").finish()
1167    }
1168}
1169#[doc = "Direct memory access controller 2"]
1170pub use self::dmac0 as dmac2;
1171#[doc = "Direct memory access controller 3"]
1172pub struct DMAC3 {
1173    _marker: PhantomData<*const ()>,
1174}
1175unsafe impl Send for DMAC3 {}
1176impl DMAC3 {
1177    #[doc = r"Pointer to the register block"]
1178    pub const PTR: *const dmac0::RegisterBlock = 0x4000_50c0 as *const _;
1179    #[doc = r"Return the pointer to the register block"]
1180    #[inline(always)]
1181    pub const fn ptr() -> *const dmac0::RegisterBlock {
1182        Self::PTR
1183    }
1184}
1185impl Deref for DMAC3 {
1186    type Target = dmac0::RegisterBlock;
1187    #[inline(always)]
1188    fn deref(&self) -> &Self::Target {
1189        unsafe { &*Self::PTR }
1190    }
1191}
1192impl core::fmt::Debug for DMAC3 {
1193    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1194        f.debug_struct("DMAC3").finish()
1195    }
1196}
1197#[doc = "Direct memory access controller 3"]
1198pub use self::dmac0 as dmac3;
1199#[doc = "Direct memory access controller 4"]
1200pub struct DMAC4 {
1201    _marker: PhantomData<*const ()>,
1202}
1203unsafe impl Send for DMAC4 {}
1204impl DMAC4 {
1205    #[doc = r"Pointer to the register block"]
1206    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5100 as *const _;
1207    #[doc = r"Return the pointer to the register block"]
1208    #[inline(always)]
1209    pub const fn ptr() -> *const dmac0::RegisterBlock {
1210        Self::PTR
1211    }
1212}
1213impl Deref for DMAC4 {
1214    type Target = dmac0::RegisterBlock;
1215    #[inline(always)]
1216    fn deref(&self) -> &Self::Target {
1217        unsafe { &*Self::PTR }
1218    }
1219}
1220impl core::fmt::Debug for DMAC4 {
1221    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1222        f.debug_struct("DMAC4").finish()
1223    }
1224}
1225#[doc = "Direct memory access controller 4"]
1226pub use self::dmac0 as dmac4;
1227#[doc = "Direct memory access controller 5"]
1228pub struct DMAC5 {
1229    _marker: PhantomData<*const ()>,
1230}
1231unsafe impl Send for DMAC5 {}
1232impl DMAC5 {
1233    #[doc = r"Pointer to the register block"]
1234    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5140 as *const _;
1235    #[doc = r"Return the pointer to the register block"]
1236    #[inline(always)]
1237    pub const fn ptr() -> *const dmac0::RegisterBlock {
1238        Self::PTR
1239    }
1240}
1241impl Deref for DMAC5 {
1242    type Target = dmac0::RegisterBlock;
1243    #[inline(always)]
1244    fn deref(&self) -> &Self::Target {
1245        unsafe { &*Self::PTR }
1246    }
1247}
1248impl core::fmt::Debug for DMAC5 {
1249    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1250        f.debug_struct("DMAC5").finish()
1251    }
1252}
1253#[doc = "Direct memory access controller 5"]
1254pub use self::dmac0 as dmac5;
1255#[doc = "Direct memory access controller 6"]
1256pub struct DMAC6 {
1257    _marker: PhantomData<*const ()>,
1258}
1259unsafe impl Send for DMAC6 {}
1260impl DMAC6 {
1261    #[doc = r"Pointer to the register block"]
1262    pub const PTR: *const dmac0::RegisterBlock = 0x4000_5180 as *const _;
1263    #[doc = r"Return the pointer to the register block"]
1264    #[inline(always)]
1265    pub const fn ptr() -> *const dmac0::RegisterBlock {
1266        Self::PTR
1267    }
1268}
1269impl Deref for DMAC6 {
1270    type Target = dmac0::RegisterBlock;
1271    #[inline(always)]
1272    fn deref(&self) -> &Self::Target {
1273        unsafe { &*Self::PTR }
1274    }
1275}
1276impl core::fmt::Debug for DMAC6 {
1277    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1278        f.debug_struct("DMAC6").finish()
1279    }
1280}
1281#[doc = "Direct memory access controller 6"]
1282pub use self::dmac0 as dmac6;
1283#[doc = "Direct memory access controller 7"]
1284pub struct DMAC7 {
1285    _marker: PhantomData<*const ()>,
1286}
1287unsafe impl Send for DMAC7 {}
1288impl DMAC7 {
1289    #[doc = r"Pointer to the register block"]
1290    pub const PTR: *const dmac0::RegisterBlock = 0x4000_51c0 as *const _;
1291    #[doc = r"Return the pointer to the register block"]
1292    #[inline(always)]
1293    pub const fn ptr() -> *const dmac0::RegisterBlock {
1294        Self::PTR
1295    }
1296}
1297impl Deref for DMAC7 {
1298    type Target = dmac0::RegisterBlock;
1299    #[inline(always)]
1300    fn deref(&self) -> &Self::Target {
1301        unsafe { &*Self::PTR }
1302    }
1303}
1304impl core::fmt::Debug for DMAC7 {
1305    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1306        f.debug_struct("DMAC7").finish()
1307    }
1308}
1309#[doc = "Direct memory access controller 7"]
1310pub use self::dmac0 as dmac7;
1311#[doc = "DMAC Module Activation"]
1312pub struct DMA {
1313    _marker: PhantomData<*const ()>,
1314}
1315unsafe impl Send for DMA {}
1316impl DMA {
1317    #[doc = r"Pointer to the register block"]
1318    pub const PTR: *const dma::RegisterBlock = 0x4000_5200 as *const _;
1319    #[doc = r"Return the pointer to the register block"]
1320    #[inline(always)]
1321    pub const fn ptr() -> *const dma::RegisterBlock {
1322        Self::PTR
1323    }
1324}
1325impl Deref for DMA {
1326    type Target = dma::RegisterBlock;
1327    #[inline(always)]
1328    fn deref(&self) -> &Self::Target {
1329        unsafe { &*Self::PTR }
1330    }
1331}
1332impl core::fmt::Debug for DMA {
1333    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1334        f.debug_struct("DMA").finish()
1335    }
1336}
1337#[doc = "DMAC Module Activation"]
1338pub mod dma;
1339#[doc = "Data Transfer Controller"]
1340pub struct DTC {
1341    _marker: PhantomData<*const ()>,
1342}
1343unsafe impl Send for DTC {}
1344impl DTC {
1345    #[doc = r"Pointer to the register block"]
1346    pub const PTR: *const dtc::RegisterBlock = 0x4000_5400 as *const _;
1347    #[doc = r"Return the pointer to the register block"]
1348    #[inline(always)]
1349    pub const fn ptr() -> *const dtc::RegisterBlock {
1350        Self::PTR
1351    }
1352}
1353impl Deref for DTC {
1354    type Target = dtc::RegisterBlock;
1355    #[inline(always)]
1356    fn deref(&self) -> &Self::Target {
1357        unsafe { &*Self::PTR }
1358    }
1359}
1360impl core::fmt::Debug for DTC {
1361    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1362        f.debug_struct("DTC").finish()
1363    }
1364}
1365#[doc = "Data Transfer Controller"]
1366pub mod dtc;
1367#[doc = "Memory Mirror Function"]
1368pub struct MMF {
1369    _marker: PhantomData<*const ()>,
1370}
1371unsafe impl Send for MMF {}
1372impl MMF {
1373    #[doc = r"Pointer to the register block"]
1374    pub const PTR: *const mmf::RegisterBlock = 0x4000_1000 as *const _;
1375    #[doc = r"Return the pointer to the register block"]
1376    #[inline(always)]
1377    pub const fn ptr() -> *const mmf::RegisterBlock {
1378        Self::PTR
1379    }
1380}
1381impl Deref for MMF {
1382    type Target = mmf::RegisterBlock;
1383    #[inline(always)]
1384    fn deref(&self) -> &Self::Target {
1385        unsafe { &*Self::PTR }
1386    }
1387}
1388impl core::fmt::Debug for MMF {
1389    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1390        f.debug_struct("MMF").finish()
1391    }
1392}
1393#[doc = "Memory Mirror Function"]
1394pub mod mmf;
1395#[doc = "SRAM Control"]
1396pub struct SRAM {
1397    _marker: PhantomData<*const ()>,
1398}
1399unsafe impl Send for SRAM {}
1400impl SRAM {
1401    #[doc = r"Pointer to the register block"]
1402    pub const PTR: *const sram::RegisterBlock = 0x4000_2000 as *const _;
1403    #[doc = r"Return the pointer to the register block"]
1404    #[inline(always)]
1405    pub const fn ptr() -> *const sram::RegisterBlock {
1406        Self::PTR
1407    }
1408}
1409impl Deref for SRAM {
1410    type Target = sram::RegisterBlock;
1411    #[inline(always)]
1412    fn deref(&self) -> &Self::Target {
1413        unsafe { &*Self::PTR }
1414    }
1415}
1416impl core::fmt::Debug for SRAM {
1417    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1418        f.debug_struct("SRAM").finish()
1419    }
1420}
1421#[doc = "SRAM Control"]
1422pub mod sram;
1423#[doc = "Flash Cache"]
1424pub struct FCACHE {
1425    _marker: PhantomData<*const ()>,
1426}
1427unsafe impl Send for FCACHE {}
1428impl FCACHE {
1429    #[doc = r"Pointer to the register block"]
1430    pub const PTR: *const fcache::RegisterBlock = 0x4001_c000 as *const _;
1431    #[doc = r"Return the pointer to the register block"]
1432    #[inline(always)]
1433    pub const fn ptr() -> *const fcache::RegisterBlock {
1434        Self::PTR
1435    }
1436}
1437impl Deref for FCACHE {
1438    type Target = fcache::RegisterBlock;
1439    #[inline(always)]
1440    fn deref(&self) -> &Self::Target {
1441        unsafe { &*Self::PTR }
1442    }
1443}
1444impl core::fmt::Debug for FCACHE {
1445    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1446        f.debug_struct("FCACHE").finish()
1447    }
1448}
1449#[doc = "Flash Cache"]
1450pub mod fcache;
1451#[doc = "System Control"]
1452pub struct SYSTEM {
1453    _marker: PhantomData<*const ()>,
1454}
1455unsafe impl Send for SYSTEM {}
1456impl SYSTEM {
1457    #[doc = r"Pointer to the register block"]
1458    pub const PTR: *const system::RegisterBlock = 0x4001_e000 as *const _;
1459    #[doc = r"Return the pointer to the register block"]
1460    #[inline(always)]
1461    pub const fn ptr() -> *const system::RegisterBlock {
1462        Self::PTR
1463    }
1464}
1465impl Deref for SYSTEM {
1466    type Target = system::RegisterBlock;
1467    #[inline(always)]
1468    fn deref(&self) -> &Self::Target {
1469        unsafe { &*Self::PTR }
1470    }
1471}
1472impl core::fmt::Debug for SYSTEM {
1473    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1474        f.debug_struct("SYSTEM").finish()
1475    }
1476}
1477#[doc = "System Control"]
1478pub mod system;
1479#[doc = "Module Stop Control B,C,D"]
1480pub struct MSTP {
1481    _marker: PhantomData<*const ()>,
1482}
1483unsafe impl Send for MSTP {}
1484impl MSTP {
1485    #[doc = r"Pointer to the register block"]
1486    pub const PTR: *const mstp::RegisterBlock = 0x4004_7000 as *const _;
1487    #[doc = r"Return the pointer to the register block"]
1488    #[inline(always)]
1489    pub const fn ptr() -> *const mstp::RegisterBlock {
1490        Self::PTR
1491    }
1492}
1493impl Deref for MSTP {
1494    type Target = mstp::RegisterBlock;
1495    #[inline(always)]
1496    fn deref(&self) -> &Self::Target {
1497        unsafe { &*Self::PTR }
1498    }
1499}
1500impl core::fmt::Debug for MSTP {
1501    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1502        f.debug_struct("MSTP").finish()
1503    }
1504}
1505#[doc = "Module Stop Control B,C,D"]
1506pub mod mstp;
1507#[doc = "Asynchronous General purpose Timer 0"]
1508pub struct AGT0 {
1509    _marker: PhantomData<*const ()>,
1510}
1511unsafe impl Send for AGT0 {}
1512impl AGT0 {
1513    #[doc = r"Pointer to the register block"]
1514    pub const PTR: *const agt0::RegisterBlock = 0x4008_4000 as *const _;
1515    #[doc = r"Return the pointer to the register block"]
1516    #[inline(always)]
1517    pub const fn ptr() -> *const agt0::RegisterBlock {
1518        Self::PTR
1519    }
1520}
1521impl Deref for AGT0 {
1522    type Target = agt0::RegisterBlock;
1523    #[inline(always)]
1524    fn deref(&self) -> &Self::Target {
1525        unsafe { &*Self::PTR }
1526    }
1527}
1528impl core::fmt::Debug for AGT0 {
1529    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1530        f.debug_struct("AGT0").finish()
1531    }
1532}
1533#[doc = "Asynchronous General purpose Timer 0"]
1534pub mod agt0;
1535#[doc = "Asynchronous General purpose Timer 1"]
1536pub struct AGT1 {
1537    _marker: PhantomData<*const ()>,
1538}
1539unsafe impl Send for AGT1 {}
1540impl AGT1 {
1541    #[doc = r"Pointer to the register block"]
1542    pub const PTR: *const agt0::RegisterBlock = 0x4008_4100 as *const _;
1543    #[doc = r"Return the pointer to the register block"]
1544    #[inline(always)]
1545    pub const fn ptr() -> *const agt0::RegisterBlock {
1546        Self::PTR
1547    }
1548}
1549impl Deref for AGT1 {
1550    type Target = agt0::RegisterBlock;
1551    #[inline(always)]
1552    fn deref(&self) -> &Self::Target {
1553        unsafe { &*Self::PTR }
1554    }
1555}
1556impl core::fmt::Debug for AGT1 {
1557    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1558        f.debug_struct("AGT1").finish()
1559    }
1560}
1561#[doc = "Asynchronous General purpose Timer 1"]
1562pub use self::agt0 as agt1;
1563#[doc = "Output Phase Switching Controller"]
1564pub struct GPT_OPS {
1565    _marker: PhantomData<*const ()>,
1566}
1567unsafe impl Send for GPT_OPS {}
1568impl GPT_OPS {
1569    #[doc = r"Pointer to the register block"]
1570    pub const PTR: *const gpt_ops::RegisterBlock = 0x4007_8ff0 as *const _;
1571    #[doc = r"Return the pointer to the register block"]
1572    #[inline(always)]
1573    pub const fn ptr() -> *const gpt_ops::RegisterBlock {
1574        Self::PTR
1575    }
1576}
1577impl Deref for GPT_OPS {
1578    type Target = gpt_ops::RegisterBlock;
1579    #[inline(always)]
1580    fn deref(&self) -> &Self::Target {
1581        unsafe { &*Self::PTR }
1582    }
1583}
1584impl core::fmt::Debug for GPT_OPS {
1585    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1586        f.debug_struct("GPT_OPS").finish()
1587    }
1588}
1589#[doc = "Output Phase Switching Controller"]
1590pub mod gpt_ops;
1591#[doc = "General PWM Timer 0 (32-bit Enhanced High Resolution)"]
1592pub struct GPT32EH0 {
1593    _marker: PhantomData<*const ()>,
1594}
1595unsafe impl Send for GPT32EH0 {}
1596impl GPT32EH0 {
1597    #[doc = r"Pointer to the register block"]
1598    pub const PTR: *const gpt32eh0::RegisterBlock = 0x4007_8000 as *const _;
1599    #[doc = r"Return the pointer to the register block"]
1600    #[inline(always)]
1601    pub const fn ptr() -> *const gpt32eh0::RegisterBlock {
1602        Self::PTR
1603    }
1604}
1605impl Deref for GPT32EH0 {
1606    type Target = gpt32eh0::RegisterBlock;
1607    #[inline(always)]
1608    fn deref(&self) -> &Self::Target {
1609        unsafe { &*Self::PTR }
1610    }
1611}
1612impl core::fmt::Debug for GPT32EH0 {
1613    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1614        f.debug_struct("GPT32EH0").finish()
1615    }
1616}
1617#[doc = "General PWM Timer 0 (32-bit Enhanced High Resolution)"]
1618pub mod gpt32eh0;
1619#[doc = "General PWM Timer 1 (32-bit Enhanced High Resolution)"]
1620pub struct GPT32EH1 {
1621    _marker: PhantomData<*const ()>,
1622}
1623unsafe impl Send for GPT32EH1 {}
1624impl GPT32EH1 {
1625    #[doc = r"Pointer to the register block"]
1626    pub const PTR: *const gpt32eh0::RegisterBlock = 0x4007_8100 as *const _;
1627    #[doc = r"Return the pointer to the register block"]
1628    #[inline(always)]
1629    pub const fn ptr() -> *const gpt32eh0::RegisterBlock {
1630        Self::PTR
1631    }
1632}
1633impl Deref for GPT32EH1 {
1634    type Target = gpt32eh0::RegisterBlock;
1635    #[inline(always)]
1636    fn deref(&self) -> &Self::Target {
1637        unsafe { &*Self::PTR }
1638    }
1639}
1640impl core::fmt::Debug for GPT32EH1 {
1641    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1642        f.debug_struct("GPT32EH1").finish()
1643    }
1644}
1645#[doc = "General PWM Timer 1 (32-bit Enhanced High Resolution)"]
1646pub use self::gpt32eh0 as gpt32eh1;
1647#[doc = "General PWM Timer 2 (32-bit Enhanced High Resolution)"]
1648pub struct GPT32EH2 {
1649    _marker: PhantomData<*const ()>,
1650}
1651unsafe impl Send for GPT32EH2 {}
1652impl GPT32EH2 {
1653    #[doc = r"Pointer to the register block"]
1654    pub const PTR: *const gpt32eh0::RegisterBlock = 0x4007_8200 as *const _;
1655    #[doc = r"Return the pointer to the register block"]
1656    #[inline(always)]
1657    pub const fn ptr() -> *const gpt32eh0::RegisterBlock {
1658        Self::PTR
1659    }
1660}
1661impl Deref for GPT32EH2 {
1662    type Target = gpt32eh0::RegisterBlock;
1663    #[inline(always)]
1664    fn deref(&self) -> &Self::Target {
1665        unsafe { &*Self::PTR }
1666    }
1667}
1668impl core::fmt::Debug for GPT32EH2 {
1669    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1670        f.debug_struct("GPT32EH2").finish()
1671    }
1672}
1673#[doc = "General PWM Timer 2 (32-bit Enhanced High Resolution)"]
1674pub use self::gpt32eh0 as gpt32eh2;
1675#[doc = "General PWM Timer 3 (32-bit Enhanced High Resolution)"]
1676pub struct GPT32EH3 {
1677    _marker: PhantomData<*const ()>,
1678}
1679unsafe impl Send for GPT32EH3 {}
1680impl GPT32EH3 {
1681    #[doc = r"Pointer to the register block"]
1682    pub const PTR: *const gpt32eh0::RegisterBlock = 0x4007_8300 as *const _;
1683    #[doc = r"Return the pointer to the register block"]
1684    #[inline(always)]
1685    pub const fn ptr() -> *const gpt32eh0::RegisterBlock {
1686        Self::PTR
1687    }
1688}
1689impl Deref for GPT32EH3 {
1690    type Target = gpt32eh0::RegisterBlock;
1691    #[inline(always)]
1692    fn deref(&self) -> &Self::Target {
1693        unsafe { &*Self::PTR }
1694    }
1695}
1696impl core::fmt::Debug for GPT32EH3 {
1697    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1698        f.debug_struct("GPT32EH3").finish()
1699    }
1700}
1701#[doc = "General PWM Timer 3 (32-bit Enhanced High Resolution)"]
1702pub use self::gpt32eh0 as gpt32eh3;
1703#[doc = "General PWM Timer 4 (32-bit Enhanced)"]
1704pub struct GPT32E4 {
1705    _marker: PhantomData<*const ()>,
1706}
1707unsafe impl Send for GPT32E4 {}
1708impl GPT32E4 {
1709    #[doc = r"Pointer to the register block"]
1710    pub const PTR: *const gpt32eh0::RegisterBlock = 0x4007_8400 as *const _;
1711    #[doc = r"Return the pointer to the register block"]
1712    #[inline(always)]
1713    pub const fn ptr() -> *const gpt32eh0::RegisterBlock {
1714        Self::PTR
1715    }
1716}
1717impl Deref for GPT32E4 {
1718    type Target = gpt32eh0::RegisterBlock;
1719    #[inline(always)]
1720    fn deref(&self) -> &Self::Target {
1721        unsafe { &*Self::PTR }
1722    }
1723}
1724impl core::fmt::Debug for GPT32E4 {
1725    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1726        f.debug_struct("GPT32E4").finish()
1727    }
1728}
1729#[doc = "General PWM Timer 4 (32-bit Enhanced)"]
1730pub use self::gpt32eh0 as gpt32e4;
1731#[doc = "General PWM Timer 5 (32-bit Enhanced)"]
1732pub struct GPT32E5 {
1733    _marker: PhantomData<*const ()>,
1734}
1735unsafe impl Send for GPT32E5 {}
1736impl GPT32E5 {
1737    #[doc = r"Pointer to the register block"]
1738    pub const PTR: *const gpt32eh0::RegisterBlock = 0x4007_8500 as *const _;
1739    #[doc = r"Return the pointer to the register block"]
1740    #[inline(always)]
1741    pub const fn ptr() -> *const gpt32eh0::RegisterBlock {
1742        Self::PTR
1743    }
1744}
1745impl Deref for GPT32E5 {
1746    type Target = gpt32eh0::RegisterBlock;
1747    #[inline(always)]
1748    fn deref(&self) -> &Self::Target {
1749        unsafe { &*Self::PTR }
1750    }
1751}
1752impl core::fmt::Debug for GPT32E5 {
1753    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1754        f.debug_struct("GPT32E5").finish()
1755    }
1756}
1757#[doc = "General PWM Timer 5 (32-bit Enhanced)"]
1758pub use self::gpt32eh0 as gpt32e5;
1759#[doc = "General PWM Timer 6 (32-bit Enhanced)"]
1760pub struct GPT32E6 {
1761    _marker: PhantomData<*const ()>,
1762}
1763unsafe impl Send for GPT32E6 {}
1764impl GPT32E6 {
1765    #[doc = r"Pointer to the register block"]
1766    pub const PTR: *const gpt32eh0::RegisterBlock = 0x4007_8600 as *const _;
1767    #[doc = r"Return the pointer to the register block"]
1768    #[inline(always)]
1769    pub const fn ptr() -> *const gpt32eh0::RegisterBlock {
1770        Self::PTR
1771    }
1772}
1773impl Deref for GPT32E6 {
1774    type Target = gpt32eh0::RegisterBlock;
1775    #[inline(always)]
1776    fn deref(&self) -> &Self::Target {
1777        unsafe { &*Self::PTR }
1778    }
1779}
1780impl core::fmt::Debug for GPT32E6 {
1781    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1782        f.debug_struct("GPT32E6").finish()
1783    }
1784}
1785#[doc = "General PWM Timer 6 (32-bit Enhanced)"]
1786pub use self::gpt32eh0 as gpt32e6;
1787#[doc = "General PWM Timer 7 (32-bit Enhanced)"]
1788pub struct GPT32E7 {
1789    _marker: PhantomData<*const ()>,
1790}
1791unsafe impl Send for GPT32E7 {}
1792impl GPT32E7 {
1793    #[doc = r"Pointer to the register block"]
1794    pub const PTR: *const gpt32eh0::RegisterBlock = 0x4007_8700 as *const _;
1795    #[doc = r"Return the pointer to the register block"]
1796    #[inline(always)]
1797    pub const fn ptr() -> *const gpt32eh0::RegisterBlock {
1798        Self::PTR
1799    }
1800}
1801impl Deref for GPT32E7 {
1802    type Target = gpt32eh0::RegisterBlock;
1803    #[inline(always)]
1804    fn deref(&self) -> &Self::Target {
1805        unsafe { &*Self::PTR }
1806    }
1807}
1808impl core::fmt::Debug for GPT32E7 {
1809    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1810        f.debug_struct("GPT32E7").finish()
1811    }
1812}
1813#[doc = "General PWM Timer 7 (32-bit Enhanced)"]
1814pub use self::gpt32eh0 as gpt32e7;
1815#[doc = "Port Output Enable Module for GPT"]
1816pub struct POEG {
1817    _marker: PhantomData<*const ()>,
1818}
1819unsafe impl Send for POEG {}
1820impl POEG {
1821    #[doc = r"Pointer to the register block"]
1822    pub const PTR: *const poeg::RegisterBlock = 0x4004_2000 as *const _;
1823    #[doc = r"Return the pointer to the register block"]
1824    #[inline(always)]
1825    pub const fn ptr() -> *const poeg::RegisterBlock {
1826        Self::PTR
1827    }
1828}
1829impl Deref for POEG {
1830    type Target = poeg::RegisterBlock;
1831    #[inline(always)]
1832    fn deref(&self) -> &Self::Target {
1833        unsafe { &*Self::PTR }
1834    }
1835}
1836impl core::fmt::Debug for POEG {
1837    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1838        f.debug_struct("POEG").finish()
1839    }
1840}
1841#[doc = "Port Output Enable Module for GPT"]
1842pub mod poeg;
1843#[doc = "PWM Delay Generation Circuit"]
1844pub struct GPT_ODC {
1845    _marker: PhantomData<*const ()>,
1846}
1847unsafe impl Send for GPT_ODC {}
1848impl GPT_ODC {
1849    #[doc = r"Pointer to the register block"]
1850    pub const PTR: *const gpt_odc::RegisterBlock = 0x4007_b000 as *const _;
1851    #[doc = r"Return the pointer to the register block"]
1852    #[inline(always)]
1853    pub const fn ptr() -> *const gpt_odc::RegisterBlock {
1854        Self::PTR
1855    }
1856}
1857impl Deref for GPT_ODC {
1858    type Target = gpt_odc::RegisterBlock;
1859    #[inline(always)]
1860    fn deref(&self) -> &Self::Target {
1861        unsafe { &*Self::PTR }
1862    }
1863}
1864impl core::fmt::Debug for GPT_ODC {
1865    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1866        f.debug_struct("GPT_ODC").finish()
1867    }
1868}
1869#[doc = "PWM Delay Generation Circuit"]
1870pub mod gpt_odc;
1871#[doc = "BUS Control"]
1872pub struct BUS {
1873    _marker: PhantomData<*const ()>,
1874}
1875unsafe impl Send for BUS {}
1876impl BUS {
1877    #[doc = r"Pointer to the register block"]
1878    pub const PTR: *const bus::RegisterBlock = 0x4000_3000 as *const _;
1879    #[doc = r"Return the pointer to the register block"]
1880    #[inline(always)]
1881    pub const fn ptr() -> *const bus::RegisterBlock {
1882        Self::PTR
1883    }
1884}
1885impl Deref for BUS {
1886    type Target = bus::RegisterBlock;
1887    #[inline(always)]
1888    fn deref(&self) -> &Self::Target {
1889        unsafe { &*Self::PTR }
1890    }
1891}
1892impl core::fmt::Debug for BUS {
1893    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1894        f.debug_struct("BUS").finish()
1895    }
1896}
1897#[doc = "BUS Control"]
1898pub mod bus;
1899#[doc = "Interrupt Controller"]
1900pub struct ICU {
1901    _marker: PhantomData<*const ()>,
1902}
1903unsafe impl Send for ICU {}
1904impl ICU {
1905    #[doc = r"Pointer to the register block"]
1906    pub const PTR: *const icu::RegisterBlock = 0x4000_6000 as *const _;
1907    #[doc = r"Return the pointer to the register block"]
1908    #[inline(always)]
1909    pub const fn ptr() -> *const icu::RegisterBlock {
1910        Self::PTR
1911    }
1912}
1913impl Deref for ICU {
1914    type Target = icu::RegisterBlock;
1915    #[inline(always)]
1916    fn deref(&self) -> &Self::Target {
1917        unsafe { &*Self::PTR }
1918    }
1919}
1920impl core::fmt::Debug for ICU {
1921    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1922        f.debug_struct("ICU").finish()
1923    }
1924}
1925#[doc = "Interrupt Controller"]
1926pub mod icu;
1927#[doc = "Port 0 Control Registers"]
1928pub struct PORT0 {
1929    _marker: PhantomData<*const ()>,
1930}
1931unsafe impl Send for PORT0 {}
1932impl PORT0 {
1933    #[doc = r"Pointer to the register block"]
1934    pub const PTR: *const port0::RegisterBlock = 0x4004_0000 as *const _;
1935    #[doc = r"Return the pointer to the register block"]
1936    #[inline(always)]
1937    pub const fn ptr() -> *const port0::RegisterBlock {
1938        Self::PTR
1939    }
1940}
1941impl Deref for PORT0 {
1942    type Target = port0::RegisterBlock;
1943    #[inline(always)]
1944    fn deref(&self) -> &Self::Target {
1945        unsafe { &*Self::PTR }
1946    }
1947}
1948impl core::fmt::Debug for PORT0 {
1949    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1950        f.debug_struct("PORT0").finish()
1951    }
1952}
1953#[doc = "Port 0 Control Registers"]
1954pub mod port0;
1955#[doc = "Port 1 Control Registers"]
1956pub struct PORT1 {
1957    _marker: PhantomData<*const ()>,
1958}
1959unsafe impl Send for PORT1 {}
1960impl PORT1 {
1961    #[doc = r"Pointer to the register block"]
1962    pub const PTR: *const port1::RegisterBlock = 0x4004_0020 as *const _;
1963    #[doc = r"Return the pointer to the register block"]
1964    #[inline(always)]
1965    pub const fn ptr() -> *const port1::RegisterBlock {
1966        Self::PTR
1967    }
1968}
1969impl Deref for PORT1 {
1970    type Target = port1::RegisterBlock;
1971    #[inline(always)]
1972    fn deref(&self) -> &Self::Target {
1973        unsafe { &*Self::PTR }
1974    }
1975}
1976impl core::fmt::Debug for PORT1 {
1977    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1978        f.debug_struct("PORT1").finish()
1979    }
1980}
1981#[doc = "Port 1 Control Registers"]
1982pub mod port1;
1983#[doc = "Port 2 Control Registers"]
1984pub struct PORT2 {
1985    _marker: PhantomData<*const ()>,
1986}
1987unsafe impl Send for PORT2 {}
1988impl PORT2 {
1989    #[doc = r"Pointer to the register block"]
1990    pub const PTR: *const port1::RegisterBlock = 0x4004_0040 as *const _;
1991    #[doc = r"Return the pointer to the register block"]
1992    #[inline(always)]
1993    pub const fn ptr() -> *const port1::RegisterBlock {
1994        Self::PTR
1995    }
1996}
1997impl Deref for PORT2 {
1998    type Target = port1::RegisterBlock;
1999    #[inline(always)]
2000    fn deref(&self) -> &Self::Target {
2001        unsafe { &*Self::PTR }
2002    }
2003}
2004impl core::fmt::Debug for PORT2 {
2005    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2006        f.debug_struct("PORT2").finish()
2007    }
2008}
2009#[doc = "Port 2 Control Registers"]
2010pub use self::port1 as port2;
2011#[doc = "Port 3 Control Registers"]
2012pub struct PORT3 {
2013    _marker: PhantomData<*const ()>,
2014}
2015unsafe impl Send for PORT3 {}
2016impl PORT3 {
2017    #[doc = r"Pointer to the register block"]
2018    pub const PTR: *const port1::RegisterBlock = 0x4004_0060 as *const _;
2019    #[doc = r"Return the pointer to the register block"]
2020    #[inline(always)]
2021    pub const fn ptr() -> *const port1::RegisterBlock {
2022        Self::PTR
2023    }
2024}
2025impl Deref for PORT3 {
2026    type Target = port1::RegisterBlock;
2027    #[inline(always)]
2028    fn deref(&self) -> &Self::Target {
2029        unsafe { &*Self::PTR }
2030    }
2031}
2032impl core::fmt::Debug for PORT3 {
2033    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2034        f.debug_struct("PORT3").finish()
2035    }
2036}
2037#[doc = "Port 3 Control Registers"]
2038pub use self::port1 as port3;
2039#[doc = "Port 4 Control Registers"]
2040pub struct PORT4 {
2041    _marker: PhantomData<*const ()>,
2042}
2043unsafe impl Send for PORT4 {}
2044impl PORT4 {
2045    #[doc = r"Pointer to the register block"]
2046    pub const PTR: *const port1::RegisterBlock = 0x4004_0080 as *const _;
2047    #[doc = r"Return the pointer to the register block"]
2048    #[inline(always)]
2049    pub const fn ptr() -> *const port1::RegisterBlock {
2050        Self::PTR
2051    }
2052}
2053impl Deref for PORT4 {
2054    type Target = port1::RegisterBlock;
2055    #[inline(always)]
2056    fn deref(&self) -> &Self::Target {
2057        unsafe { &*Self::PTR }
2058    }
2059}
2060impl core::fmt::Debug for PORT4 {
2061    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2062        f.debug_struct("PORT4").finish()
2063    }
2064}
2065#[doc = "Port 4 Control Registers"]
2066pub use self::port1 as port4;
2067#[doc = "Port 5 Control Registers"]
2068pub struct PORT5 {
2069    _marker: PhantomData<*const ()>,
2070}
2071unsafe impl Send for PORT5 {}
2072impl PORT5 {
2073    #[doc = r"Pointer to the register block"]
2074    pub const PTR: *const port0::RegisterBlock = 0x4004_00a0 as *const _;
2075    #[doc = r"Return the pointer to the register block"]
2076    #[inline(always)]
2077    pub const fn ptr() -> *const port0::RegisterBlock {
2078        Self::PTR
2079    }
2080}
2081impl Deref for PORT5 {
2082    type Target = port0::RegisterBlock;
2083    #[inline(always)]
2084    fn deref(&self) -> &Self::Target {
2085        unsafe { &*Self::PTR }
2086    }
2087}
2088impl core::fmt::Debug for PORT5 {
2089    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2090        f.debug_struct("PORT5").finish()
2091    }
2092}
2093#[doc = "Port 5 Control Registers"]
2094pub use self::port0 as port5;
2095#[doc = "Port 6 Control Registers"]
2096pub struct PORT6 {
2097    _marker: PhantomData<*const ()>,
2098}
2099unsafe impl Send for PORT6 {}
2100impl PORT6 {
2101    #[doc = r"Pointer to the register block"]
2102    pub const PTR: *const port0::RegisterBlock = 0x4004_00c0 as *const _;
2103    #[doc = r"Return the pointer to the register block"]
2104    #[inline(always)]
2105    pub const fn ptr() -> *const port0::RegisterBlock {
2106        Self::PTR
2107    }
2108}
2109impl Deref for PORT6 {
2110    type Target = port0::RegisterBlock;
2111    #[inline(always)]
2112    fn deref(&self) -> &Self::Target {
2113        unsafe { &*Self::PTR }
2114    }
2115}
2116impl core::fmt::Debug for PORT6 {
2117    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2118        f.debug_struct("PORT6").finish()
2119    }
2120}
2121#[doc = "Port 6 Control Registers"]
2122pub use self::port0 as port6;
2123#[doc = "Port 7 Control Registers"]
2124pub struct PORT7 {
2125    _marker: PhantomData<*const ()>,
2126}
2127unsafe impl Send for PORT7 {}
2128impl PORT7 {
2129    #[doc = r"Pointer to the register block"]
2130    pub const PTR: *const port0::RegisterBlock = 0x4004_00e0 as *const _;
2131    #[doc = r"Return the pointer to the register block"]
2132    #[inline(always)]
2133    pub const fn ptr() -> *const port0::RegisterBlock {
2134        Self::PTR
2135    }
2136}
2137impl Deref for PORT7 {
2138    type Target = port0::RegisterBlock;
2139    #[inline(always)]
2140    fn deref(&self) -> &Self::Target {
2141        unsafe { &*Self::PTR }
2142    }
2143}
2144impl core::fmt::Debug for PORT7 {
2145    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2146        f.debug_struct("PORT7").finish()
2147    }
2148}
2149#[doc = "Port 7 Control Registers"]
2150pub use self::port0 as port7;
2151#[doc = "Pmn Pin Function Control Register"]
2152pub struct PFS {
2153    _marker: PhantomData<*const ()>,
2154}
2155unsafe impl Send for PFS {}
2156impl PFS {
2157    #[doc = r"Pointer to the register block"]
2158    pub const PTR: *const pfs::RegisterBlock = 0x4004_0800 as *const _;
2159    #[doc = r"Return the pointer to the register block"]
2160    #[inline(always)]
2161    pub const fn ptr() -> *const pfs::RegisterBlock {
2162        Self::PTR
2163    }
2164}
2165impl Deref for PFS {
2166    type Target = pfs::RegisterBlock;
2167    #[inline(always)]
2168    fn deref(&self) -> &Self::Target {
2169        unsafe { &*Self::PTR }
2170    }
2171}
2172impl core::fmt::Debug for PFS {
2173    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2174        f.debug_struct("PFS").finish()
2175    }
2176}
2177#[doc = "Pmn Pin Function Control Register"]
2178pub mod pfs;
2179#[doc = "Miscellaneous Port Control Register"]
2180pub struct PMISC {
2181    _marker: PhantomData<*const ()>,
2182}
2183unsafe impl Send for PMISC {}
2184impl PMISC {
2185    #[doc = r"Pointer to the register block"]
2186    pub const PTR: *const pmisc::RegisterBlock = 0x4004_0d00 as *const _;
2187    #[doc = r"Return the pointer to the register block"]
2188    #[inline(always)]
2189    pub const fn ptr() -> *const pmisc::RegisterBlock {
2190        Self::PTR
2191    }
2192}
2193impl Deref for PMISC {
2194    type Target = pmisc::RegisterBlock;
2195    #[inline(always)]
2196    fn deref(&self) -> &Self::Target {
2197        unsafe { &*Self::PTR }
2198    }
2199}
2200impl core::fmt::Debug for PMISC {
2201    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2202        f.debug_struct("PMISC").finish()
2203    }
2204}
2205#[doc = "Miscellaneous Port Control Register"]
2206pub mod pmisc;
2207#[doc = "Inter-Integrated Circuit 0"]
2208pub struct IIC0 {
2209    _marker: PhantomData<*const ()>,
2210}
2211unsafe impl Send for IIC0 {}
2212impl IIC0 {
2213    #[doc = r"Pointer to the register block"]
2214    pub const PTR: *const iic0::RegisterBlock = 0x4005_3000 as *const _;
2215    #[doc = r"Return the pointer to the register block"]
2216    #[inline(always)]
2217    pub const fn ptr() -> *const iic0::RegisterBlock {
2218        Self::PTR
2219    }
2220}
2221impl Deref for IIC0 {
2222    type Target = iic0::RegisterBlock;
2223    #[inline(always)]
2224    fn deref(&self) -> &Self::Target {
2225        unsafe { &*Self::PTR }
2226    }
2227}
2228impl core::fmt::Debug for IIC0 {
2229    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2230        f.debug_struct("IIC0").finish()
2231    }
2232}
2233#[doc = "Inter-Integrated Circuit 0"]
2234pub mod iic0;
2235#[doc = "Inter-Integrated Circuit 1"]
2236pub struct IIC1 {
2237    _marker: PhantomData<*const ()>,
2238}
2239unsafe impl Send for IIC1 {}
2240impl IIC1 {
2241    #[doc = r"Pointer to the register block"]
2242    pub const PTR: *const iic1::RegisterBlock = 0x4005_3100 as *const _;
2243    #[doc = r"Return the pointer to the register block"]
2244    #[inline(always)]
2245    pub const fn ptr() -> *const iic1::RegisterBlock {
2246        Self::PTR
2247    }
2248}
2249impl Deref for IIC1 {
2250    type Target = iic1::RegisterBlock;
2251    #[inline(always)]
2252    fn deref(&self) -> &Self::Target {
2253        unsafe { &*Self::PTR }
2254    }
2255}
2256impl core::fmt::Debug for IIC1 {
2257    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2258        f.debug_struct("IIC1").finish()
2259    }
2260}
2261#[doc = "Inter-Integrated Circuit 1"]
2262pub mod iic1;
2263#[doc = "Serial Communication Interface 0"]
2264pub struct SCI0 {
2265    _marker: PhantomData<*const ()>,
2266}
2267unsafe impl Send for SCI0 {}
2268impl SCI0 {
2269    #[doc = r"Pointer to the register block"]
2270    pub const PTR: *const sci0::RegisterBlock = 0x4007_0000 as *const _;
2271    #[doc = r"Return the pointer to the register block"]
2272    #[inline(always)]
2273    pub const fn ptr() -> *const sci0::RegisterBlock {
2274        Self::PTR
2275    }
2276}
2277impl Deref for SCI0 {
2278    type Target = sci0::RegisterBlock;
2279    #[inline(always)]
2280    fn deref(&self) -> &Self::Target {
2281        unsafe { &*Self::PTR }
2282    }
2283}
2284impl core::fmt::Debug for SCI0 {
2285    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2286        f.debug_struct("SCI0").finish()
2287    }
2288}
2289#[doc = "Serial Communication Interface 0"]
2290pub mod sci0;
2291#[doc = "Serial Communication Interface 1"]
2292pub struct SCI1 {
2293    _marker: PhantomData<*const ()>,
2294}
2295unsafe impl Send for SCI1 {}
2296impl SCI1 {
2297    #[doc = r"Pointer to the register block"]
2298    pub const PTR: *const sci0::RegisterBlock = 0x4007_0020 as *const _;
2299    #[doc = r"Return the pointer to the register block"]
2300    #[inline(always)]
2301    pub const fn ptr() -> *const sci0::RegisterBlock {
2302        Self::PTR
2303    }
2304}
2305impl Deref for SCI1 {
2306    type Target = sci0::RegisterBlock;
2307    #[inline(always)]
2308    fn deref(&self) -> &Self::Target {
2309        unsafe { &*Self::PTR }
2310    }
2311}
2312impl core::fmt::Debug for SCI1 {
2313    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2314        f.debug_struct("SCI1").finish()
2315    }
2316}
2317#[doc = "Serial Communication Interface 1"]
2318pub use self::sci0 as sci1;
2319#[doc = "Serial Communication Interface 2"]
2320pub struct SCI2 {
2321    _marker: PhantomData<*const ()>,
2322}
2323unsafe impl Send for SCI2 {}
2324impl SCI2 {
2325    #[doc = r"Pointer to the register block"]
2326    pub const PTR: *const sci0::RegisterBlock = 0x4007_0040 as *const _;
2327    #[doc = r"Return the pointer to the register block"]
2328    #[inline(always)]
2329    pub const fn ptr() -> *const sci0::RegisterBlock {
2330        Self::PTR
2331    }
2332}
2333impl Deref for SCI2 {
2334    type Target = sci0::RegisterBlock;
2335    #[inline(always)]
2336    fn deref(&self) -> &Self::Target {
2337        unsafe { &*Self::PTR }
2338    }
2339}
2340impl core::fmt::Debug for SCI2 {
2341    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2342        f.debug_struct("SCI2").finish()
2343    }
2344}
2345#[doc = "Serial Communication Interface 2"]
2346pub use self::sci0 as sci2;
2347#[doc = "Serial Communication Interface 3"]
2348pub struct SCI3 {
2349    _marker: PhantomData<*const ()>,
2350}
2351unsafe impl Send for SCI3 {}
2352impl SCI3 {
2353    #[doc = r"Pointer to the register block"]
2354    pub const PTR: *const sci0::RegisterBlock = 0x4007_0060 as *const _;
2355    #[doc = r"Return the pointer to the register block"]
2356    #[inline(always)]
2357    pub const fn ptr() -> *const sci0::RegisterBlock {
2358        Self::PTR
2359    }
2360}
2361impl Deref for SCI3 {
2362    type Target = sci0::RegisterBlock;
2363    #[inline(always)]
2364    fn deref(&self) -> &Self::Target {
2365        unsafe { &*Self::PTR }
2366    }
2367}
2368impl core::fmt::Debug for SCI3 {
2369    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2370        f.debug_struct("SCI3").finish()
2371    }
2372}
2373#[doc = "Serial Communication Interface 3"]
2374pub use self::sci0 as sci3;
2375#[doc = "Serial Communication Interface 4"]
2376pub struct SCI4 {
2377    _marker: PhantomData<*const ()>,
2378}
2379unsafe impl Send for SCI4 {}
2380impl SCI4 {
2381    #[doc = r"Pointer to the register block"]
2382    pub const PTR: *const sci0::RegisterBlock = 0x4007_0080 as *const _;
2383    #[doc = r"Return the pointer to the register block"]
2384    #[inline(always)]
2385    pub const fn ptr() -> *const sci0::RegisterBlock {
2386        Self::PTR
2387    }
2388}
2389impl Deref for SCI4 {
2390    type Target = sci0::RegisterBlock;
2391    #[inline(always)]
2392    fn deref(&self) -> &Self::Target {
2393        unsafe { &*Self::PTR }
2394    }
2395}
2396impl core::fmt::Debug for SCI4 {
2397    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2398        f.debug_struct("SCI4").finish()
2399    }
2400}
2401#[doc = "Serial Communication Interface 4"]
2402pub use self::sci0 as sci4;
2403#[doc = "Serial Communication Interface 8"]
2404pub struct SCI8 {
2405    _marker: PhantomData<*const ()>,
2406}
2407unsafe impl Send for SCI8 {}
2408impl SCI8 {
2409    #[doc = r"Pointer to the register block"]
2410    pub const PTR: *const sci0::RegisterBlock = 0x4007_0100 as *const _;
2411    #[doc = r"Return the pointer to the register block"]
2412    #[inline(always)]
2413    pub const fn ptr() -> *const sci0::RegisterBlock {
2414        Self::PTR
2415    }
2416}
2417impl Deref for SCI8 {
2418    type Target = sci0::RegisterBlock;
2419    #[inline(always)]
2420    fn deref(&self) -> &Self::Target {
2421        unsafe { &*Self::PTR }
2422    }
2423}
2424impl core::fmt::Debug for SCI8 {
2425    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2426        f.debug_struct("SCI8").finish()
2427    }
2428}
2429#[doc = "Serial Communication Interface 8"]
2430pub use self::sci0 as sci8;
2431#[doc = "Serial Communication Interface 9"]
2432pub struct SCI9 {
2433    _marker: PhantomData<*const ()>,
2434}
2435unsafe impl Send for SCI9 {}
2436impl SCI9 {
2437    #[doc = r"Pointer to the register block"]
2438    pub const PTR: *const sci0::RegisterBlock = 0x4007_0120 as *const _;
2439    #[doc = r"Return the pointer to the register block"]
2440    #[inline(always)]
2441    pub const fn ptr() -> *const sci0::RegisterBlock {
2442        Self::PTR
2443    }
2444}
2445impl Deref for SCI9 {
2446    type Target = sci0::RegisterBlock;
2447    #[inline(always)]
2448    fn deref(&self) -> &Self::Target {
2449        unsafe { &*Self::PTR }
2450    }
2451}
2452impl core::fmt::Debug for SCI9 {
2453    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2454        f.debug_struct("SCI9").finish()
2455    }
2456}
2457#[doc = "Serial Communication Interface 9"]
2458pub use self::sci0 as sci9;
2459#[doc = "General PWM Timer 8"]
2460pub struct GPT328 {
2461    _marker: PhantomData<*const ()>,
2462}
2463unsafe impl Send for GPT328 {}
2464impl GPT328 {
2465    #[doc = r"Pointer to the register block"]
2466    pub const PTR: *const gpt328::RegisterBlock = 0x4007_8800 as *const _;
2467    #[doc = r"Return the pointer to the register block"]
2468    #[inline(always)]
2469    pub const fn ptr() -> *const gpt328::RegisterBlock {
2470        Self::PTR
2471    }
2472}
2473impl Deref for GPT328 {
2474    type Target = gpt328::RegisterBlock;
2475    #[inline(always)]
2476    fn deref(&self) -> &Self::Target {
2477        unsafe { &*Self::PTR }
2478    }
2479}
2480impl core::fmt::Debug for GPT328 {
2481    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2482        f.debug_struct("GPT328").finish()
2483    }
2484}
2485#[doc = "General PWM Timer 8"]
2486pub mod gpt328;
2487#[doc = "General PWM Timer 9"]
2488pub struct GPT329 {
2489    _marker: PhantomData<*const ()>,
2490}
2491unsafe impl Send for GPT329 {}
2492impl GPT329 {
2493    #[doc = r"Pointer to the register block"]
2494    pub const PTR: *const gpt328::RegisterBlock = 0x4007_8900 as *const _;
2495    #[doc = r"Return the pointer to the register block"]
2496    #[inline(always)]
2497    pub const fn ptr() -> *const gpt328::RegisterBlock {
2498        Self::PTR
2499    }
2500}
2501impl Deref for GPT329 {
2502    type Target = gpt328::RegisterBlock;
2503    #[inline(always)]
2504    fn deref(&self) -> &Self::Target {
2505        unsafe { &*Self::PTR }
2506    }
2507}
2508impl core::fmt::Debug for GPT329 {
2509    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2510        f.debug_struct("GPT329").finish()
2511    }
2512}
2513#[doc = "General PWM Timer 9"]
2514pub use self::gpt328 as gpt329;
2515#[doc = "General PWM Timer 10"]
2516pub struct GPT3210 {
2517    _marker: PhantomData<*const ()>,
2518}
2519unsafe impl Send for GPT3210 {}
2520impl GPT3210 {
2521    #[doc = r"Pointer to the register block"]
2522    pub const PTR: *const gpt328::RegisterBlock = 0x4007_8a00 as *const _;
2523    #[doc = r"Return the pointer to the register block"]
2524    #[inline(always)]
2525    pub const fn ptr() -> *const gpt328::RegisterBlock {
2526        Self::PTR
2527    }
2528}
2529impl Deref for GPT3210 {
2530    type Target = gpt328::RegisterBlock;
2531    #[inline(always)]
2532    fn deref(&self) -> &Self::Target {
2533        unsafe { &*Self::PTR }
2534    }
2535}
2536impl core::fmt::Debug for GPT3210 {
2537    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2538        f.debug_struct("GPT3210").finish()
2539    }
2540}
2541#[doc = "General PWM Timer 10"]
2542pub use self::gpt328 as gpt3210;
2543#[doc = "General PWM Timer 11"]
2544pub struct GPT3211 {
2545    _marker: PhantomData<*const ()>,
2546}
2547unsafe impl Send for GPT3211 {}
2548impl GPT3211 {
2549    #[doc = r"Pointer to the register block"]
2550    pub const PTR: *const gpt328::RegisterBlock = 0x4007_8b00 as *const _;
2551    #[doc = r"Return the pointer to the register block"]
2552    #[inline(always)]
2553    pub const fn ptr() -> *const gpt328::RegisterBlock {
2554        Self::PTR
2555    }
2556}
2557impl Deref for GPT3211 {
2558    type Target = gpt328::RegisterBlock;
2559    #[inline(always)]
2560    fn deref(&self) -> &Self::Target {
2561        unsafe { &*Self::PTR }
2562    }
2563}
2564impl core::fmt::Debug for GPT3211 {
2565    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2566        f.debug_struct("GPT3211").finish()
2567    }
2568}
2569#[doc = "General PWM Timer 11"]
2570pub use self::gpt328 as gpt3211;
2571#[doc = "General PWM Timer 12"]
2572pub struct GPT3212 {
2573    _marker: PhantomData<*const ()>,
2574}
2575unsafe impl Send for GPT3212 {}
2576impl GPT3212 {
2577    #[doc = r"Pointer to the register block"]
2578    pub const PTR: *const gpt328::RegisterBlock = 0x4007_8c00 as *const _;
2579    #[doc = r"Return the pointer to the register block"]
2580    #[inline(always)]
2581    pub const fn ptr() -> *const gpt328::RegisterBlock {
2582        Self::PTR
2583    }
2584}
2585impl Deref for GPT3212 {
2586    type Target = gpt328::RegisterBlock;
2587    #[inline(always)]
2588    fn deref(&self) -> &Self::Target {
2589        unsafe { &*Self::PTR }
2590    }
2591}
2592impl core::fmt::Debug for GPT3212 {
2593    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2594        f.debug_struct("GPT3212").finish()
2595    }
2596}
2597#[doc = "General PWM Timer 12"]
2598pub use self::gpt328 as gpt3212;
2599#[doc = "12bit A/D Converter 0"]
2600pub struct ADC120 {
2601    _marker: PhantomData<*const ()>,
2602}
2603unsafe impl Send for ADC120 {}
2604impl ADC120 {
2605    #[doc = r"Pointer to the register block"]
2606    pub const PTR: *const adc120::RegisterBlock = 0x4005_c000 as *const _;
2607    #[doc = r"Return the pointer to the register block"]
2608    #[inline(always)]
2609    pub const fn ptr() -> *const adc120::RegisterBlock {
2610        Self::PTR
2611    }
2612}
2613impl Deref for ADC120 {
2614    type Target = adc120::RegisterBlock;
2615    #[inline(always)]
2616    fn deref(&self) -> &Self::Target {
2617        unsafe { &*Self::PTR }
2618    }
2619}
2620impl core::fmt::Debug for ADC120 {
2621    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2622        f.debug_struct("ADC120").finish()
2623    }
2624}
2625#[doc = "12bit A/D Converter 0"]
2626pub mod adc120;
2627#[doc = "12bit A/D Converter 1"]
2628pub struct ADC121 {
2629    _marker: PhantomData<*const ()>,
2630}
2631unsafe impl Send for ADC121 {}
2632impl ADC121 {
2633    #[doc = r"Pointer to the register block"]
2634    pub const PTR: *const adc121::RegisterBlock = 0x4005_c200 as *const _;
2635    #[doc = r"Return the pointer to the register block"]
2636    #[inline(always)]
2637    pub const fn ptr() -> *const adc121::RegisterBlock {
2638        Self::PTR
2639    }
2640}
2641impl Deref for ADC121 {
2642    type Target = adc121::RegisterBlock;
2643    #[inline(always)]
2644    fn deref(&self) -> &Self::Target {
2645        unsafe { &*Self::PTR }
2646    }
2647}
2648impl core::fmt::Debug for ADC121 {
2649    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2650        f.debug_struct("ADC121").finish()
2651    }
2652}
2653#[doc = "12bit A/D Converter 1"]
2654pub mod adc121;
2655#[doc = "Bus Master MPU"]
2656pub struct MMPU {
2657    _marker: PhantomData<*const ()>,
2658}
2659unsafe impl Send for MMPU {}
2660impl MMPU {
2661    #[doc = r"Pointer to the register block"]
2662    pub const PTR: *const mmpu::RegisterBlock = 0x4000_0000 as *const _;
2663    #[doc = r"Return the pointer to the register block"]
2664    #[inline(always)]
2665    pub const fn ptr() -> *const mmpu::RegisterBlock {
2666        Self::PTR
2667    }
2668}
2669impl Deref for MMPU {
2670    type Target = mmpu::RegisterBlock;
2671    #[inline(always)]
2672    fn deref(&self) -> &Self::Target {
2673        unsafe { &*Self::PTR }
2674    }
2675}
2676impl core::fmt::Debug for MMPU {
2677    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2678        f.debug_struct("MMPU").finish()
2679    }
2680}
2681#[doc = "Bus Master MPU"]
2682pub mod mmpu;
2683#[doc = "Bus Slave MPU"]
2684pub struct SMPU {
2685    _marker: PhantomData<*const ()>,
2686}
2687unsafe impl Send for SMPU {}
2688impl SMPU {
2689    #[doc = r"Pointer to the register block"]
2690    pub const PTR: *const smpu::RegisterBlock = 0x4000_0c00 as *const _;
2691    #[doc = r"Return the pointer to the register block"]
2692    #[inline(always)]
2693    pub const fn ptr() -> *const smpu::RegisterBlock {
2694        Self::PTR
2695    }
2696}
2697impl Deref for SMPU {
2698    type Target = smpu::RegisterBlock;
2699    #[inline(always)]
2700    fn deref(&self) -> &Self::Target {
2701        unsafe { &*Self::PTR }
2702    }
2703}
2704impl core::fmt::Debug for SMPU {
2705    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2706        f.debug_struct("SMPU").finish()
2707    }
2708}
2709#[doc = "Bus Slave MPU"]
2710pub mod smpu;
2711#[doc = "CPU Stack Pointer Monitor"]
2712pub struct SPMON {
2713    _marker: PhantomData<*const ()>,
2714}
2715unsafe impl Send for SPMON {}
2716impl SPMON {
2717    #[doc = r"Pointer to the register block"]
2718    pub const PTR: *const spmon::RegisterBlock = 0x4000_0d00 as *const _;
2719    #[doc = r"Return the pointer to the register block"]
2720    #[inline(always)]
2721    pub const fn ptr() -> *const spmon::RegisterBlock {
2722        Self::PTR
2723    }
2724}
2725impl Deref for SPMON {
2726    type Target = spmon::RegisterBlock;
2727    #[inline(always)]
2728    fn deref(&self) -> &Self::Target {
2729        unsafe { &*Self::PTR }
2730    }
2731}
2732impl core::fmt::Debug for SPMON {
2733    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2734        f.debug_struct("SPMON").finish()
2735    }
2736}
2737#[doc = "CPU Stack Pointer Monitor"]
2738pub mod spmon;
2739#[doc = "Temperature Sensor Data"]
2740pub struct TSD {
2741    _marker: PhantomData<*const ()>,
2742}
2743unsafe impl Send for TSD {}
2744impl TSD {
2745    #[doc = r"Pointer to the register block"]
2746    pub const PTR: *const tsd::RegisterBlock = 0x407f_b17c as *const _;
2747    #[doc = r"Return the pointer to the register block"]
2748    #[inline(always)]
2749    pub const fn ptr() -> *const tsd::RegisterBlock {
2750        Self::PTR
2751    }
2752}
2753impl Deref for TSD {
2754    type Target = tsd::RegisterBlock;
2755    #[inline(always)]
2756    fn deref(&self) -> &Self::Target {
2757        unsafe { &*Self::PTR }
2758    }
2759}
2760impl core::fmt::Debug for TSD {
2761    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2762        f.debug_struct("TSD").finish()
2763    }
2764}
2765#[doc = "Temperature Sensor Data"]
2766pub mod tsd;
2767#[no_mangle]
2768static mut DEVICE_PERIPHERALS: bool = false;
2769#[doc = r" All the peripherals."]
2770#[allow(non_snake_case)]
2771pub struct Peripherals {
2772    #[doc = "DAC12"]
2773    pub DAC12: DAC12,
2774    #[doc = "ACMPHS0"]
2775    pub ACMPHS0: ACMPHS0,
2776    #[doc = "ACMPHS1"]
2777    pub ACMPHS1: ACMPHS1,
2778    #[doc = "ACMPHS2"]
2779    pub ACMPHS2: ACMPHS2,
2780    #[doc = "ACMPHS3"]
2781    pub ACMPHS3: ACMPHS3,
2782    #[doc = "ACMPHS4"]
2783    pub ACMPHS4: ACMPHS4,
2784    #[doc = "ACMPHS5"]
2785    pub ACMPHS5: ACMPHS5,
2786    #[doc = "TSN"]
2787    pub TSN: TSN,
2788    #[doc = "CRC"]
2789    pub CRC: CRC,
2790    #[doc = "ELC"]
2791    pub ELC: ELC,
2792    #[doc = "CAC"]
2793    pub CAC: CAC,
2794    #[doc = "DOC"]
2795    pub DOC: DOC,
2796    #[doc = "IWDT"]
2797    pub IWDT: IWDT,
2798    #[doc = "KINT"]
2799    pub KINT: KINT,
2800    #[doc = "WDT"]
2801    pub WDT: WDT,
2802    #[doc = "CAN0"]
2803    pub CAN0: CAN0,
2804    #[doc = "CAN1"]
2805    pub CAN1: CAN1,
2806    #[doc = "IRDA"]
2807    pub IRDA: IRDA,
2808    #[doc = "SPI0"]
2809    pub SPI0: SPI0,
2810    #[doc = "SPI1"]
2811    pub SPI1: SPI1,
2812    #[doc = "SRCRAM"]
2813    pub SRCRAM: SRCRAM,
2814    #[doc = "SRC"]
2815    pub SRC: SRC,
2816    #[doc = "DBG"]
2817    pub DBG: DBG,
2818    #[doc = "DMAC0"]
2819    pub DMAC0: DMAC0,
2820    #[doc = "DMAC1"]
2821    pub DMAC1: DMAC1,
2822    #[doc = "DMAC2"]
2823    pub DMAC2: DMAC2,
2824    #[doc = "DMAC3"]
2825    pub DMAC3: DMAC3,
2826    #[doc = "DMAC4"]
2827    pub DMAC4: DMAC4,
2828    #[doc = "DMAC5"]
2829    pub DMAC5: DMAC5,
2830    #[doc = "DMAC6"]
2831    pub DMAC6: DMAC6,
2832    #[doc = "DMAC7"]
2833    pub DMAC7: DMAC7,
2834    #[doc = "DMA"]
2835    pub DMA: DMA,
2836    #[doc = "DTC"]
2837    pub DTC: DTC,
2838    #[doc = "MMF"]
2839    pub MMF: MMF,
2840    #[doc = "SRAM"]
2841    pub SRAM: SRAM,
2842    #[doc = "FCACHE"]
2843    pub FCACHE: FCACHE,
2844    #[doc = "SYSTEM"]
2845    pub SYSTEM: SYSTEM,
2846    #[doc = "MSTP"]
2847    pub MSTP: MSTP,
2848    #[doc = "AGT0"]
2849    pub AGT0: AGT0,
2850    #[doc = "AGT1"]
2851    pub AGT1: AGT1,
2852    #[doc = "GPT_OPS"]
2853    pub GPT_OPS: GPT_OPS,
2854    #[doc = "GPT32EH0"]
2855    pub GPT32EH0: GPT32EH0,
2856    #[doc = "GPT32EH1"]
2857    pub GPT32EH1: GPT32EH1,
2858    #[doc = "GPT32EH2"]
2859    pub GPT32EH2: GPT32EH2,
2860    #[doc = "GPT32EH3"]
2861    pub GPT32EH3: GPT32EH3,
2862    #[doc = "GPT32E4"]
2863    pub GPT32E4: GPT32E4,
2864    #[doc = "GPT32E5"]
2865    pub GPT32E5: GPT32E5,
2866    #[doc = "GPT32E6"]
2867    pub GPT32E6: GPT32E6,
2868    #[doc = "GPT32E7"]
2869    pub GPT32E7: GPT32E7,
2870    #[doc = "POEG"]
2871    pub POEG: POEG,
2872    #[doc = "GPT_ODC"]
2873    pub GPT_ODC: GPT_ODC,
2874    #[doc = "BUS"]
2875    pub BUS: BUS,
2876    #[doc = "ICU"]
2877    pub ICU: ICU,
2878    #[doc = "PORT0"]
2879    pub PORT0: PORT0,
2880    #[doc = "PORT1"]
2881    pub PORT1: PORT1,
2882    #[doc = "PORT2"]
2883    pub PORT2: PORT2,
2884    #[doc = "PORT3"]
2885    pub PORT3: PORT3,
2886    #[doc = "PORT4"]
2887    pub PORT4: PORT4,
2888    #[doc = "PORT5"]
2889    pub PORT5: PORT5,
2890    #[doc = "PORT6"]
2891    pub PORT6: PORT6,
2892    #[doc = "PORT7"]
2893    pub PORT7: PORT7,
2894    #[doc = "PFS"]
2895    pub PFS: PFS,
2896    #[doc = "PMISC"]
2897    pub PMISC: PMISC,
2898    #[doc = "IIC0"]
2899    pub IIC0: IIC0,
2900    #[doc = "IIC1"]
2901    pub IIC1: IIC1,
2902    #[doc = "SCI0"]
2903    pub SCI0: SCI0,
2904    #[doc = "SCI1"]
2905    pub SCI1: SCI1,
2906    #[doc = "SCI2"]
2907    pub SCI2: SCI2,
2908    #[doc = "SCI3"]
2909    pub SCI3: SCI3,
2910    #[doc = "SCI4"]
2911    pub SCI4: SCI4,
2912    #[doc = "SCI8"]
2913    pub SCI8: SCI8,
2914    #[doc = "SCI9"]
2915    pub SCI9: SCI9,
2916    #[doc = "GPT328"]
2917    pub GPT328: GPT328,
2918    #[doc = "GPT329"]
2919    pub GPT329: GPT329,
2920    #[doc = "GPT3210"]
2921    pub GPT3210: GPT3210,
2922    #[doc = "GPT3211"]
2923    pub GPT3211: GPT3211,
2924    #[doc = "GPT3212"]
2925    pub GPT3212: GPT3212,
2926    #[doc = "ADC120"]
2927    pub ADC120: ADC120,
2928    #[doc = "ADC121"]
2929    pub ADC121: ADC121,
2930    #[doc = "MMPU"]
2931    pub MMPU: MMPU,
2932    #[doc = "SMPU"]
2933    pub SMPU: SMPU,
2934    #[doc = "SPMON"]
2935    pub SPMON: SPMON,
2936    #[doc = "TSD"]
2937    pub TSD: TSD,
2938}
2939impl Peripherals {
2940    #[doc = r" Returns all the peripherals *once*."]
2941    #[cfg(feature = "critical-section")]
2942    #[inline]
2943    pub fn take() -> Option<Self> {
2944        critical_section::with(|_| {
2945            if unsafe { DEVICE_PERIPHERALS } {
2946                return None;
2947            }
2948            Some(unsafe { Peripherals::steal() })
2949        })
2950    }
2951    #[doc = r" Unchecked version of `Peripherals::take`."]
2952    #[doc = r""]
2953    #[doc = r" # Safety"]
2954    #[doc = r""]
2955    #[doc = r" Each of the returned peripherals must be used at most once."]
2956    #[inline]
2957    pub unsafe fn steal() -> Self {
2958        DEVICE_PERIPHERALS = true;
2959        Peripherals {
2960            DAC12: DAC12 {
2961                _marker: PhantomData,
2962            },
2963            ACMPHS0: ACMPHS0 {
2964                _marker: PhantomData,
2965            },
2966            ACMPHS1: ACMPHS1 {
2967                _marker: PhantomData,
2968            },
2969            ACMPHS2: ACMPHS2 {
2970                _marker: PhantomData,
2971            },
2972            ACMPHS3: ACMPHS3 {
2973                _marker: PhantomData,
2974            },
2975            ACMPHS4: ACMPHS4 {
2976                _marker: PhantomData,
2977            },
2978            ACMPHS5: ACMPHS5 {
2979                _marker: PhantomData,
2980            },
2981            TSN: TSN {
2982                _marker: PhantomData,
2983            },
2984            CRC: CRC {
2985                _marker: PhantomData,
2986            },
2987            ELC: ELC {
2988                _marker: PhantomData,
2989            },
2990            CAC: CAC {
2991                _marker: PhantomData,
2992            },
2993            DOC: DOC {
2994                _marker: PhantomData,
2995            },
2996            IWDT: IWDT {
2997                _marker: PhantomData,
2998            },
2999            KINT: KINT {
3000                _marker: PhantomData,
3001            },
3002            WDT: WDT {
3003                _marker: PhantomData,
3004            },
3005            CAN0: CAN0 {
3006                _marker: PhantomData,
3007            },
3008            CAN1: CAN1 {
3009                _marker: PhantomData,
3010            },
3011            IRDA: IRDA {
3012                _marker: PhantomData,
3013            },
3014            SPI0: SPI0 {
3015                _marker: PhantomData,
3016            },
3017            SPI1: SPI1 {
3018                _marker: PhantomData,
3019            },
3020            SRCRAM: SRCRAM {
3021                _marker: PhantomData,
3022            },
3023            SRC: SRC {
3024                _marker: PhantomData,
3025            },
3026            DBG: DBG {
3027                _marker: PhantomData,
3028            },
3029            DMAC0: DMAC0 {
3030                _marker: PhantomData,
3031            },
3032            DMAC1: DMAC1 {
3033                _marker: PhantomData,
3034            },
3035            DMAC2: DMAC2 {
3036                _marker: PhantomData,
3037            },
3038            DMAC3: DMAC3 {
3039                _marker: PhantomData,
3040            },
3041            DMAC4: DMAC4 {
3042                _marker: PhantomData,
3043            },
3044            DMAC5: DMAC5 {
3045                _marker: PhantomData,
3046            },
3047            DMAC6: DMAC6 {
3048                _marker: PhantomData,
3049            },
3050            DMAC7: DMAC7 {
3051                _marker: PhantomData,
3052            },
3053            DMA: DMA {
3054                _marker: PhantomData,
3055            },
3056            DTC: DTC {
3057                _marker: PhantomData,
3058            },
3059            MMF: MMF {
3060                _marker: PhantomData,
3061            },
3062            SRAM: SRAM {
3063                _marker: PhantomData,
3064            },
3065            FCACHE: FCACHE {
3066                _marker: PhantomData,
3067            },
3068            SYSTEM: SYSTEM {
3069                _marker: PhantomData,
3070            },
3071            MSTP: MSTP {
3072                _marker: PhantomData,
3073            },
3074            AGT0: AGT0 {
3075                _marker: PhantomData,
3076            },
3077            AGT1: AGT1 {
3078                _marker: PhantomData,
3079            },
3080            GPT_OPS: GPT_OPS {
3081                _marker: PhantomData,
3082            },
3083            GPT32EH0: GPT32EH0 {
3084                _marker: PhantomData,
3085            },
3086            GPT32EH1: GPT32EH1 {
3087                _marker: PhantomData,
3088            },
3089            GPT32EH2: GPT32EH2 {
3090                _marker: PhantomData,
3091            },
3092            GPT32EH3: GPT32EH3 {
3093                _marker: PhantomData,
3094            },
3095            GPT32E4: GPT32E4 {
3096                _marker: PhantomData,
3097            },
3098            GPT32E5: GPT32E5 {
3099                _marker: PhantomData,
3100            },
3101            GPT32E6: GPT32E6 {
3102                _marker: PhantomData,
3103            },
3104            GPT32E7: GPT32E7 {
3105                _marker: PhantomData,
3106            },
3107            POEG: POEG {
3108                _marker: PhantomData,
3109            },
3110            GPT_ODC: GPT_ODC {
3111                _marker: PhantomData,
3112            },
3113            BUS: BUS {
3114                _marker: PhantomData,
3115            },
3116            ICU: ICU {
3117                _marker: PhantomData,
3118            },
3119            PORT0: PORT0 {
3120                _marker: PhantomData,
3121            },
3122            PORT1: PORT1 {
3123                _marker: PhantomData,
3124            },
3125            PORT2: PORT2 {
3126                _marker: PhantomData,
3127            },
3128            PORT3: PORT3 {
3129                _marker: PhantomData,
3130            },
3131            PORT4: PORT4 {
3132                _marker: PhantomData,
3133            },
3134            PORT5: PORT5 {
3135                _marker: PhantomData,
3136            },
3137            PORT6: PORT6 {
3138                _marker: PhantomData,
3139            },
3140            PORT7: PORT7 {
3141                _marker: PhantomData,
3142            },
3143            PFS: PFS {
3144                _marker: PhantomData,
3145            },
3146            PMISC: PMISC {
3147                _marker: PhantomData,
3148            },
3149            IIC0: IIC0 {
3150                _marker: PhantomData,
3151            },
3152            IIC1: IIC1 {
3153                _marker: PhantomData,
3154            },
3155            SCI0: SCI0 {
3156                _marker: PhantomData,
3157            },
3158            SCI1: SCI1 {
3159                _marker: PhantomData,
3160            },
3161            SCI2: SCI2 {
3162                _marker: PhantomData,
3163            },
3164            SCI3: SCI3 {
3165                _marker: PhantomData,
3166            },
3167            SCI4: SCI4 {
3168                _marker: PhantomData,
3169            },
3170            SCI8: SCI8 {
3171                _marker: PhantomData,
3172            },
3173            SCI9: SCI9 {
3174                _marker: PhantomData,
3175            },
3176            GPT328: GPT328 {
3177                _marker: PhantomData,
3178            },
3179            GPT329: GPT329 {
3180                _marker: PhantomData,
3181            },
3182            GPT3210: GPT3210 {
3183                _marker: PhantomData,
3184            },
3185            GPT3211: GPT3211 {
3186                _marker: PhantomData,
3187            },
3188            GPT3212: GPT3212 {
3189                _marker: PhantomData,
3190            },
3191            ADC120: ADC120 {
3192                _marker: PhantomData,
3193            },
3194            ADC121: ADC121 {
3195                _marker: PhantomData,
3196            },
3197            MMPU: MMPU {
3198                _marker: PhantomData,
3199            },
3200            SMPU: SMPU {
3201                _marker: PhantomData,
3202            },
3203            SPMON: SPMON {
3204                _marker: PhantomData,
3205            },
3206            TSD: TSD {
3207                _marker: PhantomData,
3208            },
3209        }
3210    }
3211}