From: Herve Codina <herve.codina@bootlin.com>
To: Herve Codina <herve.codina@bootlin.com>,
Bartosz Golaszewski <brgl@kernel.org>,
Linus Walleij <linusw@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Saravana Kannan <saravanak@kernel.org>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>
Cc: linux-sound@vger.kernel.org, linux-gpio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: [PATCH v3 00/17] ASoC: Add support for GPIOs driven amplifiers
Date: Wed, 13 May 2026 10:16:44 +0200 [thread overview]
Message-ID: <20260513081702.317117-1-herve.codina@bootlin.com> (raw)
On some embedded system boards, audio amplifiers are designed using
discrete components such as op-amp, several resistors and switches to
either adjust the gain (switching resistors) or fully switch the
audio signal path (mute and/or bypass features).
Those switches are usually driven by simple GPIOs.
This kind of amplifiers are not handled in ASoC and the fallback is to
let the user-space handle those GPIOs out of the ALSA world.
In order to have those kind of amplifiers fully integrated in the audio
stack, this series introduces the audio-gpio-amp to handle them.
This new ASoC component allows to have the amplifiers seen as ASoC
auxiliarty devices and so it allows to control them through audio mixer
controls.
Compared to previous iteration, this v3 series takes into account
feedback received from Mark and also some comments from Shashiko.
In order to ease the review, I choose to split modifications related
to the merge of the gpio-audio-amp part into the simple-amplfier driver
in several commits.
Best regards,
Hervé
---
Changes v2 -> v3
v2: https://lore.kernel.org/all/20260429074356.118420-1-herve.codina@bootlin.com/
Patch 2:
- Fix a typo s/rignt/right/ (Sashiko)
- Use the 'int32-matrix' type for gain-ranges property. Indeed the
gain value can be a negative value (Sashiko).
- Add 'Reviewed-by: Rob Herring'
Patch 8:
- Fix error message
Patch 11:
- Clamp the value received in simple_amp_single_kctrl_put() in order
to have a more robust code (Sashiko)
Patch 14:
- Return 'unsigned int *' in simple_amp_alloc_tlv_ranges()
- Check for existing ranges entirely inside the new one in
simple_amp_check_new_range().
- Don't allow an empty ranges array. nb_ranges cannot be set to 0
anymore (Sahiko).
Patch 15:
- Don't allow an empty labels array. nb_labels cannot be set to 0
anymore (Sahiko).
Other patches:
No changes
Changes v1 -> v2
v1: https://lore.kernel.org/all/20260330101610.57942-1-herve.codina@bootlin.com/
Rebase on top of v7.1-rc1.
Patch 1:
- Add 'Acked-by: Rob Herring'
Patch 2:
- Use gpio-audio-amp-* instead of audio-gpio-amp
- Introduce mono/stereo channel distinction with gpio-audio-amp-mono
and gpio-audio-amp-stereo compatible strings (needed if the
"simple-amplifier" compatible string is deprecated in the near
future).
- Reduce the maximum numbers of gpios used for gain setting to 16.
- Use amplifier-N instead of amplifierN in examples
- Introduce gpio-ranges property and remove the no more needed
gpio-points and gpio-range properties
Other patches (full rework):
- Merge the new audio-gpio-amp driver provided in v1 into the
existing simple-amplifier driver.
- Slit modification in several commits.
- Reduce the maximum number of gpios used for gain setting to 16.
- Fix a memory leak in case of error in simple_amp_multi_add_kcontrol()
(Reported by Shahiko).
- Handle the new gpio-ranges property and drop the support for the no
more needed properties (gpio-points and gpio-range).
- Update author and copyright.
Herve Codina (17):
of: Introduce of_property_read_s32_index()
ASoC: dt-bindings: Add support for the GPIOs driven amplifier
ASoC: simple-amplifier: Remove DRV_NAME defined value
ASoC: simple-amplifier: Add missing headers
ASoC: simple-amplifier: Remove CONFIG_OF flag and of_match_ptr()
ASoC: simple-amplifier: Rename drv_event() function
ASoC: simple-amplifier: Use 'simple_amp' variable name instead of
'priv'
ASoC: simple-amplifier: Remove DAPM widgets and routes from the ASoC
component driver
ASoC: simple-amplifier: Introduce support for gpio-audio-amp
ASoC: simple-amplifier: gpio-audio-amp: Add support for extra power
supplies
ASoC: simple-amplifier: gpio-audio-amp: Add support for mute gpio
ASoC: simple-amplifier: gpio-audio-amp: Add support for bypass gpio
ASoC: simple-amplifier: gpio-audio-amp: Add support for basic gain
ASoC: simple-amplifier: gpio-audio-amp: Add support for gain-ranges
ASoC: simple-amplifier: gpio-audio-amp: Add support for gain-labels
ASoC: simple-amplifier: Update author and copyright
MAINTAINERS: Add the ASoC gpio audio amplifier entry
.../bindings/sound/gpio-audio-amp.yaml | 270 ++++++
MAINTAINERS | 7 +
include/linux/of.h | 7 +
sound/soc/codecs/simple-amplifier.c | 918 +++++++++++++++++-
4 files changed, 1176 insertions(+), 26 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/gpio-audio-amp.yaml
--
2.54.0
next reply other threads:[~2026-05-13 8:17 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-13 8:16 Herve Codina [this message]
2026-05-13 8:16 ` [PATCH v3 01/17] of: Introduce of_property_read_s32_index() Herve Codina
2026-05-13 8:16 ` [PATCH v3 02/17] ASoC: dt-bindings: Add support for the GPIOs driven amplifier Herve Codina
2026-05-13 8:16 ` [PATCH v3 03/17] ASoC: simple-amplifier: Remove DRV_NAME defined value Herve Codina
2026-05-13 8:16 ` [PATCH v3 04/17] ASoC: simple-amplifier: Add missing headers Herve Codina
2026-05-13 8:16 ` [PATCH v3 05/17] ASoC: simple-amplifier: Remove CONFIG_OF flag and of_match_ptr() Herve Codina
2026-05-13 8:16 ` [PATCH v3 06/17] ASoC: simple-amplifier: Rename drv_event() function Herve Codina
2026-05-13 8:16 ` [PATCH v3 07/17] ASoC: simple-amplifier: Use 'simple_amp' variable name instead of 'priv' Herve Codina
2026-05-13 8:16 ` [PATCH v3 08/17] ASoC: simple-amplifier: Remove DAPM widgets and routes from the ASoC component driver Herve Codina
2026-05-13 8:16 ` [PATCH v3 09/17] ASoC: simple-amplifier: Introduce support for gpio-audio-amp Herve Codina
2026-05-13 8:16 ` [PATCH v3 10/17] ASoC: simple-amplifier: gpio-audio-amp: Add support for extra power supplies Herve Codina
2026-05-13 8:16 ` [PATCH v3 11/17] ASoC: simple-amplifier: gpio-audio-amp: Add support for mute gpio Herve Codina
2026-05-13 8:16 ` [PATCH v3 12/17] ASoC: simple-amplifier: gpio-audio-amp: Add support for bypass gpio Herve Codina
2026-05-13 8:16 ` [PATCH v3 13/17] ASoC: simple-amplifier: gpio-audio-amp: Add support for basic gain Herve Codina
2026-05-13 8:16 ` [PATCH v3 14/17] ASoC: simple-amplifier: gpio-audio-amp: Add support for gain-ranges Herve Codina
2026-05-13 8:16 ` [PATCH v3 15/17] ASoC: simple-amplifier: gpio-audio-amp: Add support for gain-labels Herve Codina
2026-05-13 8:17 ` [PATCH v3 16/17] ASoC: simple-amplifier: Update author and copyright Herve Codina
2026-05-13 8:17 ` [PATCH v3 17/17] MAINTAINERS: Add the ASoC gpio audio amplifier entry Herve Codina
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260513081702.317117-1-herve.codina@bootlin.com \
--to=herve.codina@bootlin.com \
--cc=brgl@kernel.org \
--cc=broonie@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linusw@kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=robh@kernel.org \
--cc=saravanak@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox