SGTL5000 Driver [WIP]
This is a no_std-compatible Rust driver crate for the NXP SGTL5000 audio codec chip.
The design aims to be generic; however, the primary goal is to enable audio projects on Teensy 4.x microcontroller boards (imxrt-hal) using the original audio adaptor board based on this codec. The driver uses I²C to control the codec (SPI support is not planned at the moment).
The goal is to hide low-level register manipulation from the user. Instead, the driver exposes high-level control functions (e.g., mute, input select, etc.) for convenience.
Roadmap
Must-Have
- ✅ Add all register addresses.
- ✅ Implement the first exposed high-level method that communicates with the codec.
- Add or generate all essential register bitfields required to use the codec.
- Expose essential high-level codec controls needed for basic operation.
- Add a default initialization function to bootstrap the codec with common settings.
- Add support for on-demand features (input selection, volume control, mute, etc.).
Nice-to-Have
- Add cross-checks to prevent invalid configurations via the driver interface (where applicable).
- Add support for integrated digital processing features (tone control, EQ, etc.).