da14697_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.2, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:45:38 +0000
19#![cfg_attr(not(feature = "tracing"), no_std)]
20#![allow(non_camel_case_types)]
21#![doc = "690"]
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 = "aes_hash")]
31pub mod aes_hash;
32#[cfg(feature = "anamisc")]
33pub mod anamisc;
34#[cfg(feature = "apu")]
35pub mod apu;
36#[cfg(feature = "cache")]
37pub mod cache;
38#[cfg(feature = "charger")]
39pub mod charger;
40#[cfg(feature = "chip_version")]
41pub mod chip_version;
42#[cfg(feature = "cmac")]
43pub mod cmac;
44#[cfg(feature = "cmac_timer_slp")]
45pub mod cmac_timer_slp;
46#[cfg(feature = "crg_com")]
47pub mod crg_com;
48#[cfg(feature = "crg_per")]
49pub mod crg_per;
50#[cfg(feature = "crg_sys")]
51pub mod crg_sys;
52#[cfg(feature = "crg_top")]
53pub mod crg_top;
54#[cfg(feature = "crg_xtal")]
55pub mod crg_xtal;
56#[cfg(feature = "dcdc")]
57pub mod dcdc;
58#[cfg(feature = "dma")]
59pub mod dma;
60#[cfg(feature = "dw")]
61pub mod dw;
62#[cfg(feature = "gpadc")]
63pub mod gpadc;
64#[cfg(feature = "gpio")]
65pub mod gpio;
66#[cfg(feature = "gpreg")]
67pub mod gpreg;
68#[cfg(feature = "i2c")]
69pub mod i2c;
70#[cfg(feature = "i2c2")]
71pub mod i2c2;
72#[cfg(feature = "lcdc")]
73pub mod lcdc;
74#[cfg(feature = "lra")]
75pub mod lra;
76#[cfg(feature = "memctrl")]
77pub mod memctrl;
78#[cfg(feature = "otpc")]
79pub mod otpc;
80#[cfg(feature = "pdc")]
81pub mod pdc;
82#[cfg(feature = "pwmled")]
83pub mod pwmled;
84#[cfg(feature = "qspic")]
85pub mod qspic;
86#[cfg(feature = "qspic2")]
87pub mod qspic2;
88#[cfg(feature = "rfmon")]
89pub mod rfmon;
90#[cfg(feature = "rtc")]
91pub mod rtc;
92#[cfg(feature = "sau")]
93pub mod sau;
94#[cfg(feature = "sdadc")]
95pub mod sdadc;
96#[cfg(feature = "smotor")]
97pub mod smotor;
98#[cfg(feature = "snc")]
99pub mod snc;
100#[cfg(feature = "spi")]
101pub mod spi;
102#[cfg(feature = "spi2")]
103pub mod spi2;
104#[cfg(feature = "sys_wdog")]
105pub mod sys_wdog;
106#[cfg(feature = "timer")]
107pub mod timer;
108#[cfg(feature = "timer2")]
109pub mod timer2;
110#[cfg(feature = "timer3")]
111pub mod timer3;
112#[cfg(feature = "timer4")]
113pub mod timer4;
114#[cfg(feature = "uart")]
115pub mod uart;
116#[cfg(feature = "uart2")]
117pub mod uart2;
118#[cfg(feature = "uart3")]
119pub mod uart3;
120#[cfg(feature = "usb")]
121pub mod usb;
122#[cfg(feature = "wakeup")]
123pub mod wakeup;
124
125#[cfg(feature = "sau")]
126#[derive(Copy, Clone, Eq, PartialEq)]
127pub struct Sau {
128    ptr: *mut u8,
129}
130#[cfg(feature = "sau")]
131pub const SAU: self::Sau = self::Sau {
132    ptr: 0xe000edd0u32 as _,
133};
134#[cfg(feature = "aes_hash")]
135#[derive(Copy, Clone, Eq, PartialEq)]
136pub struct AesHash {
137    ptr: *mut u8,
138}
139#[cfg(feature = "aes_hash")]
140pub const AES_HASH: self::AesHash = self::AesHash {
141    ptr: 0x30040000u32 as _,
142};
143#[cfg(feature = "anamisc")]
144#[derive(Copy, Clone, Eq, PartialEq)]
145pub struct Anamisc {
146    ptr: *mut u8,
147}
148#[cfg(feature = "anamisc")]
149pub const ANAMISC: self::Anamisc = self::Anamisc {
150    ptr: 0x50030b00u32 as _,
151};
152#[cfg(feature = "apu")]
153#[derive(Copy, Clone, Eq, PartialEq)]
154pub struct Apu {
155    ptr: *mut u8,
156}
157#[cfg(feature = "apu")]
158pub const APU: self::Apu = self::Apu {
159    ptr: 0x50030600u32 as _,
160};
161#[cfg(feature = "cache")]
162#[derive(Copy, Clone, Eq, PartialEq)]
163pub struct Cache {
164    ptr: *mut u8,
165}
166#[cfg(feature = "cache")]
167pub const CACHE: self::Cache = self::Cache {
168    ptr: 0x100c0000u32 as _,
169};
170#[cfg(feature = "charger")]
171#[derive(Copy, Clone, Eq, PartialEq)]
172pub struct Charger {
173    ptr: *mut u8,
174}
175#[cfg(feature = "charger")]
176pub const CHARGER: self::Charger = self::Charger {
177    ptr: 0x50040400u32 as _,
178};
179#[cfg(feature = "chip_version")]
180#[derive(Copy, Clone, Eq, PartialEq)]
181pub struct ChipVersion {
182    ptr: *mut u8,
183}
184#[cfg(feature = "chip_version")]
185pub const CHIP_VERSION: self::ChipVersion = self::ChipVersion {
186    ptr: 0x50040200u32 as _,
187};
188#[cfg(feature = "cmac")]
189#[derive(Copy, Clone, Eq, PartialEq)]
190pub struct Cmac {
191    ptr: *mut u8,
192}
193#[cfg(feature = "cmac")]
194pub const CMAC: self::Cmac = self::Cmac {
195    ptr: 0x40000000u32 as _,
196};
197#[cfg(feature = "cmac_timer_slp")]
198#[derive(Copy, Clone, Eq, PartialEq)]
199pub struct CmacTimerSlp {
200    ptr: *mut u8,
201}
202#[cfg(feature = "cmac_timer_slp")]
203pub const CMAC_TIMER_SLP: self::CmacTimerSlp = self::CmacTimerSlp {
204    ptr: 0x50010400u32 as _,
205};
206#[cfg(feature = "crg_com")]
207#[derive(Copy, Clone, Eq, PartialEq)]
208pub struct CrgCom {
209    ptr: *mut u8,
210}
211#[cfg(feature = "crg_com")]
212pub const CRG_COM: self::CrgCom = self::CrgCom {
213    ptr: 0x50020900u32 as _,
214};
215#[cfg(feature = "crg_per")]
216#[derive(Copy, Clone, Eq, PartialEq)]
217pub struct CrgPer {
218    ptr: *mut u8,
219}
220#[cfg(feature = "crg_per")]
221pub const CRG_PER: self::CrgPer = self::CrgPer {
222    ptr: 0x50030c00u32 as _,
223};
224#[cfg(feature = "crg_sys")]
225#[derive(Copy, Clone, Eq, PartialEq)]
226pub struct CrgSys {
227    ptr: *mut u8,
228}
229#[cfg(feature = "crg_sys")]
230pub const CRG_SYS: self::CrgSys = self::CrgSys {
231    ptr: 0x50040500u32 as _,
232};
233#[cfg(feature = "crg_top")]
234#[derive(Copy, Clone, Eq, PartialEq)]
235pub struct CrgTop {
236    ptr: *mut u8,
237}
238#[cfg(feature = "crg_top")]
239pub const CRG_TOP: self::CrgTop = self::CrgTop {
240    ptr: 0x50000000u32 as _,
241};
242#[cfg(feature = "crg_xtal")]
243#[derive(Copy, Clone, Eq, PartialEq)]
244pub struct CrgXtal {
245    ptr: *mut u8,
246}
247#[cfg(feature = "crg_xtal")]
248pub const CRG_XTAL: self::CrgXtal = self::CrgXtal {
249    ptr: 0x50010000u32 as _,
250};
251#[cfg(feature = "dcdc")]
252#[derive(Copy, Clone, Eq, PartialEq)]
253pub struct Dcdc {
254    ptr: *mut u8,
255}
256#[cfg(feature = "dcdc")]
257pub const DCDC: self::Dcdc = self::Dcdc {
258    ptr: 0x50000300u32 as _,
259};
260#[cfg(feature = "dma")]
261#[derive(Copy, Clone, Eq, PartialEq)]
262pub struct Dma {
263    ptr: *mut u8,
264}
265#[cfg(feature = "dma")]
266pub const DMA: self::Dma = self::Dma {
267    ptr: 0x50040800u32 as _,
268};
269#[cfg(feature = "dw")]
270#[derive(Copy, Clone, Eq, PartialEq)]
271pub struct Dw {
272    ptr: *mut u8,
273}
274#[cfg(feature = "dw")]
275pub const DW: self::Dw = self::Dw {
276    ptr: 0x30020000u32 as _,
277};
278#[cfg(feature = "gpadc")]
279#[derive(Copy, Clone, Eq, PartialEq)]
280pub struct Gpadc {
281    ptr: *mut u8,
282}
283#[cfg(feature = "gpadc")]
284pub const GPADC: self::Gpadc = self::Gpadc {
285    ptr: 0x50030900u32 as _,
286};
287#[cfg(feature = "gpio")]
288#[derive(Copy, Clone, Eq, PartialEq)]
289pub struct Gpio {
290    ptr: *mut u8,
291}
292#[cfg(feature = "gpio")]
293pub const GPIO: self::Gpio = self::Gpio {
294    ptr: 0x50020a00u32 as _,
295};
296#[cfg(feature = "gpreg")]
297#[derive(Copy, Clone, Eq, PartialEq)]
298pub struct Gpreg {
299    ptr: *mut u8,
300}
301#[cfg(feature = "gpreg")]
302pub const GPREG: self::Gpreg = self::Gpreg {
303    ptr: 0x50040300u32 as _,
304};
305#[cfg(feature = "i2c")]
306#[derive(Copy, Clone, Eq, PartialEq)]
307pub struct I2C {
308    ptr: *mut u8,
309}
310#[cfg(feature = "i2c")]
311pub const I2C: self::I2C = self::I2C {
312    ptr: 0x50020600u32 as _,
313};
314#[cfg(feature = "i2c2")]
315#[derive(Copy, Clone, Eq, PartialEq)]
316pub struct I2C2 {
317    ptr: *mut u8,
318}
319#[cfg(feature = "i2c2")]
320pub const I2C2: self::I2C2 = self::I2C2 {
321    ptr: 0x50020700u32 as _,
322};
323#[cfg(feature = "lcdc")]
324#[derive(Copy, Clone, Eq, PartialEq)]
325pub struct Lcdc {
326    ptr: *mut u8,
327}
328#[cfg(feature = "lcdc")]
329pub const LCDC: self::Lcdc = self::Lcdc {
330    ptr: 0x30030000u32 as _,
331};
332#[cfg(feature = "lra")]
333#[derive(Copy, Clone, Eq, PartialEq)]
334pub struct Lra {
335    ptr: *mut u8,
336}
337#[cfg(feature = "lra")]
338pub const LRA: self::Lra = self::Lra {
339    ptr: 0x50030a00u32 as _,
340};
341#[cfg(feature = "memctrl")]
342#[derive(Copy, Clone, Eq, PartialEq)]
343pub struct Memctrl {
344    ptr: *mut u8,
345}
346#[cfg(feature = "memctrl")]
347pub const MEMCTRL: self::Memctrl = self::Memctrl {
348    ptr: 0x50050000u32 as _,
349};
350#[cfg(feature = "otpc")]
351#[derive(Copy, Clone, Eq, PartialEq)]
352pub struct Otpc {
353    ptr: *mut u8,
354}
355#[cfg(feature = "otpc")]
356pub const OTPC: self::Otpc = self::Otpc {
357    ptr: 0x30070000u32 as _,
358};
359#[cfg(feature = "pdc")]
360#[derive(Copy, Clone, Eq, PartialEq)]
361pub struct Pdc {
362    ptr: *mut u8,
363}
364#[cfg(feature = "pdc")]
365pub const PDC: self::Pdc = self::Pdc {
366    ptr: 0x50000200u32 as _,
367};
368#[cfg(feature = "pwmled")]
369#[derive(Copy, Clone, Eq, PartialEq)]
370pub struct Pwmled {
371    ptr: *mut u8,
372}
373#[cfg(feature = "pwmled")]
374pub const PWMLED: self::Pwmled = self::Pwmled {
375    ptr: 0x50030500u32 as _,
376};
377#[cfg(feature = "qspic")]
378#[derive(Copy, Clone, Eq, PartialEq)]
379pub struct Qspic {
380    ptr: *mut u8,
381}
382#[cfg(feature = "qspic")]
383pub const QSPIC: self::Qspic = self::Qspic {
384    ptr: 0x38000000u32 as _,
385};
386#[cfg(feature = "qspic2")]
387#[derive(Copy, Clone, Eq, PartialEq)]
388pub struct Qspic2 {
389    ptr: *mut u8,
390}
391#[cfg(feature = "qspic2")]
392pub const QSPIC2: self::Qspic2 = self::Qspic2 {
393    ptr: 0x34000000u32 as _,
394};
395#[cfg(feature = "rfmon")]
396#[derive(Copy, Clone, Eq, PartialEq)]
397pub struct Rfmon {
398    ptr: *mut u8,
399}
400#[cfg(feature = "rfmon")]
401pub const RFMON: self::Rfmon = self::Rfmon {
402    ptr: 0x50040600u32 as _,
403};
404#[cfg(feature = "rtc")]
405#[derive(Copy, Clone, Eq, PartialEq)]
406pub struct Rtc {
407    ptr: *mut u8,
408}
409#[cfg(feature = "rtc")]
410pub const RTC: self::Rtc = self::Rtc {
411    ptr: 0x50000400u32 as _,
412};
413#[cfg(feature = "sdadc")]
414#[derive(Copy, Clone, Eq, PartialEq)]
415pub struct Sdadc {
416    ptr: *mut u8,
417}
418#[cfg(feature = "sdadc")]
419pub const SDADC: self::Sdadc = self::Sdadc {
420    ptr: 0x50020800u32 as _,
421};
422#[cfg(feature = "smotor")]
423#[derive(Copy, Clone, Eq, PartialEq)]
424pub struct Smotor {
425    ptr: *mut u8,
426}
427#[cfg(feature = "smotor")]
428pub const SMOTOR: self::Smotor = self::Smotor {
429    ptr: 0x50030e00u32 as _,
430};
431#[cfg(feature = "snc")]
432#[derive(Copy, Clone, Eq, PartialEq)]
433pub struct Snc {
434    ptr: *mut u8,
435}
436#[cfg(feature = "snc")]
437pub const SNC: self::Snc = self::Snc {
438    ptr: 0x50020c00u32 as _,
439};
440#[cfg(feature = "spi")]
441#[derive(Copy, Clone, Eq, PartialEq)]
442pub struct Spi {
443    ptr: *mut u8,
444}
445#[cfg(feature = "spi")]
446pub const SPI: self::Spi = self::Spi {
447    ptr: 0x50020300u32 as _,
448};
449#[cfg(feature = "spi2")]
450#[derive(Copy, Clone, Eq, PartialEq)]
451pub struct Spi2 {
452    ptr: *mut u8,
453}
454#[cfg(feature = "spi2")]
455pub const SPI2: self::Spi2 = self::Spi2 {
456    ptr: 0x50020400u32 as _,
457};
458#[cfg(feature = "sys_wdog")]
459#[derive(Copy, Clone, Eq, PartialEq)]
460pub struct SysWdog {
461    ptr: *mut u8,
462}
463#[cfg(feature = "sys_wdog")]
464pub const SYS_WDOG: self::SysWdog = self::SysWdog {
465    ptr: 0x50000700u32 as _,
466};
467#[cfg(feature = "timer")]
468#[derive(Copy, Clone, Eq, PartialEq)]
469pub struct Timer {
470    ptr: *mut u8,
471}
472#[cfg(feature = "timer")]
473pub const TIMER: self::Timer = self::Timer {
474    ptr: 0x50010200u32 as _,
475};
476#[cfg(feature = "timer2")]
477#[derive(Copy, Clone, Eq, PartialEq)]
478pub struct Timer2 {
479    ptr: *mut u8,
480}
481#[cfg(feature = "timer2")]
482pub const TIMER2: self::Timer2 = self::Timer2 {
483    ptr: 0x50010300u32 as _,
484};
485#[cfg(feature = "timer3")]
486#[derive(Copy, Clone, Eq, PartialEq)]
487pub struct Timer3 {
488    ptr: *mut u8,
489}
490#[cfg(feature = "timer3")]
491pub const TIMER3: self::Timer3 = self::Timer3 {
492    ptr: 0x50040a00u32 as _,
493};
494#[cfg(feature = "timer4")]
495#[derive(Copy, Clone, Eq, PartialEq)]
496pub struct Timer4 {
497    ptr: *mut u8,
498}
499#[cfg(feature = "timer4")]
500pub const TIMER4: self::Timer4 = self::Timer4 {
501    ptr: 0x50040b00u32 as _,
502};
503#[cfg(feature = "uart")]
504#[derive(Copy, Clone, Eq, PartialEq)]
505pub struct Uart {
506    ptr: *mut u8,
507}
508#[cfg(feature = "uart")]
509pub const UART: self::Uart = self::Uart {
510    ptr: 0x50020000u32 as _,
511};
512#[cfg(feature = "uart2")]
513#[derive(Copy, Clone, Eq, PartialEq)]
514pub struct Uart2 {
515    ptr: *mut u8,
516}
517#[cfg(feature = "uart2")]
518pub const UART2: self::Uart2 = self::Uart2 {
519    ptr: 0x50020100u32 as _,
520};
521#[cfg(feature = "uart3")]
522#[derive(Copy, Clone, Eq, PartialEq)]
523pub struct Uart3 {
524    ptr: *mut u8,
525}
526#[cfg(feature = "uart3")]
527pub const UART3: self::Uart3 = self::Uart3 {
528    ptr: 0x50020200u32 as _,
529};
530#[cfg(feature = "usb")]
531#[derive(Copy, Clone, Eq, PartialEq)]
532pub struct Usb {
533    ptr: *mut u8,
534}
535#[cfg(feature = "usb")]
536pub const USB: self::Usb = self::Usb {
537    ptr: 0x50040000u32 as _,
538};
539#[cfg(feature = "wakeup")]
540#[derive(Copy, Clone, Eq, PartialEq)]
541pub struct Wakeup {
542    ptr: *mut u8,
543}
544#[cfg(feature = "wakeup")]
545pub const WAKEUP: self::Wakeup = self::Wakeup {
546    ptr: 0x50000100u32 as _,
547};
548
549pub use cortex_m::peripheral::Peripherals as CorePeripherals;
550pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, NVIC, SCB, SYST, TPIU};
551#[doc = "Number available in the NVIC for configuring priority"]
552pub const NVIC_PRIO_BITS: u8 = 3;
553#[doc(hidden)]
554pub union Vector {
555    _handler: unsafe extern "C" fn(),
556    _reserved: u32,
557}
558#[cfg(feature = "rt")]
559pub use self::Interrupt as interrupt;
560#[cfg(feature = "rt")]
561pub use cortex_m_rt::interrupt;
562#[cfg(feature = "rt")]
563pub mod interrupt_handlers {
564    unsafe extern "C" {
565        pub fn SNC();
566        pub fn DMA();
567        pub fn CHARGER_STATE();
568        pub fn CHARGER_ERROR();
569        pub fn CMAC2SYS();
570        pub fn UART();
571        pub fn UART2();
572        pub fn UART3();
573        pub fn I2C();
574        pub fn I2C2();
575        pub fn SPI();
576        pub fn SPI2();
577        pub fn PCM();
578        pub fn SRC_IN();
579        pub fn SRC_OUT();
580        pub fn USB();
581        pub fn TIMER();
582        pub fn TIMER2();
583        pub fn RTC();
584        pub fn KEY_WKUP_GPIO();
585        pub fn PDC();
586        pub fn VBUS();
587        pub fn MRM();
588        pub fn MOTOR_CONTROLLER();
589        pub fn TRNG();
590        pub fn DCDC();
591        pub fn XTAL32M_RDY();
592        pub fn GPADC();
593        pub fn SDADC();
594        pub fn CRYPTO();
595        pub fn CAPTIMER();
596        pub fn RFDIAG();
597        pub fn LCD_CONTROLLER();
598        pub fn PLL_LOCK();
599        pub fn TIMER3();
600        pub fn TIMER4();
601        pub fn LRA();
602        pub fn RTC_EVENT();
603        pub fn GPIO_P0();
604        pub fn GPIO_P1();
605    }
606}
607#[cfg(feature = "rt")]
608#[doc(hidden)]
609#[unsafe(link_section = ".vector_table.interrupts")]
610#[unsafe(no_mangle)]
611pub static __INTERRUPTS: [Vector; 40] = [
612    Vector {
613        _handler: interrupt_handlers::SNC,
614    },
615    Vector {
616        _handler: interrupt_handlers::DMA,
617    },
618    Vector {
619        _handler: interrupt_handlers::CHARGER_STATE,
620    },
621    Vector {
622        _handler: interrupt_handlers::CHARGER_ERROR,
623    },
624    Vector {
625        _handler: interrupt_handlers::CMAC2SYS,
626    },
627    Vector {
628        _handler: interrupt_handlers::UART,
629    },
630    Vector {
631        _handler: interrupt_handlers::UART2,
632    },
633    Vector {
634        _handler: interrupt_handlers::UART3,
635    },
636    Vector {
637        _handler: interrupt_handlers::I2C,
638    },
639    Vector {
640        _handler: interrupt_handlers::I2C2,
641    },
642    Vector {
643        _handler: interrupt_handlers::SPI,
644    },
645    Vector {
646        _handler: interrupt_handlers::SPI2,
647    },
648    Vector {
649        _handler: interrupt_handlers::PCM,
650    },
651    Vector {
652        _handler: interrupt_handlers::SRC_IN,
653    },
654    Vector {
655        _handler: interrupt_handlers::SRC_OUT,
656    },
657    Vector {
658        _handler: interrupt_handlers::USB,
659    },
660    Vector {
661        _handler: interrupt_handlers::TIMER,
662    },
663    Vector {
664        _handler: interrupt_handlers::TIMER2,
665    },
666    Vector {
667        _handler: interrupt_handlers::RTC,
668    },
669    Vector {
670        _handler: interrupt_handlers::KEY_WKUP_GPIO,
671    },
672    Vector {
673        _handler: interrupt_handlers::PDC,
674    },
675    Vector {
676        _handler: interrupt_handlers::VBUS,
677    },
678    Vector {
679        _handler: interrupt_handlers::MRM,
680    },
681    Vector {
682        _handler: interrupt_handlers::MOTOR_CONTROLLER,
683    },
684    Vector {
685        _handler: interrupt_handlers::TRNG,
686    },
687    Vector {
688        _handler: interrupt_handlers::DCDC,
689    },
690    Vector {
691        _handler: interrupt_handlers::XTAL32M_RDY,
692    },
693    Vector {
694        _handler: interrupt_handlers::GPADC,
695    },
696    Vector {
697        _handler: interrupt_handlers::SDADC,
698    },
699    Vector {
700        _handler: interrupt_handlers::CRYPTO,
701    },
702    Vector {
703        _handler: interrupt_handlers::CAPTIMER,
704    },
705    Vector {
706        _handler: interrupt_handlers::RFDIAG,
707    },
708    Vector {
709        _handler: interrupt_handlers::LCD_CONTROLLER,
710    },
711    Vector {
712        _handler: interrupt_handlers::PLL_LOCK,
713    },
714    Vector {
715        _handler: interrupt_handlers::TIMER3,
716    },
717    Vector {
718        _handler: interrupt_handlers::TIMER4,
719    },
720    Vector {
721        _handler: interrupt_handlers::LRA,
722    },
723    Vector {
724        _handler: interrupt_handlers::RTC_EVENT,
725    },
726    Vector {
727        _handler: interrupt_handlers::GPIO_P0,
728    },
729    Vector {
730        _handler: interrupt_handlers::GPIO_P1,
731    },
732];
733#[doc = "Enumeration of all the interrupts."]
734#[derive(Copy, Clone, Debug, PartialEq, Eq)]
735#[repr(u16)]
736pub enum Interrupt {
737    #[doc = "Sensor Node Controller interrupt request."]
738    SNC = 0,
739
740    #[doc = "General Purpose DMA interrupt request."]
741    DMA = 1,
742
743    #[doc = "Charger State interrupt request."]
744    CHARGER_STATE = 2,
745
746    #[doc = "Charger Error interrupt request."]
747    CHARGER_ERROR = 3,
748
749    #[doc = "CMAC and mailbox interrupt request."]
750    CMAC2SYS = 4,
751
752    #[doc = "UART interrupt request."]
753    UART = 5,
754
755    #[doc = "UART2 interrupt request."]
756    UART2 = 6,
757
758    #[doc = "UART3 interrupt request."]
759    UART3 = 7,
760
761    #[doc = "I2C interrupt request."]
762    I2C = 8,
763
764    #[doc = "I2C2 interrupt request."]
765    I2C2 = 9,
766
767    #[doc = "SPI interrupt request."]
768    SPI = 10,
769
770    #[doc = "SPI2 interrupt request."]
771    SPI2 = 11,
772
773    #[doc = "PCM interrupt request."]
774    PCM = 12,
775
776    #[doc = "SRC input interrupt request."]
777    SRC_IN = 13,
778
779    #[doc = "SRC output interrupt request."]
780    SRC_OUT = 14,
781
782    #[doc = "USB interrupt request."]
783    USB = 15,
784
785    #[doc = "TIMER interrupt request."]
786    TIMER = 16,
787
788    #[doc = "TIMER2 interrupt request."]
789    TIMER2 = 17,
790
791    #[doc = "RTC interrupt request."]
792    RTC = 18,
793
794    #[doc = "Debounced button press interrupt request."]
795    KEY_WKUP_GPIO = 19,
796
797    #[doc = "Wakeup IRQ from PDC to CM33"]
798    PDC = 20,
799
800    #[doc = "VBUS presence interrupt request."]
801    VBUS = 21,
802
803    #[doc = "Cache Miss Rate Monitor interrupt request."]
804    MRM = 22,
805
806    #[doc = "MOTOR and mailbox interrupt request."]
807    MOTOR_CONTROLLER = 23,
808
809    #[doc = "True Random Number Generation interrupt request."]
810    TRNG = 24,
811
812    #[doc = "DCDC interrupt request."]
813    DCDC = 25,
814
815    #[doc = "XTAL32M trimmed and ready interrupt request."]
816    XTAL32M_RDY = 26,
817
818    #[doc = "General Purpose Analog-Digital Converter interrupt request."]
819    GPADC = 27,
820
821    #[doc = "Sigma Delta Analog-Digital Converter interrupt request."]
822    SDADC = 28,
823
824    #[doc = "Crypto interrupt request."]
825    CRYPTO = 29,
826
827    #[doc = "GPIO triggered Timer Capture interrupt request."]
828    CAPTIMER = 30,
829
830    #[doc = "Baseband or Radio Diagnostics interrupt request."]
831    RFDIAG = 31,
832
833    #[doc = "Parallel LCD Controller interrupt request."]
834    LCD_CONTROLLER = 32,
835
836    #[doc = "Pll lock interrupt request."]
837    PLL_LOCK = 33,
838
839    #[doc = "TIMER3 interrupt request."]
840    TIMER3 = 34,
841
842    #[doc = "TIMER4 interrupt request."]
843    TIMER4 = 35,
844
845    #[doc = "LRA/ERM interrupt request."]
846    LRA = 36,
847
848    #[doc = "RTC event interrupt request."]
849    RTC_EVENT = 37,
850
851    #[doc = "GPIO port 0 toggle interrupt request."]
852    GPIO_P0 = 38,
853
854    #[doc = "GPIO port 1 toggle interrupt request."]
855    GPIO_P1 = 39,
856}
857unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
858    #[inline(always)]
859    fn number(self) -> u16 {
860        self as u16
861    }
862}
863#[allow(non_snake_case)]
864/// Required for compatibility with RTIC and other frameworks
865pub struct Peripherals {
866    #[cfg(feature = "sau")]
867    pub SAU: self::Sau,
868    #[cfg(feature = "aes_hash")]
869    pub AES_HASH: self::AesHash,
870    #[cfg(feature = "anamisc")]
871    pub ANAMISC: self::Anamisc,
872    #[cfg(feature = "apu")]
873    pub APU: self::Apu,
874    #[cfg(feature = "cache")]
875    pub CACHE: self::Cache,
876    #[cfg(feature = "charger")]
877    pub CHARGER: self::Charger,
878    #[cfg(feature = "chip_version")]
879    pub CHIP_VERSION: self::ChipVersion,
880    #[cfg(feature = "cmac")]
881    pub CMAC: self::Cmac,
882    #[cfg(feature = "cmac_timer_slp")]
883    pub CMAC_TIMER_SLP: self::CmacTimerSlp,
884    #[cfg(feature = "crg_com")]
885    pub CRG_COM: self::CrgCom,
886    #[cfg(feature = "crg_per")]
887    pub CRG_PER: self::CrgPer,
888    #[cfg(feature = "crg_sys")]
889    pub CRG_SYS: self::CrgSys,
890    #[cfg(feature = "crg_top")]
891    pub CRG_TOP: self::CrgTop,
892    #[cfg(feature = "crg_xtal")]
893    pub CRG_XTAL: self::CrgXtal,
894    #[cfg(feature = "dcdc")]
895    pub DCDC: self::Dcdc,
896    #[cfg(feature = "dma")]
897    pub DMA: self::Dma,
898    #[cfg(feature = "dw")]
899    pub DW: self::Dw,
900    #[cfg(feature = "gpadc")]
901    pub GPADC: self::Gpadc,
902    #[cfg(feature = "gpio")]
903    pub GPIO: self::Gpio,
904    #[cfg(feature = "gpreg")]
905    pub GPREG: self::Gpreg,
906    #[cfg(feature = "i2c")]
907    pub I2C: self::I2C,
908    #[cfg(feature = "i2c2")]
909    pub I2C2: self::I2C2,
910    #[cfg(feature = "lcdc")]
911    pub LCDC: self::Lcdc,
912    #[cfg(feature = "lra")]
913    pub LRA: self::Lra,
914    #[cfg(feature = "memctrl")]
915    pub MEMCTRL: self::Memctrl,
916    #[cfg(feature = "otpc")]
917    pub OTPC: self::Otpc,
918    #[cfg(feature = "pdc")]
919    pub PDC: self::Pdc,
920    #[cfg(feature = "pwmled")]
921    pub PWMLED: self::Pwmled,
922    #[cfg(feature = "qspic")]
923    pub QSPIC: self::Qspic,
924    #[cfg(feature = "qspic2")]
925    pub QSPIC2: self::Qspic2,
926    #[cfg(feature = "rfmon")]
927    pub RFMON: self::Rfmon,
928    #[cfg(feature = "rtc")]
929    pub RTC: self::Rtc,
930    #[cfg(feature = "sdadc")]
931    pub SDADC: self::Sdadc,
932    #[cfg(feature = "smotor")]
933    pub SMOTOR: self::Smotor,
934    #[cfg(feature = "snc")]
935    pub SNC: self::Snc,
936    #[cfg(feature = "spi")]
937    pub SPI: self::Spi,
938    #[cfg(feature = "spi2")]
939    pub SPI2: self::Spi2,
940    #[cfg(feature = "sys_wdog")]
941    pub SYS_WDOG: self::SysWdog,
942    #[cfg(feature = "timer")]
943    pub TIMER: self::Timer,
944    #[cfg(feature = "timer2")]
945    pub TIMER2: self::Timer2,
946    #[cfg(feature = "timer3")]
947    pub TIMER3: self::Timer3,
948    #[cfg(feature = "timer4")]
949    pub TIMER4: self::Timer4,
950    #[cfg(feature = "uart")]
951    pub UART: self::Uart,
952    #[cfg(feature = "uart2")]
953    pub UART2: self::Uart2,
954    #[cfg(feature = "uart3")]
955    pub UART3: self::Uart3,
956    #[cfg(feature = "usb")]
957    pub USB: self::Usb,
958    #[cfg(feature = "wakeup")]
959    pub WAKEUP: self::Wakeup,
960}
961
962impl Peripherals {
963    /// Returns Peripheral struct multiple times
964    /// Required for compatibility with RTIC and other frameworks
965    #[inline]
966    pub fn take() -> Option<Self> {
967        Some(Self::steal())
968    }
969
970    /// Returns Peripheral struct multiple times
971    /// Required for compatibility with RTIC and other frameworks
972    #[inline]
973    pub fn steal() -> Self {
974        Peripherals {
975            #[cfg(feature = "sau")]
976            SAU: crate::SAU,
977            #[cfg(feature = "aes_hash")]
978            AES_HASH: crate::AES_HASH,
979            #[cfg(feature = "anamisc")]
980            ANAMISC: crate::ANAMISC,
981            #[cfg(feature = "apu")]
982            APU: crate::APU,
983            #[cfg(feature = "cache")]
984            CACHE: crate::CACHE,
985            #[cfg(feature = "charger")]
986            CHARGER: crate::CHARGER,
987            #[cfg(feature = "chip_version")]
988            CHIP_VERSION: crate::CHIP_VERSION,
989            #[cfg(feature = "cmac")]
990            CMAC: crate::CMAC,
991            #[cfg(feature = "cmac_timer_slp")]
992            CMAC_TIMER_SLP: crate::CMAC_TIMER_SLP,
993            #[cfg(feature = "crg_com")]
994            CRG_COM: crate::CRG_COM,
995            #[cfg(feature = "crg_per")]
996            CRG_PER: crate::CRG_PER,
997            #[cfg(feature = "crg_sys")]
998            CRG_SYS: crate::CRG_SYS,
999            #[cfg(feature = "crg_top")]
1000            CRG_TOP: crate::CRG_TOP,
1001            #[cfg(feature = "crg_xtal")]
1002            CRG_XTAL: crate::CRG_XTAL,
1003            #[cfg(feature = "dcdc")]
1004            DCDC: crate::DCDC,
1005            #[cfg(feature = "dma")]
1006            DMA: crate::DMA,
1007            #[cfg(feature = "dw")]
1008            DW: crate::DW,
1009            #[cfg(feature = "gpadc")]
1010            GPADC: crate::GPADC,
1011            #[cfg(feature = "gpio")]
1012            GPIO: crate::GPIO,
1013            #[cfg(feature = "gpreg")]
1014            GPREG: crate::GPREG,
1015            #[cfg(feature = "i2c")]
1016            I2C: crate::I2C,
1017            #[cfg(feature = "i2c2")]
1018            I2C2: crate::I2C2,
1019            #[cfg(feature = "lcdc")]
1020            LCDC: crate::LCDC,
1021            #[cfg(feature = "lra")]
1022            LRA: crate::LRA,
1023            #[cfg(feature = "memctrl")]
1024            MEMCTRL: crate::MEMCTRL,
1025            #[cfg(feature = "otpc")]
1026            OTPC: crate::OTPC,
1027            #[cfg(feature = "pdc")]
1028            PDC: crate::PDC,
1029            #[cfg(feature = "pwmled")]
1030            PWMLED: crate::PWMLED,
1031            #[cfg(feature = "qspic")]
1032            QSPIC: crate::QSPIC,
1033            #[cfg(feature = "qspic2")]
1034            QSPIC2: crate::QSPIC2,
1035            #[cfg(feature = "rfmon")]
1036            RFMON: crate::RFMON,
1037            #[cfg(feature = "rtc")]
1038            RTC: crate::RTC,
1039            #[cfg(feature = "sdadc")]
1040            SDADC: crate::SDADC,
1041            #[cfg(feature = "smotor")]
1042            SMOTOR: crate::SMOTOR,
1043            #[cfg(feature = "snc")]
1044            SNC: crate::SNC,
1045            #[cfg(feature = "spi")]
1046            SPI: crate::SPI,
1047            #[cfg(feature = "spi2")]
1048            SPI2: crate::SPI2,
1049            #[cfg(feature = "sys_wdog")]
1050            SYS_WDOG: crate::SYS_WDOG,
1051            #[cfg(feature = "timer")]
1052            TIMER: crate::TIMER,
1053            #[cfg(feature = "timer2")]
1054            TIMER2: crate::TIMER2,
1055            #[cfg(feature = "timer3")]
1056            TIMER3: crate::TIMER3,
1057            #[cfg(feature = "timer4")]
1058            TIMER4: crate::TIMER4,
1059            #[cfg(feature = "uart")]
1060            UART: crate::UART,
1061            #[cfg(feature = "uart2")]
1062            UART2: crate::UART2,
1063            #[cfg(feature = "uart3")]
1064            UART3: crate::UART3,
1065            #[cfg(feature = "usb")]
1066            USB: crate::USB,
1067            #[cfg(feature = "wakeup")]
1068            WAKEUP: crate::WAKEUP,
1069        }
1070    }
1071}