[PATCH v2 0/7] ASoC: codecs: aw88261: fixes and cleanup

From: Val Packett

Date: Mon May 18 2026 - 18:11:12 EST


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/20260420213250.215465-2-val@xxxxxxxxxxxx/

~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