No sound on I2S interface

Hi we have constmized board based on TK1.
In that we have connected tlv320aic3100 audio codec.
We have integrated the driver and put necessary files like asound.state and asound.conf at respective location.
We also have HDMI on board.
With all above configurtion audio port is working on audio jack.

But in another design we have just removed the HDMI port from hardware.
Now our Audio is not working in newly created board which doesnt have HDMI.
All other audio related settings are as it is.

When we check signal on I2S interface using oscilloscope then no signal on I2S interface.

Is there any link between HDMI and I2S interface.

Note : Problem is not with sound on monitor, bit on audio jack connected externally over I2S interface.

below is the output of “/proc/asound/cards”
0 [Tegra ]: HDA-Intel - HDA NVIDIA Tegra
HDA NVIDIA Tegra at 0x70038000 irq 113
1 [nvidiategraaudi]: nvidia_tegra-au - nvidia,tegra-audio-tlv320aic31x
nvidia,tegra-audio-tlv320aic31xx

asound_conf.txt (2.94 KB)
asound_state.txt (84.1 KB)

Hello!

There should not be any link between HDMI and I2S and so there should be no issue with disabling HDMI.

What command are you using the test audio via I2S?

Have you checked that the pin settings are configured correctly for this new board? That is usually the first thing to check. If you are not sure how to verify this, let me know the I2S you are using and we can check.

Regards,
Jon

Hi,

pin settings are same as previous one which is working.
I am using I2S3 for this.
we are configuring pins as attachment.

Ball Name Usage Pin Direction signal
DAP4_DIN I2S3_SDATA_IN Input CODEC_SDO
DAP4_DOUT I2S3_SDATA_OUT Output CODEC_SDI
DAP4_FS I2S3_LRCK Bidirectional CODEC_SYNC
DAP4_SCLK I2S3_SCLK Bidirectional CODEC_CLK

i am using following command:

“aplay tada.wav”

it gives following message “Playing WAVE ‘tada.wav’ : Signed 32 bit Little Endian, Rate 22100 Hz, Mono”
But on spaker no audio.

please find attached tada.wav file
tada.wav (121 KB)

Hello!

Can you show the output from …

aplay -v tada.wav

Thanks
Jon

Hi

Output for command “aplay -v tada.wav” is as follows:

Playing WAVE ‘tada.wav’ : Signed 32 bit Little Endian, Rate 22100 Hz, Mono
Plug PCM: Rate conversion PCM (44100, sformat=S32_LE)
Converter: linear-interpolation
Protocol version: 10002
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S32_LE
subformat : STD
channels : 1
rate : 22100
exact rate : 22100 (22100/1)
msbits : 32
buffer_size : 4105
period_size : 1026
period_time : 46439
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1026
period_event : 0
start_threshold : 4105
stop_threshold : 4105
silence_threshold: 0
silence_size : 0
boundary : 538050560
Slave: Route conversion PCM (sformat=S16_LE)
Transformation table:
0 <- 0
1 <- 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S32_LE
subformat : STD
channels : 1
rate : 44100
exact rate : 44100 (44100/1)
msbits : 32
buffer_size : 8192
period_size : 2048
period_time : 46439
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 8192
stop_threshold : 8192
silence_threshold: 0
silence_size : 0
boundary : 1073741824
Slave: Direct Stream Mixing PCM
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 8192
period_size : 2048
period_time : 46439
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 8192
stop_threshold : 8192
silence_threshold: 0
silence_size : 0
boundary : 1073741824
Hardware PCM card 1 ‘nvidia,tegra-audio-tlv320aic31x’ device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 8192
period_size : 2048
period_time : 46439
tstamp_mode : ENABLE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 1
stop_threshold : 1073741824
silence_threshold: 0
silence_size : 1073741824
boundary : 1073741824
appl_ptr : 0
hw_ptr : 0

Hello!

Great. So it is playing to the correct soundcard. I will look at this a bit more and come back with some things to check.

Regards,
Jon

Hello ,

Any update on this topic.?

Regards,
Rahul Shah

Hello!

Can you share the output from …

$ $ sudo grep "dap_mclk\|dap4" /sys/kernel/debug/tegra_pinctrl_reg

And …

$ sudo cat /sys/kernel/debug/tegra_gpio

Thanks
Jon

Hi,

Can you share the output from …

$ $ sudo grep "dap_mclk\|dap4" /sys/kernel/debug/tegra_pinctrl_reg

Bank: 1 Reg: 0x700031a8 Val: 0x00000020 -> dap4_fs_pp4
Bank: 1 Reg: 0x700031ac Val: 0x00000020 -> dap4_din_pp5
Bank: 1 Reg: 0x700031b0 Val: 0x00000000 -> dap4_dout_pp6
Bank: 1 Reg: 0x700031b4 Val: 0x00000020 -> dap4_sclk_pp7
Bank: 1 Reg: 0x70003348 Val: 0x00000003 -> dap_mclk1_req_pee2
Bank: 1 Reg: 0x7000334c Val: 0x00000026 -> dap_mclk1_pw4
Bank: 0 Reg: 0x7000089c Val: 0xf0e0900c -> drive_dap4

Hello!

The pin settings look fine to me and so I don’t see any problems there.

Are you able to probe the I2S signals with an oscilloscope and verify that the pins are being driven as expected?

How is the audio codec clocked? Are you able to verify that the codec has a clock?

Regards,
Jon

Hi,

On I2S lines , there is no signal.(verified with oscilloscope)
codec is clocked via external crystal.
CLock is generated from crystal properly.

Regards,
Rahul Shah