Hi,
I have a board with i.MX6 and a WM8510 codec and I can play audio using an old vendor kernel (3.14) and my own asoc machine driver [1].
Now I want to run this with something more recent (currently trying on 4.14) and upstream drivers like simple-card or fsl-asoc-card.
The problem is I'm only getting a little bit of noise from the speakers but nothing more.
I would really appreciate it if someone more knowledgeable could have a quick look and maybe come up with some ideas how I can proceed debugging.
Thanks, Frieder
My devicetree setup for the simple-card approach looks like this:
sound { compatible = "simple-audio-card"; simple-audio-card,name = "wm8510-audio"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&sound_codec>; simple-audio-card,frame-master = <&sound_codec>; simple-audio-card,widgets = "Speaker", "Ext Spk"; simple-audio-card,routing = "Ext Spk", "SPKOUTP", "Ext Spk", "SPKOUTN";
assigned-clocks = <&clks IMX6QDL_CLK_CKO2_SEL>, <&clks IMX6QDL_CLK_CKO2>; assigned-clock-parents = <&clks IMX6QDL_CLK_OSC>, <&clks IMX6QDL_CLK_CKO2_PODF>; assigned-clock-rates = <0 24000000>;
sound_master: simple-audio-card,cpu { sound-dai = <&ssi2>; };
sound_codec: simple-audio-card,codec { sound-dai = <&codec>; clocks = <&clks IMX6QDL_CLK_CKO2>; }; };
&audmux { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_audmux>; status = "okay";
ssi2 { fsl,audmux-port = <1>; fsl,port-config = < (IMX_AUDMUX_V2_PTCR_SYN | IMX_AUDMUX_V2_PTCR_TFSEL(4) | IMX_AUDMUX_V2_PTCR_TCSEL(4) | IMX_AUDMUX_V2_PTCR_TFSDIR | IMX_AUDMUX_V2_PTCR_TCLKDIR) IMX_AUDMUX_V2_PDCR_RXDSEL(4) >; };
aud5 { fsl,audmux-port = <4>; fsl,port-config = < IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(1) >; }; };
&ssi2 { status = "okay"; };
&i2c2 { status = "okay"; clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>;
codec: wm8510@1a { #sound-dai-cells = <0>; compatible = "wlf,wm8510"; reg = <0x1a>; }; };
&iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sound_mclk>;
pinctrl_sound_mclk: sound { /* WM8510 MCLK */ fsl,pins = < MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x130b0 >; };
pinctrl_audmux: audmux { fsl,pins = < MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0 MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0 MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x130b0 MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x130b0 >; }; };