We support normal mode, TDM mode and pm.
Changes since v1: [addressed comments from Andy and Fabio] * fix GPIO polarity from active high to active low for correct documentation * fix license header by using SPDX identifier * remove debug prints at the beginning of functions. * only support auto clock switching (manual switching was dead code anyway) (in the future we could add a DT property to choose between manual and auto) * Use gpiod API * use GENMASK * introduce power_off/power_on
One open question is the resume sequence which appears to need power_off/power_on. Just power_on alone isn't enough. With just power_on after resume aplay plays a song for 1 seconds and then the sound stops.
Datasheet says, page 55"
(1) The PDN pin should be held to āLā for more than 150 ns after AVDD and TVDD are powered up.
Daniel Baluta (2): ASoC: codecs: Add support for AK5558 ADC driver ASoC: ak5558: Add bindings for AK5558 ADC
Documentation/devicetree/bindings/sound/ak5558.txt | 23 + sound/soc/codecs/Kconfig | 6 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/ak5558.c | 626 +++++++++++++++++++++ sound/soc/codecs/ak5558.h | 52 ++ 5 files changed, 709 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/ak5558.txt create mode 100644 sound/soc/codecs/ak5558.c create mode 100644 sound/soc/codecs/ak5558.h