AnsweredAssumed Answered

IMX7 Dual EVK - Audio (no soundcards)

Question asked by jordan chen on Sep 28, 2018
Latest reply on Oct 2, 2018 by jordan chen

Hi,

   I tried to enable WM8960 on IMX7 Dual EVK board (MCIMX7SABRE), but it's failed for "no soundcards" and boot up log shown "wm8960 3-001a: Failed to issue reset (ret=-6)".

 

   I list my check items in below. Please kindly advise if I lose to modify related items. Thanks.

 

[Error Info]

1. Boot up log

 

   U-Boot 2017.03-nxp/imx_v2017.03_4.9.11_1.0.0_ga+ga2fea67

   Linux version 4.9.11-1.0.0+gc27010d

   ...

   input: fxos8700 as /devices/soc0/soc/30800000.aips-bus/30a30000.i2c/i2c-1/1-001e/input/input0
   fxos8700 device driver probe successfullyinput: fxas2100x as /devices/soc0/soc/30800000.aips-bus/30a30000.i2c/...
   fxas2100x 1-0020: fxas2100x device driver probe successfully

   ...

   wm8960 3-001a: Failed to issue reset ret(ret=-6)
   imx-wm8960 sound: failed to find SAI platform device
   imx-wm8960: probe of sound failed with error -22

   ...

   ALSA device list:
   No soundcards found.

   ...

   Welcome to NXP i.MX Release Distro 4.9.11-1.0.0 (morty)!

   systemd[1]: Set hostname to <imx7dsabresd>.

 

 

[Check Items]

Our original dts tree is the same as following link for audio.

1. I just set status to "ok" for sound node, and set status to "disabled" for sound-hdmi node to make sure wm8960 is used (because I have to burn image to NAND flash with zImage-imx7d-sdb-gpmi-weim.dtb)

2. I tried to add CONFIG_SND_SIMPLE_CARD as following suggestion, but the symptom is the same.

   No soundcard detected on imx7d, Open Embedded Toradex BSP 2.8 - Toradex Community 

   You probably face the following known issue. Just add CONFIG_SND_SIMPLE_CARD to your kernel configuration as suggested.

 

Porting custom audio codec in Linux BSP 

1. DTS tree

    sound {                 compatible = "fsl,imx7d-evk-wm8960",                              "fsl,imx-audio-wm8960";    ...
 
 &sai1 {         pinctrl-names = "default";
   ...
 
&i2c4 {         clock-frequency = <100000>;    ...

2. Kernel config

   CONFIG_SND_SOC_WM8960=y   CONFIG_SND_SOC_IMX_WM8960=y

Regards,
Jordan

Outcomes