Hi everyone,
we’re using an imx7d on a custom board and I’m not able to get the audio playback working with Toradex BSP 2.8 with Linux Kernel 4.9.87. It was working before with BSP 2.7 and 4.1.2-0 so I don’t think it’s a hardware problem. I’ve seen that there are some changes in the dtsi files regarding the sound/sgtl5000. In dmesg I can see sgtl5000 but there is no soundcard available in the system. Do I miss something in the device tree or kernel configuration or which configuration is necessary to get the soundcard working? Thanks in advance
dmesg output
[ 1.981036] sgtl5000 0-000a: Looking up VDDD-supply from device tree
[ 1.981155] sgtl5000 0-000a: Looking up VDDA-supply from device tree
[ 1.981215] sgtl5000 0-000a: Looking up VDDIO-supply from device tree
[ 1.981282] sgtl5000 0-000a: Looking up VDDD-supply from device tree
[ 1.982373] sgtl5000 0-000a: sgtl5000 revision 0x11
...
[ 2.234686] ALSA device list:
[ 2.237716] No soundcards found.
imx7-colibri.dtsi diff
43,53c73,85
< compatible = "fsl,imx7d-colibri-sgtl5000",
< "fsl,imx-audio-sgtl5000";
< model = "imx7-colibri-sgtl5000";
< cpu-dai = <&sai1>;
< audio-codec = <&codec>;
< codec-master;
< audio-routing =
< "LINE_IN", "Line In Jack",
< "MIC_IN", "Mic Jack",
< "Mic Jack", "Mic Bias",
< "Headphone Jack", "HP_OUT";
---
> compatible = "simple-audio-card";
> simple-audio-card,name = "imx7-sgtl5000";
> simple-audio-card,format = "i2s";
> simple-audio-card,bitclock-master = <&dailink_master>;
> simple-audio-card,frame-master = <&dailink_master>;
> simple-audio-card,cpu {
> sound-dai = <&sai1>;
> };
>
> dailink_master: simple-audio-card,codec {
> sound-dai = <&codec>;
> clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
> };
cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
29 fb
81 video4linux
89 i2c
90 mtd
116 alsa
128 ptm
136 pts
153 spi
166 ttyACM
180 usb
188 ttyUSB
189 usb_device
207 ttymxc
248 hidraw
249 watchdog
250 iio
251 ptp
252 pps
253 rtc
254 gpiochip
cat /proc/asound/cards
--- no soundcards ---
zcat /proc/config.gz |grep SND | grep -v “not set”
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_DMAENGINE_PCM=y
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
CONFIG_SND_PCM_TIMER=y
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_DRIVERS=y
CONFIG_SND_HDA_PREALLOC_SIZE=64
CONFIG_SND_ARM=y
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_SOC=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_FSL_ASRC=y
CONFIG_SND_SOC_FSL_SAI=y
CONFIG_SND_SOC_FSL_SSI=y
CONFIG_SND_SOC_FSL_SPDIF=y
CONFIG_SND_SOC_FSL_ESAI=y
CONFIG_SND_SOC_IMX_PCM_DMA=y
CONFIG_SND_SOC_IMX_AUDMUX=y
CONFIG_SND_IMX_SOC=y
CONFIG_SND_SOC_IMX_SGTL5000=y
CONFIG_SND_SOC_I2C_AND_SPI=y
CONFIG_SND_SOC_CS42XX8=y
CONFIG_SND_SOC_CS42XX8_I2C=y
CONFIG_SND_SOC_SGTL5000=y
Running device tree
dtc -I fs /sys/firmware/devicetree/base
...
sound {
simple-audio-card,name = "imx7-sgtl5000";
compatible = "simple-audio-card";
simple-audio-card,frame-master = <0x5c>;
simple-audio-card,bitclock-master = <0x5c>;
simple-audio-card,format = "i2s";
simple-audio-card,cpu {
sound-dai = <0x5d>;
};
simple-audio-card,codec {
clocks = <0x1 0x14a>;
phandle = <0x5c>;
linux,phandle = <0x5c>;
sound-dai = <0x5e>;
};
};
...