Hi,
I built my own image based on torizon-minimal with Yocto.
On our carrier board we have an TLV320AIC3100 as sound card and I want to activate it with ALSA UCM since it is the recommended way since BSP6.7.
The kernel module is loaded correctly
$ lsmod | grep snd
snd_soc_fsl_sai 40960 2
snd_soc_tlv320aic31xx 61440 1
and the sound card is present on the system:
$cat /proc/asound/cards
0 [tlv320aic3100 ]: simple-card - tlv320aic3100
tlv320aic3100
$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=tlv320aic3100
tlv320aic3100, 30020000.sai-tlv320aic31xx-hifi tlv320aic31xx-hifi-0
Default Audio Device
sysdefault:CARD=tlv320aic3100
tlv320aic3100, 30020000.sai-tlv320aic31xx-hifi tlv320aic31xx-hifi-0
Default Audio Device
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: tlv320aic3100 [tlv320aic3100], device 0: 30020000.sai-tlv320aic31xx-hifi tlv320aic31xx-hifi-0 [30020000.sai-tlv320aic31xx-hifi tlv320aic31xx-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
I looked at the example implementation in meta-toradex-bsp-common for the WM8904 and NAU8822 and added the following files to the system:
$ cat /usr/share/alsa/ucm2/cbt3/tlv320aic3100/tlv320aic3100.conf
Syntax 4
SectionUseCase."HiFi" {
File "/cbt3/tlv320aic3100/tlv320aic3100-HiFi.conf"
Comment "Default"
}
$ cat /usr/share/alsa/ucm2/cbt3/tlv320aic3100/tlv320aic3100-HiFi.conf
SectionDevice."Speaker" {
Comment "Speaker"
BootSequence [
cset "name='Speaker Analog Playback Volume' 95"
]
EnableSequence [
cset "name='Speaker Switch' on"
]
DisableSequence [
cset "name='Speaker Switch' off"
]
}
$ ls -l /usr/share/alsa/ucm2/conf.d/simple-card/
total 0
lrwxrwxrwx 2 root root 51 Sep 5 2025 'Librem 5 Devkit.conf' -> '../../NXP/iMX8/Librem_5_Devkit/Librem 5 Devkit.conf'
lrwxrwxrwx 2 root root 43 Sep 5 2025 tlv320aic3100.conf -> ../../cbt3/tlv320aic3100/tlv320aic3100.conf
lrwxrwxrwx 2 root root 41 Sep 5 2025 verdin-nau8822.conf -> ../../Toradex/nau8822/verdin-nau8822.conf
lrwxrwxrwx 2 root root 39 Sep 5 2025 verdin-wm8904.conf -> ../../Toradex/wm8904/verdin-wm8904.conf
The main config is registered correctly:
$ alsaucm -c tlv320aic3100 list _verbs
0: HiFi
Default
But there are no devices available:
$ alsaucm -c tlv320aic3100 list _devices
alsaucm: error failed to get list _devices: No such file or directory
And activating the speaker fails:
$ alsaucm -c tlv320aic3100 set _verb HiFi
$ alsaucm -c tlv320aic3100 set _dev Speaker
alsaucm: error failed to set _dev=Speaker: Invalid argument
What am I doing wrong?
Best regards,
Markus