We support normal mode, TDM mode and pm.
Changes since v3: [addressed Mark's comments] * use C++ comments for SPDX identifier * removed some unused widgets and controls (channel enable MUXes, TDM, DSD related stuff) * removed set_dai_mute, set_bias_level, set_dai_sysclk as they are not used. * refactored probe/remove to have symmetric operations * use snd_soc_update_bits instead of hardcode read/write operation.
Changes since v2: [addressed comments from Andy, Fabio and Rob] * sort include files * use probe_new * reword the binding document * use adc@10 instead of ak5558@10 * remove file name at the beginning of codec source code. * make i2c_probe and i2c_remove parameters naming consistent.
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
Daniel Baluta (2): ASoC: codecs: Add support for AK5558 ADC driver ASoC: ak5558: Add bindings for AK5558 ADC
Documentation/devicetree/bindings/sound/ak5558.txt | 22 ++ sound/soc/codecs/Kconfig | 6 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/ak5558.c | 417 +++++++++++++++++++++ sound/soc/codecs/ak5558.h | 52 +++ 5 files changed, 499 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