AnsweredAssumed Answered

imx6 - tlv320aic32x4 codec no data on I2S port

Question asked by Benoit Moffet on Nov 19, 2015
Latest reply on Sep 30, 2016 by Zhang Lin



I am working on a custom board with an imx6d processor and a tlv320aic3204 codec.


The codec is connected on the AUD4 port and the mclk comes from GPIO0 at 24MHz.


The codec is detected and the ssi maping seems fine.


imx-aic32x4 sound.18:  tlv320aic32x4-hifi <-> 202c000.ssi mapping ok


ALSA device list:

  #0: tlv320aic32x4


Here is my device tree entry for the sound card:

    sound {

  compatible = "fsl,imx-audio-aic32x4";

  model = "tlv320aic32x4";

  audio-codec = <&codec>;

        ssi-controller = <&ssi1>;

  audio-routing =

  "Line Out Jack", "LOL",

            "Line Out Jack, "LOR",

            "Headphone Jack, "HPL",

            "Headphone Jack, "HPR";

        mux-ext-port = <4>;

  mux-int-port = <1>;



&ssi1 {

  status = "okay";



... --- ...


    codec: tlv320aic32x4@18 {

        compatible = "ti,tlv320aic32x4";

        reg = <0x18>;

        clocks = <&clks 201>;

        clock-names = "mclk";

        gpio-reset = <&gpio5 12 0>;

        status = "okay";



When I play with alsamixer, I can see I2C data on the port with the scope.


I don't see data on the AUD4 pins, only the Mclk is always present.


If I use aplay, I get this message after 13s waiting:


aplay: pcm_write:1947: write error: Input/output error


I wrote a machine driver for the tlv320aic32x4 based on the sgtl5000 one...


I use the 3.10.17 kernel on poky-dizzy and the meta-fsl-arm layer in dizzy too.