]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ASoC: cs35l56: Support for reading speaker ID from on-chip GPIOs
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Thu, 5 Feb 2026 16:48:36 +0000 (16:48 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 5 Feb 2026 16:58:11 +0000 (16:58 +0000)
commit4d1e3e2c404dc30e039d81ba7396c8bb82ade991
tree6a76798d2de4f21c4aecc34e0701f6f60d0794ea
parentdc8384d85c034b3c3912ec7fc43784da5b884c27
ASoC: cs35l56: Support for reading speaker ID from on-chip GPIOs

Add support for using the state of pins on the amplifier to indicate
the type of speaker fitted.

Previously, where there were alternate speaker vendors, this was
indicated using host CPU GPIOs.

Some new Dell models use spare pins on the CS35L63 as GPIOs for the
speaker ID detection.

Cirrus-specific SDCA Disco properties provide a list of the pins to be
used, and pull-up/down settings for the pads. This list is ordered,
MSbit to LSbit.

The code to set the firmware filename has been modified to check for
using chip pins for speaker ID. The entire block of code to set
firmware name has been moved out of cs35l56_component_probe() into
its own function to make it easier to KUnit test.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20260205164838.1611295-2-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/cs35l56.h
sound/soc/codecs/cs35l56-shared.c
sound/soc/codecs/cs35l56.c
sound/soc/codecs/cs35l56.h