Are you using I2C and I2S from 40 pins expansion header?
How do you configure those pins in pinmux spreadsheet?
Please share the full dmesg and the device tree for further check.
You can run the following command to extract the device tree configuration on your board.
This is cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinconf-groups > pinconf.txtoutput: pinconf.txt (31.5 KB)
This is kernel log: dmesg.log (81.6 KB)
This is dtc -I fs -O dts -o extracted_proc.dts.txt /proc/device-tree output: extracted_proc.dts.txt (327.7 KB)
[ 18.339723] tegra-asoc: sound: cpu subnode is missing
[ 18.339746] tegra-asoc:: probe of sound failed with error -2
The dai-link defined in your DT is creating a new dai-link named i2s4_to_codec rather than updating the existing dai-link of I2S4 i.e. dai-link@79. Please define like below and update the link-name and sound-dai properties as per the codec being used and see APE card is registered. If still card is not registered, please share the dmesg logs again,
Hello!
I still can’t register the sound card after modifying the device tree. The following is the kernel log:
[ 15.979466] tegra-asoc: sound: ASoC: no source widget found for CVB-RT HPOL
[ 15.979478] tegra-asoc: sound: ASoC: Failed to add route CVB-RT HPOL -> direct -> CVB-RT Headphone Jack
[ 15.979517] tegra-asoc: sound: ASoC: no source widget found for CVB-RT HPOR
[ 15.979519] tegra-asoc: sound: ASoC: Failed to add route CVB-RT HPOR -> direct -> CVB-RT Headphone Jack
[ 15.979549] tegra-asoc: sound: ASoC: no sink widget found for CVB-RT IN1P
[ 15.979551] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Mic Jack -> direct -> CVB-RT IN1P
[ 15.979578] tegra-asoc: sound: ASoC: no sink widget found for CVB-RT IN2P
[ 15.979580] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Mic Jack -> direct -> CVB-RT IN2P
[ 15.979603] tegra-asoc: sound: ASoC: no source widget found for CVB-RT SPOLP
[ 15.979605] tegra-asoc: sound: ASoC: Failed to add route CVB-RT SPOLP -> direct -> CVB-RT Int Spk
[ 15.979629] tegra-asoc: sound: ASoC: no source widget found for CVB-RT SPORP
[ 15.979630] tegra-asoc: sound: ASoC: Failed to add route CVB-RT SPORP -> direct -> CVB-RT Int Spk
[ 15.979657] tegra-asoc: sound: ASoC: no sink widget found for CVB-RT DMIC1
[ 15.979658] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Int Mic -> direct -> CVB-RT DMIC1
[ 15.979686] tegra-asoc: sound: ASoC: no sink widget found for CVB-RT DMIC2
[ 15.979687] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Int Mic -> direct -> CVB-RT DMIC2
[ 15.989973] tegra-asoc: sound: snd_soc_register_card failed (-19)
dmesg.log (79.8 KB)
How should the nvidia-audio-card,widgets and nvidia-audio-card,routing parameters be configured?
This is my modified device tree: tegra234-p3768-0000+p3767-0000-nv.txt (5.2 KB)
nvidia-audio-card,routing =
"CVB-RT Headphone Jack", "CVB-RT HPOL",
"CVB-RT Headphone Jack", "CVB-RT HPOR",
"CVB-RT IN1P", "CVB-RT Mic Jack",
"CVB-RT IN2P", "CVB-RT Mic Jack",
"CVB-RT Int Spk", "CVB-RT SPOLP",
"CVB-RT Int Spk", "CVB-RT SPORP",
"CVB-RT DMIC1", "CVB-RT Int Mic",
"CVB-RT DMIC2", "CVB-RT Int Mic";
HPOL, HPOR, SPOLP, SPORP are output dapm widgets and IN1P, IN2P, DMIC1, DMIC2 are input dapm widgets as per RT5640 codec.
Please update them according to es8388 codec dapm widgets.
Hello!
After I modified the kernel still reported an error:
nvidia-audio-card,routing =
"x Headphone", "x LOUT1",
"x LINPUT1", "x Mic",
"x Headphone", "x ROUT1",
"x RINPUT1", "x Mic",
"y Headphone", "y OUT",
"y IN", "y Mic",
"a IN", "a Mic",
"b IN", "b Mic";
[ 17.522505] tegra-asoc: sound: ASoC: no source widget found for x LOUT1
[ 17.522516] tegra-asoc: sound: ASoC: Failed to add route x LOUT1 -> direct -> x Headphone
[ 17.522564] tegra-asoc: sound: ASoC: no source widget found for x Mic
[ 17.522566] tegra-asoc: sound: ASoC: Failed to add route x Mic -> direct -> x LINPUT1
[ 17.522598] tegra-asoc: sound: ASoC: no source widget found for x ROUT1
[ 17.522600] tegra-asoc: sound: ASoC: Failed to add route x ROUT1 -> direct -> x Headphone
[ 17.522630] tegra-asoc: sound: ASoC: no source widget found for x Mic
[ 17.522632] tegra-asoc: sound: ASoC: Failed to add route x Mic -> direct -> x RINPUT1
[ 17.522660] tegra-asoc: sound: ASoC: no source widget found for y OUT
[ 17.522662] tegra-asoc: sound: ASoC: Failed to add route y OUT -> direct -> y Headphone
[ 17.522690] tegra-asoc: sound: ASoC: no source widget found for y Mic
[ 17.522691] tegra-asoc: sound: ASoC: Failed to add route y Mic -> direct -> y IN
[ 17.522719] tegra-asoc: sound: ASoC: no source widget found for a Mic
[ 17.522720] tegra-asoc: sound: ASoC: Failed to add route a Mic -> direct -> a IN
[ 17.522747] tegra-asoc: sound: ASoC: no source widget found for b Mic
[ 17.522749] tegra-asoc: sound: ASoC: Failed to add route b Mic -> direct -> b IN
[ 17.538271] tegra-asoc: sound: snd_soc_register_card failed (-19)
I’m really sorry because I’m not familiar with audio and DAPM,I can’t understand the meaning of nvidia-audio-card,widgets and nvidia-audio-card,routing, do I need to check them in the driver?
Please don’t replace CVB-RT with x/y/a/b. Retain CVB-RT. It should match with prefix defined in dai-link.
To identify the available widgets, please examine the ES8388 codec driver code. Specifically, look for the “SND_SOC_DAPM_OUTPUT” and “SND_SOC_DAPM_INPUT” entries within the dapm_widgets definition for that codec.
[ 15.983577] tegra-asoc: sound: ASoC: no sink widget found for CVB-RT Headphone
[ 15.983589] tegra-asoc: sound: ASoC: Failed to add route CVB-RT LOUT1 -> direct -> CVB-RT Headphone
[ 15.983626] tegra-asoc: sound: ASoC: no source widget found for CVB-RT Mic
[ 15.983628] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Mic -> direct -> CVB-RT LINPUT1
[ 15.983660] tegra-asoc: sound: ASoC: no sink widget found for CVB-RT Headphone
[ 15.983662] tegra-asoc: sound: ASoC: Failed to add route CVB-RT ROUT1 -> direct -> CVB-RT Headphone
[ 15.983691] tegra-asoc: sound: ASoC: no source widget found for CVB-RT Mic
[ 15.983693] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Mic -> direct -> CVB-RT RINPUT1
[ 15.983724] tegra-asoc: sound: ASoC: no source widget found for CVB-RT OUT
[ 15.983726] tegra-asoc: sound: ASoC: Failed to add route CVB-RT OUT -> direct -> CVB-RT Headphone
[ 15.983754] tegra-asoc: sound: ASoC: no source widget found for CVB-RT Mic
[ 15.983755] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Mic -> direct -> CVB-RT IN
[ 15.983783] tegra-asoc: sound: ASoC: no source widget found for CVB-RT Mic
[ 15.983784] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Mic -> direct -> CVB-RT IN
[ 15.983813] tegra-asoc: sound: ASoC: no source widget found for CVB-RT Mic
[ 15.983814] tegra-asoc: sound: ASoC: Failed to add route CVB-RT Mic -> direct -> CVB-RT IN
[ 15.994616] tegra-asoc: sound: snd_soc_register_card failed (-19)
I see in the driver code es8328_dapm_widgets structure and device tree format is not the same, how to correspond
This is the driver and device tree file I use, can you help me modify it? tegra234-p3768-0000+p3767-0000-nv.txt (5.1 KB) es8328.c.txt (24.2 KB)
Also, need to add link-name “es8388-playback” in machine driver like other codec link-names in tegra_codecs.c or use other codec link-name that has similar settings like es8388 settings for sysclk.
For clock update below properties in “es8388: es8388@10 {”
Hi, I modified the device tree, and now there is no error reported by asoc, but I used an oscilloscope to measure MCLK without clock output
For this node “link-name”, I’ll use the existing one “fe-pi-audio-z-v2”
I executed “aplay -l” command to output many audio cards, which one should I use?
pinconf shared here doesn’t have that setting that’s why asked this 如何配置音频芯片ES8388 - #9 by qiaowei but the latest one you had shared reflecting the pinconf update.
Can you please let me know which pin you are probing?