How to use WM8940 on i.MX8MP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to use WM8940 on i.MX8MP

232 Views
eclipse5685
Contributor I
I don't know how to run WM8940 on i.MX8MP.
 
I changed the wiring so that the I2C3 and SAI3 that were connected to the WM8960 on the i.MX8MP-EVK are connected to the WM8940,
 and I'm using simple-audio-card and wm8940 as the drivers.
 
The following settings have been made.
・Device Tree
sound-wm8940 {
compatible = "simple-audio-card";
simple-audio-card,name = "wm8940-audio";
simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&cpudai>;
simple-audio-card,bitclock-master = <&cpudai>;
simple-audio-card,widgets =
"Speaker", "Ext Spk",
"Microphone", "Mic Jack";
simple-audio-card,routing =
"Ext Spk", "MONOOUT",
"Ext Spk", "SPKOUTN",
"Ext Spk", "SPKOUTP",
"MICN", "Mic Jack",
"MICP", "Mic Jack";
status = "okay";
 
cpudai: simple-audio-card,cpu {
sound-dai = <&sai3>;
};
 
link_codec: simple-audio-card,codec {
sound-dai = <&wm8940>;
clocks = <&clk IMX8MP_CLK_SAI3_ROOT>;
};
};
 
&i2c3 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
status = "okay";
 
wm8940: wm8940@1a {
#sound-dai-cells = <0>;
compatible = "wlf,wm8940";
reg = <0x1a>;
status = "okay";
};
 
}
 
&sai3 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
assigned-clock-rates = <12288000>;
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>,
<&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
<&clk IMX8MP_CLK_DUMMY>;
clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
fsl,sai-mclk-direction-output;
status = "okay";
};
 
・Kernel Config
CONFIG_SND_SOC_WM8940=m
 
0 Kudos
Reply
1 Reply

204 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

The WM8940 audio CODEC is not supported by default on our BSP. To use this CODEC to your system, may you need to add a third-party driver provided by manufacturer and configure your device tree.

Unfortunately, there is no a guide to port this specific CODEC to the BSP. The references we have are the i.MX porting guide and EVK device tree (WM8940).

Maybe this documentation could be helpful.

Best regards.

0 Kudos
Reply