Orin nx with es8316 for jp6.2

Hi,
We have developed a custom carrier that uses ES8316 for jp6.2.
I was originally using jp5.1.2. However, in the JP6.2 version, the device trees need to be modified in order to add the es8316 node. How do I modify the device tree files?
In the previous version, I could modify tegra234-p3767-common-audio.dtsi. In JP6.2, which files do I need to modify?
Thanks.

Please refer to Audio Setup and Development — NVIDIA Jetson Linux Developer Guide

Hi,
I manually added the entry “CONFIG_SND_SOC_ES8316=y” in the file “arch/arm64/configs/defconfig”. However, after executing the command “sudo dmesg”, I found that the system did not load the driver for es8316.

tegra234-p3768-0000.dtsi.txt (1.8 KB)

Thanks for help.

Hi,
Up to now, I still haven’t figured out the reason why the system failed to load the es8316 driver. Could anyone help me?
Thanks.

Hi,
Can you provide the dump of below commands.

  1. cat /proc/asound/cards
  2. dmesg | grep “ASoC”
  3. cat /sys/kernel/debug/asoc/components

The content after I executed the command is shown in the figure below.

This clearly shows the Codec driver has not been probed. Due to it, APE sound card not registered. Can you cross check on whether es8316 driver getting built and probed during boot.

Yes, but when I enter the command “zcat /proc/config.gz | grep 8316”,I get:

When I set “CONFIG_SND_SOC_ES8316=m” in the file “arch/arm64/configs/defconfig, and insmod snd-soc-es8316.ko, I didn’t see any dmesg log information.

I’m not quite sure why the driver for ex8316 cannot be probed into the system.

I believe the codec probe is not happening, this is confirmed from components dump. Can you attach the DT changes done for the codec support

This is the dtsi file.

tegra234-p3768-0000.dtsi.txt (1.7 KB)

Please refer the similar query @ Orin NX es8316 audio playback not work - Jetson & Embedded Systems / Jetson Orin NX - NVIDIA Developer Forums

I see your DT codec node has

reg = <0>;

but other users have reg = <0x10>;

Can you refer and fix if needed.

Hi, mkumard This was my mistake.
But when I changed to 0x10, the driver has not been registered yet.
When using insmod, the phenomenon is the same.
My cross-compilation:
1、Change “CONFIG_SND_SOC_ES8316=y” in the file “arch/arm64/configs/defconfig”
2、make -C kernel
3、Copy Image to /Linux_for_tegra/kernel
4、make dtbs
5、Copy ***.dtb to /Linux_for_tegra/kernel/dtb
6、Use flash.sh to flashing process

I’m not sure if I have missed any steps.

Can you help in adding debugging prints in the codec driver specifically in the start of the below functions.

es8316_probe()
es8316_i2c_probe()

This might give some clue if probe indeed called and if there is any issue within the probe

I add debugging prints to the function, However, the result is the same - there is no print information.
The es8316 node has not been registered in the kernel.



When insmod snd-soc-es8316.ko, I didn’t see any printed information.

I entered the command on the Orin nx device:
sudo dtc -I fs -O dts /proc/device-tree -o 1.txt

gedit 1.txt

Can you attach the whole 1.txt for our review.

11.txt (315.6 KB)

This is the 11.txt

Please move the I2C node under bus@0 { }