R32.3.1 tx2-4g: Please provide all registers and their values to make the audio work

This is the frame sync clock. It’s frequency should be same as the playback sample rate (48000 Hz in your case) in I2S mode.

I hope you are setting ‘x SPKLO MUX’ control to speaker.

I don’t know what problem it is. You can mention the DT binding you are using for passing the GPIO info and also mention to which pin it is connected on 40-pin header. Also is this essential for codec operation?

Looks like the clocks and frequencies are fine. You can attach the scope capture (with and without your card connected) as requested before, so that we can confirm.
I also see ak4637_hw_params() call to be happening. This confirms the audio routing is fine. So things look good from Tegra point of view.
You can confirm the codec settings with codec vendor.

Have a question, I understand the the MCLK is externally supplied to the ak4637, does Nvidia expect the ak4637 to be in master or slave mode?


There is no restrictions as such. Tegra I2S supports both master and slave modes. Sometimes it depends on the external codec whether it supports both configurations or not. It would be simpler to first see if it works in codec slave (and Tegra in master) mode.

When codec is operated in master mode (and Tegra in slave), codec drives all I2S clocks. It may depend on its internal PLL to generate these clocks for which it can use MCLK or I2S BCLK as a reference clock. Generally the codec spec defines the clock requirements.


what does bit-format = “s16_le”; really mean?

Can’t find any documentation on it or definitions of other possible formats

trying to relate it to setting up modes on the ak4637


How do I change the master/slave mode on the tx2 side?


are there any other pins that need to be supplied to the tx2 to make the audio work. Is there a speaker enabled pin? like the headphone plugged in pin.

How do I determine if tx2 is happy?


s16_le refers to signed 16-bit samples in little endian format.

If you want TX2 I2S as master and codec as slave, no change is required. By default TX2 I2S is master and codec is slave.
If you want TX2 I2S as slave and codec as master, use boolean properties “bitclock-master” and “frame-master” in your DAI link node in DT.

As I mentioned previously, you can capture and attach oscilloscope probes. That can confirm if TX2 settings are fine.

There is no speaker enable pin

@spuhar hardware guys determined that the part was no longer available, so this task is dead.

What audio codec replacement part does Nvidia recommend?

Also need info on reworking the cboot to get splash screen on my mipi dsi display, you or someone else have some info.


BSP today supports RT5658, SGTL5000 (Fe-Pi cards), Adafruit I2S MEMS Microphone, Adafruit I2S 3W Stereo Speaker Bonnet based cards. Some of the known working codecs are AC108 (present on ReSpeaker 4-Mic circular array card), RT5639, RT5640, PCM1863, PCM1865. References of these you can find in the forum discussions. Based on your application/requirement you can select one among these.

I am not the right person to comment on this. You can post a separate query regarding this on the right module.