[alsa-devel] ASoC: Two codecs on a single CPU DAI

Petr Kulhavy petr at barix.com
Tue May 20 15:08:25 CEST 2014


I'm writing a driver for a custom DaVinci board, which has two codecs 
(Wolfson and STA323 amplifier) connected to the same CPU DAI. The 
intention is that both codecs always play the same audio, only the 
volume/mixer settings are controlled separately. In addition to that the 
design is atypical by the fact, that the Wolfson is the clock master. So 
in order to play audio on the amplifier the Wolfson must be initialized 
as well.

My question is: how to reflect this architecture in a SOC platform driver?

As the first approach I tried to create two DAI links, one for each 
codec. That worked if audio was first played on the Wolfson link (clock 
master was initialized) and then on the second link, using the same 
sampling rate.

But in fact I would need only one DAI link to both. So then I tried to 
make just one link to Wolfson and put the amplifier as an "aux_dev". 
However there I need to set hw_params and format for the amplifier codec 
DAI and those functions were not called. In fact there was no codec DAI 
created for the amplifier. I've also seen that one can define rtd_aux 
runtimes, but have nowhere found how to use it.

Could someone please help me?

Thanks a lot

Petr Kulhavy, MSc
System Architect

More information about the Alsa-devel mailing list