This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: TLV3201AIC3204 audiocodec

Part Number: AM5728

HI,

Can you help me in integration of TLV3201AIC3204 audiocodec  in AM5728 EVM's kernel. I am not able to select TLV3201AIC32X4 in .config file of the kernel ( There is no provision for that.) from the menuconfig option.

Please help me how to do that.

What changes are required in the .dts files ?

Also the driver code ie., tlv320aic32x4.c, tlv320aic32x4.h is  present in sound/soc/codecs/ directory but I am not sure as to how to integrate it with the device tree.

Please help in this context.

Thank you

  • tlv320aic32x4 codec driver can be enabled in menuconfig in:  Device Drivers -> Sound card support -> Advanced Linux Sound Architecture -> ALSA for SoC audio support -> CODEC drivers. You can also use menuconfig's search (just type "\'") and then search for "TLV320AIC32X4". It should show you the found options and their dependencies, that can be helpful to identify if a config option is not available to you due to missing config dependency.

    Please refer to the devicetree binding documentation of the audio codec: Documentation/devicetree/bindings/sound/tlv320aic32x4.txt.

  • This is what the menuconfig shows:-

    Symbol: SND_SOC_TLV320AIC32X4 [=n]                                                                                                                                                                  │  
      │ Type  : tristate                                                                                                                                                                                    │  
      │   Defined at sound/soc/codecs/Kconfig:908                                                                                                                                                           │  
      │   Depends on: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y]                                                                                                                                        │  
      │   Selected by: SND_SOC_MX27VIS_AIC32X4 [=n] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_IMX_SOC [=n] && MACH_IMX27_VISSTRIM_M10 [=n] && I2C [=y] || SND_SOC_TLV320AIC32X4_I2C [=n] &&

    You see all its dependencies are enabled still it shows [=n].

    I even added CONFIG_SND_SOC_TLV320AIC32X4=y in the .config and ran the make command. But it is removed automatically from the .config file as soon as I run the make command.

    I am stuck here, please help.

  • I think you need to select either TLV320AIC32X4_I2C or TLV320AIC32X4_SPI. As per Kconfig file, either of them should explicitly select SND_SOC_TLV320AIC32X4.

    config SND_SOC_TLV320AIC32X4
            tristate
    
    config SND_SOC_TLV320AIC32X4_I2C
            tristate "Texas Instruments TLV320AIC32x4 audio CODECs - I2C"
            depends on I2C
            select SND_SOC_TLV320AIC32X4
    
    config SND_SOC_TLV320AIC32X4_SPI
            tristate "Texas Instruments TLV320AIC32x4 audio CODECs - SPI"
            depends on SPI_MASTER
            select SND_SOC_TLV320AIC32X4
    

  • Hi,

    Actually I checked the Kconfig file and I saw that tristate entry for both SND_SOC_TLV320AIC32X4_I2C and SND_SOC_TLV320AIC32X4_I2C was empty ie.,

    config SND_SOC_TLV320AIC32X4_I2C
            tristate 
            depends on I2C
            select SND_SOC_TLV320AIC32X4
    and similarly for SPI and hence they were not showing in menuconfig. Now when I added tristate entry for each I could see each of them in the menuconfig menu.

    Thank you!