Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: ics43432: add CMM-4030D-261 support

Despite minimal datasheet differences, the driver seems
perfectly compatible with CMM-4030D-261.

Tested CMM-4030D-261 to work with this changes:

/ {
cmm4030d: cmm4030d {
#sound-dai-cells = <0>;
compatible = "cui,cmm-4030d-261";
};

sound_mic {
compatible = "simple-audio-card";
simple-audio-card,name = "i2s mem mic";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&sound_master>;
simple-audio-card,frame-master = <&sound_master>;
sound_master: simple-audio-card,cpu {
sound-dai = <&ssi2>;
system-clock-frequency = <2822400>;
};
simple-audio-card,codec {
sound-dai = <&cmm4030d>;
};
};
};

Audio has been captured and tested successfully by:

arecord -D "hw:1,0" -f S24_LE > test.wav
aplay test.wav

Signed-off-by: Angelo Dureghello <angelo.dureghello@timesys.com>
Link: https://lore.kernel.org/r/20210821082658.4147595-1-angelo.dureghello@timesys.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Angelo Dureghello and committed by
Mark Brown
43d2c498 77eca00f

+4 -2
+1 -1
sound/soc/codecs/Kconfig
··· 848 848 select SND_HDA 849 849 850 850 config SND_SOC_ICS43432 851 - tristate 851 + tristate "ICS43423 and compatible i2s microphones" 852 852 853 853 config SND_SOC_INNO_RK3036 854 854 tristate "Inno codec driver for RK3036 SoC"
+3 -1
sound/soc/codecs/ics43432.c
··· 1 1 // SPDX-License-Identifier: GPL-2.0-only 2 2 /* 3 - * I2S MEMS microphone driver for InvenSense ICS-43432 3 + * I2S MEMS microphone driver for InvenSense ICS-43432 and similar 4 + * MEMS-based microphones. 4 5 * 5 6 * - Non configurable. 6 7 * - I2S interface, 64 BCLs per frame, 32 bits per channel, 24 bit data ··· 54 53 #ifdef CONFIG_OF 55 54 static const struct of_device_id ics43432_ids[] = { 56 55 { .compatible = "invensense,ics43432", }, 56 + { .compatible = "cui,cmm-4030d-261", }, 57 57 { } 58 58 }; 59 59 MODULE_DEVICE_TABLE(of, ics43432_ids);