AnsweredAssumed Answered

wm8962 with iMX6d on a custom board

Question asked by Haggay Tavyumi on Aug 8, 2016
Latest reply on Sep 5, 2016 by Haggay Tavyumi

Hello all

I use the iMX6d and the WM8962 in my custom board he is just like the sabreSD schematics with one change I use the AUD5 SSI pins instead of the AUD3 pins.

The BSP version I use is 3.14.52 YOCTO.

I have reconfigured the the DTS in the pin muxing:

/*wm8962-audio*/

        pinctrl_audmux: audmux_grp {

            fsl,pins = <

                MX6QDL_PAD_DISP0_DAT19__AUD5_RXD    0x130b0

                MX6QDL_PAD_DISP0_DAT16__AUD5_TXC    0x130b0

                MX6QDL_PAD_DISP0_DAT17__AUD5_TXD    0x130b0

                MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS    0x130b0               

            >;

        };

sound {

        compatible = "fsl,imx6q-sabresd-wm8962",

               "fsl,imx-audio-wm8962";

        model = "wm8962-audio";

        cpu-dai = <&ssi1>;

        audio-codec = <&codec>;

        asrc-controller = <&asrc>;

        amic-mono;

        audio-routing =

            "Headphone Jack", "HPOUTL",

            "Headphone Jack", "HPOUTR",

            "Ext Spk", "SPKOUTL",

            "Ext Spk", "SPKOUTR",

            "MICBIAS", "AMIC",

            "IN3R", "MICBIAS",

            "DMIC", "MICBIAS",

            "DMICDAT", "DMIC",

            "CPU-Playback", "ASRC-Playback",

            "Playback", "CPU-Playback",

            "ASRC-Capture", "CPU-Capture",

            "CPU-Capture", "Capture";

        mux-int-port = <1>;

        mux-ext-port = <5>;

        hp-det-gpios = <&gpio7 13 1>;

        mic-det-gpios = <&gpio7 13 1>;

    };

&i2c3 {

    clock-frequency = <100000>;

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_i2c3>;

    status = "okay";

 

    codec: wm8962@1a {

        compatible = "wlf,wm8962";

        reg = <0x1a>;

        clocks = <&clks 201>;

        DCVDD-supply = <&reg_audio>;

        DBVDD-supply = <&reg_audio>;

        AVDD-supply = <&reg_audio>;

        CPVDD-supply = <&reg_audio>;

        MICVDD-supply = <&reg_audio>;

        PLLVDD-supply = <&reg_audio>;

        SPKVDD1-supply = <&reg_audio>;

        SPKVDD2-supply = <&reg_audio>;

        gpio-cfg = <

            0x0000 /* 0:Default */

            0x0000 /* 1:Default */

            0x0013 /* 2:FN_DMICCLK */

            0x0000 /* 3:Default */

            0x8014 /* 4:FN_DMICCDAT */

            0x0000 /* 5:Default */

        >;

       };

};

&audmux {

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_audmux>;

    status = "okay";

};

The driver is loads fine:

ALSA device list:

   #0: wm8962-audio

   #1: imx-hdmi-soc

 

with one error:

wm8962 2-001a: DC servo timed out

 

now the problem is that I can't play sound. I have tested it with the command:

cat /dev/urandom | aplay -D hw:0,0 -f S24_LE

sound is not consistent it start and stops.

while I am trying to play sound with Gstreamer  :

gst-launch-1.0 audiotestsrc wave=0 ! alsasink device=hw:0,0 slave-method=0

I get nothing.any ideas?

 

the HDMI sound doesn't work as well with a different error :

imx-hdmi-audio imx-hdmi-audio: HDMI Video is not ready!

imx-hdmi-audio imx-hdmi-audio: ASoC: can't open platform imx-hdmi-audio: -22

Outcomes