I2S microphone - how to start?

Hi,
I am trying to use I2S microphone (inmp441 ) with Jetson Nano, currently without success.
I have connected the microphone using the following pinout (J40 connector’s pin num.):
(J40) (inmp441)
Pin1 = (3V)
Pin12 = (SCK)
Pin35 = (WS)
Pin38 = (SD)
Pin39 = (GND = L/R)

I have configured I2S4 Jetson pins for use Adafruit SPH0645LM4H hardware. Executing:

  1. sudo grep dap4 /sys/kernel/debug/tegra_pinctrl_reg has outputs:

Bank: 1 Reg: 0x70003144 Val: 0x00000044 → dap4_fs_pj4
Bank: 1 Reg: 0x70003148 Val: 0x00000054 → dap4_din_pj5
Bank: 1 Reg: 0x7000314c Val: 0x00000015 → dap4_dout_pj6
Bank: 1 Reg: 0x70003150 Val: 0x00000044 → dap4_sclk_pj7

  1. sudo grep “Name:|J:|BB:” /sys/kernel/debug/tegra_gpio has outputs:
    Name:Bank:Port CNF OE OUT IN INT_STA INT_ENB INT_LVL
    J: 2:1 00 00 00 00 00 00 000000
    BB: 6:3 00 00 00 00 00 00 000000

  2. amixer -c tegrasndt210ref cset name=‘ADMAIF1 Mux’ I2S4 has outputs:
    numid=518,iface=MIXER,name=‘ADMAIF1 Mux’
    ; type=ENUMERATED,access=rw------,values=1,items=53
    ; Item #0 ‘None’
    ; Item #1 ‘ADMAIF1’
    ; Item #2 ‘ADMAIF2’
    ; Item #3 ‘ADMAIF3’
    ; Item #4 ‘ADMAIF4’
    ; Item #5 ‘ADMAIF5’
    ; Item #6 ‘ADMAIF6’
    ; Item #7 ‘ADMAIF7’
    ; Item #8 ‘ADMAIF8’
    ; Item #9 ‘ADMAIF9’
    ; Item #10 ‘ADMAIF10’
    ; Item #11 ‘I2S1’
    ; Item #12 ‘I2S2’
    ; Item #13 ‘I2S3’
    ; Item #14 ‘I2S4’
    ; Item #15 ‘I2S5’
    ; Item #16 ‘SFC1’
    ; Item #17 ‘SFC2’
    ; Item #18 ‘SFC3’
    ; Item #19 ‘SFC4’
    ; Item #20 ‘MIXER1-1’
    ; Item #21 ‘MIXER1-2’
    ; Item #22 ‘MIXER1-3’
    ; Item #23 ‘MIXER1-4’
    ; Item #24 ‘MIXER1-5’
    ; Item #25 ‘AMX1’
    ; Item #26 ‘AMX2’
    ; Item #27 ‘AFC1’
    ; Item #28 ‘AFC2’
    ; Item #29 ‘AFC3’
    ; Item #30 ‘AFC4’
    ; Item #31 ‘AFC5’
    ; Item #32 ‘AFC6’
    ; Item #33 ‘OPE1’
    ; Item #34 ‘OPE2’
    ; Item #35 ‘SPKPROT1’
    ; Item #36 ‘MVC1’
    ; Item #37 ‘MVC2’
    ; Item #38 ‘IQC1-1’
    ; Item #39 ‘IQC1-2’
    ; Item #40 ‘IQC2-1’
    ; Item #41 ‘IQC2-2’
    ; Item #42 ‘DMIC1’
    ; Item #43 ‘DMIC2’
    ; Item #44 ‘DMIC3’
    ; Item #45 ‘ADX1-1’
    ; Item #46 ‘ADX1-2’
    ; Item #47 ‘ADX1-3’
    ; Item #48 ‘ADX1-4’
    ; Item #49 ‘ADX2-1’
    ; Item #50 ‘ADX2-2’
    ; Item #51 ‘ADX2-3’
    ; Item #52 ‘ADX2-4’
    : values=14

  3. amixer -c tegrasndt210ref sget “ADMAIF1 Mux”
    amixer: Unable to find simple control ‘“ADMAIF1’,0

What should I do?

Hello!

Does the following work …

$ amixer -c tegrasndt210ref cget name=‘ADMAIF1 Mux’

If so, does the following work …

$ amixer scontrols

If that does not work, have you made any changes to the kernel and/or device-tree?

Regards,
Jon

No, it does not:

  1. $ amixer -c tegrasndt210ref cget name=‘ADMAIF1 Mux’
    amixer: Cannot find the given element from control hw:1
  2. $ amixer scontrols
    amixer: Mixer attach default error: No such device
  3. I have followed " Creating a Custom Device Tree Overlay for the 40‑Pin Header" (https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/hw_setup_jetson_io.html#wwpID0E0VB0HA)) and after that i can get some clocks on I2S pins