Skip to main content

esp32c6/
lib.rs

1#![doc = "Peripheral access API for ESP32-C6 microcontrollers (generated using svd2rust v0.37.1 (f74f0b3 2026-04-17))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next] svd2rust 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.37.1/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![doc(html_logo_url = "https://avatars.githubusercontent.com/u/46717278")]
5#![no_std]
6#![cfg_attr(docsrs, feature(doc_cfg))]
7#[doc = r"Number available in the NVIC for configuring priority"]
8pub const NVIC_PRIO_BITS: u8 = 0;
9#[allow(unused_imports)]
10use generic::*;
11#[doc = r"Common register and bit access and modify traits"]
12pub mod generic;
13#[cfg(feature = "rt")]
14extern "C" {
15    fn WIFI_MAC();
16    fn WIFI_MAC_NMI();
17    fn WIFI_PWR();
18    fn WIFI_BB();
19    fn BT_MAC();
20    fn BT_BB();
21    fn BT_BB_NMI();
22    fn LP_TIMER();
23    fn COEX();
24    fn BLE_TIMER();
25    fn BLE_SEC();
26    fn I2C_MASTER();
27    fn ZB_MAC();
28    fn PMU();
29    fn EFUSE();
30    fn LP_RTC_TIMER();
31    fn LP_UART();
32    fn LP_I2C();
33    fn LP_WDT();
34    fn LP_PERI_TIMEOUT();
35    fn LP_APM_M0();
36    fn LP_APM_M1();
37    fn FROM_CPU_INTR0();
38    fn FROM_CPU_INTR1();
39    fn FROM_CPU_INTR2();
40    fn FROM_CPU_INTR3();
41    fn ASSIST_DEBUG();
42    fn TRACE();
43    fn CACHE();
44    fn CPU_PERI_TIMEOUT();
45    fn GPIO();
46    fn GPIO_NMI();
47    fn PAU();
48    fn HP_PERI_TIMEOUT();
49    fn MODEM_PERI_TIMEOUT();
50    fn HP_APM_M0();
51    fn HP_APM_M1();
52    fn HP_APM_M2();
53    fn HP_APM_M3();
54    fn LP_APM0();
55    fn MSPI();
56    fn I2S0();
57    fn UHCI0();
58    fn UART0();
59    fn UART1();
60    fn LEDC();
61    fn TWAI0();
62    fn TWAI1();
63    fn USB_DEVICE();
64    fn RMT();
65    fn I2C_EXT0();
66    fn TG0_T0_LEVEL();
67    fn TG0_T1_LEVEL();
68    fn TG0_WDT_LEVEL();
69    fn TG1_T0_LEVEL();
70    fn TG1_T1_LEVEL();
71    fn TG1_WDT_LEVEL();
72    fn SYSTIMER_TARGET0();
73    fn SYSTIMER_TARGET1();
74    fn SYSTIMER_TARGET2();
75    fn APB_SARADC();
76    fn MCPWM0();
77    fn PCNT();
78    fn PARL_IO();
79    fn SLC0();
80    fn SLC1();
81    fn DMA_IN_CH0();
82    fn DMA_IN_CH1();
83    fn DMA_IN_CH2();
84    fn DMA_OUT_CH0();
85    fn DMA_OUT_CH1();
86    fn DMA_OUT_CH2();
87    fn SPI2();
88    fn AES();
89    fn SHA();
90    fn RSA();
91    fn ECC();
92}
93#[doc(hidden)]
94#[repr(C)]
95pub union Vector {
96    pub _handler: unsafe extern "C" fn(),
97    pub _reserved: usize,
98}
99#[cfg(feature = "rt")]
100#[doc(hidden)]
101#[link_section = ".rwtext.interrupt"]
102#[no_mangle]
103pub static __EXTERNAL_INTERRUPTS: [Vector; 77] = [
104    Vector { _handler: WIFI_MAC },
105    Vector {
106        _handler: WIFI_MAC_NMI,
107    },
108    Vector { _handler: WIFI_PWR },
109    Vector { _handler: WIFI_BB },
110    Vector { _handler: BT_MAC },
111    Vector { _handler: BT_BB },
112    Vector {
113        _handler: BT_BB_NMI,
114    },
115    Vector { _handler: LP_TIMER },
116    Vector { _handler: COEX },
117    Vector {
118        _handler: BLE_TIMER,
119    },
120    Vector { _handler: BLE_SEC },
121    Vector {
122        _handler: I2C_MASTER,
123    },
124    Vector { _handler: ZB_MAC },
125    Vector { _handler: PMU },
126    Vector { _handler: EFUSE },
127    Vector {
128        _handler: LP_RTC_TIMER,
129    },
130    Vector { _handler: LP_UART },
131    Vector { _handler: LP_I2C },
132    Vector { _handler: LP_WDT },
133    Vector {
134        _handler: LP_PERI_TIMEOUT,
135    },
136    Vector {
137        _handler: LP_APM_M0,
138    },
139    Vector {
140        _handler: LP_APM_M1,
141    },
142    Vector {
143        _handler: FROM_CPU_INTR0,
144    },
145    Vector {
146        _handler: FROM_CPU_INTR1,
147    },
148    Vector {
149        _handler: FROM_CPU_INTR2,
150    },
151    Vector {
152        _handler: FROM_CPU_INTR3,
153    },
154    Vector {
155        _handler: ASSIST_DEBUG,
156    },
157    Vector { _handler: TRACE },
158    Vector { _handler: CACHE },
159    Vector {
160        _handler: CPU_PERI_TIMEOUT,
161    },
162    Vector { _handler: GPIO },
163    Vector { _handler: GPIO_NMI },
164    Vector { _handler: PAU },
165    Vector {
166        _handler: HP_PERI_TIMEOUT,
167    },
168    Vector {
169        _handler: MODEM_PERI_TIMEOUT,
170    },
171    Vector {
172        _handler: HP_APM_M0,
173    },
174    Vector {
175        _handler: HP_APM_M1,
176    },
177    Vector {
178        _handler: HP_APM_M2,
179    },
180    Vector {
181        _handler: HP_APM_M3,
182    },
183    Vector { _handler: LP_APM0 },
184    Vector { _handler: MSPI },
185    Vector { _handler: I2S0 },
186    Vector { _handler: UHCI0 },
187    Vector { _handler: UART0 },
188    Vector { _handler: UART1 },
189    Vector { _handler: LEDC },
190    Vector { _handler: TWAI0 },
191    Vector { _handler: TWAI1 },
192    Vector {
193        _handler: USB_DEVICE,
194    },
195    Vector { _handler: RMT },
196    Vector { _handler: I2C_EXT0 },
197    Vector {
198        _handler: TG0_T0_LEVEL,
199    },
200    Vector {
201        _handler: TG0_T1_LEVEL,
202    },
203    Vector {
204        _handler: TG0_WDT_LEVEL,
205    },
206    Vector {
207        _handler: TG1_T0_LEVEL,
208    },
209    Vector {
210        _handler: TG1_T1_LEVEL,
211    },
212    Vector {
213        _handler: TG1_WDT_LEVEL,
214    },
215    Vector {
216        _handler: SYSTIMER_TARGET0,
217    },
218    Vector {
219        _handler: SYSTIMER_TARGET1,
220    },
221    Vector {
222        _handler: SYSTIMER_TARGET2,
223    },
224    Vector {
225        _handler: APB_SARADC,
226    },
227    Vector { _handler: MCPWM0 },
228    Vector { _handler: PCNT },
229    Vector { _handler: PARL_IO },
230    Vector { _handler: SLC0 },
231    Vector { _handler: SLC1 },
232    Vector {
233        _handler: DMA_IN_CH0,
234    },
235    Vector {
236        _handler: DMA_IN_CH1,
237    },
238    Vector {
239        _handler: DMA_IN_CH2,
240    },
241    Vector {
242        _handler: DMA_OUT_CH0,
243    },
244    Vector {
245        _handler: DMA_OUT_CH1,
246    },
247    Vector {
248        _handler: DMA_OUT_CH2,
249    },
250    Vector { _handler: SPI2 },
251    Vector { _handler: AES },
252    Vector { _handler: SHA },
253    Vector { _handler: RSA },
254    Vector { _handler: ECC },
255];
256#[doc(hidden)]
257pub mod interrupt;
258pub use self::interrupt::Interrupt;
259#[doc = "Core Local Interrupts"]
260pub type CLINT = crate::Periph<clint::RegisterBlock, 0x2000_0000>;
261impl core::fmt::Debug for CLINT {
262    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
263        f.debug_struct("CLINT").finish()
264    }
265}
266#[doc = "Core Local Interrupts"]
267pub mod clint;
268#[doc = "PLIC Peripheral"]
269pub type PLIC_MX = crate::Periph<plic_mx::RegisterBlock, 0x2000_1000>;
270impl core::fmt::Debug for PLIC_MX {
271    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
272        f.debug_struct("PLIC_MX").finish()
273    }
274}
275#[doc = "PLIC Peripheral"]
276pub mod plic_mx;
277#[doc = "PLIC Peripheral"]
278pub type PLIC_UX = crate::Periph<plic_ux::RegisterBlock, 0x2000_1400>;
279impl core::fmt::Debug for PLIC_UX {
280    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
281        f.debug_struct("PLIC_UX").finish()
282    }
283}
284#[doc = "PLIC Peripheral"]
285pub mod plic_ux;
286#[doc = "AES (Advanced Encryption Standard) Accelerator"]
287pub type AES = crate::Periph<aes::RegisterBlock, 0x6008_8000>;
288impl core::fmt::Debug for AES {
289    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
290        f.debug_struct("AES").finish()
291    }
292}
293#[doc = "AES (Advanced Encryption Standard) Accelerator"]
294pub mod aes;
295#[doc = "SAR (Successive Approximation Register) Analog-to-Digital Converter"]
296pub type APB_SARADC = crate::Periph<apb_saradc::RegisterBlock, 0x6000_e000>;
297impl core::fmt::Debug for APB_SARADC {
298    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
299        f.debug_struct("APB_SARADC").finish()
300    }
301}
302#[doc = "SAR (Successive Approximation Register) Analog-to-Digital Converter"]
303pub mod apb_saradc;
304#[doc = "Debug Assist"]
305pub type ASSIST_DEBUG = crate::Periph<assist_debug::RegisterBlock, 0x600c_2000>;
306impl core::fmt::Debug for ASSIST_DEBUG {
307    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
308        f.debug_struct("ASSIST_DEBUG").finish()
309    }
310}
311#[doc = "Debug Assist"]
312pub mod assist_debug;
313#[doc = "Atomic Locker"]
314pub type ATOMIC = crate::Periph<atomic::RegisterBlock, 0x6001_1000>;
315impl core::fmt::Debug for ATOMIC {
316    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
317        f.debug_struct("ATOMIC").finish()
318    }
319}
320#[doc = "Atomic Locker"]
321pub mod atomic;
322#[doc = "DMA (Direct Memory Access) Controller"]
323pub type DMA = crate::Periph<dma::RegisterBlock, 0x6008_0000>;
324impl core::fmt::Debug for DMA {
325    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
326        f.debug_struct("DMA").finish()
327    }
328}
329#[doc = "DMA (Direct Memory Access) Controller"]
330pub mod dma;
331#[doc = "Digital Signature"]
332pub type DS = crate::Periph<ds::RegisterBlock, 0x6008_c000>;
333impl core::fmt::Debug for DS {
334    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
335        f.debug_struct("DS").finish()
336    }
337}
338#[doc = "Digital Signature"]
339pub mod ds;
340#[doc = "ECC (ECC Hardware Accelerator)"]
341pub type ECC = crate::Periph<ecc::RegisterBlock, 0x6008_b000>;
342impl core::fmt::Debug for ECC {
343    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
344        f.debug_struct("ECC").finish()
345    }
346}
347#[doc = "ECC (ECC Hardware Accelerator)"]
348pub mod ecc;
349#[doc = "eFuse Controller"]
350pub type EFUSE = crate::Periph<efuse::RegisterBlock, 0x600b_0800>;
351impl core::fmt::Debug for EFUSE {
352    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
353        f.debug_struct("EFUSE").finish()
354    }
355}
356#[doc = "eFuse Controller"]
357pub mod efuse;
358#[doc = "External Memory"]
359pub type EXTMEM = crate::Periph<extmem::RegisterBlock, 0x600c_8000>;
360impl core::fmt::Debug for EXTMEM {
361    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
362        f.debug_struct("EXTMEM").finish()
363    }
364}
365#[doc = "External Memory"]
366pub mod extmem;
367#[doc = "General Purpose Input/Output"]
368pub type GPIO = crate::Periph<gpio::RegisterBlock, 0x6009_1000>;
369impl core::fmt::Debug for GPIO {
370    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
371        f.debug_struct("GPIO").finish()
372    }
373}
374#[doc = "General Purpose Input/Output"]
375pub mod gpio;
376#[doc = "Sigma-Delta Modulation"]
377pub type GPIO_SD = crate::Periph<gpio_sd::RegisterBlock, 0x6009_1f00>;
378impl core::fmt::Debug for GPIO_SD {
379    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
380        f.debug_struct("GPIO_SD").finish()
381    }
382}
383#[doc = "Sigma-Delta Modulation"]
384pub mod gpio_sd;
385#[doc = "HINF Peripheral"]
386pub type HINF = crate::Periph<hinf::RegisterBlock, 0x6001_6000>;
387impl core::fmt::Debug for HINF {
388    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
389        f.debug_struct("HINF").finish()
390    }
391}
392#[doc = "HINF Peripheral"]
393pub mod hinf;
394#[doc = "SDIO SLC"]
395pub type SLC = crate::Periph<slc::RegisterBlock, 0x6001_7000>;
396impl core::fmt::Debug for SLC {
397    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
398        f.debug_struct("SLC").finish()
399    }
400}
401#[doc = "SDIO SLC"]
402pub mod slc;
403#[doc = "HMAC (Hash-based Message Authentication Code) Accelerator"]
404pub type HMAC = crate::Periph<hmac::RegisterBlock, 0x6008_d000>;
405impl core::fmt::Debug for HMAC {
406    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
407        f.debug_struct("HMAC").finish()
408    }
409}
410#[doc = "HMAC (Hash-based Message Authentication Code) Accelerator"]
411pub mod hmac;
412#[doc = "HP_APM Peripheral"]
413pub type HP_APM = crate::Periph<hp_apm::RegisterBlock, 0x6009_9000>;
414impl core::fmt::Debug for HP_APM {
415    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
416        f.debug_struct("HP_APM").finish()
417    }
418}
419#[doc = "HP_APM Peripheral"]
420pub mod hp_apm;
421#[doc = "High-Power System"]
422pub type HP_SYS = crate::Periph<hp_sys::RegisterBlock, 0x6009_5000>;
423impl core::fmt::Debug for HP_SYS {
424    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
425        f.debug_struct("HP_SYS").finish()
426    }
427}
428#[doc = "High-Power System"]
429pub mod hp_sys;
430#[doc = "I2C (Inter-Integrated Circuit) Controller 0"]
431pub type I2C0 = crate::Periph<i2c0::RegisterBlock, 0x6000_4000>;
432impl core::fmt::Debug for I2C0 {
433    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
434        f.debug_struct("I2C0").finish()
435    }
436}
437#[doc = "I2C (Inter-Integrated Circuit) Controller 0"]
438pub mod i2c0;
439#[doc = "I2S (Inter-IC Sound) Controller 0"]
440pub type I2S0 = crate::Periph<i2s0::RegisterBlock, 0x6000_c000>;
441impl core::fmt::Debug for I2S0 {
442    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
443        f.debug_struct("I2S0").finish()
444    }
445}
446#[doc = "I2S (Inter-IC Sound) Controller 0"]
447pub mod i2s0;
448#[doc = "IEEE802154 Peripheral"]
449pub type IEEE802154 = crate::Periph<ieee802154::RegisterBlock, 0x600a_3000>;
450impl core::fmt::Debug for IEEE802154 {
451    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
452        f.debug_struct("IEEE802154").finish()
453    }
454}
455#[doc = "IEEE802154 Peripheral"]
456pub mod ieee802154;
457#[doc = "Interrupt Controller (Core 0)"]
458pub type INTERRUPT_CORE0 = crate::Periph<interrupt_core0::RegisterBlock, 0x6001_0000>;
459impl core::fmt::Debug for INTERRUPT_CORE0 {
460    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
461        f.debug_struct("INTERRUPT_CORE0").finish()
462    }
463}
464#[doc = "Interrupt Controller (Core 0)"]
465pub mod interrupt_core0;
466#[doc = "INTPRI Peripheral"]
467pub type INTPRI = crate::Periph<intpri::RegisterBlock, 0x600c_5000>;
468impl core::fmt::Debug for INTPRI {
469    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
470        f.debug_struct("INTPRI").finish()
471    }
472}
473#[doc = "INTPRI Peripheral"]
474pub mod intpri;
475#[doc = "Input/Output Multiplexer"]
476pub type IO_MUX = crate::Periph<io_mux::RegisterBlock, 0x6009_0000>;
477impl core::fmt::Debug for IO_MUX {
478    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
479        f.debug_struct("IO_MUX").finish()
480    }
481}
482#[doc = "Input/Output Multiplexer"]
483pub mod io_mux;
484#[doc = "LED Control PWM (Pulse Width Modulation)"]
485pub type LEDC = crate::Periph<ledc::RegisterBlock, 0x6000_7000>;
486impl core::fmt::Debug for LEDC {
487    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
488        f.debug_struct("LEDC").finish()
489    }
490}
491#[doc = "LED Control PWM (Pulse Width Modulation)"]
492pub mod ledc;
493#[doc = "LP_PERI Peripheral"]
494pub type LP_PERI = crate::Periph<lp_peri::RegisterBlock, 0x600b_2800>;
495impl core::fmt::Debug for LP_PERI {
496    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
497        f.debug_struct("LP_PERI").finish()
498    }
499}
500#[doc = "LP_PERI Peripheral"]
501pub mod lp_peri;
502#[doc = "LP_ANA Peripheral"]
503pub type LP_ANA = crate::Periph<lp_ana::RegisterBlock, 0x600b_2c00>;
504impl core::fmt::Debug for LP_ANA {
505    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
506        f.debug_struct("LP_ANA").finish()
507    }
508}
509#[doc = "LP_ANA Peripheral"]
510pub mod lp_ana;
511#[doc = "LP_AON Peripheral"]
512pub type LP_AON = crate::Periph<lp_aon::RegisterBlock, 0x600b_1000>;
513impl core::fmt::Debug for LP_AON {
514    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
515        f.debug_struct("LP_AON").finish()
516    }
517}
518#[doc = "LP_AON Peripheral"]
519pub mod lp_aon;
520#[doc = "Low-power Access Permission Management Controller"]
521pub type LP_APM = crate::Periph<lp_apm::RegisterBlock, 0x600b_3800>;
522impl core::fmt::Debug for LP_APM {
523    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
524        f.debug_struct("LP_APM").finish()
525    }
526}
527#[doc = "Low-power Access Permission Management Controller"]
528pub mod lp_apm;
529#[doc = "LP_APM0 Peripheral"]
530pub type LP_APM0 = crate::Periph<lp_apm0::RegisterBlock, 0x6009_9800>;
531impl core::fmt::Debug for LP_APM0 {
532    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
533        f.debug_struct("LP_APM0").finish()
534    }
535}
536#[doc = "LP_APM0 Peripheral"]
537pub mod lp_apm0;
538#[doc = "LP_CLKRST Peripheral"]
539pub type LP_CLKRST = crate::Periph<lp_clkrst::RegisterBlock, 0x600b_0400>;
540impl core::fmt::Debug for LP_CLKRST {
541    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
542        f.debug_struct("LP_CLKRST").finish()
543    }
544}
545#[doc = "LP_CLKRST Peripheral"]
546pub mod lp_clkrst;
547#[doc = "Low-power I2C (Inter-Integrated Circuit) Controller 0"]
548pub type LP_I2C0 = crate::Periph<lp_i2c0::RegisterBlock, 0x600b_1800>;
549impl core::fmt::Debug for LP_I2C0 {
550    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
551        f.debug_struct("LP_I2C0").finish()
552    }
553}
554#[doc = "Low-power I2C (Inter-Integrated Circuit) Controller 0"]
555pub mod lp_i2c0;
556#[doc = "LP_I2C_ANA_MST Peripheral"]
557pub type LP_I2C_ANA_MST = crate::Periph<lp_i2c_ana_mst::RegisterBlock, 0x600b_2400>;
558impl core::fmt::Debug for LP_I2C_ANA_MST {
559    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
560        f.debug_struct("LP_I2C_ANA_MST").finish()
561    }
562}
563#[doc = "LP_I2C_ANA_MST Peripheral"]
564pub mod lp_i2c_ana_mst;
565#[doc = "LP_IO Peripheral"]
566pub type LP_IO = crate::Periph<lp_io::RegisterBlock, 0x600b_2000>;
567impl core::fmt::Debug for LP_IO {
568    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
569        f.debug_struct("LP_IO").finish()
570    }
571}
572#[doc = "LP_IO Peripheral"]
573pub mod lp_io;
574#[doc = "Low-power Trusted Execution Environment"]
575pub type LP_TEE = crate::Periph<lp_tee::RegisterBlock, 0x600b_3400>;
576impl core::fmt::Debug for LP_TEE {
577    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
578        f.debug_struct("LP_TEE").finish()
579    }
580}
581#[doc = "Low-power Trusted Execution Environment"]
582pub mod lp_tee;
583#[doc = "Low-power Timer"]
584pub type LP_TIMER = crate::Periph<lp_timer::RegisterBlock, 0x600b_0c00>;
585impl core::fmt::Debug for LP_TIMER {
586    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
587        f.debug_struct("LP_TIMER").finish()
588    }
589}
590#[doc = "Low-power Timer"]
591pub mod lp_timer;
592#[doc = "Low-power UART (Universal Asynchronous Receiver-Transmitter) Controller"]
593pub type LP_UART = crate::Periph<lp_uart::RegisterBlock, 0x600b_1400>;
594impl core::fmt::Debug for LP_UART {
595    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
596        f.debug_struct("LP_UART").finish()
597    }
598}
599#[doc = "Low-power UART (Universal Asynchronous Receiver-Transmitter) Controller"]
600pub mod lp_uart;
601#[doc = "Low-power Watchdog Timer"]
602pub type LP_WDT = crate::Periph<lp_wdt::RegisterBlock, 0x600b_1c00>;
603impl core::fmt::Debug for LP_WDT {
604    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
605        f.debug_struct("LP_WDT").finish()
606    }
607}
608#[doc = "Low-power Watchdog Timer"]
609pub mod lp_wdt;
610#[doc = "Motor Control Pulse-Width Modulation 0"]
611pub type MCPWM0 = crate::Periph<mcpwm0::RegisterBlock, 0x6001_4000>;
612impl core::fmt::Debug for MCPWM0 {
613    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
614        f.debug_struct("MCPWM0").finish()
615    }
616}
617#[doc = "Motor Control Pulse-Width Modulation 0"]
618pub mod mcpwm0;
619#[doc = "MEM_MONITOR Peripheral"]
620pub type MEM_MONITOR = crate::Periph<mem_monitor::RegisterBlock, 0x6009_2000>;
621impl core::fmt::Debug for MEM_MONITOR {
622    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
623        f.debug_struct("MEM_MONITOR").finish()
624    }
625}
626#[doc = "MEM_MONITOR Peripheral"]
627pub mod mem_monitor;
628#[doc = "MODEM_LPCON Peripheral"]
629pub type MODEM_LPCON = crate::Periph<modem_lpcon::RegisterBlock, 0x600a_f000>;
630impl core::fmt::Debug for MODEM_LPCON {
631    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
632        f.debug_struct("MODEM_LPCON").finish()
633    }
634}
635#[doc = "MODEM_LPCON Peripheral"]
636pub mod modem_lpcon;
637#[doc = "I2C_ANA_MST Peripheral"]
638pub type I2C_ANA_MST = crate::Periph<i2c_ana_mst::RegisterBlock, 0x600a_f800>;
639impl core::fmt::Debug for I2C_ANA_MST {
640    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
641        f.debug_struct("I2C_ANA_MST").finish()
642    }
643}
644#[doc = "I2C_ANA_MST Peripheral"]
645pub mod i2c_ana_mst;
646#[doc = "MODEM_SYSCON Peripheral"]
647pub type MODEM_SYSCON = crate::Periph<modem_syscon::RegisterBlock, 0x600a_9800>;
648impl core::fmt::Debug for MODEM_SYSCON {
649    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
650        f.debug_struct("MODEM_SYSCON").finish()
651    }
652}
653#[doc = "MODEM_SYSCON Peripheral"]
654pub mod modem_syscon;
655#[doc = "OTP_DEBUG Peripheral"]
656pub type OTP_DEBUG = crate::Periph<otp_debug::RegisterBlock, 0x600b_3c00>;
657impl core::fmt::Debug for OTP_DEBUG {
658    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
659        f.debug_struct("OTP_DEBUG").finish()
660    }
661}
662#[doc = "OTP_DEBUG Peripheral"]
663pub mod otp_debug;
664#[doc = "Parallel IO Controller"]
665pub type PARL_IO = crate::Periph<parl_io::RegisterBlock, 0x6001_5000>;
666impl core::fmt::Debug for PARL_IO {
667    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
668        f.debug_struct("PARL_IO").finish()
669    }
670}
671#[doc = "Parallel IO Controller"]
672pub mod parl_io;
673#[doc = "PAU Peripheral"]
674pub type PAU = crate::Periph<pau::RegisterBlock, 0x6009_3000>;
675impl core::fmt::Debug for PAU {
676    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
677        f.debug_struct("PAU").finish()
678    }
679}
680#[doc = "PAU Peripheral"]
681pub mod pau;
682#[doc = "Pulse Count Controller"]
683pub type PCNT = crate::Periph<pcnt::RegisterBlock, 0x6001_2000>;
684impl core::fmt::Debug for PCNT {
685    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
686        f.debug_struct("PCNT").finish()
687    }
688}
689#[doc = "Pulse Count Controller"]
690pub mod pcnt;
691#[doc = "PCR Peripheral"]
692pub type PCR = crate::Periph<pcr::RegisterBlock, 0x6009_6000>;
693impl core::fmt::Debug for PCR {
694    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
695        f.debug_struct("PCR").finish()
696    }
697}
698#[doc = "PCR Peripheral"]
699pub mod pcr;
700#[doc = "PMU Peripheral"]
701pub type PMU = crate::Periph<pmu::RegisterBlock, 0x600b_0000>;
702impl core::fmt::Debug for PMU {
703    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
704        f.debug_struct("PMU").finish()
705    }
706}
707#[doc = "PMU Peripheral"]
708pub mod pmu;
709#[doc = "Remote Control"]
710pub type RMT = crate::Periph<rmt::RegisterBlock, 0x6000_6000>;
711impl core::fmt::Debug for RMT {
712    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
713        f.debug_struct("RMT").finish()
714    }
715}
716#[doc = "Remote Control"]
717pub mod rmt;
718#[doc = "RSA (Rivest Shamir Adleman) Accelerator"]
719pub type RSA = crate::Periph<rsa::RegisterBlock, 0x6008_a000>;
720impl core::fmt::Debug for RSA {
721    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
722        f.debug_struct("RSA").finish()
723    }
724}
725#[doc = "RSA (Rivest Shamir Adleman) Accelerator"]
726pub mod rsa;
727#[doc = "SHA (Secure Hash Algorithm) Accelerator"]
728pub type SHA = crate::Periph<sha::RegisterBlock, 0x6008_9000>;
729impl core::fmt::Debug for SHA {
730    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
731        f.debug_struct("SHA").finish()
732    }
733}
734#[doc = "SHA (Secure Hash Algorithm) Accelerator"]
735pub mod sha;
736#[doc = "SLCHOST Peripheral"]
737pub type SLCHOST = crate::Periph<slchost::RegisterBlock, 0x6001_8000>;
738impl core::fmt::Debug for SLCHOST {
739    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
740        f.debug_struct("SLCHOST").finish()
741    }
742}
743#[doc = "SLCHOST Peripheral"]
744pub mod slchost;
745#[doc = "Event Task Matrix"]
746pub type SOC_ETM = crate::Periph<soc_etm::RegisterBlock, 0x6001_3000>;
747impl core::fmt::Debug for SOC_ETM {
748    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
749        f.debug_struct("SOC_ETM").finish()
750    }
751}
752#[doc = "Event Task Matrix"]
753pub mod soc_etm;
754#[doc = "SPI (Serial Peripheral Interface) Controller 0"]
755pub type SPI0 = crate::Periph<spi0::RegisterBlock, 0x6000_2000>;
756impl core::fmt::Debug for SPI0 {
757    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
758        f.debug_struct("SPI0").finish()
759    }
760}
761#[doc = "SPI (Serial Peripheral Interface) Controller 0"]
762pub mod spi0;
763#[doc = "SPI (Serial Peripheral Interface) Controller 1"]
764pub type SPI1 = crate::Periph<spi1::RegisterBlock, 0x6000_3000>;
765impl core::fmt::Debug for SPI1 {
766    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
767        f.debug_struct("SPI1").finish()
768    }
769}
770#[doc = "SPI (Serial Peripheral Interface) Controller 1"]
771pub mod spi1;
772#[doc = "SPI (Serial Peripheral Interface) Controller 2"]
773pub type SPI2 = crate::Periph<spi2::RegisterBlock, 0x6008_1000>;
774impl core::fmt::Debug for SPI2 {
775    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
776        f.debug_struct("SPI2").finish()
777    }
778}
779#[doc = "SPI (Serial Peripheral Interface) Controller 2"]
780pub mod spi2;
781#[doc = "System Timer"]
782pub type SYSTIMER = crate::Periph<systimer::RegisterBlock, 0x6000_a000>;
783impl core::fmt::Debug for SYSTIMER {
784    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
785        f.debug_struct("SYSTIMER").finish()
786    }
787}
788#[doc = "System Timer"]
789pub mod systimer;
790#[doc = "TEE Peripheral"]
791pub type TEE = crate::Periph<tee::RegisterBlock, 0x6009_8000>;
792impl core::fmt::Debug for TEE {
793    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
794        f.debug_struct("TEE").finish()
795    }
796}
797#[doc = "TEE Peripheral"]
798pub mod tee;
799#[doc = "Timer Group 0"]
800pub type TIMG0 = crate::Periph<timg0::RegisterBlock, 0x6000_8000>;
801impl core::fmt::Debug for TIMG0 {
802    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
803        f.debug_struct("TIMG0").finish()
804    }
805}
806#[doc = "Timer Group 0"]
807pub mod timg0;
808#[doc = "Timer Group 1"]
809pub type TIMG1 = crate::Periph<timg0::RegisterBlock, 0x6000_9000>;
810impl core::fmt::Debug for TIMG1 {
811    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
812        f.debug_struct("TIMG1").finish()
813    }
814}
815#[doc = "Timer Group 1"]
816pub use self::timg0 as timg1;
817#[doc = "RISC-V Trace Encoder"]
818pub type TRACE = crate::Periph<trace::RegisterBlock, 0x600c_0000>;
819impl core::fmt::Debug for TRACE {
820    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
821        f.debug_struct("TRACE").finish()
822    }
823}
824#[doc = "RISC-V Trace Encoder"]
825pub mod trace;
826#[doc = "Two-Wire Automotive Interface"]
827pub type TWAI0 = crate::Periph<twai0::RegisterBlock, 0x6000_b000>;
828impl core::fmt::Debug for TWAI0 {
829    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
830        f.debug_struct("TWAI0").finish()
831    }
832}
833#[doc = "Two-Wire Automotive Interface"]
834pub mod twai0;
835#[doc = "Two-Wire Automotive Interface"]
836pub type TWAI1 = crate::Periph<twai0::RegisterBlock, 0x6000_d000>;
837impl core::fmt::Debug for TWAI1 {
838    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
839        f.debug_struct("TWAI1").finish()
840    }
841}
842#[doc = "Two-Wire Automotive Interface"]
843pub use self::twai0 as twai1;
844#[doc = "UART (Universal Asynchronous Receiver-Transmitter) Controller 0"]
845pub type UART0 = crate::Periph<uart0::RegisterBlock, 0x6000_0000>;
846impl core::fmt::Debug for UART0 {
847    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
848        f.debug_struct("UART0").finish()
849    }
850}
851#[doc = "UART (Universal Asynchronous Receiver-Transmitter) Controller 0"]
852pub mod uart0;
853#[doc = "UART (Universal Asynchronous Receiver-Transmitter) Controller 1"]
854pub type UART1 = crate::Periph<uart0::RegisterBlock, 0x6000_1000>;
855impl core::fmt::Debug for UART1 {
856    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
857        f.debug_struct("UART1").finish()
858    }
859}
860#[doc = "UART (Universal Asynchronous Receiver-Transmitter) Controller 1"]
861pub use self::uart0 as uart1;
862#[doc = "Universal Host Controller Interface 0"]
863pub type UHCI0 = crate::Periph<uhci0::RegisterBlock, 0x6000_5000>;
864impl core::fmt::Debug for UHCI0 {
865    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
866        f.debug_struct("UHCI0").finish()
867    }
868}
869#[doc = "Universal Host Controller Interface 0"]
870pub mod uhci0;
871#[doc = "Full-speed USB Serial/JTAG Controller"]
872pub type USB_DEVICE = crate::Periph<usb_device::RegisterBlock, 0x6000_f000>;
873impl core::fmt::Debug for USB_DEVICE {
874    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
875        f.debug_struct("USB_DEVICE").finish()
876    }
877}
878#[doc = "Full-speed USB Serial/JTAG Controller"]
879pub mod usb_device;