ASoC: samsung: midas_wm1811: Add GPIO-based headset jack detection
authorArtur Weber <aweber.kernel@gmail.com>
Sat, 25 May 2024 13:28:09 +0000 (15:28 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 29 May 2024 12:45:44 +0000 (13:45 +0100)
commitc91d0c2e198d4453e634fe43a72ccbc59811af17
tree082632b49979b69b59b480e263bc7724fc406d03
parent9da93d4932aa17d5a1342af75872fbba776a3a8d
ASoC: samsung: midas_wm1811: Add GPIO-based headset jack detection

Some Samsung devices that use the midas_wm1811 driver use a GPIO-based
method for detecting whether the headset jack is plugged in, as well as
detecting which headset buttons are pressed. There are two GPIOs:
a "headset detect" GPIO responsible for detecting jack insertion, and
a "headset key" GPIO which triggers when a button on the headset is
pressed. The plug type and the button pressed are determined based
on information from an ADC channel. The headset mic is enabled by a
headset mic bias regulator.

Add support for the GPIO-based headset jack detection mechanism,
and make it configurable from the device tree.

This implementation borrows somewhat from the aries_wm8994.c driver,
though there are a few changes to make the code cleaner, and to add
support for DT-based configuration.

Notably, a dependency on IIO is introduced, to accommodate the ADC
reading requirement.

Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
Link: https://msgid.link/r/20240525-midas-wm1811-gpio-jack-v4-5-f488e03bd8c7@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/samsung/Kconfig
sound/soc/samsung/midas_wm1811.c