Hello,
I made the following change to the device tree:
/{
...
sound-micfil {
compatible = "fsl,imx-audio-card";
model = "imx-audio-micfil";
pri-dai-link {
link-name = "micfil hifi";
format = "i2s";
cpu {
sound-dai = <&micfil>;
};
};
};
};
&micfil {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pdm>;
assigned-clocks = <&clk IMX8MM_CLK_PDM>;
assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
assigned-clock-rates = <196608000>;
fsl,dataline = <2 0xf 0x0>;
status = "okay";
};
&sai5 {
...
status = "disabled";
};
&iomuxc {
...
pinctrl_pdm: pdmgrp {
fsl,pins = <
/* MX8MM_IOMUXC_SAI5_MCLK_SAI5_MCLK 0xd6 */
MX8MM_IOMUXC_SAI5_RXC_PDM_CLK 0xd6
/* MX8MM_IOMUXC_SAI5_RXFS_SAI5_RX_SYNC 0xd6 */
MX8MM_IOMUXC_SAI5_RXD0_PDM_DATA0 0xd6
MX8MM_IOMUXC_SAI5_RXD1_PDM_DATA1 0xd6
MX8MM_IOMUXC_SAI5_RXD2_PDM_DATA2 0xd6
MX8MM_IOMUXC_SAI5_RXD3_PDM_DATA3 0xd6
>;
};
...
};
After this change, I generated a new operating system image for the imx8mmevk kit using the Yocto tool and loaded it into the kit's flash memory. Then I used the following command:
arecord -D hw:1,0,0 -f S16_LE -c 1 -r 48000 recording.wav
to record audio from the microphone. For the SAI5_RX[0] interface, it worked correctly. However, for the SAI5_RX[1], SAI5_RX[2], and SAI5_RX[3] interfaces, it was not possible to record audio. Could you tell me if there is any configuration that needs to be done so that the SAI5_RX[1], SAI5_RX[2], and SAI5_RX[3] inputs can work correctly?
To capture audio from the SAI5_RX[1], SAI5_RX[2], and SAI5_RX[3] inputs, I used the same command to record input 0, changing the parameter hw:1,0,0 to hw:1,0,<interface number>. For the SAI5_RX[1] interface, the command was as follows:
arecord -D hw:1,0,1 -f S16_LE -c 1 -r 48000 recording.wav
Do you have any idea how to configure the device tree or other settings to enable recording on the SAI5_RX[1], SAI5_RX[2], and SAI5_RX[3] interfaces?
Thanks in advance.