AnsweredAssumed Answered

wm8958 imx6q sabresd

Question asked by nikita chursin on Mar 21, 2018
Latest reply on Mar 22, 2018 by igorpadykov

Hi
I'm developing custom sabresd board with wm8958. 
wm8958 connected via i2s interface with 4 wire (sync mode). AUD3(imx6q) to i2s1(wm8958).
I use imx4.9-imx branch. Enable wm8958 in menuconfig.

 

In dts use 

 

sound {
   compatible = "fsl,imx7d-12x12-lpddr3-arm2-wm8958",
   "fsl,imx-audio-wm8958";
   model = "wm8958-audio";
   audio-codec = <&codec>;
   codec-slave;
   cpu-dai = <&ssi2>;

   asrc-controller = <&asrc>;

   mux-int-port = <2>;
   mux-ext-port = <3>;
};



codec: wm8958@1a {
   compatible = "wlf,wm8958";
   reg = <0x1a>;
   /*clocks = <&clks IMX6QDL_CLK_CKO>;*/
   clocks = <&clks 201>;
   clock-names = "mclk1";

   wlf,ldo1ena;
   wlf,ldo2ena;

   i2c-slave;
   status = "okay";
};



pinctrl_audmux: audmuxgrp {
   fsl,pins = <
   MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
   MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
   MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0
   MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
   >;
};



&audmux {
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_audmux>;
   status = "okay";
};

&ssi2 {
     assigned-clocks = <&clks IMX6QDL_CLK_PLL4>,
                 <&clks IMX6QDL_PLL4_BYPASS>,
                 <&clks IMX6QDL_CLK_SSI2_SEL>;
     assigned-clock-parents = <&clks IMX6QDL_CLK_OSC>,
                     <&clks IMX6QDL_CLK_PLL4>,
                     <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
     assigned-clock-rates = <1179648000>, <0>, <0>;
     status = "okay";
};

 

I use "fsl,imx7d-12x12-lpddr3-arm2-wm8958" becouse there is problem with gpr in linux. Gpr in u-boot is enabled:

CCM_CCGR5, 0x0FFC00C3

In dmesg I saw that wm8958 init.
   fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
   imx-wm8958 sound: wm8994-aif1 <-> 202c000.ssi mapping ok

ALSA device list:
   #0: Loopback 1
   #1: wm8958-audio

In alsamixer wm8958 is default, and 100% volume, but sound is off.

I think I have a problem with ssi. How to correct dts?

Outcomes