I got the audio functionality working earlier this year in Jan on Jetson AGX Xavier Industrial with own carrier board designed.
I am attaching the dtsi file which we modified to get it work.
Kindly compare this with yours and do the changes accordingly.
Note: you need to enable the codec driver module in the defconfig either to “m” or “y”
CONFIG_SND_SOC_ES8328_I2C=y
or
CONFIG_SND_SOC_ES8328_I2C=m
Hello, I refer to your device tree modification, the kernel will print these error messages, do you know the reason?
root@edge-computer:/home/edge# dmesg|grep sound
[ 3.214156] No soundcards found.
[ 13.375692] input: NVIDIA Jetson Orin NX HDA HDMI/DP,pcm=3 as /devices/platform/bus@0/3510000.hda/sound/card0/input1
[ 13.397107] input: NVIDIA Jetson Orin NX HDA HDMI/DP,pcm=7 as /devices/platform/bus@0/3510000.hda/sound/card0/input2
[ 13.421063] input: NVIDIA Jetson Orin NX HDA HDMI/DP,pcm=8 as /devices/platform/bus@0/3510000.hda/sound/card0/input3
[ 13.450088] input: NVIDIA Jetson Orin NX HDA HDMI/DP,pcm=9 as /devices/platform/bus@0/3510000.hda/sound/card0/input4
[ 15.436958] tegra-asoc: sound: ASoC: no source widget found for H40-SGTL HP_OUT
[ 15.436968] tegra-asoc: sound: ASoC: Failed to add route H40-SGTL HP_OUT -> direct -> H40-SGTL Headphone
[ 15.436991] tegra-asoc: sound: ASoC: no sink widget found for H40-SGTL MIC_IN
[ 15.436993] tegra-asoc: sound: ASoC: Failed to add route H40-SGTL Mic -> direct -> H40-SGTL MIC_IN
[ 15.437014] tegra-asoc: sound: ASoC: no source widget found for H40-SGTL Mic Bias
[ 15.437015] tegra-asoc: sound: ASoC: Failed to add route H40-SGTL Mic Bias -> direct -> H40-SGTL ADC
[ 15.437034] tegra-asoc: sound: ASoC: no sink widget found for H40-SGTL LINE_IN
[ 15.437035] tegra-asoc: sound: ASoC: Failed to add route H40-SGTL Line In -> direct -> H40-SGTL LINE_IN
[ 15.437052] tegra-asoc: sound: ASoC: no source widget found for H40-SGTL LINE_OUT
[ 15.437053] tegra-asoc: sound: ASoC: Failed to add route H40-SGTL LINE_OUT -> direct -> H40-SGTL Line Out
[ 15.442404] tegra-asoc: sound: snd_soc_register_card failed (-19)
Device tree changes are not updated correctly.
In the error messages you can see it mentions H40-SGTL, where as you are not using this Audio codec. Update those H40-SGTL entries with the corresponding Audio Codec you are using, ie., ES8328
Ok, I modified nvidia-audio-card,routing, and now there is no error reported by asoc, but I used an oscilloscope to measure MCLK without clock output. Do you know the reason?
Here is my device tree and kernel log: tegra234-p3768-0000+p3767-0000-nv.dts.txt (4.0 KB) dmesg.log (133.4 KB)
Is the codec connected to the aud_mclk pin of the Tegra when you probe the signal? If so, please try probing the aud_mclk without connecting the codec?
If there is still no signal, could you try modifying the pin’s pull state to either “down” or “up”? This can be done by directly editing the pinmux Device Tree file
Alternatively, codec Internal PLL can be used instead of MCLK incase the codec supports.