1#![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)]
864pub 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 #[inline]
966 pub fn take() -> Option<Self> {
967 Some(Self::steal())
968 }
969
970 #[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}