AnsweredAssumed Answered

WM8904 audio codec dts configuration for imx6ull

Question asked by Francesco C. on Sep 25, 2019
Latest reply on Sep 25, 2019 by igorpadykov
Hello All,
I'm working with a MYS-6ULX-IOT board from MyirTech. The board is equipped with a i.mx6ull processor.
I'm trying to use the WM8904 audio codec available with the productor expansion board  "MYB-6ULX Expansion Board"
root@hst:/home/hst# aplay -l
aplay: device_list:268: no soundcards found...
I'm using a custom Debian filesystem ( Debian 8) with the official MyirTech's U-Boot and kernel (linux 4.1.15).
I've recompiled kernel with
cd /home/xubuntu/MYS6ULx-devel/kernel-4.1.15
export DEV_ROOT=~/MYS6ULx-devel
export PATH=$DEV_ROOT/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin:$PATH
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
make distclean
make mys_imx6_defconfig
make menuconfig
Throug menuconfig, i've loaded the .config file created with "make mys_imx6_defconfig" and theese flags are checked:
          "Device Drivers > Sound card support > Advanced Linux Sound Architecture > ALSA for SoC audio support > SoC Audio for Freescale CPUs > Symbol: SND_SOC_IMX_WM8904 [=y]  "
           Device Drivers > I2C support > I2C device interface     
           Device Drivers > I2C support > I2C bus multiplexing support     
I also edited the file "imx6ull-14x14-evk.dts" by adding the following lines:
&i2c2 {
clock_frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";
       codec: wm8904@1a {
       compatible = "wlf,wm8904";
       reg = <0x1a>;
       clocks = <&clks IMX6UL_CLK_SAI2>;
        clock-names = "mclk";
        };
 

};
make zImage dtbs modules
I can use i2sedetect -y 1 to find the audio device at address <0x1a>:
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:  -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
 
root@hst:/home/hst# dmesg | grep i2c
[    0.280365] i2c i2c-1: IMX I2C adapter registered
[    0.280406] i2c i2c-1: can't use DMA
[    1.365824] msg ft5x0x_i2c_rxdata i2c read error: -5
[    1.402050] i2c /dev entries driver
 
root@hst:/home/hst# dmesg | grep wm8904
[    1.796089] wm8904 1-001a: revision A
What am I missing?
The complete .dts file and the boot sequence is in the attachment
Thank you very much in advice,
Francesco

Outcomes