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.

TLV320AIC3254 ALSA problem



Hello guys,

 

I've a problem with the ALSA driver for the AIC3254 audio codec.

At first I'll describe my setup:

I've the codec connected to a i.MX27 processor from freescale via I2S and I2C. The processors outputs 12MHz to the codec. Reading and writing registers via I2C works and I also see data flowing from the processor to the codec when I issue an aplay command. The both Line-Outputs of the codec are connected with TPA2005 audio amps to drive two loudspeakers.

I use the latest ALSA driver for the codec from TI with the codec as I2S master. I had to modifie the dai structures a little bit to support the linux kernel I'm working with (it's a quite new 3.0.0 kernel). I compiled the driver with and without miniDSP support and nothing changed.

 

And here is my problem: When I issue the aplay command I don't hear anything. I'm quite new on playing with ALSA, but I followed the instructions in the "TLV320AIC32x4 Linux Driver Datasheet" to port the driver to my processor and I see the Capture and Playback devices in linux.

I suppose that I'm missing something in the configuration of the codec because as I see the audio data arrives at the codec correctly and than it is lost in the chip.

Please help me. All kinds of hints are really welcome. I'm stuck on this for several days until now.

 

Thanks in advance. Kind regards,

Timo

  • Hi Timo,

     

    Most likely your Page 1 settings are incomplete or incorrect.  Please refer to  Figure 5-2 in page 26 of the datasheet.   To get audio on line out, you need to make sure that both DACs are powered on, volumes set to 0 dB,  that the DACs are connected to the line outs,  and that the lineout amplifier is powered and set to 0 dB.  The register writes required to accomplish this is spread between the codec_init() and mute_codec() functions in the codec driver.  You may also want to quickly check that at least the two volume settings (DAC volume and LO Amp volume) are OK by using the associated amixer commands.

    Regards,

    hari