Audio I2S on 40 Pin Connector

Hello!

First of once you have updated the pinmux you need to check that the pins are not configured as gpio. See …

Secondly, you need to check the pinmux configuration for dap4 looks good. You should have something like …

$ sudo grep dap4 /sys/kernel/debug/tegra_pinctrl_reg
Bank: 1 Reg: 0x70003144 Val: 0x00000044 -> dap4_fs_pj4
Bank: 1 Reg: 0x70003148 Val: 0x00000054 -> dap4_din_pj5
Bank: 1 Reg: 0x7000314c Val: 0x00000004 -> dap4_dout_pj6
Bank: 1 Reg: 0x70003150 Val: 0x00000044 -> dap4_sclk_pj7

Please note that the most important bit settings in the above are …

  1. bit[0:1] = 0x0 (mode is i2s)
  2. bit[4] = 0 (output enable, not necessary for din)
  3. bit[6] = 1 (input enable, not necessary for dout)

Then reset the mixer controls …

$ alsactl init tegrasndt210ref

Verify that I2S4 is mapped to the ADMAIF1 …

$ amixer -c tegrasndt210ref sget "ADMAIF1 Mux"
$ amixer -c tegrasndt210ref sget "I2S4 Mux"

Then you should be able to record/play from I2S4 …

$ arecord -D hw:tegrasndt210ref,0 -c <channels> -r <srate> -f <sample-size> cap.wav
$ aplay -D hw:tegrasndt210ref,0 cap.wav

I assume that the raspiaudio mic+ DAC/ADC does not require any configuration? In other words, there is no control interface (I2C/SPI) used to configure it?

Regards,
Jon