At the moment our embedded driver code makes use of DMA or manually polled implementations for I2C and I2S data transfers. The [Rust Embedded Working Group](https://github.com/rust-embedded/wg) are in the process of developing asynchronous versions of the `embedded-hal` traits: * https://github.com/rust-embedded/embedded-hal/issues/356