How can I check the Audio(I2S1) is working correctly?

We are designed audio function with ALC5640.
The audio chip is connected to I2S1.
Now, I’m not sure the device is recognized correctly or not.

At the first time, I checked it default image from ‘jetson-agx-orin-devkit.conf’

And then I’ve used fdtoverlay for ‘tegra234-p3737-audio-codec-rt5640.dtbo’.
The overlay is applied to ‘tegra234-p3701-0004-p3737-0000.dtb’.

Both Images are not different about dmesg and several audio commands.

How can I make sure the device is connected well?

Please refer to Audio Setup and Development — Jetson Linux Developer Guide documentation (nvidia.com)

I want to check I2C connection.

$ i2cdetect -y -r “i2c-bus-number”

It looks the below things is applied.
image

And there is the i2c number list on jetson device.
image

Which number is for audio?

The bus number is 8

        aliases {
                i2c3 = "/i2c@3190000";
                pcie_c3_rp = "/pcie@14140000";
                pcie_c0_rp = "/pcie@14180000";
                spi2 = "/spi@3230000";
                serial7 = "/serial@3170000";
                i2c1 = "/i2c@c240000";
                spi0 = "/spi@3210000";
                serial5 = "/serial@3150000";
                pcie_c5_ep = "/pcie_ep@141a0000";
                i2c8 = "/i2c@31e0000";
                serial3 = "/serial@3130000";
                pcie_c8_rp = "/pcie@140a0000";
                spi7 = "/spi@3300000";
                pcie_c5_rp = "/pcie@141a0000";
                pcie_c2_rp = "/pcie@14120000";
                i2c6 = "/i2c@31c0000";
                serial1 = "/serial@3110000";
                tegra-camera-rtcpu = "/rtcpu@bc00000";
                rtc0 = "/bpmp/i2c/vrs@3c/rtc";
                i2c4 = "/bpmp/i2c";
                sdhci0 = "/sdhci@3400000";
                i2c2 = "/i2c@3180000";
                pcie_c7_ep = "/pcie_ep@141e0000";
                pcie_c4_ep = "/pcie_ep@14160000";
                spi1 = "/spi@c260000";
                i2c0 = "/i2c@3160000";
                pcie_c7_rp = "/pcie@141e0000";
                pcie_c4_rp = "/pcie@14160000";
                pcie_c10_ep = "/pcie_ep@140e0000";
                pcie_c1_rp = "/pcie@14100000";
                serial4 = "/serial@3140000";
                mmc0 = "/sdhci@3460000";
                pcie_c10_rp = "/pcie@140e0000";
                i2c7 = "/i2c@c250000";
                serial2 = "/serial@c280000";
                sdhci3 = "/sdhci@3460000";
                spi6 = "/spi@3270000";
                rtc1 = "/rtc@c2a0000";
                i2c5 = "/i2c@31b0000";
                host1x = "/host1x@13e00000";
                pcie_c6_ep = "/pcie_ep@141c0000";
                serial0 = "/serial@3100000";
                pcie_c9_rp = "/pcie@140c0000";
                pcie_c6_rp = "/pcie@141c0000";
        };

It looks the linux kernel module of rt5640 codec is sat up.
image

But there is nothing speacial log for ASoC from dmesg
image

And we can’t get any information from I2C.
image

Do you think is it need to review the hardware design?

I don’t think AGX Orin default have this module mounted.

Do you mean the default Image??

As I commented ‘tegra234-p3737-audio-codec-rt5640.dtbo’ was applied through fdtoverlay command.
And I checked manual for RT5640 on menuconfig before build.
Default Image doesn’t show RT5640 on lsmod.

What I have to do anymore process to apply rt5640 codec kernel module??

I mean there’s no audio device HW mount to AGX Orin.

I have a question about I2C5 hw design.
The default connection is as below for I2S1 on AGX Orin Dev Kit.
image

It is connected to I2C_GP9_CLK and I2C_GP9_DAT as Dev Kit schematics.
I2C5 has internal pull-up as below
image

And we designed pull-up for codec(ALC5640) as below.

So, I think it can be connected to each other directly.
If it doesn’t, Does it need level shifter or repeater like I2C_GP2?

If both are same voltage level (1.8V here), then level shift is unnecessary.

Did you modify the path from codec to audio out?

Things were done in here is similar to the RT5640 datasheet ch 4.3: Digital mixer path
Make sure you set the path using amixer correctly.

RT5640 is also the codec used by dev kit. Set the path and it should be OK.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.