#![cfg(feature = "rp2350")]
#![allow(unused)]
use embassy_sync::{blocking_mutex::raw::NoopRawMutex, mutex::Mutex};
use embassy_time::Delay;
use embedded_hal_bus::spi::ExclusiveDevice;
use embassy_rp::{
Peri, bind_interrupts, dma, gpio,
gpio::{Input, Level, Output, Pull},
i2c,
i2c::{Async as I2cAsync, Blocking as I2cBlocking, I2c},
peripherals, pio,
pio::InterruptHandler as PioInterruptHandler,
spi::{Async as SpiAsync, Spi},
uart,
uart::{Async as UartAsync, Uart},
};
pub type GyroSpiBus = Spi<'static, peripherals::SPI0, SpiAsync>;
pub type GyroSpiDevice = ExclusiveDevice<GyroSpiBus, Output<'static>, Delay>;
pub type GpioInputPin = Input<'static>;
pub type GpioOutputPin = Output<'static>;
pub type MotorPins = [GpioOutputPin; 8];
pub type SdSpiBus = Spi<'static, peripherals::SPI1, SpiAsync>;
pub type SdSpiDevice = ExclusiveDevice<SdSpiBus, Output<'static>, Delay>;
pub type I2cDeviceAsync = I2c<'static, peripherals::I2C0, I2cAsync>;
pub type I2cDeviceBlocking = I2c<'static, peripherals::I2C0, I2cBlocking>;
pub type SharedI2cBus = embassy_sync::mutex::Mutex<NoopRawMutex, I2cDeviceBlocking>;