ADC6140EVM-PDK: Device Tree (DTS) Support for TLV320ADC6140 with NXP i.MX 8M Plus Processor

Part Number: ADC6140EVM-PDK
Other Parts Discussed in Thread: TLV320ADC6140

Tool/software:

Dear Texas Instruments Support Team,

I am writing to request technical assistance regarding the integration of your TLV320ADC6140 audio ADC with an NXP i.MX 8M Plus processor on a custom board running embedded Linux (Kernel version 6.1.22).

Our Goal: Our objective is to capture 4 channels of audio from the TLV320ADC6140 using the i.MX 8M Plus's Synchronous Audio Interface (SAI / I²S bus).

Analysis and Progress So Far:

  1. We have reviewed the TLV320ADC6140 datasheet and understand that its primary configuration (audio format, master/slave mode, etc.) is set via hardware pins, as it does not have a software control interface like I²C or SPI.

  2. Based on this, we have concluded that a complex, device-specific kernel driver is not required. Our plan is to use the standard Linux ASoC (ALSA System on Chip) framework with the generic simple-audio-card driver and a dummy-codec.

  3. We have already configured the SAI5 interface on the i.MX 8M Plus to act as the I²S bus Master (providing BCLK and FSYNC) and to receive audio data (capture mode).

Information Required: To ensure a robust integration and prevent signal integrity issues, we would appreciate your guidance on the following points for our Device Tree (.dts) configuration:

  1. Pin Control (pinctrl) Configuration: What are the recommended electrical settings for the processor's pins (drive strength, slew rate, pull-up/down) when connecting to the DOUTx, BCLK, and WCLK outputs of the TLV320ADC6140? While we are using standard values, an official recommendation from TI would be ideal.

  2. Approach Validation: Is our approach of using simple-audio-card with a dummy-codec for a control-less device like the TLV320ADC6140 the recommended practice by TI for Linux integration?

  3. Reference Designs: Are there any Device Tree examples or application notes that demonstrate connecting the TLV320ADC6140 (or a similar hardware-configured TI audio ADC) to an ARM processor (like NXP i.MX, Broadcom, etc.) running Linux? A validated reference snippet would be extremely helpful.

Thank you in advance for your time and expertise. Any information or examples you can provide will be a great help to the success of our project.

Best regards,

imx8mp-evk-debix-model-ab-sai5.zipRúben Pereira

  • Hi   

    Bit confused about the statement "as it does not have a software control interface like I²C ". Please find answers below. 

    1. Hope you're referring to the right data sheet - https://www.ti.com/lit/ds/symlink/tlv320adc6140.pdf - section 7.5 have the electrical  configuration for I2C, I2S interfaces.
    2. We have up-streamed I2C based Linux driver which comes with the kernel source code tlv320adcx140.c  (for 6.1 version tlv320adcx140.c) . You do not need to integrate manually. It just needs device tree configuration. The driver will automatically configure the audio format and control the device on need basis so since you're already using Linux, I think it is better to use this driver. 
    3. The documentation on the driver configuration with example of device tree - ti,tlv320adcx140.yaml . I think you can use simple-audio-card with i2c node with configurations similar to what is there in the .yaml file.

    Hope this information helps. Thanks 

    Regards

    Niranjan