Using I2S on the Expansion Header

I am using the Jetson TK1 with Linux for Tegra 21.3.

I want to add an external Codec to the Jetson board. Therefor I want to use the I2S_4 connection. In a first step I’d like to use the predefined rt5639 codec but then send the output via the I2S4 connection to the expansion header. To do that I tried to change the port id to nr. 4. (mach-tegra/board-ardbeg.c [row 288]) However this results in an error “Invalid DAP port”. This error is generated by the tegra_asoc_utils_tristate_dap function. Defining a new Port with PCC1, PCC2, PBB6 and PBB7 (these are the pins I2S4 is on) however eliminated that error but still no output is generated.

Has anybody implemented the I2S4 before? And could you be so kind and help me? I’d be glad to provide you with more information if needed.

Have you enabled i2s4 in those pins in the pinmux settings?

I guess this might be one place to do it:;a=blob;f=arch/arm/boot/dts/tegra124-platforms/tegra124-jetson_tk1-pinmux-pm375-0000-c00-00.dtsi;h=520937d127a9ef56970a1066a54116abc978f9a2;hb=c017b032a284d7cb1974f7e80a6c3613089b9c0e

Hi Thx for the idea. Unfortunately it didn’t make any difference. I was wondering do I have to set the XBAR or is there a DSP i have to configure?

Hi doelen,

I2S4 (called DAP4 on TK1) is not routed in Jetson schematic that I2S4 is not available in the expansion header.
PCC1, PCC2, PBB6 & PBB7 are not I2S4 pins, but GPIOs for camera.

DAP1 not routed
DAP2 ALC5639
DAP3 not routed
DAP4 not routed

Please refer to the Jetson schematic, datasheet & pinmux link in

As i understand the schematics and the Technical Reference Manual:
I2S0 -> DAP1 -> not routed
I2S1 -> DAP2 -> ALC5639
I2S2 -> DAP3 -> not routed
I2S3 -> DAP4 -> not routed
I2S4 -> GPIOs -> expansion header

If one looks at the Pinmux_AUX_GPIO-PCC1_0 Register one can set PM to I2S4.
This is also possible for the other pins (PCC2, PBB6 & PBB7)
That’s why I think it should be possible, but I’m not sure…

DAP5 however is not implemented. If DAP is just a name, it shouldn’t be a problem but if it is a register it might not be possible to implement I2S4.

Hi doelen,

Sorry I was mistaken and your mapping is right.
I2S4 -> GPIOs -> expansion header is correct.

However unfortunately I2S4 from TK1 “MID (23 x 23mm) package” used on Jetson has never gone through qualification process that I2S4 support is removed from TK1 MID package.

Therefore You may try I2S4 at your own risk for test purpose, but NV can’t guarantee nor support regarding I2S4 ex) functionality, long term reliability, etc

Hello doelen,

Did you succeed to make it work ? Are you using I2S slave or master mode ?