On Tue, Feb 26, 2019 at 11:31:15AM -0500, Sven Van Asbroeck wrote:
On Tue, Feb 26, 2019 at 10:45 AM Russell King - ARM Linux admin linux@armlinux.org.uk wrote:
I can't see how you'd extend a single I2S setup to support multi- channel audio without either adding more I2S data lines or adding additional WS signals (so making it e.g., a binary number).
That's a very good point too. In light of this, I struggle to understand how the ssl_ssi can specify this:
static struct snd_soc_dai_driver fsl_ssi_dai_template = { .playback = { .stream_name = "CPU-Playback", .channels_min = 1, .channels_max = 32, },
There is talk in the manual about "network mode", which could work by changing the LRCLK only at the first slot - thereby allowing clients to receive all slots just by counting, as long as they know the slot size?
LRCLK _____/-----------------_____/--------- DATA SLOT1|SLOT2|SLOT3|SLOT4|SLOT1
From what I gather, these are described using SND_SOC_DAIFMT_DSP_A
and SND_SOC_DAIFMT_DSP_B dai formats, and the parameters are controlled not through snd_soc_dai_set_bclk_ratio() but via snd_soc_dai_set_tdm_slot().
So, IMHO, the TDM formats should be disregarded from consideration here. Mark, ack?