ASoC: codecs: Add WCD939x Codec driver
authorNeil Armstrong <neil.armstrong@linaro.org>
Tue, 19 Dec 2023 12:45:38 +0000 (13:45 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 22 Jan 2024 00:06:19 +0000 (00:06 +0000)
commit10f514bd172a40b9d03d759678e4711612d671a1
treeab6b4c3d246ba0429892cc5762b04b2f61fe4239
parentbe2af391cea018eaea61f929eaef9394c78faaf2
ASoC: codecs: Add WCD939x Codec driver

Add the main WCD9390/WCD9395 Audio Codec driver to support:
- 4 ADC inputs for up to 5 Analog Microphones
- 4 DMIC inputs for up to 8 Digital Microphones
- 4 Microphone BIAS
- Stereo Headphone output
- Mono EAR output
- MBHC engine for Headset Detection

It makes usage of the generic MBHC and CLSH generic code and
the USB Type-C mux and switch helpers to gather USB-C Events
in order to properly setup Headset Detection mechanism
when connected behind the separate USB-C Mux subsystem.

WCD9390/WCD9395 supports a PCM path for Playback instead
of the actually implemented PDM playback, it will be
implemented later.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://msgid.link/r/20231219-topic-sm8650-upstream-wcd939x-codec-v4-5-1c3bbff2d7ab@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/Kconfig
sound/soc/codecs/Makefile
sound/soc/codecs/wcd-clsh-v2.h
sound/soc/codecs/wcd939x.c [new file with mode: 0644]