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.

Linux/TLV320AIC3110: TLV320AIC3110 iMX6 platform driver

Part Number: TLV320AIC3110
Other Parts Discussed in Thread: TLV320AIC3100

Tool/software: Linux

Hi,

 

We are trying to interface TLV320AIC3110 codec with a Freescale iMX6 processor.

We are running embedded Linux kernel 4.1.15 and used tlv320aic31xx as the driver file. But we could not find the required platform interface file imx-tlv320aic31xx.

Hence we ported it from an existing imx-tlv320aic3x (got form the internet) and modified so as to compile without errors.

 

We are getting 24MHz at codec MCLK, but not able to hear any audio output from speaker and the error log is given below.

Since we don’t want the MIC and Headphone output, we haven’t used it in our circuit, will it create any issue?

Attached is the schematic page of TLV320 audio codec for reference.

If anyone have interfaced the TLV320 codec with iMX6, kindly share the imx-tlv320aic31xx file.

Please provide your valuable inputs as we are held up at this stage.

root@imx6qsabresd:~# dmesg | grep tlv

[   3.532537] tlv320aic31xx-codec 0-0018: Bad ai31xx-micbias-vg value 0 DT

[   3.552732] imx-tlv320aic3x sound: tlv320aic31xx-hifi <-> 202c000.ssi mapping ok

[   5.044967] tlv320aic31xx-codec 0-0018: aic31xx_wait_bits: Failed! 0x25 was 0x22 expected 0x10 (0, 0x10, 500000 us)

[   5.054133] tlv320aic31xx-codec 0-0018: ASoC: POST_PMU: SPL ClassD event failed: -1

[   5.505194]   #0: imx-tlv320aic3x

[   22.517611] tlv320aic31xx-codec 0-0018: aic31xx_wait_bits: Failed! 0x24 was 0xc0 expected 0x0 (0, 0x40, 500000 us)

[   22.526724] tlv320aic31xx-codec 0-0018: ASoC: POST_PMD: ADC event failed: -1

[   28.672430] tlv320aic31xx-codec 0-0018: aic31xx_wait_bits: Failed! 0x25 was 0xaa expected 0x0 (0, 0x8, 500000 us)

[   28.681465] tlv320aic31xx-codec 0-0018: ASoC: POST_PMD: DAC Right event failed: -1

[   29.820375] tlv320aic31xx-codec 0-0018: aic31xx_wait_bits: Failed! 0x25 was 0xaa expected 0x0 (0, 0x80, 500000 us)

[   29.829489] tlv320aic31xx-codec 0-0018: ASoC: POST_PMD: DAC Left event failed: -1

Thanks & Regards

ShaluTLV320AIC3100_Codec.pdf

  • Hi all,

    I was able to eliminate the error log by adding the audio-routing setting, but still no audio output.

    Inputs are most welcome !!

    Regards
    Shalu
  • Hello Shalu,

    The linux driver that we have available for the AIC3110 is found here.  We do not have support files for the iMX6.  

    I can help you from a hardware/configuration perspective, but I'm afraid I can't provide support for the driver.  

    best regards, 

    -Steve Wilson

  • Hi Steve Wilson,

    Thanks for the reply ...

    We tried using the updated driver mentioned in your link, but it is giving the below error.

    imx-tlv320aic3x sound: ASoC: CODEC DAI tlv320aic31xx-hifi not registered
    imx-tlv320aic3x sound: snd_soc_register_card failed (-517)

    Regarding the hardware, please have a look in the schematic (attached along my first post). Is there any modifications required ?

    Also let me know if any configuration settings to be added, other than the driver file.

    Regards

    Shalu

  • Shalu,

    I'm afraid i do not have any insight into the driver, it was written in 2008 or so and hasn't been supported since 2012. I wish I could help more.

    a couple of important things about your schematic

    1. You must provide power to HPVDD, and SPRVDD, even if you do not plan to use those blocks. (follow power supply recommendations in datasheet)
    2. unused inputs (pins 13-15) should be AC coupled to gnd using 0.47uf Cap.
    3. Because you are using only a mono output... why not use the TLV320AIC3100? that is essentially the same part, but mono out. its a little bit cheaper too.

    best regards,
    -Steve Wilson
  • Hi Steve,

    Thanks for the response.

    As suggested, we updated the hardware modifications, but still no sound output.

    The current board is a miniature version of our original board, where we need 2 SPK out, thats why we sticked to TLV320AIC3110.

    We are doubting the imx-tlv320 platform file. So is there any way we could check the file by someone or

    get a sample platform file for any other processors written for Linux kernel 4.1.

    Regards

    Shalu

  • Shalu,

    We have never created an imx-TLV320 platform file, The only Driver we have ever created was the one I linked to in my first post. That was tested on a TI OMAP processor.

    best regards,
    -Steve Wilson
  • Hi Steve,


    Thanks for the reply.

    We will continue the test and get back.


    Regards
    Shalu