Hi.
I got a problem of wm8950 codec on imx6solo custom board.
Here is my dts configuration.
sound {
compatible = "fsl,imx6q-sabresd-wm8950",
"fsl,imx-audio-wm8950";
model = "wm8950-audio";
audio-cpu = <&ssi2>;
audio-codec = <&codec>;
audio-routing =
"AMIC", "Mic Bias";
mux-int-port = <2>;
mux-ext-port = <3>;
mic-det-gpios = <&gpio1 9 1>;
};
&ssi2 {
status = "okay";
};
&audmux {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_audmux>;
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
>;
};
&i2c1 {
status = "okay";
codec: wm8950@1a {
compatible = "wlf,wm8950";
reg = <0x1a>;
clocks = <&clks IMX6QDL_CLK_CKO>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wm8950>;
};
};
And part of kernel log.
[ 3.525426] fsl-ssi-dai 2028000.ssi: No cache defaults, reading back from HW
[ 3.543013] hub 1-1:1.0: USB hub found
[ 3.547353] hub 1-1:1.0: 4 ports detected
[ 3.553644] wm8950_set_bias_level: SND_SOC_BIAS_STANDBY
[ 4.188787] debugfs: Directory '2028000.ssi' with parent 'wm8950-audio' already present!
[ 4.199678] imx-wm8950 sound: wm8950 <-> 2028000.ssi mapping ok
[ 4.217692] NET: Registered protocol family 26
[ 4.224455] NET: Registered protocol family 10
[ 4.243077] Segment Routing with IPv6
[ 4.246895] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 4.255100] NET: Registered protocol family 17
[ 4.259611] can: controller area network core (rev 20170425 abi 9)
[ 4.266112] NET: Registered protocol family 29
[ 4.270593] can: raw protocol (rev 20170425)
[ 4.275091] can: broadcast manager protocol (rev 20170425 t)
[ 4.280805] can: netlink gateway (rev 20190810) max_hops=1
[ 4.287025] Bluetooth: RFCOMM TTY layer initialized
[ 4.292848] Bluetooth: RFCOMM socket layer initialized
[ 4.298078] Bluetooth: RFCOMM ver 1.11
[ 4.301973] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 4.307313] Bluetooth: BNEP filters: protocol multicast
[ 4.312639] Bluetooth: BNEP socket layer initialized
[ 4.317632] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 4.323777] Bluetooth: HIDP socket layer initialized
[ 4.328887] lib80211: common routines for IEEE802.11 drivers
[ 4.334868] Key type dns_resolver registered
[ 4.340166] Registering SWP/SWPB emulation handler
[ 4.345694] Loading compiled-in X.509 certificates
[ 4.370772] imx_epdc_fb 20f4000.epdc: can't get/select pinctrl
[ 4.515468] galcore 130000.gpu: ignoring dependency for device, assuming no driver
[ 4.524382] mxc_vpu 2040000.vpu_fsl: ignoring dependency for device, assuming no driver
[ 4.541560] input: gpio-keys as /devices/soc0/gpio-keys/input/input1
[ 4.558838] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01T00:00:01 UTC (1)
[ 4.568668] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 4.583618] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 4.591510] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 4.600585] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[ 4.609572] ALSA device list:
[ 4.612850] #0: wm8950-audio
root@imx6qsabresd:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: wm8950audio [wm8950-audio], device 0: HiFi wm8950-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
root@imx6qsabresd:~# arecord -Dhw:0,0 -c 2 -r 44100 -f S16_LE -d 5 ~/test.wav
[ 3415.006926] fsl-ssi-dai 2028000.ssi: ASoC: can't open component 2028000.ssi: -6
arecord: main:730: audio open error: No such device or address
Is the wm8950 codec driver setting wrong?
I really can't figure out what is the problem.
Best regards.
Thanks.
Hi Han
one can look at Sabre SD wm8962 example
imx6qdl-sabresd.dtsi\dts\boot\arm\arch - linux-imx - i.MX Linux kernel
Linux Manual in Documentation Figure 7-1. ALSA SoC Software Architecture
and try to debug where error happens. May be useful AN4553 Using Open Source
Debugging Tools for Linux on i.MX Processors
https://www.nxp.com/docs/en/application-note/AN4553.pdf
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------