Hi,
The ASoC framework currently does not properly support this setup. It assumes that on a I2S bus there are only two endpoints. I.e. one master device and one slave device. There is some ongoing work to remove this restriction, but it is still in a very early stage and most of it is not implemented yet.
I think your best option at the moment, especially considering that you are on an older kernel version, is to add a couple of quick and dirty hacks to the ASoC core and modify the snd_soc_pcm_runtime and snd_soc_dai_link structs to have four coded codec_dai pointers instead of just one. And whenever the CODEC is accessed repeat the same code for all four devices.
- Lars