AnsweredAssumed Answered

audio issue with custom i.MX6 board (TLV320)

Question asked by smaschy on Oct 16, 2017
Latest reply on Oct 16, 2017 by igorpadykov

Hey Community, i'm working with a custom board based on an i.MX6 SoC from Phytec. My Problem is that i get no audio output from the headphone or speaker channel of the used TLV320AIC3007. Does somebody has any idea for me?

 

If i try to play an example audio file (1) i get this error (2) or if i try the speaker-test (3) i get the next error (4).

gst-play-1.0 gag.mp3
(gst-plugin-scanner:239): GLib-GObject-CRITICAL **: g_object_class_install_property: assertion 'class->set_property != NULL' failed
speaker-test
tlv320aic3x-codec 0-0018: Failed to write 0 = d: -5

 

Startup Log:

[   17.548686] ALSA device list:
[   17.548692]   #0: OnboardTLV320AIC3007

 

 

here is my DT file:

   

tlv320_mclk: oscillator {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <19200000>;
        clock-output-names = "tlv320-mclk";
    };
...
    sound {
        compatible = "simple-audio-card";
        simple-audio-card,name = "OnboardTLV320AIC3007";
        simple-audio-card,format = "i2s";
        simple-audio-card,bitclock-master = <&dailink_master>;
        simple-audio-card,frame-master = <&dailink_master>;
        simple-audio-card,widgets =
            "Microphone", "Mic Jack",
            "Line", "Line In",
            "Line", "Line Out",
            "Speaker", "Speaker",
            "Headphone", "Headphone Jack";
        simple-audio-card,routing =
            "Line Out", "LLOUT",
            "Line Out", "RLOUT",
            "Speaker", "SPOP",
            "Speaker", "SPOM",
            "Headphone Jack", "HPLOUT",
            "Headphone Jack", "HPROUT",
            "MIC3L", "Mic Jack",
            "MIC3R", "Mic Jack",
            "Mic Jack", "Mic Bias",
            "LINE1L", "Line In",
            "LINE1R", "Line In";

        simple-audio-card,cpu {
            sound-dai = <&ssi2>;
        };

        dailink_master: simple-audio-card,codec {
            sound-dai = <&codec>;
            clocks = <&tlv320_mclk>;
        };
    };
...
&audmux {
    status = "okay";

    ssi2 {
        fsl,audmux-port = <1>;
        fsl,port-config = <
            (IMX_AUDMUX_V2_PTCR_TFSDIR |
            IMX_AUDMUX_V2_PTCR_TFSEL(4) |
            IMX_AUDMUX_V2_PTCR_TCLKDIR |
            IMX_AUDMUX_V2_PTCR_TCSEL(4))
            IMX_AUDMUX_V2_PDCR_RXDSEL(4)
        >;
    };

    pins5 {
        fsl,audmux-port = <4>;
        fsl,port-config = <
            0x00000000
            IMX_AUDMUX_V2_PDCR_RXDSEL(1)
        >;
    };
};
...
&i2c1 {
...

    codec: tlv320@18 {
        compatible = "ti,tlv320aic3007";
        #sound-dai-cells = <0>;
        reg = <0x18>;
        ai3x-micbias-vg = <2>;

        AVDD-supply = <&sound_3v3>;
        IOVDD-supply = <&sound_3v3>;
        DRVDD-supply = <&sound_3v3>;
        DVDD-supply = <&sound_1v8>;
    };
...
pinctrl_audmux: audmuxgrp {
            fsl,pins = <
                MX6QDL_PAD_DISP0_DAT16__AUD5_TXC    0x130b0
                MX6QDL_PAD_DISP0_DAT17__AUD5_TXD    0x110b0
                MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS    0x130b0
                MX6QDL_PAD_DISP0_DAT19__AUD5_RXD    0x130b0
            >;
        };
...
&ssi2 {
    status = "okay";
};

 

Thanks.

Outcomes