We have a custom board based loosely on the imx6q-sabresd. We are using the dual with possible upgrade path to the quad.
We are running the fslc-imx kernel version 4.1 and basing our build on the fsl-community-bsp.
I am trying to get linux drivers to recognize and use the tlv320aic3120 codec. I am able to talk to the codec through i2c.
I see that a few other codecs have "compatible" listings in device tree and corresponding imx-audio-<codec> drivers in sound/soc/fsl.
I have looked at the forum for other answers and the closest I can find is https://community.nxp.com/thread/323017 However that is a hacked version of the imx-sgtl5000 driver from 2009 which does not have much similarity to the current driver in my 4.1 source.
Must I create this imx-audio-<codec> driver for my codec?
If I must create this new driver what other driver that exists in sound/soc/fsl/ is most closely related to the TLV320AIC31xx? What is my best baseline to copy from?
What other options are available, aside from changing to a supported codec?
Any guidance on how the imx-audio-<codec> driver mechanism works and how my new driver will have to "hook" into the existing system?
Is the asoc driver the correct driver for the sound system in the i.mx6 dual? If not which driver should I be using? It appears the asoc driver is coupled with the imx-audio-<codec> drivers.
Any help and suggestions appreciated.
Thank you,
Travis
Please download the BSP documentation from here
i.MX 6 Series Software and Development Tool|NXP
In the documentation, there are i.MX_BSP_Porting_Guide and i.MX_Linux_Reference_Manual.
In the i.MX_BSP_Porting_Guide, please read Chapter 8 - "Porting Audio Codecs to a Custom Board"
In the i.MX_Linux_Reference_Manual, please read Chapter 28 - "Advanced Linux Sound Architecture (ALSA) System
on a Chip (ASoC) Sound Driver"