They will also have their DAIs which should be connected to the physical outputs of ABE (McPDM, McBSP, ...), and that confuses me. AFAIK, SoC allows to have multiple CODECs attached to the same processor, but not a CODEC connected to the output of another CODEC.
At the minute it's a bit tricky but it's definitely something that ought to be supported - you may remember the refactoring that was done to unify the CODEC and CPU DAI structures, this sort of use case was one of the motivators for that. Where there's problems the core isn't a fixed thing, we can change it if required.
Very interesting thread. My 2 cents: I find the notion of codec confusing. In most products from Wolfson and others, you have a digital/mixing part, and a second one for digital/analog conversions. OMAP4 and others have a digital part on the application processor, but the partition is still the same, only implemented on two chips instead of one. It shouldn't really matter software-wise where the digital part is done, as long as you can express the connection between these two parts. A logical split would avoid having a description of a codec connected to another codec, you would only have a digital part and an analog part. With a CPU/digital/analog split, you could address all topologies without developers incurring any risk of brain damage. -Pierre