I was having the same problem with a Respeaker2 and RPi5 running Raspbian 64bit. I could finally solve this with ChatGPT’s help.
It created a new overlay, I can’t attach it here (because I’m a new user, how stupid!)
The overlay is:
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2711";
fragment@0 {
target = <&i2s>;
__overlay__ {
status = "okay";
};
};
fragment@1 {
target-path = "/";
__overlay__ {
wm8960_mclk: wm8960_mclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <12288000>;
phandle = <2>;
};
};
};
fragment@2 {
target = <&i2c1>;
__overlay__ {
wm8960: wm8960@1a {
compatible = "wlf,wm8960";
reg = <0x1a>;
clocks = <&wm8960_mclk>;
clock-names = "mclk";
#sound-dai-cells = <0>;
AVDD-supply = <0xffffffff>;
DVDD-supply = <0xffffffff>;
phandle = <1>;
};
};
};
fragment@3 {
target-path = "/";
__overlay__ {
sound: sound {
compatible = "simple-audio-card";
simple-audio-card,name = "seeed-2mic-voicecard";
simple-audio-card,format = "i2s";
simple-audio-card,cpu {
sound-dai = <&i2s>;
};
simple-audio-card,codec {
sound-dai = <&wm8960>;
clocks = <&wm8960_mclk>;
clock-names = "mclk";
};
};
};
};
__overrides__ {
card-name = <&sound>, "simple-audio-card,name";
};
};
Save this as seeed-2mic-voicecard.dts.
Compile it:
dtc -I dts -O dtb -o seeed-2mic-voicecard.dtbo seeed-2mic-voicecard.dts
sudo cp seeed-2mic-voicecard.dtbo /boot/firmware/overlays/
sudo nano /boot/firmware/config.txt
Add or update this line:
dtoverlay=seeed-2mic-voicecard
Reboot.
dmesg | grep wm8960
And test again:
arecord -D plughw:0,0 -f S16_LE -r 16000 -c 2 -d 5 test.wav
aplay test.wav