It actually works like this: ```rust use embedded_hal::spi::Mode; // these are all the available definitions: use super::{bisync, only_async, only_sync}; #[only_async] use embedded_hal_async::spi::SpiDevice; #[only_sync] use embedded_hal::spi::SpiDevice; use crate::*; /// SPI mode pub const MODE: Mode = embedded_hal::spi::MODE_3; const READ: u8 = 1 << 7; const WRITE: u8 = 0 << 7; const MULTI: u8 = 1 << 6; const SINGLE: u8 = 0 << 6; /// L3GD20 driver pub struct L3gd20<Spi> { spi: Spi, } #[bisync] impl<Spi: SpiDevice> L3gd20<Spi> { /// Creates a new driver from a SPI peripheral and a NCS pin ... } ```