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