cc2538_pac/
lib.rs

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}