Description
First some background: I'm planning to use embedded Rust in a sound-oriented project and am currently experimenting with the STM32 F4 Discovery which has an onboard DAC with amp and headphone jack. The DAC connects to the MCU with I2C for control commands (volume etc) and I2S for the audio data. Currently I have just started to implement a embedded-hal driver for the DAC, a Cirrus Logic CS43L22, beginning with setting up the device and I2C control channel. In the end I will use a more capable DAC with 4-8 channels, but it will still use I2S for audio data.
Is there a plan to add a I2S interface in the embedde-hal project yet? If not, how would I go about contributing that to embedded-hal? I have read some guidelines where it says to create a new interface in an external crate before it's stable, any example of that process so far?
The I2S standard uses mostly the same internal components and control registers as a SPI interface, but with a bit more complex clock setup to my understanding.