Q:

We want to be able to mix data between codec block A and codec block B. The reason for this is that ALSA driver for AIC34(AIC3x in general) doesn't support two codecs. In that case we want to know:

 
Q1) Does the current ALSA ASoC support multiple codecs on single card which will communicate in TDM mode by sharing the clocks? If yes could you please send us the appropriate ALSA driver.
 
Q2) If the answer to the above question is negative, then are there any other example drivers that interface with multiple codecs(may not be AIC34 also) on the same sound card?
 
 

A:

A1) Yes. ASoC support multiple codecs on single card from Kernel 3.0 onwards. You need to use the codec_conf the way it is used in sound/soc/omap/rx51.c to get multiple codec instantiated with separate mixer commands for them.

A2) You can look at sound/soc/omap/rx51.c which has AIC34 with Codec A and B similar to your hardware. For supporting TDM, you might need to implement set_tdm_slots, set_channel_map and set_tristate in tlv320aic3x driver and set them up in you machine driver. Some pointers are provided in http://permalink.gmane.org/gmane.linux.alsa.devel/85514