ra6e1_pac/
lib.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.20.00, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:50:30 +0000
19#![cfg_attr(not(feature = "tracing"), no_std)]
20#![allow(non_camel_case_types)]
21#![doc = "Arm Cortex-M33 based Microcontroller RA6E1 group"]
22pub mod common;
23pub use common::*;
24
25#[cfg(feature = "tracing")]
26pub mod reg_name;
27#[cfg(feature = "tracing")]
28pub mod tracing;
29
30#[cfg(feature = "adc120")]
31pub mod adc120;
32#[cfg(feature = "agt0")]
33pub mod agt0;
34#[cfg(feature = "bus")]
35pub mod bus;
36#[cfg(feature = "cac")]
37pub mod cac;
38#[cfg(feature = "cache")]
39pub mod cache;
40#[cfg(feature = "can0")]
41pub mod can0;
42#[cfg(feature = "cpscu")]
43pub mod cpscu;
44#[cfg(feature = "crc")]
45pub mod crc;
46#[cfg(feature = "dac12")]
47pub mod dac12;
48#[cfg(feature = "dbg")]
49pub mod dbg;
50#[cfg(feature = "dma")]
51pub mod dma;
52#[cfg(feature = "dmac0")]
53pub mod dmac0;
54#[cfg(feature = "doc")]
55pub mod doc;
56#[cfg(feature = "dtc")]
57pub mod dtc;
58#[cfg(feature = "edmac0")]
59pub mod edmac0;
60#[cfg(feature = "elc")]
61pub mod elc;
62#[cfg(feature = "etherc0")]
63pub mod etherc0;
64#[cfg(feature = "faci")]
65pub mod faci;
66#[cfg(feature = "fcache")]
67pub mod fcache;
68#[cfg(feature = "flad")]
69pub mod flad;
70#[cfg(feature = "gpt164")]
71pub mod gpt164;
72#[cfg(feature = "gpt321")]
73pub mod gpt321;
74#[cfg(feature = "icu")]
75pub mod icu;
76#[cfg(feature = "iic0")]
77pub mod iic0;
78#[cfg(feature = "iic0wu")]
79pub mod iic0wu;
80#[cfg(feature = "iwdt")]
81pub mod iwdt;
82#[cfg(feature = "mstp")]
83pub mod mstp;
84#[cfg(feature = "pfs")]
85pub mod pfs;
86#[cfg(feature = "poeg")]
87pub mod poeg;
88#[cfg(feature = "port0")]
89pub mod port0;
90#[cfg(feature = "port1")]
91pub mod port1;
92#[cfg(feature = "pscu")]
93pub mod pscu;
94#[cfg(feature = "qspi")]
95pub mod qspi;
96#[cfg(feature = "rmpu")]
97pub mod rmpu;
98#[cfg(feature = "rtc")]
99pub mod rtc;
100#[cfg(feature = "sci0")]
101pub mod sci0;
102#[cfg(feature = "sci1")]
103pub mod sci1;
104#[cfg(feature = "sci2")]
105pub mod sci2;
106#[cfg(feature = "sci3")]
107pub mod sci3;
108#[cfg(feature = "sdhi0")]
109pub mod sdhi0;
110#[cfg(feature = "spi0")]
111pub mod spi0;
112#[cfg(feature = "sram")]
113pub mod sram;
114#[cfg(feature = "ssie0")]
115pub mod ssie0;
116#[cfg(feature = "sysc")]
117pub mod sysc;
118#[cfg(feature = "tzf")]
119pub mod tzf;
120#[cfg(feature = "usbfs")]
121pub mod usbfs;
122#[cfg(feature = "wdt")]
123pub mod wdt;
124
125#[cfg(feature = "rmpu")]
126#[derive(Copy, Clone, Eq, PartialEq)]
127pub struct Rmpu {
128    ptr: *mut u8,
129}
130#[cfg(feature = "rmpu")]
131pub const RMPU: self::Rmpu = self::Rmpu {
132    ptr: 0x40000000u32 as _,
133};
134#[cfg(feature = "tzf")]
135#[derive(Copy, Clone, Eq, PartialEq)]
136pub struct Tzf {
137    ptr: *mut u8,
138}
139#[cfg(feature = "tzf")]
140pub const TZF: self::Tzf = self::Tzf {
141    ptr: 0x40000e00u32 as _,
142};
143#[cfg(feature = "sram")]
144#[derive(Copy, Clone, Eq, PartialEq)]
145pub struct Sram {
146    ptr: *mut u8,
147}
148#[cfg(feature = "sram")]
149pub const SRAM: self::Sram = self::Sram {
150    ptr: 0x40002000u32 as _,
151};
152#[cfg(feature = "bus")]
153#[derive(Copy, Clone, Eq, PartialEq)]
154pub struct Bus {
155    ptr: *mut u8,
156}
157#[cfg(feature = "bus")]
158pub const BUS: self::Bus = self::Bus {
159    ptr: 0x40003000u32 as _,
160};
161#[cfg(feature = "dmac0")]
162#[derive(Copy, Clone, Eq, PartialEq)]
163pub struct Dmac0 {
164    ptr: *mut u8,
165}
166#[cfg(feature = "dmac0")]
167pub const DMAC0: self::Dmac0 = self::Dmac0 {
168    ptr: 0x40005000u32 as _,
169};
170#[cfg(feature = "dmac1")]
171pub const DMAC1: self::Dmac0 = self::Dmac0 {
172    ptr: 0x40005040u32 as _,
173};
174#[cfg(feature = "dmac2")]
175pub const DMAC2: self::Dmac0 = self::Dmac0 {
176    ptr: 0x40005080u32 as _,
177};
178#[cfg(feature = "dmac3")]
179pub const DMAC3: self::Dmac0 = self::Dmac0 {
180    ptr: 0x400050c0u32 as _,
181};
182#[cfg(feature = "dmac4")]
183pub const DMAC4: self::Dmac0 = self::Dmac0 {
184    ptr: 0x40005100u32 as _,
185};
186#[cfg(feature = "dmac5")]
187pub const DMAC5: self::Dmac0 = self::Dmac0 {
188    ptr: 0x40005140u32 as _,
189};
190#[cfg(feature = "dmac6")]
191pub const DMAC6: self::Dmac0 = self::Dmac0 {
192    ptr: 0x40005180u32 as _,
193};
194#[cfg(feature = "dmac7")]
195pub const DMAC7: self::Dmac0 = self::Dmac0 {
196    ptr: 0x400051c0u32 as _,
197};
198#[cfg(feature = "dma")]
199#[derive(Copy, Clone, Eq, PartialEq)]
200pub struct Dma {
201    ptr: *mut u8,
202}
203#[cfg(feature = "dma")]
204pub const DMA: self::Dma = self::Dma {
205    ptr: 0x40005200u32 as _,
206};
207#[cfg(feature = "dtc")]
208#[derive(Copy, Clone, Eq, PartialEq)]
209pub struct Dtc {
210    ptr: *mut u8,
211}
212#[cfg(feature = "dtc")]
213pub const DTC: self::Dtc = self::Dtc {
214    ptr: 0x40005400u32 as _,
215};
216#[cfg(feature = "icu")]
217#[derive(Copy, Clone, Eq, PartialEq)]
218pub struct Icu {
219    ptr: *mut u8,
220}
221#[cfg(feature = "icu")]
222pub const ICU: self::Icu = self::Icu {
223    ptr: 0x40006000u32 as _,
224};
225#[cfg(feature = "cache")]
226#[derive(Copy, Clone, Eq, PartialEq)]
227pub struct Cache {
228    ptr: *mut u8,
229}
230#[cfg(feature = "cache")]
231pub const CACHE: self::Cache = self::Cache {
232    ptr: 0x40007000u32 as _,
233};
234#[cfg(feature = "cpscu")]
235#[derive(Copy, Clone, Eq, PartialEq)]
236pub struct Cpscu {
237    ptr: *mut u8,
238}
239#[cfg(feature = "cpscu")]
240pub const CPSCU: self::Cpscu = self::Cpscu {
241    ptr: 0x40008000u32 as _,
242};
243#[cfg(feature = "dbg")]
244#[derive(Copy, Clone, Eq, PartialEq)]
245pub struct Dbg {
246    ptr: *mut u8,
247}
248#[cfg(feature = "dbg")]
249pub const DBG: self::Dbg = self::Dbg {
250    ptr: 0x4001b000u32 as _,
251};
252#[cfg(feature = "fcache")]
253#[derive(Copy, Clone, Eq, PartialEq)]
254pub struct Fcache {
255    ptr: *mut u8,
256}
257#[cfg(feature = "fcache")]
258pub const FCACHE: self::Fcache = self::Fcache {
259    ptr: 0x4001c100u32 as _,
260};
261#[cfg(feature = "sysc")]
262#[derive(Copy, Clone, Eq, PartialEq)]
263pub struct Sysc {
264    ptr: *mut u8,
265}
266#[cfg(feature = "sysc")]
267pub const SYSC: self::Sysc = self::Sysc {
268    ptr: 0x4001e000u32 as _,
269};
270#[cfg(feature = "port0")]
271#[derive(Copy, Clone, Eq, PartialEq)]
272pub struct Port0 {
273    ptr: *mut u8,
274}
275#[cfg(feature = "port0")]
276pub const PORT0: self::Port0 = self::Port0 {
277    ptr: 0x40080000u32 as _,
278};
279#[cfg(feature = "port1")]
280#[derive(Copy, Clone, Eq, PartialEq)]
281pub struct Port1 {
282    ptr: *mut u8,
283}
284#[cfg(feature = "port1")]
285pub const PORT1: self::Port1 = self::Port1 {
286    ptr: 0x40080020u32 as _,
287};
288#[cfg(feature = "port2")]
289pub const PORT2: self::Port1 = self::Port1 {
290    ptr: 0x40080040u32 as _,
291};
292#[cfg(feature = "port3")]
293pub const PORT3: self::Port1 = self::Port1 {
294    ptr: 0x40080060u32 as _,
295};
296#[cfg(feature = "port4")]
297pub const PORT4: self::Port1 = self::Port1 {
298    ptr: 0x40080080u32 as _,
299};
300#[cfg(feature = "port5")]
301pub const PORT5: self::Port0 = self::Port0 {
302    ptr: 0x400800a0u32 as _,
303};
304#[cfg(feature = "port6")]
305pub const PORT6: self::Port0 = self::Port0 {
306    ptr: 0x400800c0u32 as _,
307};
308#[cfg(feature = "port7")]
309pub const PORT7: self::Port0 = self::Port0 {
310    ptr: 0x400800e0u32 as _,
311};
312#[cfg(feature = "port8")]
313pub const PORT8: self::Port0 = self::Port0 {
314    ptr: 0x40080100u32 as _,
315};
316#[cfg(feature = "pfs")]
317#[derive(Copy, Clone, Eq, PartialEq)]
318pub struct Pfs {
319    ptr: *mut u8,
320}
321#[cfg(feature = "pfs")]
322pub const PFS: self::Pfs = self::Pfs {
323    ptr: 0x40080800u32 as _,
324};
325#[cfg(feature = "elc")]
326#[derive(Copy, Clone, Eq, PartialEq)]
327pub struct Elc {
328    ptr: *mut u8,
329}
330#[cfg(feature = "elc")]
331pub const ELC: self::Elc = self::Elc {
332    ptr: 0x40082000u32 as _,
333};
334#[cfg(feature = "rtc")]
335#[derive(Copy, Clone, Eq, PartialEq)]
336pub struct Rtc {
337    ptr: *mut u8,
338}
339#[cfg(feature = "rtc")]
340pub const RTC: self::Rtc = self::Rtc {
341    ptr: 0x40083000u32 as _,
342};
343#[cfg(feature = "iwdt")]
344#[derive(Copy, Clone, Eq, PartialEq)]
345pub struct Iwdt {
346    ptr: *mut u8,
347}
348#[cfg(feature = "iwdt")]
349pub const IWDT: self::Iwdt = self::Iwdt {
350    ptr: 0x40083200u32 as _,
351};
352#[cfg(feature = "wdt")]
353#[derive(Copy, Clone, Eq, PartialEq)]
354pub struct Wdt {
355    ptr: *mut u8,
356}
357#[cfg(feature = "wdt")]
358pub const WDT: self::Wdt = self::Wdt {
359    ptr: 0x40083400u32 as _,
360};
361#[cfg(feature = "cac")]
362#[derive(Copy, Clone, Eq, PartialEq)]
363pub struct Cac {
364    ptr: *mut u8,
365}
366#[cfg(feature = "cac")]
367pub const CAC: self::Cac = self::Cac {
368    ptr: 0x40083600u32 as _,
369};
370#[cfg(feature = "mstp")]
371#[derive(Copy, Clone, Eq, PartialEq)]
372pub struct Mstp {
373    ptr: *mut u8,
374}
375#[cfg(feature = "mstp")]
376pub const MSTP: self::Mstp = self::Mstp {
377    ptr: 0x40084000u32 as _,
378};
379#[cfg(feature = "poeg")]
380#[derive(Copy, Clone, Eq, PartialEq)]
381pub struct Poeg {
382    ptr: *mut u8,
383}
384#[cfg(feature = "poeg")]
385pub const POEG: self::Poeg = self::Poeg {
386    ptr: 0x4008a000u32 as _,
387};
388#[cfg(feature = "usbfs")]
389#[derive(Copy, Clone, Eq, PartialEq)]
390pub struct Usbfs {
391    ptr: *mut u8,
392}
393#[cfg(feature = "usbfs")]
394pub const USBFS: self::Usbfs = self::Usbfs {
395    ptr: 0x40090000u32 as _,
396};
397#[cfg(feature = "sdhi0")]
398#[derive(Copy, Clone, Eq, PartialEq)]
399pub struct Sdhi0 {
400    ptr: *mut u8,
401}
402#[cfg(feature = "sdhi0")]
403pub const SDHI0: self::Sdhi0 = self::Sdhi0 {
404    ptr: 0x40092000u32 as _,
405};
406#[cfg(feature = "ssie0")]
407#[derive(Copy, Clone, Eq, PartialEq)]
408pub struct Ssie0 {
409    ptr: *mut u8,
410}
411#[cfg(feature = "ssie0")]
412pub const SSIE0: self::Ssie0 = self::Ssie0 {
413    ptr: 0x4009d000u32 as _,
414};
415#[cfg(feature = "iic0")]
416#[derive(Copy, Clone, Eq, PartialEq)]
417pub struct Iic0 {
418    ptr: *mut u8,
419}
420#[cfg(feature = "iic0")]
421pub const IIC0: self::Iic0 = self::Iic0 {
422    ptr: 0x4009f000u32 as _,
423};
424#[cfg(feature = "iic0wu")]
425#[derive(Copy, Clone, Eq, PartialEq)]
426pub struct Iic0Wu {
427    ptr: *mut u8,
428}
429#[cfg(feature = "iic0wu")]
430pub const IIC0WU: self::Iic0Wu = self::Iic0Wu {
431    ptr: 0x4009f014u32 as _,
432};
433#[cfg(feature = "iic1")]
434pub const IIC1: self::Iic0 = self::Iic0 {
435    ptr: 0x4009f100u32 as _,
436};
437#[cfg(feature = "can0")]
438#[derive(Copy, Clone, Eq, PartialEq)]
439pub struct Can0 {
440    ptr: *mut u8,
441}
442#[cfg(feature = "can0")]
443pub const CAN0: self::Can0 = self::Can0 {
444    ptr: 0x400a8000u32 as _,
445};
446#[cfg(feature = "pscu")]
447#[derive(Copy, Clone, Eq, PartialEq)]
448pub struct Pscu {
449    ptr: *mut u8,
450}
451#[cfg(feature = "pscu")]
452pub const PSCU: self::Pscu = self::Pscu {
453    ptr: 0x400e0000u32 as _,
454};
455#[cfg(feature = "agt0")]
456#[derive(Copy, Clone, Eq, PartialEq)]
457pub struct Agt0 {
458    ptr: *mut u8,
459}
460#[cfg(feature = "agt0")]
461pub const AGT0: self::Agt0 = self::Agt0 {
462    ptr: 0x400e8000u32 as _,
463};
464#[cfg(feature = "agt1")]
465pub const AGT1: self::Agt0 = self::Agt0 {
466    ptr: 0x400e8100u32 as _,
467};
468#[cfg(feature = "agt2")]
469pub const AGT2: self::Agt0 = self::Agt0 {
470    ptr: 0x400e8200u32 as _,
471};
472#[cfg(feature = "agt3")]
473pub const AGT3: self::Agt0 = self::Agt0 {
474    ptr: 0x400e8300u32 as _,
475};
476#[cfg(feature = "agt4")]
477pub const AGT4: self::Agt0 = self::Agt0 {
478    ptr: 0x400e8400u32 as _,
479};
480#[cfg(feature = "agt5")]
481pub const AGT5: self::Agt0 = self::Agt0 {
482    ptr: 0x400e8500u32 as _,
483};
484#[cfg(feature = "crc")]
485#[derive(Copy, Clone, Eq, PartialEq)]
486pub struct Crc {
487    ptr: *mut u8,
488}
489#[cfg(feature = "crc")]
490pub const CRC: self::Crc = self::Crc {
491    ptr: 0x40108000u32 as _,
492};
493#[cfg(feature = "doc")]
494#[derive(Copy, Clone, Eq, PartialEq)]
495pub struct Doc {
496    ptr: *mut u8,
497}
498#[cfg(feature = "doc")]
499pub const DOC: self::Doc = self::Doc {
500    ptr: 0x40109000u32 as _,
501};
502#[cfg(feature = "edmac0")]
503#[derive(Copy, Clone, Eq, PartialEq)]
504pub struct Edmac0 {
505    ptr: *mut u8,
506}
507#[cfg(feature = "edmac0")]
508pub const EDMAC0: self::Edmac0 = self::Edmac0 {
509    ptr: 0x40114000u32 as _,
510};
511#[cfg(feature = "etherc0")]
512#[derive(Copy, Clone, Eq, PartialEq)]
513pub struct Etherc0 {
514    ptr: *mut u8,
515}
516#[cfg(feature = "etherc0")]
517pub const ETHERC0: self::Etherc0 = self::Etherc0 {
518    ptr: 0x40114100u32 as _,
519};
520#[cfg(feature = "sci0")]
521#[derive(Copy, Clone, Eq, PartialEq)]
522pub struct Sci0 {
523    ptr: *mut u8,
524}
525#[cfg(feature = "sci0")]
526pub const SCI0: self::Sci0 = self::Sci0 {
527    ptr: 0x40118000u32 as _,
528};
529#[cfg(feature = "sci1")]
530#[derive(Copy, Clone, Eq, PartialEq)]
531pub struct Sci1 {
532    ptr: *mut u8,
533}
534#[cfg(feature = "sci1")]
535pub const SCI1: self::Sci1 = self::Sci1 {
536    ptr: 0x40118100u32 as _,
537};
538#[cfg(feature = "sci2")]
539#[derive(Copy, Clone, Eq, PartialEq)]
540pub struct Sci2 {
541    ptr: *mut u8,
542}
543#[cfg(feature = "sci2")]
544pub const SCI2: self::Sci2 = self::Sci2 {
545    ptr: 0x40118200u32 as _,
546};
547#[cfg(feature = "sci3")]
548#[derive(Copy, Clone, Eq, PartialEq)]
549pub struct Sci3 {
550    ptr: *mut u8,
551}
552#[cfg(feature = "sci3")]
553pub const SCI3: self::Sci3 = self::Sci3 {
554    ptr: 0x40118300u32 as _,
555};
556#[cfg(feature = "sci4")]
557pub const SCI4: self::Sci3 = self::Sci3 {
558    ptr: 0x40118400u32 as _,
559};
560#[cfg(feature = "sci9")]
561pub const SCI9: self::Sci0 = self::Sci0 {
562    ptr: 0x40118900u32 as _,
563};
564#[cfg(feature = "spi0")]
565#[derive(Copy, Clone, Eq, PartialEq)]
566pub struct Spi0 {
567    ptr: *mut u8,
568}
569#[cfg(feature = "spi0")]
570pub const SPI0: self::Spi0 = self::Spi0 {
571    ptr: 0x4011a000u32 as _,
572};
573#[cfg(feature = "spi1")]
574pub const SPI1: self::Spi0 = self::Spi0 {
575    ptr: 0x4011a100u32 as _,
576};
577#[cfg(feature = "gpt321")]
578#[derive(Copy, Clone, Eq, PartialEq)]
579pub struct Gpt321 {
580    ptr: *mut u8,
581}
582#[cfg(feature = "gpt321")]
583pub const GPT321: self::Gpt321 = self::Gpt321 {
584    ptr: 0x40169100u32 as _,
585};
586#[cfg(feature = "gpt322")]
587pub const GPT322: self::Gpt321 = self::Gpt321 {
588    ptr: 0x40169200u32 as _,
589};
590#[cfg(feature = "gpt164")]
591#[derive(Copy, Clone, Eq, PartialEq)]
592pub struct Gpt164 {
593    ptr: *mut u8,
594}
595#[cfg(feature = "gpt164")]
596pub const GPT164: self::Gpt164 = self::Gpt164 {
597    ptr: 0x40169400u32 as _,
598};
599#[cfg(feature = "gpt165")]
600pub const GPT165: self::Gpt164 = self::Gpt164 {
601    ptr: 0x40169500u32 as _,
602};
603#[cfg(feature = "gpt166")]
604pub const GPT166: self::Gpt164 = self::Gpt164 {
605    ptr: 0x40169600u32 as _,
606};
607#[cfg(feature = "gpt167")]
608pub const GPT167: self::Gpt164 = self::Gpt164 {
609    ptr: 0x40169700u32 as _,
610};
611#[cfg(feature = "adc120")]
612#[derive(Copy, Clone, Eq, PartialEq)]
613pub struct Adc120 {
614    ptr: *mut u8,
615}
616#[cfg(feature = "adc120")]
617pub const ADC120: self::Adc120 = self::Adc120 {
618    ptr: 0x40170000u32 as _,
619};
620#[cfg(feature = "dac12")]
621#[derive(Copy, Clone, Eq, PartialEq)]
622pub struct Dac12 {
623    ptr: *mut u8,
624}
625#[cfg(feature = "dac12")]
626pub const DAC12: self::Dac12 = self::Dac12 {
627    ptr: 0x40171000u32 as _,
628};
629#[cfg(feature = "flad")]
630#[derive(Copy, Clone, Eq, PartialEq)]
631pub struct Flad {
632    ptr: *mut u8,
633}
634#[cfg(feature = "flad")]
635pub const FLAD: self::Flad = self::Flad {
636    ptr: 0x407fc000u32 as _,
637};
638#[cfg(feature = "faci")]
639#[derive(Copy, Clone, Eq, PartialEq)]
640pub struct Faci {
641    ptr: *mut u8,
642}
643#[cfg(feature = "faci")]
644pub const FACI: self::Faci = self::Faci {
645    ptr: 0x407fe000u32 as _,
646};
647#[cfg(feature = "qspi")]
648#[derive(Copy, Clone, Eq, PartialEq)]
649pub struct Qspi {
650    ptr: *mut u8,
651}
652#[cfg(feature = "qspi")]
653pub const QSPI: self::Qspi = self::Qspi {
654    ptr: 0x64000000u32 as _,
655};
656
657pub use cortex_m::peripheral::Peripherals as CorePeripherals;
658pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, MPU, NVIC, SCB, SYST, TPIU};
659#[doc = "Number available in the NVIC for configuring priority"]
660pub const NVIC_PRIO_BITS: u8 = 4;
661#[doc(hidden)]
662pub union Vector {
663    _handler: unsafe extern "C" fn(),
664    _reserved: u32,
665}
666#[cfg(feature = "rt")]
667pub use self::Interrupt as interrupt;
668#[cfg(feature = "rt")]
669pub use cortex_m_rt::interrupt;
670#[cfg(feature = "rt")]
671pub mod interrupt_handlers {
672    unsafe extern "C" {
673        pub fn IEL0();
674        pub fn IEL1();
675        pub fn IEL2();
676        pub fn IEL3();
677        pub fn IEL4();
678        pub fn IEL5();
679        pub fn IEL6();
680        pub fn IEL7();
681        pub fn IEL8();
682        pub fn IEL9();
683        pub fn IEL10();
684        pub fn IEL11();
685        pub fn IEL12();
686        pub fn IEL13();
687        pub fn IEL14();
688        pub fn IEL15();
689        pub fn IEL16();
690        pub fn IEL17();
691        pub fn IEL18();
692        pub fn IEL19();
693        pub fn IEL20();
694        pub fn IEL21();
695        pub fn IEL22();
696        pub fn IEL23();
697        pub fn IEL24();
698        pub fn IEL25();
699        pub fn IEL26();
700        pub fn IEL27();
701        pub fn IEL28();
702        pub fn IEL29();
703        pub fn IEL30();
704        pub fn IEL31();
705        pub fn IEL32();
706        pub fn IEL33();
707        pub fn IEL34();
708        pub fn IEL35();
709        pub fn IEL36();
710        pub fn IEL37();
711        pub fn IEL38();
712        pub fn IEL39();
713        pub fn IEL40();
714        pub fn IEL41();
715        pub fn IEL42();
716        pub fn IEL43();
717        pub fn IEL44();
718        pub fn IEL45();
719        pub fn IEL46();
720        pub fn IEL47();
721        pub fn IEL48();
722        pub fn IEL49();
723        pub fn IEL50();
724        pub fn IEL51();
725        pub fn IEL52();
726        pub fn IEL53();
727        pub fn IEL54();
728        pub fn IEL55();
729        pub fn IEL56();
730        pub fn IEL57();
731        pub fn IEL58();
732        pub fn IEL59();
733        pub fn IEL60();
734        pub fn IEL61();
735        pub fn IEL62();
736        pub fn IEL63();
737        pub fn IEL64();
738        pub fn IEL65();
739        pub fn IEL66();
740        pub fn IEL67();
741        pub fn IEL68();
742        pub fn IEL69();
743        pub fn IEL70();
744        pub fn IEL71();
745        pub fn IEL72();
746        pub fn IEL73();
747        pub fn IEL74();
748        pub fn IEL75();
749        pub fn IEL76();
750        pub fn IEL77();
751        pub fn IEL78();
752        pub fn IEL79();
753        pub fn IEL80();
754        pub fn IEL81();
755        pub fn IEL82();
756        pub fn IEL83();
757        pub fn IEL84();
758        pub fn IEL85();
759        pub fn IEL86();
760        pub fn IEL87();
761        pub fn IEL88();
762        pub fn IEL89();
763        pub fn IEL90();
764        pub fn IEL91();
765        pub fn IEL92();
766        pub fn IEL93();
767        pub fn IEL94();
768        pub fn IEL95();
769    }
770}
771#[cfg(feature = "rt")]
772#[doc(hidden)]
773#[unsafe(link_section = ".vector_table.interrupts")]
774#[unsafe(no_mangle)]
775pub static __INTERRUPTS: [Vector; 96] = [
776    Vector {
777        _handler: interrupt_handlers::IEL0,
778    },
779    Vector {
780        _handler: interrupt_handlers::IEL1,
781    },
782    Vector {
783        _handler: interrupt_handlers::IEL2,
784    },
785    Vector {
786        _handler: interrupt_handlers::IEL3,
787    },
788    Vector {
789        _handler: interrupt_handlers::IEL4,
790    },
791    Vector {
792        _handler: interrupt_handlers::IEL5,
793    },
794    Vector {
795        _handler: interrupt_handlers::IEL6,
796    },
797    Vector {
798        _handler: interrupt_handlers::IEL7,
799    },
800    Vector {
801        _handler: interrupt_handlers::IEL8,
802    },
803    Vector {
804        _handler: interrupt_handlers::IEL9,
805    },
806    Vector {
807        _handler: interrupt_handlers::IEL10,
808    },
809    Vector {
810        _handler: interrupt_handlers::IEL11,
811    },
812    Vector {
813        _handler: interrupt_handlers::IEL12,
814    },
815    Vector {
816        _handler: interrupt_handlers::IEL13,
817    },
818    Vector {
819        _handler: interrupt_handlers::IEL14,
820    },
821    Vector {
822        _handler: interrupt_handlers::IEL15,
823    },
824    Vector {
825        _handler: interrupt_handlers::IEL16,
826    },
827    Vector {
828        _handler: interrupt_handlers::IEL17,
829    },
830    Vector {
831        _handler: interrupt_handlers::IEL18,
832    },
833    Vector {
834        _handler: interrupt_handlers::IEL19,
835    },
836    Vector {
837        _handler: interrupt_handlers::IEL20,
838    },
839    Vector {
840        _handler: interrupt_handlers::IEL21,
841    },
842    Vector {
843        _handler: interrupt_handlers::IEL22,
844    },
845    Vector {
846        _handler: interrupt_handlers::IEL23,
847    },
848    Vector {
849        _handler: interrupt_handlers::IEL24,
850    },
851    Vector {
852        _handler: interrupt_handlers::IEL25,
853    },
854    Vector {
855        _handler: interrupt_handlers::IEL26,
856    },
857    Vector {
858        _handler: interrupt_handlers::IEL27,
859    },
860    Vector {
861        _handler: interrupt_handlers::IEL28,
862    },
863    Vector {
864        _handler: interrupt_handlers::IEL29,
865    },
866    Vector {
867        _handler: interrupt_handlers::IEL30,
868    },
869    Vector {
870        _handler: interrupt_handlers::IEL31,
871    },
872    Vector {
873        _handler: interrupt_handlers::IEL32,
874    },
875    Vector {
876        _handler: interrupt_handlers::IEL33,
877    },
878    Vector {
879        _handler: interrupt_handlers::IEL34,
880    },
881    Vector {
882        _handler: interrupt_handlers::IEL35,
883    },
884    Vector {
885        _handler: interrupt_handlers::IEL36,
886    },
887    Vector {
888        _handler: interrupt_handlers::IEL37,
889    },
890    Vector {
891        _handler: interrupt_handlers::IEL38,
892    },
893    Vector {
894        _handler: interrupt_handlers::IEL39,
895    },
896    Vector {
897        _handler: interrupt_handlers::IEL40,
898    },
899    Vector {
900        _handler: interrupt_handlers::IEL41,
901    },
902    Vector {
903        _handler: interrupt_handlers::IEL42,
904    },
905    Vector {
906        _handler: interrupt_handlers::IEL43,
907    },
908    Vector {
909        _handler: interrupt_handlers::IEL44,
910    },
911    Vector {
912        _handler: interrupt_handlers::IEL45,
913    },
914    Vector {
915        _handler: interrupt_handlers::IEL46,
916    },
917    Vector {
918        _handler: interrupt_handlers::IEL47,
919    },
920    Vector {
921        _handler: interrupt_handlers::IEL48,
922    },
923    Vector {
924        _handler: interrupt_handlers::IEL49,
925    },
926    Vector {
927        _handler: interrupt_handlers::IEL50,
928    },
929    Vector {
930        _handler: interrupt_handlers::IEL51,
931    },
932    Vector {
933        _handler: interrupt_handlers::IEL52,
934    },
935    Vector {
936        _handler: interrupt_handlers::IEL53,
937    },
938    Vector {
939        _handler: interrupt_handlers::IEL54,
940    },
941    Vector {
942        _handler: interrupt_handlers::IEL55,
943    },
944    Vector {
945        _handler: interrupt_handlers::IEL56,
946    },
947    Vector {
948        _handler: interrupt_handlers::IEL57,
949    },
950    Vector {
951        _handler: interrupt_handlers::IEL58,
952    },
953    Vector {
954        _handler: interrupt_handlers::IEL59,
955    },
956    Vector {
957        _handler: interrupt_handlers::IEL60,
958    },
959    Vector {
960        _handler: interrupt_handlers::IEL61,
961    },
962    Vector {
963        _handler: interrupt_handlers::IEL62,
964    },
965    Vector {
966        _handler: interrupt_handlers::IEL63,
967    },
968    Vector {
969        _handler: interrupt_handlers::IEL64,
970    },
971    Vector {
972        _handler: interrupt_handlers::IEL65,
973    },
974    Vector {
975        _handler: interrupt_handlers::IEL66,
976    },
977    Vector {
978        _handler: interrupt_handlers::IEL67,
979    },
980    Vector {
981        _handler: interrupt_handlers::IEL68,
982    },
983    Vector {
984        _handler: interrupt_handlers::IEL69,
985    },
986    Vector {
987        _handler: interrupt_handlers::IEL70,
988    },
989    Vector {
990        _handler: interrupt_handlers::IEL71,
991    },
992    Vector {
993        _handler: interrupt_handlers::IEL72,
994    },
995    Vector {
996        _handler: interrupt_handlers::IEL73,
997    },
998    Vector {
999        _handler: interrupt_handlers::IEL74,
1000    },
1001    Vector {
1002        _handler: interrupt_handlers::IEL75,
1003    },
1004    Vector {
1005        _handler: interrupt_handlers::IEL76,
1006    },
1007    Vector {
1008        _handler: interrupt_handlers::IEL77,
1009    },
1010    Vector {
1011        _handler: interrupt_handlers::IEL78,
1012    },
1013    Vector {
1014        _handler: interrupt_handlers::IEL79,
1015    },
1016    Vector {
1017        _handler: interrupt_handlers::IEL80,
1018    },
1019    Vector {
1020        _handler: interrupt_handlers::IEL81,
1021    },
1022    Vector {
1023        _handler: interrupt_handlers::IEL82,
1024    },
1025    Vector {
1026        _handler: interrupt_handlers::IEL83,
1027    },
1028    Vector {
1029        _handler: interrupt_handlers::IEL84,
1030    },
1031    Vector {
1032        _handler: interrupt_handlers::IEL85,
1033    },
1034    Vector {
1035        _handler: interrupt_handlers::IEL86,
1036    },
1037    Vector {
1038        _handler: interrupt_handlers::IEL87,
1039    },
1040    Vector {
1041        _handler: interrupt_handlers::IEL88,
1042    },
1043    Vector {
1044        _handler: interrupt_handlers::IEL89,
1045    },
1046    Vector {
1047        _handler: interrupt_handlers::IEL90,
1048    },
1049    Vector {
1050        _handler: interrupt_handlers::IEL91,
1051    },
1052    Vector {
1053        _handler: interrupt_handlers::IEL92,
1054    },
1055    Vector {
1056        _handler: interrupt_handlers::IEL93,
1057    },
1058    Vector {
1059        _handler: interrupt_handlers::IEL94,
1060    },
1061    Vector {
1062        _handler: interrupt_handlers::IEL95,
1063    },
1064];
1065#[doc = "Enumeration of all the interrupts."]
1066#[derive(Copy, Clone, Debug, PartialEq, Eq)]
1067#[repr(u16)]
1068pub enum Interrupt {
1069    #[doc = "ICU Interrupt 0"]
1070    IEL0 = 0,
1071
1072    #[doc = "ICU Interrupt 1"]
1073    IEL1 = 1,
1074
1075    #[doc = "ICU Interrupt 2"]
1076    IEL2 = 2,
1077
1078    #[doc = "ICU Interrupt 3"]
1079    IEL3 = 3,
1080
1081    #[doc = "ICU Interrupt 4"]
1082    IEL4 = 4,
1083
1084    #[doc = "ICU Interrupt 5"]
1085    IEL5 = 5,
1086
1087    #[doc = "ICU Interrupt 6"]
1088    IEL6 = 6,
1089
1090    #[doc = "ICU Interrupt 7"]
1091    IEL7 = 7,
1092
1093    #[doc = "ICU Interrupt 8"]
1094    IEL8 = 8,
1095
1096    #[doc = "ICU Interrupt 9"]
1097    IEL9 = 9,
1098
1099    #[doc = "ICU Interrupt 10"]
1100    IEL10 = 10,
1101
1102    #[doc = "ICU Interrupt 11"]
1103    IEL11 = 11,
1104
1105    #[doc = "ICU Interrupt 12"]
1106    IEL12 = 12,
1107
1108    #[doc = "ICU Interrupt 13"]
1109    IEL13 = 13,
1110
1111    #[doc = "ICU Interrupt 14"]
1112    IEL14 = 14,
1113
1114    #[doc = "ICU Interrupt 15"]
1115    IEL15 = 15,
1116
1117    #[doc = "ICU Interrupt 16"]
1118    IEL16 = 16,
1119
1120    #[doc = "ICU Interrupt 17"]
1121    IEL17 = 17,
1122
1123    #[doc = "ICU Interrupt 18"]
1124    IEL18 = 18,
1125
1126    #[doc = "ICU Interrupt 19"]
1127    IEL19 = 19,
1128
1129    #[doc = "ICU Interrupt 20"]
1130    IEL20 = 20,
1131
1132    #[doc = "ICU Interrupt 21"]
1133    IEL21 = 21,
1134
1135    #[doc = "ICU Interrupt 22"]
1136    IEL22 = 22,
1137
1138    #[doc = "ICU Interrupt 23"]
1139    IEL23 = 23,
1140
1141    #[doc = "ICU Interrupt 24"]
1142    IEL24 = 24,
1143
1144    #[doc = "ICU Interrupt 25"]
1145    IEL25 = 25,
1146
1147    #[doc = "ICU Interrupt 26"]
1148    IEL26 = 26,
1149
1150    #[doc = "ICU Interrupt 27"]
1151    IEL27 = 27,
1152
1153    #[doc = "ICU Interrupt 28"]
1154    IEL28 = 28,
1155
1156    #[doc = "ICU Interrupt 29"]
1157    IEL29 = 29,
1158
1159    #[doc = "ICU Interrupt 30"]
1160    IEL30 = 30,
1161
1162    #[doc = "ICU Interrupt 31"]
1163    IEL31 = 31,
1164
1165    #[doc = "ICU Interrupt 32"]
1166    IEL32 = 32,
1167
1168    #[doc = "ICU Interrupt 33"]
1169    IEL33 = 33,
1170
1171    #[doc = "ICU Interrupt 34"]
1172    IEL34 = 34,
1173
1174    #[doc = "ICU Interrupt 35"]
1175    IEL35 = 35,
1176
1177    #[doc = "ICU Interrupt 36"]
1178    IEL36 = 36,
1179
1180    #[doc = "ICU Interrupt 37"]
1181    IEL37 = 37,
1182
1183    #[doc = "ICU Interrupt 38"]
1184    IEL38 = 38,
1185
1186    #[doc = "ICU Interrupt 39"]
1187    IEL39 = 39,
1188
1189    #[doc = "ICU Interrupt 40"]
1190    IEL40 = 40,
1191
1192    #[doc = "ICU Interrupt 41"]
1193    IEL41 = 41,
1194
1195    #[doc = "ICU Interrupt 42"]
1196    IEL42 = 42,
1197
1198    #[doc = "ICU Interrupt 43"]
1199    IEL43 = 43,
1200
1201    #[doc = "ICU Interrupt 44"]
1202    IEL44 = 44,
1203
1204    #[doc = "ICU Interrupt 45"]
1205    IEL45 = 45,
1206
1207    #[doc = "ICU Interrupt 46"]
1208    IEL46 = 46,
1209
1210    #[doc = "ICU Interrupt 47"]
1211    IEL47 = 47,
1212
1213    #[doc = "ICU Interrupt 48"]
1214    IEL48 = 48,
1215
1216    #[doc = "ICU Interrupt 49"]
1217    IEL49 = 49,
1218
1219    #[doc = "ICU Interrupt 50"]
1220    IEL50 = 50,
1221
1222    #[doc = "ICU Interrupt 51"]
1223    IEL51 = 51,
1224
1225    #[doc = "ICU Interrupt 52"]
1226    IEL52 = 52,
1227
1228    #[doc = "ICU Interrupt 53"]
1229    IEL53 = 53,
1230
1231    #[doc = "ICU Interrupt 54"]
1232    IEL54 = 54,
1233
1234    #[doc = "ICU Interrupt 55"]
1235    IEL55 = 55,
1236
1237    #[doc = "ICU Interrupt 56"]
1238    IEL56 = 56,
1239
1240    #[doc = "ICU Interrupt 57"]
1241    IEL57 = 57,
1242
1243    #[doc = "ICU Interrupt 58"]
1244    IEL58 = 58,
1245
1246    #[doc = "ICU Interrupt 59"]
1247    IEL59 = 59,
1248
1249    #[doc = "ICU Interrupt 60"]
1250    IEL60 = 60,
1251
1252    #[doc = "ICU Interrupt 61"]
1253    IEL61 = 61,
1254
1255    #[doc = "ICU Interrupt 62"]
1256    IEL62 = 62,
1257
1258    #[doc = "ICU Interrupt 63"]
1259    IEL63 = 63,
1260
1261    #[doc = "ICU Interrupt 64"]
1262    IEL64 = 64,
1263
1264    #[doc = "ICU Interrupt 65"]
1265    IEL65 = 65,
1266
1267    #[doc = "ICU Interrupt 66"]
1268    IEL66 = 66,
1269
1270    #[doc = "ICU Interrupt 67"]
1271    IEL67 = 67,
1272
1273    #[doc = "ICU Interrupt 68"]
1274    IEL68 = 68,
1275
1276    #[doc = "ICU Interrupt 69"]
1277    IEL69 = 69,
1278
1279    #[doc = "ICU Interrupt 70"]
1280    IEL70 = 70,
1281
1282    #[doc = "ICU Interrupt 71"]
1283    IEL71 = 71,
1284
1285    #[doc = "ICU Interrupt 72"]
1286    IEL72 = 72,
1287
1288    #[doc = "ICU Interrupt 73"]
1289    IEL73 = 73,
1290
1291    #[doc = "ICU Interrupt 74"]
1292    IEL74 = 74,
1293
1294    #[doc = "ICU Interrupt 75"]
1295    IEL75 = 75,
1296
1297    #[doc = "ICU Interrupt 76"]
1298    IEL76 = 76,
1299
1300    #[doc = "ICU Interrupt 77"]
1301    IEL77 = 77,
1302
1303    #[doc = "ICU Interrupt 78"]
1304    IEL78 = 78,
1305
1306    #[doc = "ICU Interrupt 79"]
1307    IEL79 = 79,
1308
1309    #[doc = "ICU Interrupt 80"]
1310    IEL80 = 80,
1311
1312    #[doc = "ICU Interrupt 81"]
1313    IEL81 = 81,
1314
1315    #[doc = "ICU Interrupt 82"]
1316    IEL82 = 82,
1317
1318    #[doc = "ICU Interrupt 83"]
1319    IEL83 = 83,
1320
1321    #[doc = "ICU Interrupt 84"]
1322    IEL84 = 84,
1323
1324    #[doc = "ICU Interrupt 85"]
1325    IEL85 = 85,
1326
1327    #[doc = "ICU Interrupt 86"]
1328    IEL86 = 86,
1329
1330    #[doc = "ICU Interrupt 87"]
1331    IEL87 = 87,
1332
1333    #[doc = "ICU Interrupt 88"]
1334    IEL88 = 88,
1335
1336    #[doc = "ICU Interrupt 89"]
1337    IEL89 = 89,
1338
1339    #[doc = "ICU Interrupt 90"]
1340    IEL90 = 90,
1341
1342    #[doc = "ICU Interrupt 91"]
1343    IEL91 = 91,
1344
1345    #[doc = "ICU Interrupt 92"]
1346    IEL92 = 92,
1347
1348    #[doc = "ICU Interrupt 93"]
1349    IEL93 = 93,
1350
1351    #[doc = "ICU Interrupt 94"]
1352    IEL94 = 94,
1353
1354    #[doc = "ICU Interrupt 95"]
1355    IEL95 = 95,
1356}
1357unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
1358    #[inline(always)]
1359    fn number(self) -> u16 {
1360        self as u16
1361    }
1362}
1363#[allow(non_snake_case)]
1364/// Required for compatibility with RTIC and other frameworks
1365pub struct Peripherals {
1366    #[cfg(feature = "rmpu")]
1367    pub RMPU: self::Rmpu,
1368    #[cfg(feature = "tzf")]
1369    pub TZF: self::Tzf,
1370    #[cfg(feature = "sram")]
1371    pub SRAM: self::Sram,
1372    #[cfg(feature = "bus")]
1373    pub BUS: self::Bus,
1374    #[cfg(feature = "dmac0")]
1375    pub DMAC0: self::Dmac0,
1376    #[cfg(feature = "dmac1")]
1377    pub DMAC1: self::Dmac0,
1378    #[cfg(feature = "dmac2")]
1379    pub DMAC2: self::Dmac0,
1380    #[cfg(feature = "dmac3")]
1381    pub DMAC3: self::Dmac0,
1382    #[cfg(feature = "dmac4")]
1383    pub DMAC4: self::Dmac0,
1384    #[cfg(feature = "dmac5")]
1385    pub DMAC5: self::Dmac0,
1386    #[cfg(feature = "dmac6")]
1387    pub DMAC6: self::Dmac0,
1388    #[cfg(feature = "dmac7")]
1389    pub DMAC7: self::Dmac0,
1390    #[cfg(feature = "dma")]
1391    pub DMA: self::Dma,
1392    #[cfg(feature = "dtc")]
1393    pub DTC: self::Dtc,
1394    #[cfg(feature = "icu")]
1395    pub ICU: self::Icu,
1396    #[cfg(feature = "cache")]
1397    pub CACHE: self::Cache,
1398    #[cfg(feature = "cpscu")]
1399    pub CPSCU: self::Cpscu,
1400    #[cfg(feature = "dbg")]
1401    pub DBG: self::Dbg,
1402    #[cfg(feature = "fcache")]
1403    pub FCACHE: self::Fcache,
1404    #[cfg(feature = "sysc")]
1405    pub SYSC: self::Sysc,
1406    #[cfg(feature = "port0")]
1407    pub PORT0: self::Port0,
1408    #[cfg(feature = "port1")]
1409    pub PORT1: self::Port1,
1410    #[cfg(feature = "port2")]
1411    pub PORT2: self::Port1,
1412    #[cfg(feature = "port3")]
1413    pub PORT3: self::Port1,
1414    #[cfg(feature = "port4")]
1415    pub PORT4: self::Port1,
1416    #[cfg(feature = "port5")]
1417    pub PORT5: self::Port0,
1418    #[cfg(feature = "port6")]
1419    pub PORT6: self::Port0,
1420    #[cfg(feature = "port7")]
1421    pub PORT7: self::Port0,
1422    #[cfg(feature = "port8")]
1423    pub PORT8: self::Port0,
1424    #[cfg(feature = "pfs")]
1425    pub PFS: self::Pfs,
1426    #[cfg(feature = "elc")]
1427    pub ELC: self::Elc,
1428    #[cfg(feature = "rtc")]
1429    pub RTC: self::Rtc,
1430    #[cfg(feature = "iwdt")]
1431    pub IWDT: self::Iwdt,
1432    #[cfg(feature = "wdt")]
1433    pub WDT: self::Wdt,
1434    #[cfg(feature = "cac")]
1435    pub CAC: self::Cac,
1436    #[cfg(feature = "mstp")]
1437    pub MSTP: self::Mstp,
1438    #[cfg(feature = "poeg")]
1439    pub POEG: self::Poeg,
1440    #[cfg(feature = "usbfs")]
1441    pub USBFS: self::Usbfs,
1442    #[cfg(feature = "sdhi0")]
1443    pub SDHI0: self::Sdhi0,
1444    #[cfg(feature = "ssie0")]
1445    pub SSIE0: self::Ssie0,
1446    #[cfg(feature = "iic0")]
1447    pub IIC0: self::Iic0,
1448    #[cfg(feature = "iic0wu")]
1449    pub IIC0WU: self::Iic0Wu,
1450    #[cfg(feature = "iic1")]
1451    pub IIC1: self::Iic0,
1452    #[cfg(feature = "can0")]
1453    pub CAN0: self::Can0,
1454    #[cfg(feature = "pscu")]
1455    pub PSCU: self::Pscu,
1456    #[cfg(feature = "agt0")]
1457    pub AGT0: self::Agt0,
1458    #[cfg(feature = "agt1")]
1459    pub AGT1: self::Agt0,
1460    #[cfg(feature = "agt2")]
1461    pub AGT2: self::Agt0,
1462    #[cfg(feature = "agt3")]
1463    pub AGT3: self::Agt0,
1464    #[cfg(feature = "agt4")]
1465    pub AGT4: self::Agt0,
1466    #[cfg(feature = "agt5")]
1467    pub AGT5: self::Agt0,
1468    #[cfg(feature = "crc")]
1469    pub CRC: self::Crc,
1470    #[cfg(feature = "doc")]
1471    pub DOC: self::Doc,
1472    #[cfg(feature = "edmac0")]
1473    pub EDMAC0: self::Edmac0,
1474    #[cfg(feature = "etherc0")]
1475    pub ETHERC0: self::Etherc0,
1476    #[cfg(feature = "sci0")]
1477    pub SCI0: self::Sci0,
1478    #[cfg(feature = "sci1")]
1479    pub SCI1: self::Sci1,
1480    #[cfg(feature = "sci2")]
1481    pub SCI2: self::Sci2,
1482    #[cfg(feature = "sci3")]
1483    pub SCI3: self::Sci3,
1484    #[cfg(feature = "sci4")]
1485    pub SCI4: self::Sci3,
1486    #[cfg(feature = "sci9")]
1487    pub SCI9: self::Sci0,
1488    #[cfg(feature = "spi0")]
1489    pub SPI0: self::Spi0,
1490    #[cfg(feature = "spi1")]
1491    pub SPI1: self::Spi0,
1492    #[cfg(feature = "gpt321")]
1493    pub GPT321: self::Gpt321,
1494    #[cfg(feature = "gpt322")]
1495    pub GPT322: self::Gpt321,
1496    #[cfg(feature = "gpt164")]
1497    pub GPT164: self::Gpt164,
1498    #[cfg(feature = "gpt165")]
1499    pub GPT165: self::Gpt164,
1500    #[cfg(feature = "gpt166")]
1501    pub GPT166: self::Gpt164,
1502    #[cfg(feature = "gpt167")]
1503    pub GPT167: self::Gpt164,
1504    #[cfg(feature = "adc120")]
1505    pub ADC120: self::Adc120,
1506    #[cfg(feature = "dac12")]
1507    pub DAC12: self::Dac12,
1508    #[cfg(feature = "flad")]
1509    pub FLAD: self::Flad,
1510    #[cfg(feature = "faci")]
1511    pub FACI: self::Faci,
1512    #[cfg(feature = "qspi")]
1513    pub QSPI: self::Qspi,
1514}
1515
1516impl Peripherals {
1517    /// Returns Peripheral struct multiple times
1518    /// Required for compatibility with RTIC and other frameworks
1519    #[inline]
1520    pub fn take() -> Option<Self> {
1521        Some(Self::steal())
1522    }
1523
1524    /// Returns Peripheral struct multiple times
1525    /// Required for compatibility with RTIC and other frameworks
1526    #[inline]
1527    pub fn steal() -> Self {
1528        Peripherals {
1529            #[cfg(feature = "rmpu")]
1530            RMPU: crate::RMPU,
1531            #[cfg(feature = "tzf")]
1532            TZF: crate::TZF,
1533            #[cfg(feature = "sram")]
1534            SRAM: crate::SRAM,
1535            #[cfg(feature = "bus")]
1536            BUS: crate::BUS,
1537            #[cfg(feature = "dmac0")]
1538            DMAC0: crate::DMAC0,
1539            #[cfg(feature = "dmac1")]
1540            DMAC1: crate::DMAC1,
1541            #[cfg(feature = "dmac2")]
1542            DMAC2: crate::DMAC2,
1543            #[cfg(feature = "dmac3")]
1544            DMAC3: crate::DMAC3,
1545            #[cfg(feature = "dmac4")]
1546            DMAC4: crate::DMAC4,
1547            #[cfg(feature = "dmac5")]
1548            DMAC5: crate::DMAC5,
1549            #[cfg(feature = "dmac6")]
1550            DMAC6: crate::DMAC6,
1551            #[cfg(feature = "dmac7")]
1552            DMAC7: crate::DMAC7,
1553            #[cfg(feature = "dma")]
1554            DMA: crate::DMA,
1555            #[cfg(feature = "dtc")]
1556            DTC: crate::DTC,
1557            #[cfg(feature = "icu")]
1558            ICU: crate::ICU,
1559            #[cfg(feature = "cache")]
1560            CACHE: crate::CACHE,
1561            #[cfg(feature = "cpscu")]
1562            CPSCU: crate::CPSCU,
1563            #[cfg(feature = "dbg")]
1564            DBG: crate::DBG,
1565            #[cfg(feature = "fcache")]
1566            FCACHE: crate::FCACHE,
1567            #[cfg(feature = "sysc")]
1568            SYSC: crate::SYSC,
1569            #[cfg(feature = "port0")]
1570            PORT0: crate::PORT0,
1571            #[cfg(feature = "port1")]
1572            PORT1: crate::PORT1,
1573            #[cfg(feature = "port2")]
1574            PORT2: crate::PORT2,
1575            #[cfg(feature = "port3")]
1576            PORT3: crate::PORT3,
1577            #[cfg(feature = "port4")]
1578            PORT4: crate::PORT4,
1579            #[cfg(feature = "port5")]
1580            PORT5: crate::PORT5,
1581            #[cfg(feature = "port6")]
1582            PORT6: crate::PORT6,
1583            #[cfg(feature = "port7")]
1584            PORT7: crate::PORT7,
1585            #[cfg(feature = "port8")]
1586            PORT8: crate::PORT8,
1587            #[cfg(feature = "pfs")]
1588            PFS: crate::PFS,
1589            #[cfg(feature = "elc")]
1590            ELC: crate::ELC,
1591            #[cfg(feature = "rtc")]
1592            RTC: crate::RTC,
1593            #[cfg(feature = "iwdt")]
1594            IWDT: crate::IWDT,
1595            #[cfg(feature = "wdt")]
1596            WDT: crate::WDT,
1597            #[cfg(feature = "cac")]
1598            CAC: crate::CAC,
1599            #[cfg(feature = "mstp")]
1600            MSTP: crate::MSTP,
1601            #[cfg(feature = "poeg")]
1602            POEG: crate::POEG,
1603            #[cfg(feature = "usbfs")]
1604            USBFS: crate::USBFS,
1605            #[cfg(feature = "sdhi0")]
1606            SDHI0: crate::SDHI0,
1607            #[cfg(feature = "ssie0")]
1608            SSIE0: crate::SSIE0,
1609            #[cfg(feature = "iic0")]
1610            IIC0: crate::IIC0,
1611            #[cfg(feature = "iic0wu")]
1612            IIC0WU: crate::IIC0WU,
1613            #[cfg(feature = "iic1")]
1614            IIC1: crate::IIC1,
1615            #[cfg(feature = "can0")]
1616            CAN0: crate::CAN0,
1617            #[cfg(feature = "pscu")]
1618            PSCU: crate::PSCU,
1619            #[cfg(feature = "agt0")]
1620            AGT0: crate::AGT0,
1621            #[cfg(feature = "agt1")]
1622            AGT1: crate::AGT1,
1623            #[cfg(feature = "agt2")]
1624            AGT2: crate::AGT2,
1625            #[cfg(feature = "agt3")]
1626            AGT3: crate::AGT3,
1627            #[cfg(feature = "agt4")]
1628            AGT4: crate::AGT4,
1629            #[cfg(feature = "agt5")]
1630            AGT5: crate::AGT5,
1631            #[cfg(feature = "crc")]
1632            CRC: crate::CRC,
1633            #[cfg(feature = "doc")]
1634            DOC: crate::DOC,
1635            #[cfg(feature = "edmac0")]
1636            EDMAC0: crate::EDMAC0,
1637            #[cfg(feature = "etherc0")]
1638            ETHERC0: crate::ETHERC0,
1639            #[cfg(feature = "sci0")]
1640            SCI0: crate::SCI0,
1641            #[cfg(feature = "sci1")]
1642            SCI1: crate::SCI1,
1643            #[cfg(feature = "sci2")]
1644            SCI2: crate::SCI2,
1645            #[cfg(feature = "sci3")]
1646            SCI3: crate::SCI3,
1647            #[cfg(feature = "sci4")]
1648            SCI4: crate::SCI4,
1649            #[cfg(feature = "sci9")]
1650            SCI9: crate::SCI9,
1651            #[cfg(feature = "spi0")]
1652            SPI0: crate::SPI0,
1653            #[cfg(feature = "spi1")]
1654            SPI1: crate::SPI1,
1655            #[cfg(feature = "gpt321")]
1656            GPT321: crate::GPT321,
1657            #[cfg(feature = "gpt322")]
1658            GPT322: crate::GPT322,
1659            #[cfg(feature = "gpt164")]
1660            GPT164: crate::GPT164,
1661            #[cfg(feature = "gpt165")]
1662            GPT165: crate::GPT165,
1663            #[cfg(feature = "gpt166")]
1664            GPT166: crate::GPT166,
1665            #[cfg(feature = "gpt167")]
1666            GPT167: crate::GPT167,
1667            #[cfg(feature = "adc120")]
1668            ADC120: crate::ADC120,
1669            #[cfg(feature = "dac12")]
1670            DAC12: crate::DAC12,
1671            #[cfg(feature = "flad")]
1672            FLAD: crate::FLAD,
1673            #[cfg(feature = "faci")]
1674            FACI: crate::FACI,
1675            #[cfg(feature = "qspi")]
1676            QSPI: crate::QSPI,
1677        }
1678    }
1679}