How to enable I2S2(i2s5b) in TX1?
On carrier board P2597, I want to enable I2S2, also named i2s5b. The I2S1, is enabled by dts: gpios = < TEGRA_GPIO(B, 0) 0 TEGRA_GPIO(B, 1) 0 TEGRA_GPIO(B, 2) 0 TEGRA_GPIO(B, 3) 0 TEGRA_GPIO(BB, 0) 0 TEGRA_GPIO(BB, 3) 0 >; status = "okay"; when use command: amixer -c 0 sset 'I2S1 Mux' 'ADMAIF1' aplay -Dhw:0,0 piano2.wav Signals can be found on Expansion Header Pin. For enable I2S2, modify dts like this: gpios = < TEGRA_GPIO(B, 0) 0 TEGRA_GPIO(B, 1) 0 TEGRA_GPIO(B, 2) 0 TEGRA_GPIO(B, 3) 0 TEGRA_GPIO(K, 0) 0 TEGRA_GPIO(K, 1) 0 TEGRA_GPIO(K, 2) 0 TEGRA_GPIO(K, 3) 0 TEGRA_GPIO(BB, 0) 0 TEGRA_GPIO(BB, 3) 0 >; status = "okay"; amixer -c 0 sset 'I2S2 Mux' 'ADMAIF1' aplay -Dhw:0,0 piano2.wav There is no signel on GPIO Expansion Header, where is the second I2S interface location. When I set I2S2 Loopback: amixer cset -c 0 name="I2S2 Loopback" 1 amixer -c 0 sset 'ADMAIF2 Mux' 'I2S2' amixer -c 0 sset 'I2S2 Mux' 'ADMAIF1' aplay -Dhw:0,0 -f S16_LE -r 48000 c304-2.wav & arecord -Dhw:0,1 -f S16_LE -r 48000 sample4.wav I can record data in sample4.wav. Both of I2S1 and I2S2 dai have the same setting. So, the sound card setting is ok. Maybe just the pinmux of I2S2 has problem. Anyone can help me?
On carrier board P2597, I want to enable I2S2, also named i2s5b.
The I2S1, is enabled by dts:

gpios = <
TEGRA_GPIO(B, 0) 0
TEGRA_GPIO(B, 1) 0
TEGRA_GPIO(B, 2) 0
TEGRA_GPIO(B, 3) 0
TEGRA_GPIO(BB, 0) 0
TEGRA_GPIO(BB, 3) 0
>;
status = "okay";

when use command:

amixer -c 0 sset 'I2S1 Mux' 'ADMAIF1'
aplay -Dhw:0,0 piano2.wav

Signals can be found on Expansion Header Pin.

For enable I2S2, modify dts like this:

gpios = <
TEGRA_GPIO(B, 0) 0
TEGRA_GPIO(B, 1) 0
TEGRA_GPIO(B, 2) 0
TEGRA_GPIO(B, 3) 0
TEGRA_GPIO(K, 0) 0
TEGRA_GPIO(K, 1) 0
TEGRA_GPIO(K, 2) 0
TEGRA_GPIO(K, 3) 0
TEGRA_GPIO(BB, 0) 0
TEGRA_GPIO(BB, 3) 0
>;
status = "okay";

amixer -c 0 sset 'I2S2 Mux' 'ADMAIF1'
aplay -Dhw:0,0 piano2.wav

There is no signel on GPIO Expansion Header, where is the second I2S interface location.

When I set I2S2 Loopback:
amixer cset -c 0 name="I2S2 Loopback" 1

amixer -c 0 sset 'ADMAIF2 Mux' 'I2S2'
amixer -c 0 sset 'I2S2 Mux' 'ADMAIF1'

aplay -Dhw:0,0 -f S16_LE -r 48000 c304-2.wav &

arecord -Dhw:0,1 -f S16_LE -r 48000 sample4.wav

I can record data in sample4.wav.

Both of I2S1 and I2S2 dai have the same setting.
So, the sound card setting is ok. Maybe just the pinmux of I2S2 has problem.

Anyone can help me?

#1
Posted 11/08/2017 01:32 AM   
@zhili_liu Would you please check the 0x70003254 by devmem2 [code] 0x70003254: PINMUX_AUX_GPIO_PK0_0 = 0x00006074 // DRV_TYPE = 0x00000003 // [14:13] DRIVE_4X [DRIVE_1X=0,DRIVE_2X=1,DRIVE_3X=2,DRIVE_4X=3] E_SCHMT = 0x00000000 // [12:12] DISABLE [DISABLE=0,ENABLE=1] E_HSM = 0x00000000 // [09:09] DISABLE [DISABLE=0,ENABLE=1] LOCK = 0x00000000 // [07:07] DISABLE [DISABLE=0,ENABLE=1] E_INPUT = 0x00000001 // [06:06] ENABLE [DISABLE=0,ENABLE=1] PARK = 0x00000001 // [05:05] PARKED [NORMAL=0,PARKED=1] TRISTATE = 0x00000001 // [04:04] TRISTATE [PASSTHROUGH=0,TRISTATE=1] PUPD = 0x00000001 // [03:02] PULL_DOWN [NONE=0,PULL_DOWN=1,PULL_UP=2,RSVD=3] PM = 0x00000000 // [01:00] IQC0 [I2S5B=1,IQC0=0,RSVD2=2,RSVD3=3] [/code]
@zhili_liu
Would you please check the 0x70003254 by devmem2

0x70003254: PINMUX_AUX_GPIO_PK0_0                                   = 0x00006074 //
DRV_TYPE = 0x00000003 // [14:13] DRIVE_4X [DRIVE_1X=0,DRIVE_2X=1,DRIVE_3X=2,DRIVE_4X=3]
E_SCHMT = 0x00000000 // [12:12] DISABLE [DISABLE=0,ENABLE=1]
E_HSM = 0x00000000 // [09:09] DISABLE [DISABLE=0,ENABLE=1]
LOCK = 0x00000000 // [07:07] DISABLE [DISABLE=0,ENABLE=1]
E_INPUT = 0x00000001 // [06:06] ENABLE [DISABLE=0,ENABLE=1]
PARK = 0x00000001 // [05:05] PARKED [NORMAL=0,PARKED=1]
TRISTATE = 0x00000001 // [04:04] TRISTATE [PASSTHROUGH=0,TRISTATE=1]
PUPD = 0x00000001 // [03:02] PULL_DOWN [NONE=0,PULL_DOWN=1,PULL_UP=2,RSVD=3]
PM = 0x00000000 // [01:00] IQC0 [I2S5B=1,IQC0=0,RSVD2=2,RSVD3=3]

#2
Posted 11/08/2017 02:32 AM   
Hi ShaneCCC, sudo devmem2 0x70003254 h /dev/mem opened. Memory mapped at address 0x7f8dc3e000. Value at address 0x70003254 (0x7f8dc3e254): 0x6041
Hi ShaneCCC,

sudo devmem2 0x70003254 h
/dev/mem opened.
Memory mapped at address 0x7f8dc3e000.
Value at address 0x70003254 (0x7f8dc3e254): 0x6041

#3
Posted 11/08/2017 03:02 AM   
@zhili Check others pin too. Should be the 0x70003258, 0x7000325c, 0x70003260. Also check the gpio by cat /sys/kernel/debug/tegra_gpio
@zhili
Check others pin too. Should be the 0x70003258, 0x7000325c, 0x70003260.
Also check the gpio by cat /sys/kernel/debug/tegra_gpio

#4
Posted 11/08/2017 03:21 AM   
HI ShaneCCC: nvidia@tegra-ubuntu:~$ clear nvidia@tegra-ubuntu:~$ sudo devmem2 0x70003254 h /dev/mem opened. Memory mapped at address 0x7fb6929000. Value at address 0x70003254 (0x7fb6929254): 0x6041 nvidia@tegra-ubuntu:~$ sudo devmem2 0x70003258 h /dev/mem opened. Memory mapped at address 0x7f7d775000. Value at address 0x70003258 (0x7f7d775258): 0x6041 nvidia@tegra-ubuntu:~$ sudo devmem2 0x7000325c h /dev/mem opened. Memory mapped at address 0x7fb4d07000. Value at address 0x7000325C (0x7fb4d0725c): 0x6041 nvidia@tegra-ubuntu:~$ sudo devmem2 0x70003260 h /dev/mem opened. Memory mapped at address 0x7f97f2c000. Value at address 0x70003260 (0x7f97f2c260): 0x6041 nvidia@tegra-ubuntu:~$ sudo cat /sys/kernel/debug/tegra_gpio 0:0 24 00 00 24 00 00 000000 0:1 00 00 00 00 00 00 000000 0:2 00 00 00 00 00 00 000000 0:3 00 00 00 00 00 00 000000 1:0 70 00 00 00 00 00 000000 1:1 00 00 00 00 00 00 000000 1:2 00 00 00 00 00 00 000000 1:3 ff 1b 03 40 00 00 002024 2:0 0f 0d 01 02 00 00 000000 2:1 00 00 00 00 00 00 000000 2:2 f0 20 00 d0 00 80 008000 2:3 02 00 00 02 00 02 000000 3:0 00 00 00 00 00 00 000000 3:1 00 00 00 00 00 00 000000 3:2 00 00 00 00 00 00 000000 3:3 00 00 00 00 00 00 000000 4:0 00 00 00 00 00 00 000000 4:1 00 00 00 00 00 00 000000 4:2 f0 f0 00 00 00 00 000000 4:3 03 03 00 00 00 00 000000 5:0 0c 00 00 00 00 00 000000 5:1 6e 66 00 00 00 00 000000 5:2 00 00 00 00 00 00 000000 5:3 ff 00 00 fe 00 70 606000 6:0 03 00 00 03 00 01 010100 6:1 1f 08 00 17 00 07 030300 6:2 00 00 00 00 00 00 000000 6:3 04 04 00 00 00 00 000000 7:0 32 10 00 22 00 02 020200 7:1 00 00 00 00 00 00 000000 7:2 00 00 00 00 00 00 000000 7:3 00 00 00 00 00 00 000000
HI ShaneCCC:

nvidia@tegra-ubuntu:~$ clear
nvidia@tegra-ubuntu:~$ sudo devmem2 0x70003254 h
/dev/mem opened.
Memory mapped at address 0x7fb6929000.
Value at address 0x70003254 (0x7fb6929254): 0x6041
nvidia@tegra-ubuntu:~$ sudo devmem2 0x70003258 h
/dev/mem opened.
Memory mapped at address 0x7f7d775000.
Value at address 0x70003258 (0x7f7d775258): 0x6041
nvidia@tegra-ubuntu:~$ sudo devmem2 0x7000325c h
/dev/mem opened.
Memory mapped at address 0x7fb4d07000.
Value at address 0x7000325C (0x7fb4d0725c): 0x6041
nvidia@tegra-ubuntu:~$ sudo devmem2 0x70003260 h
/dev/mem opened.
Memory mapped at address 0x7f97f2c000.
Value at address 0x70003260 (0x7f97f2c260): 0x6041

nvidia@tegra-ubuntu:~$ sudo cat /sys/kernel/debug/tegra_gpio
0:0 24 00 00 24 00 00 000000
0:1 00 00 00 00 00 00 000000
0:2 00 00 00 00 00 00 000000
0:3 00 00 00 00 00 00 000000
1:0 70 00 00 00 00 00 000000
1:1 00 00 00 00 00 00 000000
1:2 00 00 00 00 00 00 000000
1:3 ff 1b 03 40 00 00 002024
2:0 0f 0d 01 02 00 00 000000
2:1 00 00 00 00 00 00 000000
2:2 f0 20 00 d0 00 80 008000
2:3 02 00 00 02 00 02 000000
3:0 00 00 00 00 00 00 000000
3:1 00 00 00 00 00 00 000000
3:2 00 00 00 00 00 00 000000
3:3 00 00 00 00 00 00 000000
4:0 00 00 00 00 00 00 000000
4:1 00 00 00 00 00 00 000000
4:2 f0 f0 00 00 00 00 000000
4:3 03 03 00 00 00 00 000000
5:0 0c 00 00 00 00 00 000000
5:1 6e 66 00 00 00 00 000000
5:2 00 00 00 00 00 00 000000
5:3 ff 00 00 fe 00 70 606000
6:0 03 00 00 03 00 01 010100
6:1 1f 08 00 17 00 07 030300
6:2 00 00 00 00 00 00 000000
6:3 04 04 00 00 00 00 000000
7:0 32 10 00 22 00 02 020200
7:1 00 00 00 00 00 00 000000
7:2 00 00 00 00 00 00 000000
7:3 00 00 00 00 00 00 000000

#5
Posted 11/08/2017 03:27 AM   
HI ShaneCCC: Set I2S loopback, and play&capture worked, Is that mean I2S worked? This situation is just not signal output?
HI ShaneCCC:
Set I2S loopback, and play&capture worked, Is that mean I2S worked? This situation is just not signal output?

#6
Posted 11/08/2017 03:38 AM   
@zhili_liu The REG and tegra_gpio status is good. Yes, I2S should be working you can probe it to make sure of it.
@zhili_liu
The REG and tegra_gpio status is good. Yes, I2S should be working you can probe it to make sure of it.

#7
Posted 11/08/2017 04:27 AM   
@ShaneCCC, Do you have worked experience with i2s5b? Can you share the dts file?
@ShaneCCC,
Do you have worked experience with i2s5b? Can you share the dts file?

#8
Posted 11/08/2017 05:58 AM   
@zhili Sorry didn't have any experience with this case.
@zhili
Sorry didn't have any experience with this case.

#9
Posted 11/08/2017 06:03 AM   
@ShaneCCC, I solve the problem. Share for other people. I used I2S2 for i2s5b, modify to I2S5, and signal output. ref: https://devtalk.nvidia.com/default/topic/1006883 nvidia,dai-link-1 { cpu-dai = <&tegra_i2s5>; cpu-dai-name = "I2S5"; } amixer -c 0 sset 'I2S5 Mux' 'ADMAIF1' aplay -Dhw:0,0 piano2.wav Then, the pin PK0-3 have signal output. Now I have another question. I need to set codec master. So the dai-link like this: nvidia,dai-link-1 { //bitclock-slave; bitclock-master; //frame-slave; frame-master; } When I play, print error and not real play audio. [ 144.774903] tegra210-i2s tegra210-i2s.4: Failed at I2S4_TX sw reset [ 144.781162] tegra210-i2s tegra210-i2s.4: ASoC: PRE_PMU: I2S5 DAP TX event failed: -22 When set codec slave, there is no error. So when I2S slave(codec master), how to resolve this problem?
@ShaneCCC,
I solve the problem.
Share for other people.

I used I2S2 for i2s5b, modify to I2S5, and signal output.

ref: https://devtalk.nvidia.com/default/topic/1006883


nvidia,dai-link-1 {
cpu-dai = <&tegra_i2s5>;
cpu-dai-name = "I2S5";
}

amixer -c 0 sset 'I2S5 Mux' 'ADMAIF1'
aplay -Dhw:0,0 piano2.wav

Then, the pin PK0-3 have signal output.

Now I have another question. I need to set codec master.
So the dai-link like this:
nvidia,dai-link-1 {
//bitclock-slave;
bitclock-master;
//frame-slave;
frame-master;
}

When I play, print error and not real play audio.

[ 144.774903] tegra210-i2s tegra210-i2s.4: Failed at I2S4_TX sw reset
[ 144.781162] tegra210-i2s tegra210-i2s.4: ASoC: PRE_PMU: I2S5 DAP TX event failed: -22

When set codec slave, there is no error.

So when I2S slave(codec master), how to resolve this problem?

#10
Posted 11/08/2017 09:33 AM   
@Zhili I would like to reproduce if I can get the same error with you. Could you please attached your all what you modified file.
@Zhili
I would like to reproduce if I can get the same error with you. Could you please attached your all what you modified file.

#11
Posted 11/08/2017 10:10 AM   
@Zhili I would like to reproduce if I can get the same error with you. Could you please attached your all what you modified file.
@Zhili
I would like to reproduce if I can get the same error with you. Could you please attached your all what you modified file.

#12
Posted 11/08/2017 10:11 AM   
@ShaneCCC, The modify is just this in dts file: nvidia,dai-link-1 { //bitclock-slave; bitclock-master; //frame-slave; frame-master; } then "apaly ".
@ShaneCCC,

The modify is just this in dts file:

nvidia,dai-link-1 {
//bitclock-slave;
bitclock-master;
//frame-slave;
frame-master;
}

then "apaly ".

#13
Posted 11/08/2017 10:36 AM   
@ShaneCCC, I'm using L4T R28.1. when bitclock-master and frame-master, It will report error: [ 144.774903] tegra210-i2s tegra210-i2s.4: Failed at I2S4_TX sw reset [ 144.781162] tegra210-i2s tegra210-i2s.4: ASoC: PRE_PMU: I2S5 DAP TX event failed: -22 I test L4T R24.2, there is not this error, and aplay seems work. Because other reasons, I didn't test audio work.
@ShaneCCC,

I'm using L4T R28.1. when bitclock-master and frame-master, It will report error:

[ 144.774903] tegra210-i2s tegra210-i2s.4: Failed at I2S4_TX sw reset
[ 144.781162] tegra210-i2s tegra210-i2s.4: ASoC: PRE_PMU: I2S5 DAP TX event failed: -22

I test L4T R24.2, there is not this error, and aplay seems work. Because other reasons, I didn't test audio work.

#14
Posted 11/08/2017 11:36 AM   
@ShaneCCC, Did you reproduce the error?
@ShaneCCC,
Did you reproduce the error?

#15
Posted 11/09/2017 03:54 AM   
Scroll To Top

Add Reply