While waiting to be able to get back to this, I leave here the AM335x audio driver's guide.
Also, I finally managed to get some sound out of the McASP with ALSA:
dtc BB-BONE-AUDI-02-00A0.dts -@ -o /lib/firmware/BB-BONE-AUDI-02-00A0.dtbo
modprobe snd-soc-tlv320aic3x
echo BB-BONE-AUDI-02 > $SLOTS
aplay -l # now shows the soundcard
aplay your-wav-file.wav
where BB-BONE-AUDI-02-00A0.dts
is the [device tree overlay file]( http://elinux.org/images/1/10/BB-BONE-AUDI-02-00A0.zip) for the audio cape.
If you do not do the modprobe
line, then you will get an error in dmesg
that the soundcard was not registered correctly.
Of course Bela then fails to start because the I2C device is probably owned by the above driver.
Disabling all the I2C stuff in Bela managed to produce some sound, mainly noise. Also, if you run Bela with I2C disabled while aplay
is running, you see that the PRU actually spins for a few cycles.
Right, so it seems that some of the initialization performed by the driver is needed in order to get the McASP set up properly. Todo: find out what it is and how to reproduce it without loading the driver.