There are drivers in mainline for the Xilinx Audio Formatter and Xilinx I2S IP cores. However, because of a few issues, these were only really usable with Xilinx's xlnx_pl_snd_card top-level driver, which is not in mainline (and not suitable for mainline).
The fixes in this patchset, for the simple-card layer as well as the Xilinx drivers, now allow these drivers to be properly used with simple-card without any out-of-tree support code.
Changes since v2: -drop patches already merged -added constraint to simple-card to allow enforcing valid sample rates
Changes since v1: -formatting fixes -renamed last_sysclk variables to sysclk -require exact match for clock divisor rather than rounding to nearest -broke out driver data structure change in xlnx_i2s to separate patch -added constraints for sample rate based on sysclk to xlnx_i2s -switched to separate function for DAI parsing for platforms in simple_card
Robert Hancock (6): ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting ASoC: xilinx: xlnx_i2s: create drvdata structure ASoC: xilinx: xlnx_i2s: Handle sysclk setting ASoC: simple-card-utils: Set sysclk on all components ASoC: dt-bindings: simple-card: document new system-clock-fixed flag ASoC: simple-card-utils: Add new system-clock-fixed flag
.../bindings/sound/simple-card.yaml | 11 ++ include/sound/simple_card_utils.h | 1 + sound/soc/generic/simple-card-utils.c | 86 ++++++++-- sound/soc/xilinx/xlnx_formatter_pcm.c | 25 +++ sound/soc/xilinx/xlnx_i2s.c | 147 +++++++++++++----- 5 files changed, 223 insertions(+), 47 deletions(-)