//! # Peripheral Instances //! //! This module creates singleton instances for each of the various peripherals, //! and re-exports them to allow users to access and use them in their //! applications. //! //! Should be noted that that the module also re-exports the [Interrupt] enum //! from the PAC, allowing users to handle interrupts associated with these //! peripherals. use esp32c2 as pac; // We need to export this for users to use pub use pac::Interrupt; // We need to export this in the hal for the drivers to use pub(crate) use self::peripherals::*; // Note that certain are marked with `virtual` in the invocation of the // `peripherals!` macro below. Basically, this indicates there's no physical // peripheral (no `PSRAM`, `RADIO`, etc. peripheral in the PACs), so we're // creating "virtual peripherals" for them. crate::peripherals! { ADC1 <= virtual, APB_CTRL <= APB_CTRL, ASSIST_DEBUG <= ASSIST_DEBUG, BT <= virtual, DMA <= DMA, ECC <= ECC, EFUSE <= EFUSE, EXTMEM <= EXTMEM, GPIO <= GPIO, I2C0 <= I2C0, INTERRUPT_CORE0 <= INTERRUPT_CORE0, IO_MUX <= IO_MUX, LEDC <= LEDC, LPWR <= RTC_CNTL, RNG <= RNG, SENSITIVE <= SENSITIVE, SHA <= SHA, SPI0 <= SPI0, SPI1 <= SPI1, SPI2 <= SPI2, SYSTEM <= SYSTEM, SYSTIMER <= SYSTIMER, TIMG0 <= TIMG0, UART0 <= UART0, UART1 <= UART1, WIFI <= virtual, XTS_AES <= XTS_AES, }