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/TLV320AIC3105: Width is not set for 24 bit

Part Number: TLV320AIC3105

Tool/software: Linux

Hi Technical support,

I am using TLV320aic3105 TI codec for our custom board. When I am playing 16 bit wav file it is taking width as 16 in codec driver. I have put debug. But when I use 24bit wav file in codec driver still it is taking as 16 bit.

I am not sure why it is taking 16 bit , instead of 24bit. Could please help in this regard,

Thanks in advance,

Jaya

  • Jaya,

    Page 0 register 9  bits D5-D4 need to be changed for the Codec to switch to 24bit Mode.  See below:

    best regards, 

    -Steve Wilson

  • Hi Steve,

    Thank you for quick response.

    But as per my understanding this should be taken care by driver code as per input wav file. For 16 bit wav file width =16 set by codec driver. Manually setting is just to verify the functionality.

    As I have observed in the TI codec driver, always it is taking width as 16, not 24  even though input wav file is of 24 bit.

    So what could be the reason?  Could you please help in this regard. 

    Thank you ,

    Jaya

  • Jaya,

    I do not have any insight into the drivers. TI does not currently support these drivers. They are available as a starting point only.

    If it is always 16 Bit then it would seem that the driver does not take care of it, i am not an expert in drivers, but I would assume that modifying the driver code is not very difficult for someone who is familiar with drivers. and the information I've provided above is all you need from the codec configuration standpoint.

    best regards,
    -Steve wilson
  • Hi Steve,

    Could you please confirm the tlv320aic3x.c codec driver supports 24 bit and 96KHz sampling rate or not?

    Thanks in advance.

    Jayalaxmi

  • Jaya,

    I just did a text search for "word" in the .c file and saw this:

    looks like "width" sets the word length, and width is set with aic3x->slot_width. 

    but I also see this other function aic3x_prepare()

    maybe one of those will help you?  As we've discussed in the past, TI doesn't support this Driver, so the best I will be able to do is search the driver code for things like "word length" or "width".  this driver was written over 10 years ago, and the team that created it, is no longer around. We hope to update these drivers soon, and at that point we will be able to support drivers again, but for now we do not have the ability to support this driver.  

    best regards,

    -Steve Wilson