Ssm2518 audio codec issues with xavier nx : routes and widgets not configured properly

Hi,

We are trying to interface ssm2518 audio codec with xavier NX. We are using HDR40 header pins for connecting I2S signal with codec.

https://wiki.analog.com/resources/tools-software/linux-drivers/sound/ssm2518
i2s_machine_driver_changes.patch (3.1 KB)
i2s-device-tree-changes.txt (3.1 KB)
logs.txt (29.0 KB)

As ssm2518 is configured in salve mode only and BCLM,FCLK are input to it, we have configured MCLK,WCLK,BCLK pin as output in xavier NX dts.

ssm2518.c driver file is also available in L4T so we use that same and not change anything in ssm2518.c file.

We have done some changes in machine driver and dts file only as per attachment.

I am able to get the MCLK of 12.3 MHZ, but there are no signals coming on BCLK, WCLK and DOUT lines. I tried out by changing the route path using amixer command but still I was not able to get these clocks.

nx@nx-desktop:~$ sudo ls -l /sys/kernel/debug/asoc/ssm2518/dapm/
total 0
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF10 CIF Receive-ADMAIF10 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF10 Transmit-ADMAIF10 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF11 CIF Receive-ADMAIF11 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF11 Transmit-ADMAIF11 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF12 CIF Receive-ADMAIF12 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF12 Transmit-ADMAIF12 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF13 CIF Receive-ADMAIF13 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF13 Transmit-ADMAIF13 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF14 CIF Receive-ADMAIF14 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF14 Transmit-ADMAIF14 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF15 CIF Receive-ADMAIF15 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF15 Transmit-ADMAIF15 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF16 CIF Receive-ADMAIF16 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF16 Transmit-ADMAIF16 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF17 CIF Receive-ADMAIF17 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF17 Transmit-ADMAIF17 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF18 CIF Receive-ADMAIF18 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF18 Transmit-ADMAIF18 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF19 CIF Receive-ADMAIF19 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF19 Transmit-ADMAIF19 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF1 CIF Receive-ADMAIF1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF1 Transmit-ADMAIF1 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF20 CIF Receive-ADMAIF20 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF20 Transmit-ADMAIF20 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF2 CIF Receive-ADMAIF2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF2 Transmit-ADMAIF2 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF3 CIF Receive-ADMAIF3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF3 Transmit-ADMAIF3 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF4 CIF Receive-ADMAIF4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF4 Transmit-ADMAIF4 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF5 CIF Receive-ADMAIF5 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF5 Transmit-ADMAIF5 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF6 CIF Receive-ADMAIF6 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF6 Transmit-ADMAIF6 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF7 CIF Receive-ADMAIF7 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF7 Transmit-ADMAIF7 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF8 CIF Receive-ADMAIF8 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF8 Transmit-ADMAIF8 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF9 CIF Receive-ADMAIF9 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADMAIF9 Transmit-ADMAIF9 CIF Transmit'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX1 OUT1 Transmit-ADX1-1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX1 OUT2 Transmit-ADX1-2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX1 OUT3 Transmit-ADX1-3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX1 OUT4 Transmit-ADX1-4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX1 Transmit-ADX1 IN Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX2 OUT1 Transmit-ADX2-1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX2 OUT2 Transmit-ADX2-2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX2 OUT3 Transmit-ADX2-3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX2 OUT4 Transmit-ADX2-4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX2 Transmit-ADX2 IN Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX3 OUT1 Transmit-ADX3-1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX3 OUT2 Transmit-ADX3-2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX3 OUT3 Transmit-ADX3-3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX3 OUT4 Transmit-ADX3-4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX3 Transmit-ADX3 IN Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX4 OUT1 Transmit-ADX4-1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX4 OUT2 Transmit-ADX4-2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX4 OUT3 Transmit-ADX4-3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX4 OUT4 Transmit-ADX4-4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ADX4 Transmit-ADX4 IN Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC1 AFC Transmit-AFC1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC1 Transmit-AFC1 AFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC2 AFC Transmit-AFC2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC2 Transmit-AFC2 AFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC3 AFC Transmit-AFC3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC3 Transmit-AFC3 AFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC4 AFC Transmit-AFC4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC4 Transmit-AFC4 AFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC5 AFC Transmit-AFC5 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC5 Transmit-AFC5 AFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC6 AFC Transmit-AFC6 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AFC6 Transmit-AFC6 AFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'a Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX1-1 Transmit-AMX1 IN1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX1-2 Transmit-AMX1 IN2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX1-3 Transmit-AMX1 IN3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX1-4 Transmit-AMX1 IN4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX1 OUT Transmit-AMX1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX2-1 Transmit-AMX2 IN1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX2-2 Transmit-AMX2 IN2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX2-3 Transmit-AMX2 IN3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX2-4 Transmit-AMX2 IN4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX2 OUT Transmit-AMX2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX3-1 Transmit-AMX3 IN1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX3-2 Transmit-AMX3 IN2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX3-3 Transmit-AMX3 IN3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX3-4 Transmit-AMX3 IN4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX3 OUT Transmit-AMX3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX4-1 Transmit-AMX4 IN1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX4-2 Transmit-AMX4 IN2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX4-3 Transmit-AMX4 IN3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX4-4 Transmit-AMX4 IN4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'AMX4 OUT Transmit-AMX4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ARAD Transmit-ARAD1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1-1 Transmit-ASRC1 RX1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1-2 Transmit-ASRC1 RX2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1-3 Transmit-ASRC1 RX3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1-4 Transmit-ASRC1 RX4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1-5 Transmit-ASRC1 RX5 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1-6 Transmit-ASRC1 RX6 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1-7 Transmit-ASRC1 RX7 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1 TX1 Transmit-ASRC1-1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1 TX2 Transmit-ASRC1-2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1 TX3 Transmit-ASRC1-3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1 TX4 Transmit-ASRC1-4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1 TX5 Transmit-ASRC1-5 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'ASRC1 TX6 Transmit-ASRC1-6 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970  bias_level
-r--r--r-- 1 root root 0 Jan  1  1970 'b Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'c Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'd1 Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'd2 Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'd3 Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'd Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S1 CIF Transmit-I2S1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S1 DAP Transmit-n Playback'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S1 Transmit-I2S1 CIF Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S2 CIF Transmit-I2S2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S2 DAP Transmit-y Playback'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S2 Transmit-I2S2 CIF Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S3 CIF Transmit-I2S3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S3 DAP Transmit-z Playback'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S3 Transmit-I2S3 CIF Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S4 CIF Transmit-I2S4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S4 DAP Transmit-m Playback'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S4 Transmit-I2S4 CIF Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S5 CIF Transmit-I2S5 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S5 DAP Transmit-x Playback'
-r--r--r-- 1 root root 0 Jan  1  1970 'I2S5 Transmit-I2S5 CIF Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'Int Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'l Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'l Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'm Capture-I2S4 DAP Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'm Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-10 Transmit-RX10 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-1 Transmit-RX1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-2 Transmit-RX2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-3 Transmit-RX3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-4 Transmit-RX4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-5 Transmit-RX5 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-6 Transmit-RX6 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-7 Transmit-RX7 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-8 Transmit-RX8 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MIXER1-9 Transmit-RX9 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'm Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'MVC1 MVC Transmit-MVC1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MVC1 Transmit-MVC1 MVC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MVC2 MVC Transmit-MVC2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'MVC2 Transmit-MVC2 MVC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'n Capture-I2S1 DAP Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'n Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'n Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'o Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'o Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'OPE1 OPE Transmit-OPE1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'OPE1 Transmit-OPE1 OPE Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'SFC1 SFC Transmit-SFC1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'SFC1 Transmit-SFC1 SFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'SFC2 SFC Transmit-SFC2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'SFC2 Transmit-SFC2 SFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'SFC3 SFC Transmit-SFC3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'SFC3 Transmit-SFC3 SFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'SFC4 SFC Transmit-SFC4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'SFC4 Transmit-SFC4 SFC Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 's Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 's Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'TX1 Transmit-MIXER1-1 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'TX2 Transmit-MIXER1-2 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'TX3 Transmit-MIXER1-3 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'TX4 Transmit-MIXER1-4 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'TX5 Transmit-MIXER1-5 Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'w Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'w Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'x Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'x Headphone Jack'
-r--r--r-- 1 root root 0 Jan  1  1970 'x Int Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'x Int Spk'
-r--r--r-- 1 root root 0 Jan  1  1970 'x Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'x Mic Jack'
-r--r--r-- 1 root root 0 Jan  1  1970 'y Capture-I2S2 DAP Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'y Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'y Mic'
-r--r--r-- 1 root root 0 Jan  1  1970 'z Capture-I2S3 DAP Receive'
-r--r--r-- 1 root root 0 Jan  1  1970 'z Headphone'
-r--r--r-- 1 root root 0 Jan  1  1970 'z Mic'
root@nx-desktop:/home/nx# ls -l /sys/kernel/debug/asoc/ssm2518/codec\:ssm2518.1-0034/dapm/
total 0
-r--r--r-- 1 root root 0 Jan  1  1970  bias_level
-r--r--r-- 1 root root 0 Jan  1  1970 'x DACL'
-r--r--r-- 1 root root 0 Jan  1  1970 'x DACR'
-r--r--r-- 1 root root 0 Jan  1  1970 'x OUTL'
-r--r--r-- 1 root root 0 Jan  1  1970 'x OUTR'
-r--r--r-- 1 root root 0 Jan  1  1970 'x Playback'

oot@nx-desktop:/home/nx# echo 0 > /sys/kernel/debug/tracing/trace
root@nx-desktop:/home/nx# echo 0 > /sys/kernel/debug/tracing/events/enable
root@nx-desktop:/home/nx#
root@nx-desktop:/home/nx#
root@nx-desktop:/home/nx#
root@nx-desktop:/home/nx# echo 1 > /sys/kernel/debug/tracing/events/asoc/snd_soc_dapm_path/enable
root@nx-desktop:/home/nx# echo 1 > /sys/kernel/debug/tracing/events/asoc/snd_soc_dapm_start/enable
root@nx-desktop:/home/nx# echo 1 > /sys/kernel/debug/tracing/events/asoc/snd_soc_dapm_walk_done/enable
root@nx-desktop:/home/nx# echo 1 > /sys/kernel/debug/tracing/events/asoc/snd_soc_dapm_widget_power/enable
root@nx-desktop:/home/nx# sudo find /sys/kernel/debug/asoc/ -name ‘x Playback’ | xargs -i cat {};
find: paths must precede expression: `Playback’’
root@nx-desktop:/home/nx# sudo find /sys/kernel/debug/asoc/ -name x Playback’ | xargs -i cat {};

^C
root@nx-desktop:/home/nx# sudo find /sys/kernel/debug/asoc/ -name ‘x Playback’ | xargs -i cat {};
x Playback: Off in 0 out 0
stream Playback inactive
in “static” “I2S5 DAP Transmit-x Playback”

nx@nx-desktop:~$ speaker-test -D hw:ssm2518,1 -c 2 -r 48000 -F S16_LE -t sine -f 500

speaker-test 1.1.3

Playback device is hw:ssm2518,1
Stream parameters are 48000Hz, S16_LE, 2 channels
Sine wave rate is 500.0000Hz
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 32 to 8192
Period size range from 32 to 4096
Using max buffer size 8192
Periods = 4
was set period_size = 2048
was set buffer_size = 8192
 0 - Front Left
 1 - Front Right
Time per period = 0.111452
 0 - Front Left
 1 - Front Right
Time per period = 0.112130
 0 - Front Left
 1 - Front Right
Time per period = 0.112170
 0 - Front Left
 1 - Front Right
Time per period = 0.112166
 0 - Front Left
 1 - Front Right
Time per period = 0.112207
 0 - Front Left
 1 - Front Right
Time per period = 0.112268
 0 - Front Left
 1 - Front Right
Time per period = 0.112217
 0 - Front Left
 1 - Front Right
Time per period = 0.111343
 0 - Front Left
 1 - Front Right
Time per period = 0.112309
 0 - Front Left
 1 - Front Right
Time per period = 0.112137
 0 - Front Left
 1 - Front Right
Time per period = 0.112210
 0 - Front Left
> root@nx-desktop:/home/nx# cat /sys/kernel/debug/tracing/trace
> # tracer: nop
> #
> # entries-in-buffer/entries-written: 115/115   #P:2
> #
> #                              _-----=> irqs-off
> #                             / _----=> need-resched
> #                            | / _---=> hardirq/softirq
> #                            || / _--=> preempt-depth
> #                            ||| /     delay
> #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
> #              | |       |   ||||       |         |
> 
>     speaker-test-8088  [000] ....   314.857564: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [000] ....   314.857911: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   320.370505: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   320.371207: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [000] ....   320.397798: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [000] ....   320.397917: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   320.531343: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   320.531604: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   324.135508: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   324.136126: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   324.735428: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   324.736082: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [000] ....   326.141808: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [000] ....   326.142527: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   328.090086: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   328.090780: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   328.259978: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   328.260105: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   328.598561: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   328.599327: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   328.987877: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   328.988296: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
>     speaker-test-8088  [001] ....   332.819191: snd_soc_dapm_start: card=ssm2518
>     speaker-test-8088  [001] ....   332.819270: snd_soc_dapm_path: *ADMAIF2 Receive <- (direct) <- Playback 2
>     speaker-test-8088  [001] ....   332.819272: snd_soc_dapm_path: *ADMAIF2 Receive <- (direct) <- ADMAIF2 CIF Receive-ADMAIF2 Receive
>     speaker-test-8088  [001] ....   332.819317: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 2 neighbour

As you can see above routing paths are not added in above logs.

Please find complete dts and machine driver changes in attachement.

Hi,

Also i have change following in ssm2518.c codec file as below:

- SND_SOC_DAPM_DAC("DACL", "HiFi Playback", SSM2518_REG_POWER2, 1, 1),
- SND_SOC_DAPM_DAC("DACR", "HiFi Playback", SSM2518_REG_POWER2, 2, 1),

+ SND_SOC_DAPM_DAC("DACL", "Playback", SSM2518_REG_POWER2, 1, 1),
+ SND_SOC_DAPM_DAC("DACR", "Playback", SSM2518_REG_POWER2, 2, 1),

with above change we can see change in dapm:

root@nx-desktop:/home/nx# sudo find /sys/kernel/debug/asoc/ -name 'x Playback' | xargs -i cat {};
x Playback: Off  in 0 out 0
 stream Playback inactive
out  "static" "DACL"
out  "static" "DACR"
 in  "static" "I2S5 DAP Transmit-x Playback"
root@nx-desktop:/home/nx# cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 115/115   #P:2
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
    speaker-test-8088  [000] ....   314.857564: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [000] ....   314.857911: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   320.370505: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   320.371207: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [000] ....   320.397798: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [000] ....   320.397917: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   320.531343: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   320.531604: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   324.135508: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   324.136126: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   324.735428: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   324.736082: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [000] ....   326.141808: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [000] ....   326.142527: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   328.090086: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   328.090780: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   328.259978: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   328.260105: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   328.598561: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   328.599327: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   328.987877: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   328.988296: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 0 neighbour
    speaker-test-8088  [001] ....   332.819191: snd_soc_dapm_start: card=ssm2518
    speaker-test-8088  [001] ....   332.819270: snd_soc_dapm_path: *ADMAIF2 Receive <- (direct) <- Playback 2
    speaker-test-8088  [001] ....   332.819272: snd_soc_dapm_path: *ADMAIF2 Receive <- (direct) <- ADMAIF2 CIF Receive-ADMAIF2 Receive
    speaker-test-8088  [001] ....   332.819317: snd_soc_dapm_walk_done: ssm2518: checks 2 power, 2 path, 2 neighbour

But with that BCLK,WCLK not generated and no sound playing.

With above change we are seeing below error in dmesg:

ssm2518 1-0034: ASoC: can't set ssm2518-hifi hw params: -22
tegra-asoc: sound: ASoC: PRE_PMU: I2S5 DAP Transmit-x Playback event failed: -22</strong>

Hi Rahul,

Sorry for the delayed reply.

Do you mean you have setup the pins as GPIO output? If so it won’t be sufficient. You need to actually configure these pins for I2S function. You can refer to Jetson-IO section on setting the pins for I2S function.

Thanks,
Sameer.

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