thank you for making Elk Audio Open Source, this is very helpful!
I am currently also designing an audio device based on the Raspberry Pi, and I want to include your solution for multi channel analog IO.
Can you explain what exactly the CPLD is doing? From the schematic it seems like the CLPD is changing the LRCLK based on the BCLK, so the Raspberry Pi understands it.
Would it be possible to extract one of the I2S streams muxed into the TDM stream, and give out an additonal set of DIN, DOUT, LRCLK and BCLK, based on one IO stream in the TDM signal?
The reason I am asking is that I will use a MCU that supports USB audio, and it would be great to have one of the input and output signals also available on the USB port.