Adding TI PCMD3140/TLV320ADCx140 to Jetson Xavier AGX Industrial via I2S

Hi ahepner,
Just to re-confirm, Did you followed Configuring the Jetson Expansion Headers — NVIDIA Jetson Linux Developer Guide 1 documentation to enable the I2S2 pinmux for SFIO functionality. If not, can you try enabling this and check the clock during the audio usecase active.

We added the configuration of the i2s pins in the main file of the device tree, so the 40 header will always been enabled right from the start of the device tree, without us need to configure it every time with jetson-io.
tegra194-p2888-0001-p2822-0000.txt (2.6 KB)

Hi,
Please help in dumping the pinmux state from target

sudo cat /sys/kernel/debug/tegra_pinctrl_reg

I haven’t find this path /sys/kernel/debug/tegra_pinctrl_reg so I’m adding the tar of /sys/kernel/debug/
debug.tar.gz (382.3 KB)
and specifically this one /sys/kernel/debug/pinctl
pinctrl.tar.gz (662 Bytes)

Please use the below command to dump pinctrl info

sudo cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinconf-groups

Attach the log file

I set now the pinmux only with jetson io, and i saw the same changes in the device tree, but now both the clock from the SCLK is working and also the PDMCLK from the TI to the microphones is working! and it seems with scope like they are sending data, but we haven’t so data coming out from the SDOUT on the i2s pin.

sudo cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinconf-groups
pinconf.txt (38.4 KB)

I believe you are trying out arecord which is a capture usecase which will have data only on SDIN of I2S. If you want data on SDOUT then you might need to do aplay on I2S2

Yes you are right, I ment that the SDOUT from the device is not outing data to the SDIN on the 40 header pin, this device is only capture device with microphones.

Ah ok. I believe if you send the I2S SCLK and Fs from Jetson Xavier and the Microphone programmed properly then it should send data. Can you cross check the programming of microphone like whether the I2S mode config on Tegra is set as per the datasheet requirements of Microphone I2S.

We are getting data from the 4 microphones in four different channels which is great,
but sometimes a bug is coming from the system which collapse all and nothing working,
or that the 4 channels are collapsing only to two channels, and we are not sure what have we done wrong with the routing and the amixer file.

How can we tell in the widgets that we are not connecting a pure microphone to the system, but a card that takes 4 pdm microphones and send them over i2s with dsp_b format?

[  209.909700] tegra210-adsp tegra210-adsp: Broken Path1 - FE not linked to BE
[  209.909889] tegra210-adsp tegra210-adsp: ASoC: error at snd_soc_component_open on tegra210-adsp: -32
[  209.933129] tegra210-adsp tegra210-adsp: Broken Path1 - FE not linked to BE
[  209.933313] tegra210-adsp tegra210-adsp: ASoC: error at snd_soc_component_open on tegra210-adsp: -32
[  209.957016] tegra210-adsp tegra210-adsp: Broken Path2 - FE not linked to BE
[  209.957252] tegra210-adsp tegra210-adsp: ASoC: error at snd_soc_component_open on tegra210-adsp: -32
[  209.980475] tegra210-adsp tegra210-adsp: Broken Path2 - FE not linked to BE
[  209.980668] tegra210-adsp tegra210-adsp: ASoC: error at snd_soc_component_open on tegra210-adsp: -32
[  212.779101] tlv320adcx140-codec 1-004e: ASoC: error at snd_soc_component_update_bits on tlv320adcx140-codec.1-004e: -121
[  212.781416] tlv320adcx140-codec 1-004e: ASoC: error at snd_soc_component_update_bits on tlv320adcx140-codec.1-004e: -121
[  215.294597] tlv320adcx140-codec 1-004e: ASoC: error at snd_soc_component_update_bits on tlv320adcx140-codec.1-004e: -121
[  215.296988] tlv320adcx140-codec 1-004e: ASoC: error at snd_soc_component_update_bits on tlv320adcx140-codec.1-004e: -121
[  215.564619] tlv320adcx140-codec 1-004e: ASoC: error at snd_soc_component_update_bits on tlv320adcx140-codec.1-004e: -121

tegra194-audio-p2822-0000.txt (13.0 KB)
cur_alsa_asound.txt (781.0 KB)

Hi ahepner,
Good to hear 4 Microphones are working.

From the error log, it seems like some issue in the path, Can you provide me full details on the mixer controls used.

Is this error happens everytime during the usecase start?.

Yes the error happens every time.
I uploaded the amixer settings in the file above which i got with:

alsactl store

There is no update from you for a period, assuming this is not an issue anymore.
Hence, we are closing this topic. If need further support, please open a new one.
Thanks

Can you provide the dump of

#amixer -c APE contents > log.txt