The Awinic smart speaker/amp drivers were merged in a very "downstream-brained" state, where configuration was only really determined by the binary "firmware" (register list) file instead of properly participating in the ASoC system. Let's start untangling this mess. This series makes aw88261 actually usable on devices like fairphone-fp5, motorola-dubai and xiaomi-pipa.
v2: - Add missing sample rates to the switch statement (turns out we do have them) - Process the conversion from requested values to register ones directly in the ASoC ops to make sure EINVAL is returned early, from the right place - Do not include untested aw88258 fixes.. (why did I think that some support for it was already present in the tree?) - Do include TDM support, logspam reduction, a newly discovered mask fix - Remove misfeatures inherited from downstream: async start, fade-in/fade-out (hopefully this won't be too controversial?) - Also overhaul volume control to make it actually usable as PlaybackVolume v1: https://lore.kernel.org/all/[email protected]/ ~val --- Val Packett (7): ASoC: codecs: aw88261: support changing sample rate and bit width ASoC: codecs: aw88261: add TDM support ASoC: codecs: aw88261: reduce log spam ASoC: codecs: aw88261: remove fade in/out on start/stop ASoC: codecs: aw88261: remove async start ASoC: codecs: aw88261: fix incorrect masks for boost regs ASoC: codecs: aw88261: make volume control usable sound/soc/codecs/aw88261.c | 612 +++++++++++++++++++------------------ sound/soc/codecs/aw88261.h | 179 ++++++++++- 2 files changed, 486 insertions(+), 305 deletions(-) -- 2.53.0

