Hello everyone,
I’m continuing a project I started earlier to integrate a **MAX98357A/B I²S amplifier on a custom carrier board
Amplifier connected directly I²S here is our pinout:
| Function | Module Pin | SoC Pad | Pinmux Function | Notes |
|---|---|---|---|---|
| AMP-BCLK | 199 | DAP2_SCLK (PAA1) | i2s2 |
OK |
| AMP-LRCLK | 193 | DAP2_FS (PAA0) | i2s2 |
OK |
| AMP-DIN | 195 | DAP2_DIN (PAA2) | i2s2 |
OK |
| AMP-DOUT | — | — | — | not used (amp input-only) |
I tried to verify the pins and routing:
sudo cat /sys/kernel/debug/pinctrl/700008d4.pinmux/pinmux-pins | grep DAP2
pin 208 (DAP2_FS PAA0): function i2s2 group dap2_fs_paa0
pin 209 (DAP2_SCLK PAA1): function i2s2 group dap2_sclk_paa1
pin 210 (DAP2_DIN PAA2): function i2s2 group dap2_din_paa2
pin 211 (DAP2_DOUT PAA3): function i2s2 group dap2_dout_paa3
The MAX98357A codec driver (max98357a.c) is built into the kernel.
Confirmed with dmesg message from the driver:
This is a snippet from the device tree where I added a dummy codec
i2s@702d1200 { // DAP2 → I2S3 in ALSA
nvidia,ahub-i2s-id = <2>;
status = “okay”;
};
max98357-codec {
compatible = “maxim,max98357a”;
#sound-dai-cells = <0>;
status = “okay”;
};
sound {
compatible = “nvidia,tegra-audio-max98357a”;
nvidia,model = “jetson-nano-max98357a”;
nvidia,num-codec-link = <4>;
nvidia,audio-routing = “Playback”, “Speaker”, “Speaker”, “OUT”;
nvidia,xbar = <&tegra_axbar>;
mclk-fs = <0x100>;
nvidia,dai-link-2 {
link-name = "i2s3-max98357";
cpu-dai = <&tegra_i2s3>;
cpu-dai-name = "I2S3";
codec-dai = <&max98357-codec>;
codec-dai-name = "HiFi";
format = "i2s";
bitclock-master;
frame-master;
bit-format = "s16_le";
srate = <48000>;
num-channel = <2>;
status = "okay";
};
Pinmux confirms DAP2 pins are set to i2s2 function.
GPIO AMP_EN = 1 (high).
Codec node exists under /proc/device-tree/sound/nvidia,dai-link-2.
Tried routing:
sudo amixer -c 1 cset name='MVC1 Mux' ADMAIF1
sudo amixer -c 1 cset name='I2S3 Mux' MVC1
When I list devices (aplay -l) I got the following:
**** List of PLAYBACK Hardware Devices ****
card 0: tegrahda [tegra-hda], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 0: ADMAIF1 CIF ADMAIF1-0 Subdevices: 1/1 Subdevice
#0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 1: ADMAIF2 CIF ADMAIF2-1 Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 2: ADMAIF3 CIF ADMAIF3-2 Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 3: ADMAIF4 CIF ADMAIF4-3 Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 4: ADMAIF5 CIF ADMAIF5-4 Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 5: ADMAIF6 CIF ADMAIF6-5 Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 6: ADMAIF7 CIF ADMAIF7-6 Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 7: ADMAIF8 CIF ADMAIF8-7 Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 8: ADMAIF9 CIF ADMAIF9-8 Subdevices: 1/1 Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 9: ADMAIF10 CIF ADMAIF10-9 Subdevices: 1/1 Subdevice #0: subdevice #0Subdevice #0: subdevice #0
I tested the system with:
aplay -D hw:1,0 /usr/share/sounds/alsa/Front_Center.wav
But the speaker is silent, running out of ideas.
I would gratefull full any help.

