1#![doc = "Peripheral access API for CC2538SF53 microcontrollers (generated using svd2rust v0.35.0 ( ))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next]
2svd2rust release can be generated by cloning the svd2rust [repository], checking out the above commit, and running `cargo doc --open`.\n\n[here]: https://docs.rs/svd2rust/0.35.0/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
3#![allow(non_camel_case_types)]
4#![allow(non_snake_case)]
5#![no_std]
6use core::marker::PhantomData;
7use core::ops::Deref;
8#[doc = r"Number available in the NVIC for configuring priority"]
9pub const NVIC_PRIO_BITS: u8 = 3;
10#[allow(unused_imports)]
11use generic::*;
12#[doc = r"Common register and bit access and modify traits"]
13pub mod generic;
14#[cfg(feature = "rt")]
15extern "C" {
16 fn GPIO_A();
17 fn GPIO_B();
18 fn GPIO_C();
19 fn GPIO_D();
20 fn RESERVED_20();
21 fn UART0();
22 fn UART1();
23 fn SSI0();
24 fn I2C();
25 fn RESERVED_25();
26 fn RESERVED_26();
27 fn RESERVED_27();
28 fn RESERVED_28();
29 fn RESERVED_29();
30 fn ADC();
31 fn GPTIMER0A();
32 fn GPTIMER0B();
33 fn GPTIMER1A();
34 fn GPTIMER1B();
35 fn GPTIMER2A();
36 fn GPTIMER2B();
37 fn ANALOG_COMP();
38 fn RF_TXRX_ALT();
39 fn RF_ERROR_ERR_ALT();
40 fn SYS_CTRL();
41 fn FLASH_MEM_CTRL();
42 fn AES_ALT();
43 fn PKA_ALT();
44 fn SM_TIMER_ALT();
45 fn MAC_TIMER_ALT();
46 fn SSI1();
47 fn GPTIMER3A();
48 fn GPTIMER3B();
49 fn RESERVED_53();
50 fn RESERVED_55();
51 fn RESERVED_59();
52 fn RESERVED_60();
53 fn RESERVED_61();
54 fn UDMA_SW();
55 fn UDMA_ERROR();
56 fn RESERVED_64();
57 fn RESERVED_65();
58 fn RESERVED_66();
59 fn RESERVED_67();
60 fn RESERVED_68();
61 fn RESERVED_69();
62 fn RESERVED_70();
63 fn RESERVED_71();
64 fn RESERVED_72();
65 fn RESERVED_73();
66 fn RESERVED_74();
67 fn RESERVED_75();
68 fn RESERVED_76();
69 fn RESERVED_77();
70 fn RESERVED_78();
71 fn RESERVED_79();
72 fn RESERVED_80();
73 fn RESERVED_81();
74 fn RESERVED_82();
75 fn RESERVED_83();
76 fn RESERVED_84();
77 fn RESERVED_85();
78 fn RESERVED_86();
79 fn RESERVED_87();
80 fn RESERVED_88();
81 fn RESERVED_89();
82 fn RESERVED_90();
83 fn RESERVED_91();
84 fn RESERVED_92();
85 fn RESERVED_93();
86 fn RESERVED_94();
87 fn RESERVED_95();
88 fn RESERVED_96();
89 fn RESERVED_97();
90 fn RESERVED_98();
91 fn RESERVED_99();
92 fn RESERVED_100();
93 fn RESERVED_101();
94 fn RESERVED_102();
95 fn RESERVED_103();
96 fn RESERVED_104();
97 fn RESERVED_105();
98 fn RESERVED_106();
99 fn RESERVED_107();
100 fn RESERVED_108();
101 fn RESERVED_109();
102 fn RESERVED_110();
103 fn RESERVED_111();
104 fn RESERVED_112();
105 fn RESERVED_113();
106 fn RESERVED_114();
107 fn RESERVED_115();
108 fn RESERVED_116();
109 fn RESERVED_117();
110 fn RESERVED_118();
111 fn RESERVED_119();
112 fn RESERVED_120();
113 fn RESERVED_121();
114 fn RESERVED_122();
115 fn RESERVED_123();
116 fn RESERVED_124();
117 fn RESERVED_125();
118 fn RESERVED_126();
119 fn RESERVED_127();
120 fn RESERVED_128();
121 fn RESERVED_129();
122 fn RESERVED_130();
123 fn RESERVED_131();
124 fn RESERVED_132();
125 fn RESERVED_133();
126 fn RESERVED_134();
127 fn RESERVED_135();
128 fn RESERVED_136();
129 fn RESERVED_137();
130 fn RESERVED_138();
131 fn RESERVED_139();
132 fn RESERVED_140();
133 fn RESERVED_141();
134 fn RESERVED_142();
135 fn RESERVED_143();
136 fn RESERVED_144();
137 fn RESERVED_145();
138 fn RESERVED_146();
139 fn RESERVED_147();
140 fn RESERVED_148();
141 fn RESERVED_149();
142 fn RESERVED_150();
143 fn RESERVED_151();
144 fn RESERVED_152();
145 fn RESERVED_153();
146 fn RESERVED_154();
147 fn RESERVED_155();
148 fn USB();
149 fn RF_TXRX();
150 fn RF_ERROR();
151 fn AES();
152 fn PKA();
153 fn SM_TIMER();
154 fn MAC_TIMER();
155 fn RESERVED_163();
156}
157#[doc(hidden)]
158#[repr(C)]
159pub union Vector {
160 _handler: unsafe extern "C" fn(),
161 _reserved: u32,
162}
163#[cfg(feature = "rt")]
164#[doc(hidden)]
165#[link_section = ".vector_table.interrupts"]
166#[no_mangle]
167pub static __INTERRUPTS: [Vector; 164 - 16] = [
168 Vector { _handler: GPIO_A },
169 Vector { _handler: GPIO_B },
170 Vector { _handler: GPIO_C },
171 Vector { _handler: GPIO_D },
172 Vector {
173 _handler: RESERVED_20,
174 },
175 Vector { _handler: UART0 },
176 Vector { _handler: UART1 },
177 Vector { _handler: SSI0 },
178 Vector { _handler: I2C },
179 Vector {
180 _handler: RESERVED_25,
181 },
182 Vector {
183 _handler: RESERVED_26,
184 },
185 Vector {
186 _handler: RESERVED_27,
187 },
188 Vector {
189 _handler: RESERVED_28,
190 },
191 Vector {
192 _handler: RESERVED_29,
193 },
194 Vector { _handler: ADC },
195 Vector { _reserved: 0 },
196 Vector { _reserved: 0 },
197 Vector { _reserved: 0 },
198 Vector { _reserved: 0 },
199 Vector {
200 _handler: GPTIMER0A,
201 },
202 Vector {
203 _handler: GPTIMER0B,
204 },
205 Vector {
206 _handler: GPTIMER1A,
207 },
208 Vector {
209 _handler: GPTIMER1B,
210 },
211 Vector {
212 _handler: GPTIMER2A,
213 },
214 Vector {
215 _handler: GPTIMER2B,
216 },
217 Vector {
218 _handler: ANALOG_COMP,
219 },
220 Vector {
221 _handler: RF_TXRX_ALT,
222 },
223 Vector {
224 _handler: RF_ERROR_ERR_ALT,
225 },
226 Vector { _handler: SYS_CTRL },
227 Vector {
228 _handler: FLASH_MEM_CTRL,
229 },
230 Vector { _handler: AES_ALT },
231 Vector { _handler: PKA_ALT },
232 Vector {
233 _handler: SM_TIMER_ALT,
234 },
235 Vector {
236 _handler: MAC_TIMER_ALT,
237 },
238 Vector { _handler: SSI1 },
239 Vector {
240 _handler: GPTIMER3A,
241 },
242 Vector {
243 _handler: GPTIMER3B,
244 },
245 Vector {
246 _handler: RESERVED_53,
247 },
248 Vector { _reserved: 0 },
249 Vector {
250 _handler: RESERVED_55,
251 },
252 Vector { _reserved: 0 },
253 Vector { _reserved: 0 },
254 Vector { _reserved: 0 },
255 Vector {
256 _handler: RESERVED_59,
257 },
258 Vector {
259 _handler: RESERVED_60,
260 },
261 Vector {
262 _handler: RESERVED_61,
263 },
264 Vector { _handler: UDMA_SW },
265 Vector {
266 _handler: UDMA_ERROR,
267 },
268 Vector {
269 _handler: RESERVED_64,
270 },
271 Vector {
272 _handler: RESERVED_65,
273 },
274 Vector {
275 _handler: RESERVED_66,
276 },
277 Vector {
278 _handler: RESERVED_67,
279 },
280 Vector {
281 _handler: RESERVED_68,
282 },
283 Vector {
284 _handler: RESERVED_69,
285 },
286 Vector {
287 _handler: RESERVED_70,
288 },
289 Vector {
290 _handler: RESERVED_71,
291 },
292 Vector {
293 _handler: RESERVED_72,
294 },
295 Vector {
296 _handler: RESERVED_73,
297 },
298 Vector {
299 _handler: RESERVED_74,
300 },
301 Vector {
302 _handler: RESERVED_75,
303 },
304 Vector {
305 _handler: RESERVED_76,
306 },
307 Vector {
308 _handler: RESERVED_77,
309 },
310 Vector {
311 _handler: RESERVED_78,
312 },
313 Vector {
314 _handler: RESERVED_79,
315 },
316 Vector {
317 _handler: RESERVED_80,
318 },
319 Vector {
320 _handler: RESERVED_81,
321 },
322 Vector {
323 _handler: RESERVED_82,
324 },
325 Vector {
326 _handler: RESERVED_83,
327 },
328 Vector {
329 _handler: RESERVED_84,
330 },
331 Vector {
332 _handler: RESERVED_85,
333 },
334 Vector {
335 _handler: RESERVED_86,
336 },
337 Vector {
338 _handler: RESERVED_87,
339 },
340 Vector {
341 _handler: RESERVED_88,
342 },
343 Vector {
344 _handler: RESERVED_89,
345 },
346 Vector {
347 _handler: RESERVED_90,
348 },
349 Vector {
350 _handler: RESERVED_91,
351 },
352 Vector {
353 _handler: RESERVED_92,
354 },
355 Vector {
356 _handler: RESERVED_93,
357 },
358 Vector {
359 _handler: RESERVED_94,
360 },
361 Vector {
362 _handler: RESERVED_95,
363 },
364 Vector {
365 _handler: RESERVED_96,
366 },
367 Vector {
368 _handler: RESERVED_97,
369 },
370 Vector {
371 _handler: RESERVED_98,
372 },
373 Vector {
374 _handler: RESERVED_99,
375 },
376 Vector {
377 _handler: RESERVED_100,
378 },
379 Vector {
380 _handler: RESERVED_101,
381 },
382 Vector {
383 _handler: RESERVED_102,
384 },
385 Vector {
386 _handler: RESERVED_103,
387 },
388 Vector {
389 _handler: RESERVED_104,
390 },
391 Vector {
392 _handler: RESERVED_105,
393 },
394 Vector {
395 _handler: RESERVED_106,
396 },
397 Vector {
398 _handler: RESERVED_107,
399 },
400 Vector {
401 _handler: RESERVED_108,
402 },
403 Vector {
404 _handler: RESERVED_109,
405 },
406 Vector {
407 _handler: RESERVED_110,
408 },
409 Vector {
410 _handler: RESERVED_111,
411 },
412 Vector {
413 _handler: RESERVED_112,
414 },
415 Vector {
416 _handler: RESERVED_113,
417 },
418 Vector {
419 _handler: RESERVED_114,
420 },
421 Vector {
422 _handler: RESERVED_115,
423 },
424 Vector {
425 _handler: RESERVED_116,
426 },
427 Vector {
428 _handler: RESERVED_117,
429 },
430 Vector {
431 _handler: RESERVED_118,
432 },
433 Vector {
434 _handler: RESERVED_119,
435 },
436 Vector {
437 _handler: RESERVED_120,
438 },
439 Vector {
440 _handler: RESERVED_121,
441 },
442 Vector {
443 _handler: RESERVED_122,
444 },
445 Vector {
446 _handler: RESERVED_123,
447 },
448 Vector {
449 _handler: RESERVED_124,
450 },
451 Vector {
452 _handler: RESERVED_125,
453 },
454 Vector {
455 _handler: RESERVED_126,
456 },
457 Vector {
458 _handler: RESERVED_127,
459 },
460 Vector {
461 _handler: RESERVED_128,
462 },
463 Vector {
464 _handler: RESERVED_129,
465 },
466 Vector {
467 _handler: RESERVED_130,
468 },
469 Vector {
470 _handler: RESERVED_131,
471 },
472 Vector {
473 _handler: RESERVED_132,
474 },
475 Vector {
476 _handler: RESERVED_133,
477 },
478 Vector {
479 _handler: RESERVED_134,
480 },
481 Vector {
482 _handler: RESERVED_135,
483 },
484 Vector {
485 _handler: RESERVED_136,
486 },
487 Vector {
488 _handler: RESERVED_137,
489 },
490 Vector {
491 _handler: RESERVED_138,
492 },
493 Vector {
494 _handler: RESERVED_139,
495 },
496 Vector {
497 _handler: RESERVED_140,
498 },
499 Vector {
500 _handler: RESERVED_141,
501 },
502 Vector {
503 _handler: RESERVED_142,
504 },
505 Vector {
506 _handler: RESERVED_143,
507 },
508 Vector {
509 _handler: RESERVED_144,
510 },
511 Vector {
512 _handler: RESERVED_145,
513 },
514 Vector {
515 _handler: RESERVED_146,
516 },
517 Vector {
518 _handler: RESERVED_147,
519 },
520 Vector {
521 _handler: RESERVED_148,
522 },
523 Vector {
524 _handler: RESERVED_149,
525 },
526 Vector {
527 _handler: RESERVED_150,
528 },
529 Vector {
530 _handler: RESERVED_151,
531 },
532 Vector {
533 _handler: RESERVED_152,
534 },
535 Vector {
536 _handler: RESERVED_153,
537 },
538 Vector {
539 _handler: RESERVED_154,
540 },
541 Vector {
542 _handler: RESERVED_155,
543 },
544 Vector { _handler: USB },
545 Vector { _handler: RF_TXRX },
546 Vector { _handler: RF_ERROR },
547 Vector { _handler: AES },
548 Vector { _handler: PKA },
549 Vector { _handler: SM_TIMER },
550 Vector {
551 _handler: MAC_TIMER,
552 },
553 Vector {
554 _handler: RESERVED_163,
555 },
556];
557#[doc = r"Enumeration of all the interrupts."]
558#[derive(Copy, Clone, Debug, PartialEq, Eq)]
559#[repr(u16)]
560pub enum Interrupt {
561 #[doc = "16 - GPIO_A global interrupt"]
562 GPIO_A = 16,
563 #[doc = "17 - GPIO_B global interrupt"]
564 GPIO_B = 17,
565 #[doc = "18 - GPIO_C global interrupt"]
566 GPIO_C = 18,
567 #[doc = "19 - GPIO_D global interrupt"]
568 GPIO_D = 19,
569 #[doc = "20 - Reserved global interrupt"]
570 RESERVED_20 = 20,
571 #[doc = "21 - UART0 global interrupt"]
572 UART0 = 21,
573 #[doc = "22 - UART1 global interrupt"]
574 UART1 = 22,
575 #[doc = "23 - SSI0 global interrupt"]
576 SSI0 = 23,
577 #[doc = "24 - I2C global interrupt"]
578 I2C = 24,
579 #[doc = "25 - Reserved global interrupt"]
580 RESERVED_25 = 25,
581 #[doc = "26 - Reserved global interrupt"]
582 RESERVED_26 = 26,
583 #[doc = "27 - Reserved global interrupt"]
584 RESERVED_27 = 27,
585 #[doc = "28 - Reserved global interrupt"]
586 RESERVED_28 = 28,
587 #[doc = "29 - Reserved global interrupt"]
588 RESERVED_29 = 29,
589 #[doc = "30 - ADC interrupt"]
590 ADC = 30,
591 #[doc = "35 - GPTIMER0A global interrupt"]
592 GPTIMER0A = 35,
593 #[doc = "36 - GPTIMER0B global interrupt"]
594 GPTIMER0B = 36,
595 #[doc = "37 - GPTIMER1A global interrupt"]
596 GPTIMER1A = 37,
597 #[doc = "38 - GPTIMER1B global interrupt"]
598 GPTIMER1B = 38,
599 #[doc = "39 - GPTIMER2A global interrupt"]
600 GPTIMER2A = 39,
601 #[doc = "40 - GPTIMER2B global interrupt"]
602 GPTIMER2B = 40,
603 #[doc = "41 - ANALOG_COMP global interrupt"]
604 ANALOG_COMP = 41,
605 #[doc = "42 - RF TX/RX (Alternate) global interrupt"]
606 RF_TXRX_ALT = 42,
607 #[doc = "43 - RF Error (Alternate) global interrupt"]
608 RF_ERROR_ERR_ALT = 43,
609 #[doc = "44 - System Control global interrupt"]
610 SYS_CTRL = 44,
611 #[doc = "45 - Flash Memory Control global interrupt"]
612 FLASH_MEM_CTRL = 45,
613 #[doc = "46 - AES (Alternate) global interrupt"]
614 AES_ALT = 46,
615 #[doc = "47 - PKA (Alternate) global interrupt"]
616 PKA_ALT = 47,
617 #[doc = "48 - SM Timer (Alternate) global interrupt"]
618 SM_TIMER_ALT = 48,
619 #[doc = "49 - MAC Timer (Alternate) global interrupt"]
620 MAC_TIMER_ALT = 49,
621 #[doc = "50 - SSI1 global interrupt"]
622 SSI1 = 50,
623 #[doc = "51 - GPTIMER3A global interrupt"]
624 GPTIMER3A = 51,
625 #[doc = "52 - GPTIMER3B global interrupt"]
626 GPTIMER3B = 52,
627 #[doc = "53 - Reserved global interrupt"]
628 RESERVED_53 = 53,
629 #[doc = "55 - Reserved global interrupt"]
630 RESERVED_55 = 55,
631 #[doc = "59 - Reserved global interrupt"]
632 RESERVED_59 = 59,
633 #[doc = "60 - Reserved global interrupt"]
634 RESERVED_60 = 60,
635 #[doc = "61 - Reserved global interrupt"]
636 RESERVED_61 = 61,
637 #[doc = "62 - UDMA software interrupt"]
638 UDMA_SW = 62,
639 #[doc = "63 - UDMA error interrupt"]
640 UDMA_ERROR = 63,
641 #[doc = "64 - Reserved global interrupt"]
642 RESERVED_64 = 64,
643 #[doc = "65 - Reserved global interrupt"]
644 RESERVED_65 = 65,
645 #[doc = "66 - Reserved global interrupt"]
646 RESERVED_66 = 66,
647 #[doc = "67 - Reserved global interrupt"]
648 RESERVED_67 = 67,
649 #[doc = "68 - Reserved global interrupt"]
650 RESERVED_68 = 68,
651 #[doc = "69 - Reserved global interrupt"]
652 RESERVED_69 = 69,
653 #[doc = "70 - Reserved global interrupt"]
654 RESERVED_70 = 70,
655 #[doc = "71 - Reserved global interrupt"]
656 RESERVED_71 = 71,
657 #[doc = "72 - Reserved global interrupt"]
658 RESERVED_72 = 72,
659 #[doc = "73 - Reserved global interrupt"]
660 RESERVED_73 = 73,
661 #[doc = "74 - Reserved global interrupt"]
662 RESERVED_74 = 74,
663 #[doc = "75 - Reserved global interrupt"]
664 RESERVED_75 = 75,
665 #[doc = "76 - Reserved global interrupt"]
666 RESERVED_76 = 76,
667 #[doc = "77 - Reserved global interrupt"]
668 RESERVED_77 = 77,
669 #[doc = "78 - Reserved global interrupt"]
670 RESERVED_78 = 78,
671 #[doc = "79 - Reserved global interrupt"]
672 RESERVED_79 = 79,
673 #[doc = "80 - Reserved global interrupt"]
674 RESERVED_80 = 80,
675 #[doc = "81 - Reserved global interrupt"]
676 RESERVED_81 = 81,
677 #[doc = "82 - Reserved global interrupt"]
678 RESERVED_82 = 82,
679 #[doc = "83 - Reserved global interrupt"]
680 RESERVED_83 = 83,
681 #[doc = "84 - Reserved global interrupt"]
682 RESERVED_84 = 84,
683 #[doc = "85 - Reserved global interrupt"]
684 RESERVED_85 = 85,
685 #[doc = "86 - Reserved global interrupt"]
686 RESERVED_86 = 86,
687 #[doc = "87 - Reserved global interrupt"]
688 RESERVED_87 = 87,
689 #[doc = "88 - Reserved global interrupt"]
690 RESERVED_88 = 88,
691 #[doc = "89 - Reserved global interrupt"]
692 RESERVED_89 = 89,
693 #[doc = "90 - Reserved global interrupt"]
694 RESERVED_90 = 90,
695 #[doc = "91 - Reserved global interrupt"]
696 RESERVED_91 = 91,
697 #[doc = "92 - Reserved global interrupt"]
698 RESERVED_92 = 92,
699 #[doc = "93 - Reserved global interrupt"]
700 RESERVED_93 = 93,
701 #[doc = "94 - Reserved global interrupt"]
702 RESERVED_94 = 94,
703 #[doc = "95 - Reserved global interrupt"]
704 RESERVED_95 = 95,
705 #[doc = "96 - Reserved global interrupt"]
706 RESERVED_96 = 96,
707 #[doc = "97 - Reserved global interrupt"]
708 RESERVED_97 = 97,
709 #[doc = "98 - Reserved global interrupt"]
710 RESERVED_98 = 98,
711 #[doc = "99 - Reserved global interrupt"]
712 RESERVED_99 = 99,
713 #[doc = "100 - Reserved global interrupt"]
714 RESERVED_100 = 100,
715 #[doc = "101 - Reserved global interrupt"]
716 RESERVED_101 = 101,
717 #[doc = "102 - Reserved global interrupt"]
718 RESERVED_102 = 102,
719 #[doc = "103 - Reserved global interrupt"]
720 RESERVED_103 = 103,
721 #[doc = "104 - Reserved global interrupt"]
722 RESERVED_104 = 104,
723 #[doc = "105 - Reserved global interrupt"]
724 RESERVED_105 = 105,
725 #[doc = "106 - Reserved global interrupt"]
726 RESERVED_106 = 106,
727 #[doc = "107 - Reserved global interrupt"]
728 RESERVED_107 = 107,
729 #[doc = "108 - Reserved global interrupt"]
730 RESERVED_108 = 108,
731 #[doc = "109 - Reserved global interrupt"]
732 RESERVED_109 = 109,
733 #[doc = "110 - Reserved global interrupt"]
734 RESERVED_110 = 110,
735 #[doc = "111 - Reserved global interrupt"]
736 RESERVED_111 = 111,
737 #[doc = "112 - Reserved global interrupt"]
738 RESERVED_112 = 112,
739 #[doc = "113 - Reserved global interrupt"]
740 RESERVED_113 = 113,
741 #[doc = "114 - Reserved global interrupt"]
742 RESERVED_114 = 114,
743 #[doc = "115 - Reserved global interrupt"]
744 RESERVED_115 = 115,
745 #[doc = "116 - Reserved global interrupt"]
746 RESERVED_116 = 116,
747 #[doc = "117 - Reserved global interrupt"]
748 RESERVED_117 = 117,
749 #[doc = "118 - Reserved global interrupt"]
750 RESERVED_118 = 118,
751 #[doc = "119 - Reserved global interrupt"]
752 RESERVED_119 = 119,
753 #[doc = "120 - Reserved global interrupt"]
754 RESERVED_120 = 120,
755 #[doc = "121 - Reserved global interrupt"]
756 RESERVED_121 = 121,
757 #[doc = "122 - Reserved global interrupt"]
758 RESERVED_122 = 122,
759 #[doc = "123 - Reserved global interrupt"]
760 RESERVED_123 = 123,
761 #[doc = "124 - Reserved global interrupt"]
762 RESERVED_124 = 124,
763 #[doc = "125 - Reserved global interrupt"]
764 RESERVED_125 = 125,
765 #[doc = "126 - Reserved global interrupt"]
766 RESERVED_126 = 126,
767 #[doc = "127 - Reserved global interrupt"]
768 RESERVED_127 = 127,
769 #[doc = "128 - Reserved global interrupt"]
770 RESERVED_128 = 128,
771 #[doc = "129 - Reserved global interrupt"]
772 RESERVED_129 = 129,
773 #[doc = "130 - Reserved global interrupt"]
774 RESERVED_130 = 130,
775 #[doc = "131 - Reserved global interrupt"]
776 RESERVED_131 = 131,
777 #[doc = "132 - Reserved global interrupt"]
778 RESERVED_132 = 132,
779 #[doc = "133 - Reserved global interrupt"]
780 RESERVED_133 = 133,
781 #[doc = "134 - Reserved global interrupt"]
782 RESERVED_134 = 134,
783 #[doc = "135 - Reserved global interrupt"]
784 RESERVED_135 = 135,
785 #[doc = "136 - Reserved global interrupt"]
786 RESERVED_136 = 136,
787 #[doc = "137 - Reserved global interrupt"]
788 RESERVED_137 = 137,
789 #[doc = "138 - Reserved global interrupt"]
790 RESERVED_138 = 138,
791 #[doc = "139 - Reserved global interrupt"]
792 RESERVED_139 = 139,
793 #[doc = "140 - Reserved global interrupt"]
794 RESERVED_140 = 140,
795 #[doc = "141 - Reserved global interrupt"]
796 RESERVED_141 = 141,
797 #[doc = "142 - Reserved global interrupt"]
798 RESERVED_142 = 142,
799 #[doc = "143 - Reserved global interrupt"]
800 RESERVED_143 = 143,
801 #[doc = "144 - Reserved global interrupt"]
802 RESERVED_144 = 144,
803 #[doc = "145 - Reserved global interrupt"]
804 RESERVED_145 = 145,
805 #[doc = "146 - Reserved global interrupt"]
806 RESERVED_146 = 146,
807 #[doc = "147 - Reserved global interrupt"]
808 RESERVED_147 = 147,
809 #[doc = "148 - Reserved global interrupt"]
810 RESERVED_148 = 148,
811 #[doc = "149 - Reserved global interrupt"]
812 RESERVED_149 = 149,
813 #[doc = "150 - Reserved global interrupt"]
814 RESERVED_150 = 150,
815 #[doc = "151 - Reserved global interrupt"]
816 RESERVED_151 = 151,
817 #[doc = "152 - Reserved global interrupt"]
818 RESERVED_152 = 152,
819 #[doc = "153 - Reserved global interrupt"]
820 RESERVED_153 = 153,
821 #[doc = "154 - Reserved global interrupt"]
822 RESERVED_154 = 154,
823 #[doc = "155 - Reserved global interrupt"]
824 RESERVED_155 = 155,
825 #[doc = "156 - USB global interrupt"]
826 USB = 156,
827 #[doc = "157 - RF TX/RX global interrupt"]
828 RF_TXRX = 157,
829 #[doc = "158 - RF ERROR global interrupt"]
830 RF_ERROR = 158,
831 #[doc = "159 - AES global interrupt"]
832 AES = 159,
833 #[doc = "160 - PKA global interrupt"]
834 PKA = 160,
835 #[doc = "161 - Sleep Timer global interrupt"]
836 SM_TIMER = 161,
837 #[doc = "162 - MAC_TIMER global interrupt"]
838 MAC_TIMER = 162,
839 #[doc = "163 - Reserved global interrupt"]
840 RESERVED_163 = 163,
841}
842unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
843 #[inline(always)]
844 fn number(self) -> u16 {
845 self as u16 - 16
846 }
847}
848#[doc = "no description available"]
849pub struct Ssi0 {
850 _marker: PhantomData<*const ()>,
851}
852unsafe impl Send for Ssi0 {}
853impl Ssi0 {
854 #[doc = r"Pointer to the register block"]
855 pub const PTR: *const ssi0::RegisterBlock = 0x4000_8000 as *const _;
856 #[doc = r"Return the pointer to the register block"]
857 #[inline(always)]
858 pub const fn ptr() -> *const ssi0::RegisterBlock {
859 Self::PTR
860 }
861 #[doc = r" Steal an instance of this peripheral"]
862 #[doc = r""]
863 #[doc = r" # Safety"]
864 #[doc = r""]
865 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
866 #[doc = r" that may race with any existing instances, for example by only"]
867 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
868 #[doc = r" original peripheral and using critical sections to coordinate"]
869 #[doc = r" access between multiple new instances."]
870 #[doc = r""]
871 #[doc = r" Additionally, other software such as HALs may rely on only one"]
872 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
873 #[doc = r" no stolen instances are passed to such software."]
874 pub unsafe fn steal() -> Self {
875 Self {
876 _marker: PhantomData,
877 }
878 }
879}
880impl Deref for Ssi0 {
881 type Target = ssi0::RegisterBlock;
882 #[inline(always)]
883 fn deref(&self) -> &Self::Target {
884 unsafe { &*Self::PTR }
885 }
886}
887impl core::fmt::Debug for Ssi0 {
888 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
889 f.debug_struct("Ssi0").finish()
890 }
891}
892#[doc = "no description available"]
893pub mod ssi0;
894#[doc = "no description available"]
895pub struct Ssi1 {
896 _marker: PhantomData<*const ()>,
897}
898unsafe impl Send for Ssi1 {}
899impl Ssi1 {
900 #[doc = r"Pointer to the register block"]
901 pub const PTR: *const ssi1::RegisterBlock = 0x4000_9000 as *const _;
902 #[doc = r"Return the pointer to the register block"]
903 #[inline(always)]
904 pub const fn ptr() -> *const ssi1::RegisterBlock {
905 Self::PTR
906 }
907 #[doc = r" Steal an instance of this peripheral"]
908 #[doc = r""]
909 #[doc = r" # Safety"]
910 #[doc = r""]
911 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
912 #[doc = r" that may race with any existing instances, for example by only"]
913 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
914 #[doc = r" original peripheral and using critical sections to coordinate"]
915 #[doc = r" access between multiple new instances."]
916 #[doc = r""]
917 #[doc = r" Additionally, other software such as HALs may rely on only one"]
918 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
919 #[doc = r" no stolen instances are passed to such software."]
920 pub unsafe fn steal() -> Self {
921 Self {
922 _marker: PhantomData,
923 }
924 }
925}
926impl Deref for Ssi1 {
927 type Target = ssi1::RegisterBlock;
928 #[inline(always)]
929 fn deref(&self) -> &Self::Target {
930 unsafe { &*Self::PTR }
931 }
932}
933impl core::fmt::Debug for Ssi1 {
934 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
935 f.debug_struct("Ssi1").finish()
936 }
937}
938#[doc = "no description available"]
939pub mod ssi1;
940#[doc = "no description available"]
941pub struct Uart0 {
942 _marker: PhantomData<*const ()>,
943}
944unsafe impl Send for Uart0 {}
945impl Uart0 {
946 #[doc = r"Pointer to the register block"]
947 pub const PTR: *const uart0::RegisterBlock = 0x4000_c000 as *const _;
948 #[doc = r"Return the pointer to the register block"]
949 #[inline(always)]
950 pub const fn ptr() -> *const uart0::RegisterBlock {
951 Self::PTR
952 }
953 #[doc = r" Steal an instance of this peripheral"]
954 #[doc = r""]
955 #[doc = r" # Safety"]
956 #[doc = r""]
957 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
958 #[doc = r" that may race with any existing instances, for example by only"]
959 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
960 #[doc = r" original peripheral and using critical sections to coordinate"]
961 #[doc = r" access between multiple new instances."]
962 #[doc = r""]
963 #[doc = r" Additionally, other software such as HALs may rely on only one"]
964 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
965 #[doc = r" no stolen instances are passed to such software."]
966 pub unsafe fn steal() -> Self {
967 Self {
968 _marker: PhantomData,
969 }
970 }
971}
972impl Deref for Uart0 {
973 type Target = uart0::RegisterBlock;
974 #[inline(always)]
975 fn deref(&self) -> &Self::Target {
976 unsafe { &*Self::PTR }
977 }
978}
979impl core::fmt::Debug for Uart0 {
980 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
981 f.debug_struct("Uart0").finish()
982 }
983}
984#[doc = "no description available"]
985pub mod uart0;
986#[doc = "no description available"]
987pub struct Uart1 {
988 _marker: PhantomData<*const ()>,
989}
990unsafe impl Send for Uart1 {}
991impl Uart1 {
992 #[doc = r"Pointer to the register block"]
993 pub const PTR: *const uart1::RegisterBlock = 0x4000_d000 as *const _;
994 #[doc = r"Return the pointer to the register block"]
995 #[inline(always)]
996 pub const fn ptr() -> *const uart1::RegisterBlock {
997 Self::PTR
998 }
999 #[doc = r" Steal an instance of this peripheral"]
1000 #[doc = r""]
1001 #[doc = r" # Safety"]
1002 #[doc = r""]
1003 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1004 #[doc = r" that may race with any existing instances, for example by only"]
1005 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1006 #[doc = r" original peripheral and using critical sections to coordinate"]
1007 #[doc = r" access between multiple new instances."]
1008 #[doc = r""]
1009 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1010 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1011 #[doc = r" no stolen instances are passed to such software."]
1012 pub unsafe fn steal() -> Self {
1013 Self {
1014 _marker: PhantomData,
1015 }
1016 }
1017}
1018impl Deref for Uart1 {
1019 type Target = uart1::RegisterBlock;
1020 #[inline(always)]
1021 fn deref(&self) -> &Self::Target {
1022 unsafe { &*Self::PTR }
1023 }
1024}
1025impl core::fmt::Debug for Uart1 {
1026 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1027 f.debug_struct("Uart1").finish()
1028 }
1029}
1030#[doc = "no description available"]
1031pub mod uart1;
1032#[doc = "no description available"]
1033pub struct I2cm {
1034 _marker: PhantomData<*const ()>,
1035}
1036unsafe impl Send for I2cm {}
1037impl I2cm {
1038 #[doc = r"Pointer to the register block"]
1039 pub const PTR: *const i2cm::RegisterBlock = 0x4002_0000 as *const _;
1040 #[doc = r"Return the pointer to the register block"]
1041 #[inline(always)]
1042 pub const fn ptr() -> *const i2cm::RegisterBlock {
1043 Self::PTR
1044 }
1045 #[doc = r" Steal an instance of this peripheral"]
1046 #[doc = r""]
1047 #[doc = r" # Safety"]
1048 #[doc = r""]
1049 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1050 #[doc = r" that may race with any existing instances, for example by only"]
1051 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1052 #[doc = r" original peripheral and using critical sections to coordinate"]
1053 #[doc = r" access between multiple new instances."]
1054 #[doc = r""]
1055 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1056 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1057 #[doc = r" no stolen instances are passed to such software."]
1058 pub unsafe fn steal() -> Self {
1059 Self {
1060 _marker: PhantomData,
1061 }
1062 }
1063}
1064impl Deref for I2cm {
1065 type Target = i2cm::RegisterBlock;
1066 #[inline(always)]
1067 fn deref(&self) -> &Self::Target {
1068 unsafe { &*Self::PTR }
1069 }
1070}
1071impl core::fmt::Debug for I2cm {
1072 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1073 f.debug_struct("I2cm").finish()
1074 }
1075}
1076#[doc = "no description available"]
1077pub mod i2cm;
1078#[doc = "no description available"]
1079pub struct I2cs {
1080 _marker: PhantomData<*const ()>,
1081}
1082unsafe impl Send for I2cs {}
1083impl I2cs {
1084 #[doc = r"Pointer to the register block"]
1085 pub const PTR: *const i2cs::RegisterBlock = 0x4002_0800 as *const _;
1086 #[doc = r"Return the pointer to the register block"]
1087 #[inline(always)]
1088 pub const fn ptr() -> *const i2cs::RegisterBlock {
1089 Self::PTR
1090 }
1091 #[doc = r" Steal an instance of this peripheral"]
1092 #[doc = r""]
1093 #[doc = r" # Safety"]
1094 #[doc = r""]
1095 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1096 #[doc = r" that may race with any existing instances, for example by only"]
1097 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1098 #[doc = r" original peripheral and using critical sections to coordinate"]
1099 #[doc = r" access between multiple new instances."]
1100 #[doc = r""]
1101 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1102 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1103 #[doc = r" no stolen instances are passed to such software."]
1104 pub unsafe fn steal() -> Self {
1105 Self {
1106 _marker: PhantomData,
1107 }
1108 }
1109}
1110impl Deref for I2cs {
1111 type Target = i2cs::RegisterBlock;
1112 #[inline(always)]
1113 fn deref(&self) -> &Self::Target {
1114 unsafe { &*Self::PTR }
1115 }
1116}
1117impl core::fmt::Debug for I2cs {
1118 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1119 f.debug_struct("I2cs").finish()
1120 }
1121}
1122#[doc = "no description available"]
1123pub mod i2cs;
1124#[doc = "no description available"]
1125pub struct Gptimer0 {
1126 _marker: PhantomData<*const ()>,
1127}
1128unsafe impl Send for Gptimer0 {}
1129impl Gptimer0 {
1130 #[doc = r"Pointer to the register block"]
1131 pub const PTR: *const gptimer0::RegisterBlock = 0x4003_0000 as *const _;
1132 #[doc = r"Return the pointer to the register block"]
1133 #[inline(always)]
1134 pub const fn ptr() -> *const gptimer0::RegisterBlock {
1135 Self::PTR
1136 }
1137 #[doc = r" Steal an instance of this peripheral"]
1138 #[doc = r""]
1139 #[doc = r" # Safety"]
1140 #[doc = r""]
1141 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1142 #[doc = r" that may race with any existing instances, for example by only"]
1143 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1144 #[doc = r" original peripheral and using critical sections to coordinate"]
1145 #[doc = r" access between multiple new instances."]
1146 #[doc = r""]
1147 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1148 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1149 #[doc = r" no stolen instances are passed to such software."]
1150 pub unsafe fn steal() -> Self {
1151 Self {
1152 _marker: PhantomData,
1153 }
1154 }
1155}
1156impl Deref for Gptimer0 {
1157 type Target = gptimer0::RegisterBlock;
1158 #[inline(always)]
1159 fn deref(&self) -> &Self::Target {
1160 unsafe { &*Self::PTR }
1161 }
1162}
1163impl core::fmt::Debug for Gptimer0 {
1164 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1165 f.debug_struct("Gptimer0").finish()
1166 }
1167}
1168#[doc = "no description available"]
1169pub mod gptimer0;
1170#[doc = "no description available"]
1171pub struct Gptimer1 {
1172 _marker: PhantomData<*const ()>,
1173}
1174unsafe impl Send for Gptimer1 {}
1175impl Gptimer1 {
1176 #[doc = r"Pointer to the register block"]
1177 pub const PTR: *const gptimer1::RegisterBlock = 0x4003_1000 as *const _;
1178 #[doc = r"Return the pointer to the register block"]
1179 #[inline(always)]
1180 pub const fn ptr() -> *const gptimer1::RegisterBlock {
1181 Self::PTR
1182 }
1183 #[doc = r" Steal an instance of this peripheral"]
1184 #[doc = r""]
1185 #[doc = r" # Safety"]
1186 #[doc = r""]
1187 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1188 #[doc = r" that may race with any existing instances, for example by only"]
1189 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1190 #[doc = r" original peripheral and using critical sections to coordinate"]
1191 #[doc = r" access between multiple new instances."]
1192 #[doc = r""]
1193 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1194 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1195 #[doc = r" no stolen instances are passed to such software."]
1196 pub unsafe fn steal() -> Self {
1197 Self {
1198 _marker: PhantomData,
1199 }
1200 }
1201}
1202impl Deref for Gptimer1 {
1203 type Target = gptimer1::RegisterBlock;
1204 #[inline(always)]
1205 fn deref(&self) -> &Self::Target {
1206 unsafe { &*Self::PTR }
1207 }
1208}
1209impl core::fmt::Debug for Gptimer1 {
1210 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1211 f.debug_struct("Gptimer1").finish()
1212 }
1213}
1214#[doc = "no description available"]
1215pub mod gptimer1;
1216#[doc = "no description available"]
1217pub struct Gptimer2 {
1218 _marker: PhantomData<*const ()>,
1219}
1220unsafe impl Send for Gptimer2 {}
1221impl Gptimer2 {
1222 #[doc = r"Pointer to the register block"]
1223 pub const PTR: *const gptimer2::RegisterBlock = 0x4003_2000 as *const _;
1224 #[doc = r"Return the pointer to the register block"]
1225 #[inline(always)]
1226 pub const fn ptr() -> *const gptimer2::RegisterBlock {
1227 Self::PTR
1228 }
1229 #[doc = r" Steal an instance of this peripheral"]
1230 #[doc = r""]
1231 #[doc = r" # Safety"]
1232 #[doc = r""]
1233 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1234 #[doc = r" that may race with any existing instances, for example by only"]
1235 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1236 #[doc = r" original peripheral and using critical sections to coordinate"]
1237 #[doc = r" access between multiple new instances."]
1238 #[doc = r""]
1239 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1240 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1241 #[doc = r" no stolen instances are passed to such software."]
1242 pub unsafe fn steal() -> Self {
1243 Self {
1244 _marker: PhantomData,
1245 }
1246 }
1247}
1248impl Deref for Gptimer2 {
1249 type Target = gptimer2::RegisterBlock;
1250 #[inline(always)]
1251 fn deref(&self) -> &Self::Target {
1252 unsafe { &*Self::PTR }
1253 }
1254}
1255impl core::fmt::Debug for Gptimer2 {
1256 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1257 f.debug_struct("Gptimer2").finish()
1258 }
1259}
1260#[doc = "no description available"]
1261pub mod gptimer2;
1262#[doc = "no description available"]
1263pub struct Gptimer3 {
1264 _marker: PhantomData<*const ()>,
1265}
1266unsafe impl Send for Gptimer3 {}
1267impl Gptimer3 {
1268 #[doc = r"Pointer to the register block"]
1269 pub const PTR: *const gptimer3::RegisterBlock = 0x4003_3000 as *const _;
1270 #[doc = r"Return the pointer to the register block"]
1271 #[inline(always)]
1272 pub const fn ptr() -> *const gptimer3::RegisterBlock {
1273 Self::PTR
1274 }
1275 #[doc = r" Steal an instance of this peripheral"]
1276 #[doc = r""]
1277 #[doc = r" # Safety"]
1278 #[doc = r""]
1279 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1280 #[doc = r" that may race with any existing instances, for example by only"]
1281 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1282 #[doc = r" original peripheral and using critical sections to coordinate"]
1283 #[doc = r" access between multiple new instances."]
1284 #[doc = r""]
1285 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1286 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1287 #[doc = r" no stolen instances are passed to such software."]
1288 pub unsafe fn steal() -> Self {
1289 Self {
1290 _marker: PhantomData,
1291 }
1292 }
1293}
1294impl Deref for Gptimer3 {
1295 type Target = gptimer3::RegisterBlock;
1296 #[inline(always)]
1297 fn deref(&self) -> &Self::Target {
1298 unsafe { &*Self::PTR }
1299 }
1300}
1301impl core::fmt::Debug for Gptimer3 {
1302 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1303 f.debug_struct("Gptimer3").finish()
1304 }
1305}
1306#[doc = "no description available"]
1307pub mod gptimer3;
1308#[doc = "no description available"]
1309pub struct RfcoreFfsm {
1310 _marker: PhantomData<*const ()>,
1311}
1312unsafe impl Send for RfcoreFfsm {}
1313impl RfcoreFfsm {
1314 #[doc = r"Pointer to the register block"]
1315 pub const PTR: *const rfcore_ffsm::RegisterBlock = 0x4008_8500 as *const _;
1316 #[doc = r"Return the pointer to the register block"]
1317 #[inline(always)]
1318 pub const fn ptr() -> *const rfcore_ffsm::RegisterBlock {
1319 Self::PTR
1320 }
1321 #[doc = r" Steal an instance of this peripheral"]
1322 #[doc = r""]
1323 #[doc = r" # Safety"]
1324 #[doc = r""]
1325 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1326 #[doc = r" that may race with any existing instances, for example by only"]
1327 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1328 #[doc = r" original peripheral and using critical sections to coordinate"]
1329 #[doc = r" access between multiple new instances."]
1330 #[doc = r""]
1331 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1332 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1333 #[doc = r" no stolen instances are passed to such software."]
1334 pub unsafe fn steal() -> Self {
1335 Self {
1336 _marker: PhantomData,
1337 }
1338 }
1339}
1340impl Deref for RfcoreFfsm {
1341 type Target = rfcore_ffsm::RegisterBlock;
1342 #[inline(always)]
1343 fn deref(&self) -> &Self::Target {
1344 unsafe { &*Self::PTR }
1345 }
1346}
1347impl core::fmt::Debug for RfcoreFfsm {
1348 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1349 f.debug_struct("RfcoreFfsm").finish()
1350 }
1351}
1352#[doc = "no description available"]
1353pub mod rfcore_ffsm;
1354#[doc = "no description available"]
1355pub struct RfcoreXreg {
1356 _marker: PhantomData<*const ()>,
1357}
1358unsafe impl Send for RfcoreXreg {}
1359impl RfcoreXreg {
1360 #[doc = r"Pointer to the register block"]
1361 pub const PTR: *const rfcore_xreg::RegisterBlock = 0x4008_8600 as *const _;
1362 #[doc = r"Return the pointer to the register block"]
1363 #[inline(always)]
1364 pub const fn ptr() -> *const rfcore_xreg::RegisterBlock {
1365 Self::PTR
1366 }
1367 #[doc = r" Steal an instance of this peripheral"]
1368 #[doc = r""]
1369 #[doc = r" # Safety"]
1370 #[doc = r""]
1371 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1372 #[doc = r" that may race with any existing instances, for example by only"]
1373 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1374 #[doc = r" original peripheral and using critical sections to coordinate"]
1375 #[doc = r" access between multiple new instances."]
1376 #[doc = r""]
1377 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1378 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1379 #[doc = r" no stolen instances are passed to such software."]
1380 pub unsafe fn steal() -> Self {
1381 Self {
1382 _marker: PhantomData,
1383 }
1384 }
1385}
1386impl Deref for RfcoreXreg {
1387 type Target = rfcore_xreg::RegisterBlock;
1388 #[inline(always)]
1389 fn deref(&self) -> &Self::Target {
1390 unsafe { &*Self::PTR }
1391 }
1392}
1393impl core::fmt::Debug for RfcoreXreg {
1394 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1395 f.debug_struct("RfcoreXreg").finish()
1396 }
1397}
1398#[doc = "no description available"]
1399pub mod rfcore_xreg;
1400#[doc = "no description available"]
1401pub struct RfcoreSfr {
1402 _marker: PhantomData<*const ()>,
1403}
1404unsafe impl Send for RfcoreSfr {}
1405impl RfcoreSfr {
1406 #[doc = r"Pointer to the register block"]
1407 pub const PTR: *const rfcore_sfr::RegisterBlock = 0x4008_8800 as *const _;
1408 #[doc = r"Return the pointer to the register block"]
1409 #[inline(always)]
1410 pub const fn ptr() -> *const rfcore_sfr::RegisterBlock {
1411 Self::PTR
1412 }
1413 #[doc = r" Steal an instance of this peripheral"]
1414 #[doc = r""]
1415 #[doc = r" # Safety"]
1416 #[doc = r""]
1417 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1418 #[doc = r" that may race with any existing instances, for example by only"]
1419 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1420 #[doc = r" original peripheral and using critical sections to coordinate"]
1421 #[doc = r" access between multiple new instances."]
1422 #[doc = r""]
1423 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1424 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1425 #[doc = r" no stolen instances are passed to such software."]
1426 pub unsafe fn steal() -> Self {
1427 Self {
1428 _marker: PhantomData,
1429 }
1430 }
1431}
1432impl Deref for RfcoreSfr {
1433 type Target = rfcore_sfr::RegisterBlock;
1434 #[inline(always)]
1435 fn deref(&self) -> &Self::Target {
1436 unsafe { &*Self::PTR }
1437 }
1438}
1439impl core::fmt::Debug for RfcoreSfr {
1440 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1441 f.debug_struct("RfcoreSfr").finish()
1442 }
1443}
1444#[doc = "no description available"]
1445pub mod rfcore_sfr;
1446#[doc = "no description available"]
1447pub struct Usb {
1448 _marker: PhantomData<*const ()>,
1449}
1450unsafe impl Send for Usb {}
1451impl Usb {
1452 #[doc = r"Pointer to the register block"]
1453 pub const PTR: *const usb::RegisterBlock = 0x4008_9000 as *const _;
1454 #[doc = r"Return the pointer to the register block"]
1455 #[inline(always)]
1456 pub const fn ptr() -> *const usb::RegisterBlock {
1457 Self::PTR
1458 }
1459 #[doc = r" Steal an instance of this peripheral"]
1460 #[doc = r""]
1461 #[doc = r" # Safety"]
1462 #[doc = r""]
1463 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1464 #[doc = r" that may race with any existing instances, for example by only"]
1465 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1466 #[doc = r" original peripheral and using critical sections to coordinate"]
1467 #[doc = r" access between multiple new instances."]
1468 #[doc = r""]
1469 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1470 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1471 #[doc = r" no stolen instances are passed to such software."]
1472 pub unsafe fn steal() -> Self {
1473 Self {
1474 _marker: PhantomData,
1475 }
1476 }
1477}
1478impl Deref for Usb {
1479 type Target = usb::RegisterBlock;
1480 #[inline(always)]
1481 fn deref(&self) -> &Self::Target {
1482 unsafe { &*Self::PTR }
1483 }
1484}
1485impl core::fmt::Debug for Usb {
1486 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1487 f.debug_struct("Usb").finish()
1488 }
1489}
1490#[doc = "no description available"]
1491pub mod usb;
1492#[doc = "no description available"]
1493pub struct Aes {
1494 _marker: PhantomData<*const ()>,
1495}
1496unsafe impl Send for Aes {}
1497impl Aes {
1498 #[doc = r"Pointer to the register block"]
1499 pub const PTR: *const aes::RegisterBlock = 0x4008_b000 as *const _;
1500 #[doc = r"Return the pointer to the register block"]
1501 #[inline(always)]
1502 pub const fn ptr() -> *const aes::RegisterBlock {
1503 Self::PTR
1504 }
1505 #[doc = r" Steal an instance of this peripheral"]
1506 #[doc = r""]
1507 #[doc = r" # Safety"]
1508 #[doc = r""]
1509 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1510 #[doc = r" that may race with any existing instances, for example by only"]
1511 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1512 #[doc = r" original peripheral and using critical sections to coordinate"]
1513 #[doc = r" access between multiple new instances."]
1514 #[doc = r""]
1515 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1516 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1517 #[doc = r" no stolen instances are passed to such software."]
1518 pub unsafe fn steal() -> Self {
1519 Self {
1520 _marker: PhantomData,
1521 }
1522 }
1523}
1524impl Deref for Aes {
1525 type Target = aes::RegisterBlock;
1526 #[inline(always)]
1527 fn deref(&self) -> &Self::Target {
1528 unsafe { &*Self::PTR }
1529 }
1530}
1531impl core::fmt::Debug for Aes {
1532 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1533 f.debug_struct("Aes").finish()
1534 }
1535}
1536#[doc = "no description available"]
1537pub mod aes;
1538#[doc = "no description available"]
1539pub struct SysCtrl {
1540 _marker: PhantomData<*const ()>,
1541}
1542unsafe impl Send for SysCtrl {}
1543impl SysCtrl {
1544 #[doc = r"Pointer to the register block"]
1545 pub const PTR: *const sys_ctrl::RegisterBlock = 0x400d_2000 as *const _;
1546 #[doc = r"Return the pointer to the register block"]
1547 #[inline(always)]
1548 pub const fn ptr() -> *const sys_ctrl::RegisterBlock {
1549 Self::PTR
1550 }
1551 #[doc = r" Steal an instance of this peripheral"]
1552 #[doc = r""]
1553 #[doc = r" # Safety"]
1554 #[doc = r""]
1555 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1556 #[doc = r" that may race with any existing instances, for example by only"]
1557 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1558 #[doc = r" original peripheral and using critical sections to coordinate"]
1559 #[doc = r" access between multiple new instances."]
1560 #[doc = r""]
1561 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1562 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1563 #[doc = r" no stolen instances are passed to such software."]
1564 pub unsafe fn steal() -> Self {
1565 Self {
1566 _marker: PhantomData,
1567 }
1568 }
1569}
1570impl Deref for SysCtrl {
1571 type Target = sys_ctrl::RegisterBlock;
1572 #[inline(always)]
1573 fn deref(&self) -> &Self::Target {
1574 unsafe { &*Self::PTR }
1575 }
1576}
1577impl core::fmt::Debug for SysCtrl {
1578 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1579 f.debug_struct("SysCtrl").finish()
1580 }
1581}
1582#[doc = "no description available"]
1583pub mod sys_ctrl;
1584#[doc = "no description available"]
1585pub struct FlashCtrl {
1586 _marker: PhantomData<*const ()>,
1587}
1588unsafe impl Send for FlashCtrl {}
1589impl FlashCtrl {
1590 #[doc = r"Pointer to the register block"]
1591 pub const PTR: *const flash_ctrl::RegisterBlock = 0x400d_3000 as *const _;
1592 #[doc = r"Return the pointer to the register block"]
1593 #[inline(always)]
1594 pub const fn ptr() -> *const flash_ctrl::RegisterBlock {
1595 Self::PTR
1596 }
1597 #[doc = r" Steal an instance of this peripheral"]
1598 #[doc = r""]
1599 #[doc = r" # Safety"]
1600 #[doc = r""]
1601 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1602 #[doc = r" that may race with any existing instances, for example by only"]
1603 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1604 #[doc = r" original peripheral and using critical sections to coordinate"]
1605 #[doc = r" access between multiple new instances."]
1606 #[doc = r""]
1607 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1608 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1609 #[doc = r" no stolen instances are passed to such software."]
1610 pub unsafe fn steal() -> Self {
1611 Self {
1612 _marker: PhantomData,
1613 }
1614 }
1615}
1616impl Deref for FlashCtrl {
1617 type Target = flash_ctrl::RegisterBlock;
1618 #[inline(always)]
1619 fn deref(&self) -> &Self::Target {
1620 unsafe { &*Self::PTR }
1621 }
1622}
1623impl core::fmt::Debug for FlashCtrl {
1624 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1625 f.debug_struct("FlashCtrl").finish()
1626 }
1627}
1628#[doc = "no description available"]
1629pub mod flash_ctrl;
1630#[doc = "no description available"]
1631pub struct Ioc {
1632 _marker: PhantomData<*const ()>,
1633}
1634unsafe impl Send for Ioc {}
1635impl Ioc {
1636 #[doc = r"Pointer to the register block"]
1637 pub const PTR: *const ioc::RegisterBlock = 0x400d_4000 as *const _;
1638 #[doc = r"Return the pointer to the register block"]
1639 #[inline(always)]
1640 pub const fn ptr() -> *const ioc::RegisterBlock {
1641 Self::PTR
1642 }
1643 #[doc = r" Steal an instance of this peripheral"]
1644 #[doc = r""]
1645 #[doc = r" # Safety"]
1646 #[doc = r""]
1647 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1648 #[doc = r" that may race with any existing instances, for example by only"]
1649 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1650 #[doc = r" original peripheral and using critical sections to coordinate"]
1651 #[doc = r" access between multiple new instances."]
1652 #[doc = r""]
1653 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1654 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1655 #[doc = r" no stolen instances are passed to such software."]
1656 pub unsafe fn steal() -> Self {
1657 Self {
1658 _marker: PhantomData,
1659 }
1660 }
1661}
1662impl Deref for Ioc {
1663 type Target = ioc::RegisterBlock;
1664 #[inline(always)]
1665 fn deref(&self) -> &Self::Target {
1666 unsafe { &*Self::PTR }
1667 }
1668}
1669impl core::fmt::Debug for Ioc {
1670 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1671 f.debug_struct("Ioc").finish()
1672 }
1673}
1674#[doc = "no description available"]
1675pub mod ioc;
1676#[doc = "no description available"]
1677pub struct Smwdthrosc {
1678 _marker: PhantomData<*const ()>,
1679}
1680unsafe impl Send for Smwdthrosc {}
1681impl Smwdthrosc {
1682 #[doc = r"Pointer to the register block"]
1683 pub const PTR: *const smwdthrosc::RegisterBlock = 0x400d_5000 as *const _;
1684 #[doc = r"Return the pointer to the register block"]
1685 #[inline(always)]
1686 pub const fn ptr() -> *const smwdthrosc::RegisterBlock {
1687 Self::PTR
1688 }
1689 #[doc = r" Steal an instance of this peripheral"]
1690 #[doc = r""]
1691 #[doc = r" # Safety"]
1692 #[doc = r""]
1693 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1694 #[doc = r" that may race with any existing instances, for example by only"]
1695 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1696 #[doc = r" original peripheral and using critical sections to coordinate"]
1697 #[doc = r" access between multiple new instances."]
1698 #[doc = r""]
1699 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1700 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1701 #[doc = r" no stolen instances are passed to such software."]
1702 pub unsafe fn steal() -> Self {
1703 Self {
1704 _marker: PhantomData,
1705 }
1706 }
1707}
1708impl Deref for Smwdthrosc {
1709 type Target = smwdthrosc::RegisterBlock;
1710 #[inline(always)]
1711 fn deref(&self) -> &Self::Target {
1712 unsafe { &*Self::PTR }
1713 }
1714}
1715impl core::fmt::Debug for Smwdthrosc {
1716 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1717 f.debug_struct("Smwdthrosc").finish()
1718 }
1719}
1720#[doc = "no description available"]
1721pub mod smwdthrosc;
1722#[doc = "no description available"]
1723pub struct AnaRegs {
1724 _marker: PhantomData<*const ()>,
1725}
1726unsafe impl Send for AnaRegs {}
1727impl AnaRegs {
1728 #[doc = r"Pointer to the register block"]
1729 pub const PTR: *const ana_regs::RegisterBlock = 0x400d_6000 as *const _;
1730 #[doc = r"Return the pointer to the register block"]
1731 #[inline(always)]
1732 pub const fn ptr() -> *const ana_regs::RegisterBlock {
1733 Self::PTR
1734 }
1735 #[doc = r" Steal an instance of this peripheral"]
1736 #[doc = r""]
1737 #[doc = r" # Safety"]
1738 #[doc = r""]
1739 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1740 #[doc = r" that may race with any existing instances, for example by only"]
1741 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1742 #[doc = r" original peripheral and using critical sections to coordinate"]
1743 #[doc = r" access between multiple new instances."]
1744 #[doc = r""]
1745 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1746 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1747 #[doc = r" no stolen instances are passed to such software."]
1748 pub unsafe fn steal() -> Self {
1749 Self {
1750 _marker: PhantomData,
1751 }
1752 }
1753}
1754impl Deref for AnaRegs {
1755 type Target = ana_regs::RegisterBlock;
1756 #[inline(always)]
1757 fn deref(&self) -> &Self::Target {
1758 unsafe { &*Self::PTR }
1759 }
1760}
1761impl core::fmt::Debug for AnaRegs {
1762 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1763 f.debug_struct("AnaRegs").finish()
1764 }
1765}
1766#[doc = "no description available"]
1767pub mod ana_regs;
1768#[doc = "no description available"]
1769pub struct SocAdc {
1770 _marker: PhantomData<*const ()>,
1771}
1772unsafe impl Send for SocAdc {}
1773impl SocAdc {
1774 #[doc = r"Pointer to the register block"]
1775 pub const PTR: *const soc_adc::RegisterBlock = 0x400d_7000 as *const _;
1776 #[doc = r"Return the pointer to the register block"]
1777 #[inline(always)]
1778 pub const fn ptr() -> *const soc_adc::RegisterBlock {
1779 Self::PTR
1780 }
1781 #[doc = r" Steal an instance of this peripheral"]
1782 #[doc = r""]
1783 #[doc = r" # Safety"]
1784 #[doc = r""]
1785 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1786 #[doc = r" that may race with any existing instances, for example by only"]
1787 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1788 #[doc = r" original peripheral and using critical sections to coordinate"]
1789 #[doc = r" access between multiple new instances."]
1790 #[doc = r""]
1791 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1792 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1793 #[doc = r" no stolen instances are passed to such software."]
1794 pub unsafe fn steal() -> Self {
1795 Self {
1796 _marker: PhantomData,
1797 }
1798 }
1799}
1800impl Deref for SocAdc {
1801 type Target = soc_adc::RegisterBlock;
1802 #[inline(always)]
1803 fn deref(&self) -> &Self::Target {
1804 unsafe { &*Self::PTR }
1805 }
1806}
1807impl core::fmt::Debug for SocAdc {
1808 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1809 f.debug_struct("SocAdc").finish()
1810 }
1811}
1812#[doc = "no description available"]
1813pub mod soc_adc;
1814#[doc = "no description available"]
1815pub struct GpioA {
1816 _marker: PhantomData<*const ()>,
1817}
1818unsafe impl Send for GpioA {}
1819impl GpioA {
1820 #[doc = r"Pointer to the register block"]
1821 pub const PTR: *const gpio_a::RegisterBlock = 0x400d_9000 as *const _;
1822 #[doc = r"Return the pointer to the register block"]
1823 #[inline(always)]
1824 pub const fn ptr() -> *const gpio_a::RegisterBlock {
1825 Self::PTR
1826 }
1827 #[doc = r" Steal an instance of this peripheral"]
1828 #[doc = r""]
1829 #[doc = r" # Safety"]
1830 #[doc = r""]
1831 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1832 #[doc = r" that may race with any existing instances, for example by only"]
1833 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1834 #[doc = r" original peripheral and using critical sections to coordinate"]
1835 #[doc = r" access between multiple new instances."]
1836 #[doc = r""]
1837 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1838 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1839 #[doc = r" no stolen instances are passed to such software."]
1840 pub unsafe fn steal() -> Self {
1841 Self {
1842 _marker: PhantomData,
1843 }
1844 }
1845}
1846impl Deref for GpioA {
1847 type Target = gpio_a::RegisterBlock;
1848 #[inline(always)]
1849 fn deref(&self) -> &Self::Target {
1850 unsafe { &*Self::PTR }
1851 }
1852}
1853impl core::fmt::Debug for GpioA {
1854 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1855 f.debug_struct("GpioA").finish()
1856 }
1857}
1858#[doc = "no description available"]
1859pub mod gpio_a;
1860#[doc = "no description available"]
1861pub struct GpioB {
1862 _marker: PhantomData<*const ()>,
1863}
1864unsafe impl Send for GpioB {}
1865impl GpioB {
1866 #[doc = r"Pointer to the register block"]
1867 pub const PTR: *const gpio_b::RegisterBlock = 0x400d_a000 as *const _;
1868 #[doc = r"Return the pointer to the register block"]
1869 #[inline(always)]
1870 pub const fn ptr() -> *const gpio_b::RegisterBlock {
1871 Self::PTR
1872 }
1873 #[doc = r" Steal an instance of this peripheral"]
1874 #[doc = r""]
1875 #[doc = r" # Safety"]
1876 #[doc = r""]
1877 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1878 #[doc = r" that may race with any existing instances, for example by only"]
1879 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1880 #[doc = r" original peripheral and using critical sections to coordinate"]
1881 #[doc = r" access between multiple new instances."]
1882 #[doc = r""]
1883 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1884 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1885 #[doc = r" no stolen instances are passed to such software."]
1886 pub unsafe fn steal() -> Self {
1887 Self {
1888 _marker: PhantomData,
1889 }
1890 }
1891}
1892impl Deref for GpioB {
1893 type Target = gpio_b::RegisterBlock;
1894 #[inline(always)]
1895 fn deref(&self) -> &Self::Target {
1896 unsafe { &*Self::PTR }
1897 }
1898}
1899impl core::fmt::Debug for GpioB {
1900 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1901 f.debug_struct("GpioB").finish()
1902 }
1903}
1904#[doc = "no description available"]
1905pub mod gpio_b;
1906#[doc = "no description available"]
1907pub struct GpioC {
1908 _marker: PhantomData<*const ()>,
1909}
1910unsafe impl Send for GpioC {}
1911impl GpioC {
1912 #[doc = r"Pointer to the register block"]
1913 pub const PTR: *const gpio_c::RegisterBlock = 0x400d_b000 as *const _;
1914 #[doc = r"Return the pointer to the register block"]
1915 #[inline(always)]
1916 pub const fn ptr() -> *const gpio_c::RegisterBlock {
1917 Self::PTR
1918 }
1919 #[doc = r" Steal an instance of this peripheral"]
1920 #[doc = r""]
1921 #[doc = r" # Safety"]
1922 #[doc = r""]
1923 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1924 #[doc = r" that may race with any existing instances, for example by only"]
1925 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1926 #[doc = r" original peripheral and using critical sections to coordinate"]
1927 #[doc = r" access between multiple new instances."]
1928 #[doc = r""]
1929 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1930 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1931 #[doc = r" no stolen instances are passed to such software."]
1932 pub unsafe fn steal() -> Self {
1933 Self {
1934 _marker: PhantomData,
1935 }
1936 }
1937}
1938impl Deref for GpioC {
1939 type Target = gpio_c::RegisterBlock;
1940 #[inline(always)]
1941 fn deref(&self) -> &Self::Target {
1942 unsafe { &*Self::PTR }
1943 }
1944}
1945impl core::fmt::Debug for GpioC {
1946 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1947 f.debug_struct("GpioC").finish()
1948 }
1949}
1950#[doc = "no description available"]
1951pub mod gpio_c;
1952#[doc = "no description available"]
1953pub struct GpioD {
1954 _marker: PhantomData<*const ()>,
1955}
1956unsafe impl Send for GpioD {}
1957impl GpioD {
1958 #[doc = r"Pointer to the register block"]
1959 pub const PTR: *const gpio_d::RegisterBlock = 0x400d_c000 as *const _;
1960 #[doc = r"Return the pointer to the register block"]
1961 #[inline(always)]
1962 pub const fn ptr() -> *const gpio_d::RegisterBlock {
1963 Self::PTR
1964 }
1965 #[doc = r" Steal an instance of this peripheral"]
1966 #[doc = r""]
1967 #[doc = r" # Safety"]
1968 #[doc = r""]
1969 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
1970 #[doc = r" that may race with any existing instances, for example by only"]
1971 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
1972 #[doc = r" original peripheral and using critical sections to coordinate"]
1973 #[doc = r" access between multiple new instances."]
1974 #[doc = r""]
1975 #[doc = r" Additionally, other software such as HALs may rely on only one"]
1976 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
1977 #[doc = r" no stolen instances are passed to such software."]
1978 pub unsafe fn steal() -> Self {
1979 Self {
1980 _marker: PhantomData,
1981 }
1982 }
1983}
1984impl Deref for GpioD {
1985 type Target = gpio_d::RegisterBlock;
1986 #[inline(always)]
1987 fn deref(&self) -> &Self::Target {
1988 unsafe { &*Self::PTR }
1989 }
1990}
1991impl core::fmt::Debug for GpioD {
1992 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
1993 f.debug_struct("GpioD").finish()
1994 }
1995}
1996#[doc = "no description available"]
1997pub mod gpio_d;
1998#[doc = "no description available"]
1999pub struct Udma {
2000 _marker: PhantomData<*const ()>,
2001}
2002unsafe impl Send for Udma {}
2003impl Udma {
2004 #[doc = r"Pointer to the register block"]
2005 pub const PTR: *const udma::RegisterBlock = 0x400f_f000 as *const _;
2006 #[doc = r"Return the pointer to the register block"]
2007 #[inline(always)]
2008 pub const fn ptr() -> *const udma::RegisterBlock {
2009 Self::PTR
2010 }
2011 #[doc = r" Steal an instance of this peripheral"]
2012 #[doc = r""]
2013 #[doc = r" # Safety"]
2014 #[doc = r""]
2015 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
2016 #[doc = r" that may race with any existing instances, for example by only"]
2017 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
2018 #[doc = r" original peripheral and using critical sections to coordinate"]
2019 #[doc = r" access between multiple new instances."]
2020 #[doc = r""]
2021 #[doc = r" Additionally, other software such as HALs may rely on only one"]
2022 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
2023 #[doc = r" no stolen instances are passed to such software."]
2024 pub unsafe fn steal() -> Self {
2025 Self {
2026 _marker: PhantomData,
2027 }
2028 }
2029}
2030impl Deref for Udma {
2031 type Target = udma::RegisterBlock;
2032 #[inline(always)]
2033 fn deref(&self) -> &Self::Target {
2034 unsafe { &*Self::PTR }
2035 }
2036}
2037impl core::fmt::Debug for Udma {
2038 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2039 f.debug_struct("Udma").finish()
2040 }
2041}
2042#[doc = "no description available"]
2043pub mod udma;
2044#[doc = "no description available"]
2045pub struct Sttest {
2046 _marker: PhantomData<*const ()>,
2047}
2048unsafe impl Send for Sttest {}
2049impl Sttest {
2050 #[doc = r"Pointer to the register block"]
2051 pub const PTR: *const sttest::RegisterBlock = 0x4011_0000 as *const _;
2052 #[doc = r"Return the pointer to the register block"]
2053 #[inline(always)]
2054 pub const fn ptr() -> *const sttest::RegisterBlock {
2055 Self::PTR
2056 }
2057 #[doc = r" Steal an instance of this peripheral"]
2058 #[doc = r""]
2059 #[doc = r" # Safety"]
2060 #[doc = r""]
2061 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
2062 #[doc = r" that may race with any existing instances, for example by only"]
2063 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
2064 #[doc = r" original peripheral and using critical sections to coordinate"]
2065 #[doc = r" access between multiple new instances."]
2066 #[doc = r""]
2067 #[doc = r" Additionally, other software such as HALs may rely on only one"]
2068 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
2069 #[doc = r" no stolen instances are passed to such software."]
2070 pub unsafe fn steal() -> Self {
2071 Self {
2072 _marker: PhantomData,
2073 }
2074 }
2075}
2076impl Deref for Sttest {
2077 type Target = sttest::RegisterBlock;
2078 #[inline(always)]
2079 fn deref(&self) -> &Self::Target {
2080 unsafe { &*Self::PTR }
2081 }
2082}
2083impl core::fmt::Debug for Sttest {
2084 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2085 f.debug_struct("Sttest").finish()
2086 }
2087}
2088#[doc = "no description available"]
2089pub mod sttest;
2090#[doc = "no description available"]
2091pub struct Pka {
2092 _marker: PhantomData<*const ()>,
2093}
2094unsafe impl Send for Pka {}
2095impl Pka {
2096 #[doc = r"Pointer to the register block"]
2097 pub const PTR: *const pka::RegisterBlock = 0x4400_4000 as *const _;
2098 #[doc = r"Return the pointer to the register block"]
2099 #[inline(always)]
2100 pub const fn ptr() -> *const pka::RegisterBlock {
2101 Self::PTR
2102 }
2103 #[doc = r" Steal an instance of this peripheral"]
2104 #[doc = r""]
2105 #[doc = r" # Safety"]
2106 #[doc = r""]
2107 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
2108 #[doc = r" that may race with any existing instances, for example by only"]
2109 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
2110 #[doc = r" original peripheral and using critical sections to coordinate"]
2111 #[doc = r" access between multiple new instances."]
2112 #[doc = r""]
2113 #[doc = r" Additionally, other software such as HALs may rely on only one"]
2114 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
2115 #[doc = r" no stolen instances are passed to such software."]
2116 pub unsafe fn steal() -> Self {
2117 Self {
2118 _marker: PhantomData,
2119 }
2120 }
2121}
2122impl Deref for Pka {
2123 type Target = pka::RegisterBlock;
2124 #[inline(always)]
2125 fn deref(&self) -> &Self::Target {
2126 unsafe { &*Self::PTR }
2127 }
2128}
2129impl core::fmt::Debug for Pka {
2130 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2131 f.debug_struct("Pka").finish()
2132 }
2133}
2134#[doc = "no description available"]
2135pub mod pka;
2136#[doc = "no description available"]
2137pub struct Cctest {
2138 _marker: PhantomData<*const ()>,
2139}
2140unsafe impl Send for Cctest {}
2141impl Cctest {
2142 #[doc = r"Pointer to the register block"]
2143 pub const PTR: *const cctest::RegisterBlock = 0x4401_0000 as *const _;
2144 #[doc = r"Return the pointer to the register block"]
2145 #[inline(always)]
2146 pub const fn ptr() -> *const cctest::RegisterBlock {
2147 Self::PTR
2148 }
2149 #[doc = r" Steal an instance of this peripheral"]
2150 #[doc = r""]
2151 #[doc = r" # Safety"]
2152 #[doc = r""]
2153 #[doc = r" Ensure that the new instance of the peripheral cannot be used in a way"]
2154 #[doc = r" that may race with any existing instances, for example by only"]
2155 #[doc = r" accessing read-only or write-only registers, or by consuming the"]
2156 #[doc = r" original peripheral and using critical sections to coordinate"]
2157 #[doc = r" access between multiple new instances."]
2158 #[doc = r""]
2159 #[doc = r" Additionally, other software such as HALs may rely on only one"]
2160 #[doc = r" peripheral instance existing to ensure memory safety; ensure"]
2161 #[doc = r" no stolen instances are passed to such software."]
2162 pub unsafe fn steal() -> Self {
2163 Self {
2164 _marker: PhantomData,
2165 }
2166 }
2167}
2168impl Deref for Cctest {
2169 type Target = cctest::RegisterBlock;
2170 #[inline(always)]
2171 fn deref(&self) -> &Self::Target {
2172 unsafe { &*Self::PTR }
2173 }
2174}
2175impl core::fmt::Debug for Cctest {
2176 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
2177 f.debug_struct("Cctest").finish()
2178 }
2179}
2180#[doc = "no description available"]
2181pub mod cctest;
2182#[no_mangle]
2183static mut DEVICE_PERIPHERALS: bool = false;
2184#[doc = r" All the peripherals."]
2185#[allow(non_snake_case)]
2186pub struct Peripherals {
2187 #[doc = "SSI0"]
2188 pub ssi0: Ssi0,
2189 #[doc = "SSI1"]
2190 pub ssi1: Ssi1,
2191 #[doc = "UART0"]
2192 pub uart0: Uart0,
2193 #[doc = "UART1"]
2194 pub uart1: Uart1,
2195 #[doc = "I2CM"]
2196 pub i2cm: I2cm,
2197 #[doc = "I2CS"]
2198 pub i2cs: I2cs,
2199 #[doc = "GPTIMER0"]
2200 pub gptimer0: Gptimer0,
2201 #[doc = "GPTIMER1"]
2202 pub gptimer1: Gptimer1,
2203 #[doc = "GPTIMER2"]
2204 pub gptimer2: Gptimer2,
2205 #[doc = "GPTIMER3"]
2206 pub gptimer3: Gptimer3,
2207 #[doc = "RFCORE_FFSM"]
2208 pub rfcore_ffsm: RfcoreFfsm,
2209 #[doc = "RFCORE_XREG"]
2210 pub rfcore_xreg: RfcoreXreg,
2211 #[doc = "RFCORE_SFR"]
2212 pub rfcore_sfr: RfcoreSfr,
2213 #[doc = "USB"]
2214 pub usb: Usb,
2215 #[doc = "AES"]
2216 pub aes: Aes,
2217 #[doc = "SYS_CTRL"]
2218 pub sys_ctrl: SysCtrl,
2219 #[doc = "FLASH_CTRL"]
2220 pub flash_ctrl: FlashCtrl,
2221 #[doc = "IOC"]
2222 pub ioc: Ioc,
2223 #[doc = "SMWDTHROSC"]
2224 pub smwdthrosc: Smwdthrosc,
2225 #[doc = "ANA_REGS"]
2226 pub ana_regs: AnaRegs,
2227 #[doc = "SOC_ADC"]
2228 pub soc_adc: SocAdc,
2229 #[doc = "GPIO_A"]
2230 pub gpio_a: GpioA,
2231 #[doc = "GPIO_B"]
2232 pub gpio_b: GpioB,
2233 #[doc = "GPIO_C"]
2234 pub gpio_c: GpioC,
2235 #[doc = "GPIO_D"]
2236 pub gpio_d: GpioD,
2237 #[doc = "UDMA"]
2238 pub udma: Udma,
2239 #[doc = "STTEST"]
2240 pub sttest: Sttest,
2241 #[doc = "PKA"]
2242 pub pka: Pka,
2243 #[doc = "CCTEST"]
2244 pub cctest: Cctest,
2245}
2246impl Peripherals {
2247 #[doc = r" Returns all the peripherals *once*."]
2248 #[cfg(feature = "critical-section")]
2249 #[inline]
2250 pub fn take() -> Option<Self> {
2251 critical_section::with(|_| {
2252 if unsafe { DEVICE_PERIPHERALS } {
2253 return None;
2254 }
2255 Some(unsafe { Peripherals::steal() })
2256 })
2257 }
2258 #[doc = r" Unchecked version of `Peripherals::take`."]
2259 #[doc = r""]
2260 #[doc = r" # Safety"]
2261 #[doc = r""]
2262 #[doc = r" Each of the returned peripherals must be used at most once."]
2263 #[inline]
2264 pub unsafe fn steal() -> Self {
2265 DEVICE_PERIPHERALS = true;
2266 Peripherals {
2267 ssi0: Ssi0::steal(),
2268 ssi1: Ssi1::steal(),
2269 uart0: Uart0::steal(),
2270 uart1: Uart1::steal(),
2271 i2cm: I2cm::steal(),
2272 i2cs: I2cs::steal(),
2273 gptimer0: Gptimer0::steal(),
2274 gptimer1: Gptimer1::steal(),
2275 gptimer2: Gptimer2::steal(),
2276 gptimer3: Gptimer3::steal(),
2277 rfcore_ffsm: RfcoreFfsm::steal(),
2278 rfcore_xreg: RfcoreXreg::steal(),
2279 rfcore_sfr: RfcoreSfr::steal(),
2280 usb: Usb::steal(),
2281 aes: Aes::steal(),
2282 sys_ctrl: SysCtrl::steal(),
2283 flash_ctrl: FlashCtrl::steal(),
2284 ioc: Ioc::steal(),
2285 smwdthrosc: Smwdthrosc::steal(),
2286 ana_regs: AnaRegs::steal(),
2287 soc_adc: SocAdc::steal(),
2288 gpio_a: GpioA::steal(),
2289 gpio_b: GpioB::steal(),
2290 gpio_c: GpioC::steal(),
2291 gpio_d: GpioD::steal(),
2292 udma: Udma::steal(),
2293 sttest: Sttest::steal(),
2294 pka: Pka::steal(),
2295 cctest: Cctest::steal(),
2296 }
2297 }
2298}