First of all, please let me know if this is not the right place to ask for
this sort of help and thanks in advance for any help you can provide.

I'm trying to use the Texas Instruments TLV320AIC3104 audio codec connected
to one of the Multichannel Audio Serial Ports of a Texas Instruments AM3357
SoC. The objective is to use stereo audio input and output simultaneously
from a userland Linux application.

This is a Beaglebone Green board running the 4.19 branch of the Linux
Kernel, along with a custom filesystem built with Buildroot.

On the ALSA side of things, the codec is supported by the
snd-soc-tlv320aic3x driver and the mcasp port is supported by the
snd-soc-davinci-mcasp driver. I'm also using the snd_soc_simple_card driver
to connect the two together.

The problem I'm having is that the simple-card driver doesn't recognize
that I'm trying to use the TLV320aic3x codec/driver. I've tried two
different things in my device tree: (Pasted here )

In both cases, the execution of the simple-card driver reaches the
asoc_simple_card_parse_dai() function twice (once for the mcasp0 port and
once for the codec). For the mcasp port, the call to
snd_soc_of_get_dai_name() returns correctly "davinci-mcasp0"; but the
second time, the call to snd_soc_of_get_dai_name() returns -517. Looking
inside snd_soc_of_get_dai_name(), I can see a lot of code that handles
parsing of the device tree but I can't figure out where the error is.

The probe function of mcasp is correctly called but the probe function of
the codec driver is never called.

Am I doing something wrong in my device tree? Or maybe there is another
kind of error, maybe in the simple card driver?

Also, I can see that there is the option in the simple card driver to
provide the codec and cpu info using a asoc_simple_card_info struct but I
can't find any examples of this.

Thanks for reading.

Rafael Vega.
Alsa-user mailing list

Reply via email to