rv1106+inmp441
Posted: 2026-03-04 3:05
我想用rv1106驱动inmp441
dmic_codec: dmic-codec {
#sound-dai-cells = <0>;
compatible = "dmic-codec";
num-channels = <1>;
status = "okay";
};
sound-capture {
compatible = "simple-audio-card";
simple-audio-card,name = "INMP441";
simple-audio-card,format = "i2s"; // INMP441 使用左对齐格式
simple-audio-card,channels = <1>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,bitclock-master = <&cpu_dai>;
simple-audio-card,frame-master = <&cpu_dai>;
cpu_dai: simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&dmic_codec>;
};
};
&i2s0_8ch {
status = "okay";
rockchip,clk-trcm = <1>;
rockchip,io-multiplex = <1>;
rockchip,tdm-chip-delay = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2s0_sclk &i2s0_lrck &i2s0_sdi0 &i2s0_sdo0>;
assigned-clocks = <&cru MCLK_I2S0_8CH_TX>;
assigned-clock-rates = <12288000>;
#sound-dai-cells = <0>;
};
我设备树是这么写的,然后到开发板上
[root@root root]# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: INMP441 [INMP441], device 0: ffae0000.i2s-dmic-hifi dmic-hifi-0 [ffae0000.i2s-dmic-hifi dmic-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
[root@root root]#
[root@root root]#
[root@root root]# aplay -l
**** List of PLAYBACK Hardware Devices ****
[root@root root]# zcat /proc/config.gz | grep DMIC
CONFIG_SND_SOC_DMIC=y
[root@root root]#
[root@root root]#
[root@root root]# zcat /proc/config.gz | grep DUMMY
# CONFIG_CPUFREQ_DUMMY is not set
# CONFIG_DUMMY_IRQ is not set
CONFIG_DUMMY=y
CONFIG_ROCKCHIP_CIF_USE_DUMMY_BUF=y
# CONFIG_ROCKCHIP_CIF_USE_NONE_DUMMY_BUF is not set
# CONFIG_VIDEO_PREISP_DUMMY_SENSOR is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_SND_SOC_DUMMY_CODEC=y
# CONFIG_USB_DUMMY_HCD is not set
[root@root root]# arecord -D plughw:0,0 -f S16_LE -r 16000 -t wav test.wav
arecord: main:831: audio open error: Invalid argument
[root@root root]# cat /proc/asound/card0/pcm0c/sub0/hw_params
closed
[root@root root]# dmesg | grep chan
[ 0.053686] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.502649] dw-apb-uart ff4a0000.serial: got rx and tx dma channels
[ 812.065531] ASoC: dmic-hifi <-> ffae0000.i2s No matching channels
[root@root root]#
为什么一直显示不匹配
dmic_codec: dmic-codec {
#sound-dai-cells = <0>;
compatible = "dmic-codec";
num-channels = <1>;
status = "okay";
};
sound-capture {
compatible = "simple-audio-card";
simple-audio-card,name = "INMP441";
simple-audio-card,format = "i2s"; // INMP441 使用左对齐格式
simple-audio-card,channels = <1>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,bitclock-master = <&cpu_dai>;
simple-audio-card,frame-master = <&cpu_dai>;
cpu_dai: simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&dmic_codec>;
};
};
&i2s0_8ch {
status = "okay";
rockchip,clk-trcm = <1>;
rockchip,io-multiplex = <1>;
rockchip,tdm-chip-delay = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2s0_sclk &i2s0_lrck &i2s0_sdi0 &i2s0_sdo0>;
assigned-clocks = <&cru MCLK_I2S0_8CH_TX>;
assigned-clock-rates = <12288000>;
#sound-dai-cells = <0>;
};
我设备树是这么写的,然后到开发板上
[root@root root]# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: INMP441 [INMP441], device 0: ffae0000.i2s-dmic-hifi dmic-hifi-0 [ffae0000.i2s-dmic-hifi dmic-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
[root@root root]#
[root@root root]#
[root@root root]# aplay -l
**** List of PLAYBACK Hardware Devices ****
[root@root root]# zcat /proc/config.gz | grep DMIC
CONFIG_SND_SOC_DMIC=y
[root@root root]#
[root@root root]#
[root@root root]# zcat /proc/config.gz | grep DUMMY
# CONFIG_CPUFREQ_DUMMY is not set
# CONFIG_DUMMY_IRQ is not set
CONFIG_DUMMY=y
CONFIG_ROCKCHIP_CIF_USE_DUMMY_BUF=y
# CONFIG_ROCKCHIP_CIF_USE_NONE_DUMMY_BUF is not set
# CONFIG_VIDEO_PREISP_DUMMY_SENSOR is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_SND_SOC_DUMMY_CODEC=y
# CONFIG_USB_DUMMY_HCD is not set
[root@root root]# arecord -D plughw:0,0 -f S16_LE -r 16000 -t wav test.wav
arecord: main:831: audio open error: Invalid argument
[root@root root]# cat /proc/asound/card0/pcm0c/sub0/hw_params
closed
[root@root root]# dmesg | grep chan
[ 0.053686] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.502649] dw-apb-uart ff4a0000.serial: got rx and tx dma channels
[ 812.065531] ASoC: dmic-hifi <-> ffae0000.i2s No matching channels
[root@root root]#
为什么一直显示不匹配