1#![doc = "Peripheral access API for RSL10 microcontrollers (generated using svd2rust v0.17.0)\n\nYou can find an overview of the API [here].\n\n[here]: https://docs.rs/svd2rust/0.17.0/svd2rust/#peripheral-api"]
2#![deny(const_err)]
3#![deny(dead_code)]
4#![deny(improper_ctypes)]
5#![deny(legacy_directory_ownership)]
6#![deny(missing_docs)]
7#![deny(no_mangle_generic_items)]
8#![deny(non_shorthand_field_patterns)]
9#![deny(overflowing_literals)]
10#![deny(path_statements)]
11#![deny(patterns_in_fns_without_body)]
12#![deny(plugin_as_library)]
13#![deny(private_in_public)]
14#![deny(safe_extern_statics)]
15#![deny(unconditional_recursion)]
16#![deny(unions_with_drop_fields)]
17#![deny(unused_allocation)]
18#![deny(unused_comparisons)]
19#![deny(unused_parens)]
20#![deny(while_true)]
21#![allow(non_camel_case_types)]
22#![allow(non_snake_case)]
23#![no_std]
24extern crate bare_metal;
25extern crate cortex_m;
26#[cfg(feature = "rt")]
27extern crate cortex_m_rt;
28extern crate vcell;
29use core::marker::PhantomData;
30use core::ops::Deref;
31#[doc = r"Number available in the NVIC for configuring priority"]
32pub const NVIC_PRIO_BITS: u8 = 3;
33#[cfg(feature = "rt")]
34extern "C" {}
35#[doc(hidden)]
36pub union Vector {
37 _handler: unsafe extern "C" fn(),
38 _reserved: u32,
39}
40#[cfg(feature = "rt")]
41#[doc(hidden)]
42#[link_section = ".vector_table.interrupts"]
43#[no_mangle]
44pub static __INTERRUPTS: [Vector; 0] = [];
45#[doc = r"Enumeration of all the interrupts"]
46#[derive(Copy, Clone, Debug)]
47pub enum Interrupt {}
48unsafe impl bare_metal::Nr for Interrupt {
49 #[inline(always)]
50 fn nr(&self) -> u8 {
51 match *self {}
52 }
53}
54#[cfg(feature = "rt")]
55pub use self::Interrupt as interrupt;
56pub use cortex_m::peripheral::Peripherals as CorePeripherals;
57pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, ITM, MPU, NVIC, SCB, SYST, TPIU};
58#[cfg(feature = "rt")]
59pub use cortex_m_rt::interrupt;
60#[allow(unused_imports)]
61use generic::*;
62#[doc = r"Common register and bit access and modify traits"]
63pub mod generic;
64#[doc = "Chip Identification"]
65pub struct AHBREGS {
66 _marker: PhantomData<*const ()>,
67}
68unsafe impl Send for AHBREGS {}
69impl AHBREGS {
70 #[doc = r"Returns a pointer to the register block"]
71 #[inline(always)]
72 pub const fn ptr() -> *const ahbregs::RegisterBlock {
73 0x1fff_fffc as *const _
74 }
75}
76impl Deref for AHBREGS {
77 type Target = ahbregs::RegisterBlock;
78 #[inline(always)]
79 fn deref(&self) -> &Self::Target {
80 unsafe { &*AHBREGS::ptr() }
81 }
82}
83#[doc = "Chip Identification"]
84pub mod ahbregs;
85#[doc = "System Control"]
86pub struct SYSCTRL {
87 _marker: PhantomData<*const ()>,
88}
89unsafe impl Send for SYSCTRL {}
90impl SYSCTRL {
91 #[doc = r"Returns a pointer to the register block"]
92 #[inline(always)]
93 pub const fn ptr() -> *const sysctrl::RegisterBlock {
94 0x4000_0000 as *const _
95 }
96}
97impl Deref for SYSCTRL {
98 type Target = sysctrl::RegisterBlock;
99 #[inline(always)]
100 fn deref(&self) -> &Self::Target {
101 unsafe { &*SYSCTRL::ptr() }
102 }
103}
104#[doc = "System Control"]
105pub mod sysctrl;
106#[doc = "Clock Generation"]
107pub struct CLK {
108 _marker: PhantomData<*const ()>,
109}
110unsafe impl Send for CLK {}
111impl CLK {
112 #[doc = r"Returns a pointer to the register block"]
113 #[inline(always)]
114 pub const fn ptr() -> *const clk::RegisterBlock {
115 0x4000_0100 as *const _
116 }
117}
118impl Deref for CLK {
119 type Target = clk::RegisterBlock;
120 #[inline(always)]
121 fn deref(&self) -> &Self::Target {
122 unsafe { &*CLK::ptr() }
123 }
124}
125#[doc = "Clock Generation"]
126pub mod clk;
127#[doc = "Reset"]
128pub struct DIG {
129 _marker: PhantomData<*const ()>,
130}
131unsafe impl Send for DIG {}
132impl DIG {
133 #[doc = r"Returns a pointer to the register block"]
134 #[inline(always)]
135 pub const fn ptr() -> *const dig::RegisterBlock {
136 0x4000_0200 as *const _
137 }
138}
139impl Deref for DIG {
140 type Target = dig::RegisterBlock;
141 #[inline(always)]
142 fn deref(&self) -> &Self::Target {
143 unsafe { &*DIG::ptr() }
144 }
145}
146#[doc = "Reset"]
147pub mod dig;
148#[doc = "Watchdog Timer"]
149pub struct WATCHDOG {
150 _marker: PhantomData<*const ()>,
151}
152unsafe impl Send for WATCHDOG {}
153impl WATCHDOG {
154 #[doc = r"Returns a pointer to the register block"]
155 #[inline(always)]
156 pub const fn ptr() -> *const watchdog::RegisterBlock {
157 0x4000_0300 as *const _
158 }
159}
160impl Deref for WATCHDOG {
161 type Target = watchdog::RegisterBlock;
162 #[inline(always)]
163 fn deref(&self) -> &Self::Target {
164 unsafe { &*WATCHDOG::ptr() }
165 }
166}
167#[doc = "Watchdog Timer"]
168pub mod watchdog;
169#[doc = "General-Purpose Timers 0, 1, 2 and 3"]
170pub struct TIMER {
171 _marker: PhantomData<*const ()>,
172}
173unsafe impl Send for TIMER {}
174impl TIMER {
175 #[doc = r"Returns a pointer to the register block"]
176 #[inline(always)]
177 pub const fn ptr() -> *const timer::RegisterBlock {
178 0x4000_0400 as *const _
179 }
180}
181impl Deref for TIMER {
182 type Target = timer::RegisterBlock;
183 #[inline(always)]
184 fn deref(&self) -> &Self::Target {
185 unsafe { &*TIMER::ptr() }
186 }
187}
188#[doc = "General-Purpose Timers 0, 1, 2 and 3"]
189pub mod timer;
190#[doc = "Flash Interface Configuration and Control"]
191pub struct FLASH {
192 _marker: PhantomData<*const ()>,
193}
194unsafe impl Send for FLASH {}
195impl FLASH {
196 #[doc = r"Returns a pointer to the register block"]
197 #[inline(always)]
198 pub const fn ptr() -> *const flash::RegisterBlock {
199 0x4000_0500 as *const _
200 }
201}
202impl Deref for FLASH {
203 type Target = flash::RegisterBlock;
204 #[inline(always)]
205 fn deref(&self) -> &Self::Target {
206 unsafe { &*FLASH::ptr() }
207 }
208}
209#[doc = "Flash Interface Configuration and Control"]
210pub mod flash;
211#[doc = "DMA Controller Configuration and Control"]
212pub struct DMA {
213 _marker: PhantomData<*const ()>,
214}
215unsafe impl Send for DMA {}
216impl DMA {
217 #[doc = r"Returns a pointer to the register block"]
218 #[inline(always)]
219 pub const fn ptr() -> *const dma::RegisterBlock {
220 0x4000_0600 as *const _
221 }
222}
223impl Deref for DMA {
224 type Target = dma::RegisterBlock;
225 #[inline(always)]
226 fn deref(&self) -> &Self::Target {
227 unsafe { &*DMA::ptr() }
228 }
229}
230#[doc = "DMA Controller Configuration and Control"]
231pub mod dma;
232#[doc = "DIO Interface and Digital Pad control"]
233pub struct DIO {
234 _marker: PhantomData<*const ()>,
235}
236unsafe impl Send for DIO {}
237impl DIO {
238 #[doc = r"Returns a pointer to the register block"]
239 #[inline(always)]
240 pub const fn ptr() -> *const dio::RegisterBlock {
241 0x4000_0700 as *const _
242 }
243}
244impl Deref for DIO {
245 type Target = dio::RegisterBlock;
246 #[inline(always)]
247 fn deref(&self) -> &Self::Target {
248 unsafe { &*DIO::ptr() }
249 }
250}
251#[doc = "DIO Interface and Digital Pad control"]
252pub mod dio;
253#[doc = "SPI Interface Configuration and Control"]
254pub struct SPI0 {
255 _marker: PhantomData<*const ()>,
256}
257unsafe impl Send for SPI0 {}
258impl SPI0 {
259 #[doc = r"Returns a pointer to the register block"]
260 #[inline(always)]
261 pub const fn ptr() -> *const spi0::RegisterBlock {
262 0x4000_0800 as *const _
263 }
264}
265impl Deref for SPI0 {
266 type Target = spi0::RegisterBlock;
267 #[inline(always)]
268 fn deref(&self) -> &Self::Target {
269 unsafe { &*SPI0::ptr() }
270 }
271}
272#[doc = "SPI Interface Configuration and Control"]
273pub mod spi0;
274#[doc = "SPI Interface Configuration and Control"]
275pub struct SPI1 {
276 _marker: PhantomData<*const ()>,
277}
278unsafe impl Send for SPI1 {}
279impl SPI1 {
280 #[doc = r"Returns a pointer to the register block"]
281 #[inline(always)]
282 pub const fn ptr() -> *const spi1::RegisterBlock {
283 0x4000_0900 as *const _
284 }
285}
286impl Deref for SPI1 {
287 type Target = spi1::RegisterBlock;
288 #[inline(always)]
289 fn deref(&self) -> &Self::Target {
290 unsafe { &*SPI1::ptr() }
291 }
292}
293#[doc = "SPI Interface Configuration and Control"]
294pub mod spi1;
295#[doc = "PCM Interface Configuration and Control"]
296pub struct PCM {
297 _marker: PhantomData<*const ()>,
298}
299unsafe impl Send for PCM {}
300impl PCM {
301 #[doc = r"Returns a pointer to the register block"]
302 #[inline(always)]
303 pub const fn ptr() -> *const pcm::RegisterBlock {
304 0x4000_0a00 as *const _
305 }
306}
307impl Deref for PCM {
308 type Target = pcm::RegisterBlock;
309 #[inline(always)]
310 fn deref(&self) -> &Self::Target {
311 unsafe { &*PCM::ptr() }
312 }
313}
314#[doc = "PCM Interface Configuration and Control"]
315pub mod pcm;
316#[doc = "I2C Interface Configuration and Control"]
317pub struct I2C {
318 _marker: PhantomData<*const ()>,
319}
320unsafe impl Send for I2C {}
321impl I2C {
322 #[doc = r"Returns a pointer to the register block"]
323 #[inline(always)]
324 pub const fn ptr() -> *const i2c::RegisterBlock {
325 0x4000_0b00 as *const _
326 }
327}
328impl Deref for I2C {
329 type Target = i2c::RegisterBlock;
330 #[inline(always)]
331 fn deref(&self) -> &Self::Target {
332 unsafe { &*I2C::ptr() }
333 }
334}
335#[doc = "I2C Interface Configuration and Control"]
336pub mod i2c;
337#[doc = "UART Interface Configuration and Control"]
338pub struct UART {
339 _marker: PhantomData<*const ()>,
340}
341unsafe impl Send for UART {}
342impl UART {
343 #[doc = r"Returns a pointer to the register block"]
344 #[inline(always)]
345 pub const fn ptr() -> *const uart::RegisterBlock {
346 0x4000_0c00 as *const _
347 }
348}
349impl Deref for UART {
350 type Target = uart::RegisterBlock;
351 #[inline(always)]
352 fn deref(&self) -> &Self::Target {
353 unsafe { &*UART::ptr() }
354 }
355}
356#[doc = "UART Interface Configuration and Control"]
357pub mod uart;
358#[doc = "PWM 0 and 1 Configuration and Control"]
359pub struct PWM {
360 _marker: PhantomData<*const ()>,
361}
362unsafe impl Send for PWM {}
363impl PWM {
364 #[doc = r"Returns a pointer to the register block"]
365 #[inline(always)]
366 pub const fn ptr() -> *const pwm::RegisterBlock {
367 0x4000_0d00 as *const _
368 }
369}
370impl Deref for PWM {
371 type Target = pwm::RegisterBlock;
372 #[inline(always)]
373 fn deref(&self) -> &Self::Target {
374 unsafe { &*PWM::ptr() }
375 }
376}
377#[doc = "PWM 0 and 1 Configuration and Control"]
378pub mod pwm;
379#[doc = "DMIC Input and Output Driver Configuration and Control"]
380pub struct AUDIO {
381 _marker: PhantomData<*const ()>,
382}
383unsafe impl Send for AUDIO {}
384impl AUDIO {
385 #[doc = r"Returns a pointer to the register block"]
386 #[inline(always)]
387 pub const fn ptr() -> *const audio::RegisterBlock {
388 0x4000_0e00 as *const _
389 }
390}
391impl Deref for AUDIO {
392 type Target = audio::RegisterBlock;
393 #[inline(always)]
394 fn deref(&self) -> &Self::Target {
395 unsafe { &*AUDIO::ptr() }
396 }
397}
398#[doc = "DMIC Input and Output Driver Configuration and Control"]
399pub mod audio;
400#[doc = "CRC Generator Control"]
401pub struct CRC {
402 _marker: PhantomData<*const ()>,
403}
404unsafe impl Send for CRC {}
405impl CRC {
406 #[doc = r"Returns a pointer to the register block"]
407 #[inline(always)]
408 pub const fn ptr() -> *const crc::RegisterBlock {
409 0x4000_0f00 as *const _
410 }
411}
412impl Deref for CRC {
413 type Target = crc::RegisterBlock;
414 #[inline(always)]
415 fn deref(&self) -> &Self::Target {
416 unsafe { &*CRC::ptr() }
417 }
418}
419#[doc = "CRC Generator Control"]
420pub mod crc;
421#[doc = "Audio Sink Clock Counters"]
422pub struct AUDIOSINK {
423 _marker: PhantomData<*const ()>,
424}
425unsafe impl Send for AUDIOSINK {}
426impl AUDIOSINK {
427 #[doc = r"Returns a pointer to the register block"]
428 #[inline(always)]
429 pub const fn ptr() -> *const audiosink::RegisterBlock {
430 0x4000_1000 as *const _
431 }
432}
433impl Deref for AUDIOSINK {
434 type Target = audiosink::RegisterBlock;
435 #[inline(always)]
436 fn deref(&self) -> &Self::Target {
437 unsafe { &*AUDIOSINK::ptr() }
438 }
439}
440#[doc = "Audio Sink Clock Counters"]
441pub mod audiosink;
442#[doc = "ASRC Configuration and Control"]
443pub struct ASRC {
444 _marker: PhantomData<*const ()>,
445}
446unsafe impl Send for ASRC {}
447impl ASRC {
448 #[doc = r"Returns a pointer to the register block"]
449 #[inline(always)]
450 pub const fn ptr() -> *const asrc::RegisterBlock {
451 0x4000_1100 as *const _
452 }
453}
454impl Deref for ASRC {
455 type Target = asrc::RegisterBlock;
456 #[inline(always)]
457 fn deref(&self) -> &Self::Target {
458 unsafe { &*ASRC::ptr() }
459 }
460}
461#[doc = "ASRC Configuration and Control"]
462pub mod asrc;
463#[doc = "Analog-to-Digital Converter and Battery Monitoring"]
464pub struct ADC {
465 _marker: PhantomData<*const ()>,
466}
467unsafe impl Send for ADC {}
468impl ADC {
469 #[doc = r"Returns a pointer to the register block"]
470 #[inline(always)]
471 pub const fn ptr() -> *const adc::RegisterBlock {
472 0x4000_1200 as *const _
473 }
474}
475impl Deref for ADC {
476 type Target = adc::RegisterBlock;
477 #[inline(always)]
478 fn deref(&self) -> &Self::Target {
479 unsafe { &*ADC::ptr() }
480 }
481}
482#[doc = "Analog-to-Digital Converter and Battery Monitoring"]
483pub mod adc;
484#[doc = "ACS domain (Analog Bridge Access)"]
485pub struct ACS {
486 _marker: PhantomData<*const ()>,
487}
488unsafe impl Send for ACS {}
489impl ACS {
490 #[doc = r"Returns a pointer to the register block"]
491 #[inline(always)]
492 pub const fn ptr() -> *const acs::RegisterBlock {
493 0x4000_1300 as *const _
494 }
495}
496impl Deref for ACS {
497 type Target = acs::RegisterBlock;
498 #[inline(always)]
499 fn deref(&self) -> &Self::Target {
500 unsafe { &*ACS::ptr() }
501 }
502}
503#[doc = "ACS domain (Analog Bridge Access)"]
504pub mod acs;
505#[doc = "Baseband Controller Interface"]
506pub struct BBIF {
507 _marker: PhantomData<*const ()>,
508}
509unsafe impl Send for BBIF {}
510impl BBIF {
511 #[doc = r"Returns a pointer to the register block"]
512 #[inline(always)]
513 pub const fn ptr() -> *const bbif::RegisterBlock {
514 0x4000_1400 as *const _
515 }
516}
517impl Deref for BBIF {
518 type Target = bbif::RegisterBlock;
519 #[inline(always)]
520 fn deref(&self) -> &Self::Target {
521 unsafe { &*BBIF::ptr() }
522 }
523}
524#[doc = "Baseband Controller Interface"]
525pub mod bbif;
526#[doc = "Baseband Controller"]
527pub struct BB {
528 _marker: PhantomData<*const ()>,
529}
530unsafe impl Send for BB {}
531impl BB {
532 #[doc = r"Returns a pointer to the register block"]
533 #[inline(always)]
534 pub const fn ptr() -> *const bb::RegisterBlock {
535 0x4000_1500 as *const _
536 }
537}
538impl Deref for BB {
539 type Target = bb::RegisterBlock;
540 #[inline(always)]
541 fn deref(&self) -> &Self::Target {
542 unsafe { &*BB::ptr() }
543 }
544}
545#[doc = "Baseband Controller"]
546pub mod bb;
547#[doc = "RF Front-End 2.4 GHz"]
548pub struct RF {
549 _marker: PhantomData<*const ()>,
550}
551unsafe impl Send for RF {}
552impl RF {
553 #[doc = r"Returns a pointer to the register block"]
554 #[inline(always)]
555 pub const fn ptr() -> *const rf::RegisterBlock {
556 0x4001_0000 as *const _
557 }
558}
559impl Deref for RF {
560 type Target = rf::RegisterBlock;
561 #[inline(always)]
562 fn deref(&self) -> &Self::Target {
563 unsafe { &*RF::ptr() }
564 }
565}
566#[doc = "RF Front-End 2.4 GHz"]
567pub mod rf;
568#[doc = "SYSTICK Timer"]
569pub struct SYSTICK {
570 _marker: PhantomData<*const ()>,
571}
572unsafe impl Send for SYSTICK {}
573impl SYSTICK {
574 #[doc = r"Returns a pointer to the register block"]
575 #[inline(always)]
576 pub const fn ptr() -> *const sys_tick::RegisterBlock {
577 0xe000_e010 as *const _
578 }
579}
580impl Deref for SYSTICK {
581 type Target = sys_tick::RegisterBlock;
582 #[inline(always)]
583 fn deref(&self) -> &Self::Target {
584 unsafe { &*SYSTICK::ptr() }
585 }
586}
587#[doc = "SYSTICK Timer"]
588pub mod sys_tick;
589#[doc = "System Control and ID register not in the SCB"]
590pub struct SCNSCB {
591 _marker: PhantomData<*const ()>,
592}
593unsafe impl Send for SCNSCB {}
594impl SCNSCB {
595 #[doc = r"Returns a pointer to the register block"]
596 #[inline(always)]
597 pub const fn ptr() -> *const scn_scb::RegisterBlock {
598 0xe000_e004 as *const _
599 }
600}
601impl Deref for SCNSCB {
602 type Target = scn_scb::RegisterBlock;
603 #[inline(always)]
604 fn deref(&self) -> &Self::Target {
605 unsafe { &*SCNSCB::ptr() }
606 }
607}
608#[doc = "System Control and ID register not in the SCB"]
609pub mod scn_scb;
610#[doc = "Debug Controller"]
611pub struct DEBUG {
612 _marker: PhantomData<*const ()>,
613}
614unsafe impl Send for DEBUG {}
615impl DEBUG {
616 #[doc = r"Returns a pointer to the register block"]
617 #[inline(always)]
618 pub const fn ptr() -> *const debug::RegisterBlock {
619 0xe000_edf0 as *const _
620 }
621}
622impl Deref for DEBUG {
623 type Target = debug::RegisterBlock;
624 #[inline(always)]
625 fn deref(&self) -> &Self::Target {
626 unsafe { &*DEBUG::ptr() }
627 }
628}
629#[doc = "Debug Controller"]
630pub mod debug;
631#[no_mangle]
632static mut DEVICE_PERIPHERALS: bool = false;
633#[doc = r"All the peripherals"]
634#[allow(non_snake_case)]
635pub struct Peripherals {
636 #[doc = "AHBREGS"]
637 pub AHBREGS: AHBREGS,
638 #[doc = "SYSCTRL"]
639 pub SYSCTRL: SYSCTRL,
640 #[doc = "CLK"]
641 pub CLK: CLK,
642 #[doc = "DIG"]
643 pub DIG: DIG,
644 #[doc = "WATCHDOG"]
645 pub WATCHDOG: WATCHDOG,
646 #[doc = "TIMER"]
647 pub TIMER: TIMER,
648 #[doc = "FLASH"]
649 pub FLASH: FLASH,
650 #[doc = "DMA"]
651 pub DMA: DMA,
652 #[doc = "DIO"]
653 pub DIO: DIO,
654 #[doc = "SPI0"]
655 pub SPI0: SPI0,
656 #[doc = "SPI1"]
657 pub SPI1: SPI1,
658 #[doc = "PCM"]
659 pub PCM: PCM,
660 #[doc = "I2C"]
661 pub I2C: I2C,
662 #[doc = "UART"]
663 pub UART: UART,
664 #[doc = "PWM"]
665 pub PWM: PWM,
666 #[doc = "AUDIO"]
667 pub AUDIO: AUDIO,
668 #[doc = "CRC"]
669 pub CRC: CRC,
670 #[doc = "AUDIOSINK"]
671 pub AUDIOSINK: AUDIOSINK,
672 #[doc = "ASRC"]
673 pub ASRC: ASRC,
674 #[doc = "ADC"]
675 pub ADC: ADC,
676 #[doc = "ACS"]
677 pub ACS: ACS,
678 #[doc = "BBIF"]
679 pub BBIF: BBIF,
680 #[doc = "BB"]
681 pub BB: BB,
682 #[doc = "RF"]
683 pub RF: RF,
684 #[doc = "SYSTICK"]
685 pub SYSTICK: SYSTICK,
686 #[doc = "SCNSCB"]
687 pub SCNSCB: SCNSCB,
688 #[doc = "DEBUG"]
689 pub DEBUG: DEBUG,
690}
691impl Peripherals {
692 #[doc = r"Returns all the peripherals *once*"]
693 #[inline]
694 pub fn take() -> Option<Self> {
695 cortex_m::interrupt::free(|_| {
696 if unsafe { DEVICE_PERIPHERALS } {
697 None
698 } else {
699 Some(unsafe { Peripherals::steal() })
700 }
701 })
702 }
703 #[doc = r"Unchecked version of `Peripherals::take`"]
704 #[inline]
705 pub unsafe fn steal() -> Self {
706 DEVICE_PERIPHERALS = true;
707 Peripherals {
708 AHBREGS: AHBREGS {
709 _marker: PhantomData,
710 },
711 SYSCTRL: SYSCTRL {
712 _marker: PhantomData,
713 },
714 CLK: CLK {
715 _marker: PhantomData,
716 },
717 DIG: DIG {
718 _marker: PhantomData,
719 },
720 WATCHDOG: WATCHDOG {
721 _marker: PhantomData,
722 },
723 TIMER: TIMER {
724 _marker: PhantomData,
725 },
726 FLASH: FLASH {
727 _marker: PhantomData,
728 },
729 DMA: DMA {
730 _marker: PhantomData,
731 },
732 DIO: DIO {
733 _marker: PhantomData,
734 },
735 SPI0: SPI0 {
736 _marker: PhantomData,
737 },
738 SPI1: SPI1 {
739 _marker: PhantomData,
740 },
741 PCM: PCM {
742 _marker: PhantomData,
743 },
744 I2C: I2C {
745 _marker: PhantomData,
746 },
747 UART: UART {
748 _marker: PhantomData,
749 },
750 PWM: PWM {
751 _marker: PhantomData,
752 },
753 AUDIO: AUDIO {
754 _marker: PhantomData,
755 },
756 CRC: CRC {
757 _marker: PhantomData,
758 },
759 AUDIOSINK: AUDIOSINK {
760 _marker: PhantomData,
761 },
762 ASRC: ASRC {
763 _marker: PhantomData,
764 },
765 ADC: ADC {
766 _marker: PhantomData,
767 },
768 ACS: ACS {
769 _marker: PhantomData,
770 },
771 BBIF: BBIF {
772 _marker: PhantomData,
773 },
774 BB: BB {
775 _marker: PhantomData,
776 },
777 RF: RF {
778 _marker: PhantomData,
779 },
780 SYSTICK: SYSTICK {
781 _marker: PhantomData,
782 },
783 SCNSCB: SCNSCB {
784 _marker: PhantomData,
785 },
786 DEBUG: DEBUG {
787 _marker: PhantomData,
788 },
789 }
790 }
791}