diff mbox series

[v3,4/4] ASoC: cs35l45: Add AMP Enable Switch control

Message ID 20230831162042.471801-4-vkarpovi@opensource.cirrus.com (mailing list archive)
State Accepted
Commit c3c9b17d27887f7b2f6b85d0a364b009b8436539
Headers show
Series [v3,1/4] ASoC: cs35l45: Checks index of cs35l45_irqs[] | expand

Commit Message

Vlad Karpovich Aug. 31, 2023, 4:20 p.m. UTC
The "AMP Enable Switch" is useful in systems with multiple
amplifiers connected to the same audio bus
but not all of them are needed for all use cases.

Signed-off-by: Vlad Karpovich <vkarpovi@opensource.cirrus.com>
---
 sound/soc/codecs/cs35l45.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Ricardo Rivera-Matos Sept. 7, 2023, 7:49 p.m. UTC | #1
> On Sep 1, 2023, at 3:50 AM, Charles Keepax <ckeepax@opensource.cirrus.com> wrote:
> 
> On Thu, Aug 31, 2023 at 11:20:42AM -0500, Vlad Karpovich wrote:
>> The "AMP Enable Switch" is useful in systems with multiple
>> amplifiers connected to the same audio bus
>> but not all of them are needed for all use cases.
>> 
>> Signed-off-by: Vlad Karpovich <vkarpovi@opensource.cirrus.com>
>> ---
> 
> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> 
> Thanks,
> Charles

Acked-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
Mark Brown Sept. 11, 2023, 12:27 a.m. UTC | #2
On Thu, Aug 31, 2023 at 11:20:42AM -0500, Vlad Karpovich wrote:
> The "AMP Enable Switch" is useful in systems with multiple
> amplifiers connected to the same audio bus
> but not all of them are needed for all use cases.

This doesn't apply against current code, please check and resend.
diff mbox series

Patch

diff --git a/sound/soc/codecs/cs35l45.c b/sound/soc/codecs/cs35l45.c
index 4abc922ef210..f8646de20c36 100644
--- a/sound/soc/codecs/cs35l45.c
+++ b/sound/soc/codecs/cs35l45.c
@@ -417,6 +417,8 @@  static const struct snd_kcontrol_new cs35l45_dsp_muxes[] = {
 static const struct snd_kcontrol_new cs35l45_dac_muxes[] = {
 	SOC_DAPM_ENUM("DACPCM Source", cs35l45_dacpcm_enums[0]),
 };
+static const struct snd_kcontrol_new amp_en_ctl =
+	SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0);
 
 static const struct snd_soc_dapm_widget cs35l45_dapm_widgets[] = {
 	SND_SOC_DAPM_SPK("DSP1 Preload", NULL),
@@ -479,6 +481,8 @@  static const struct snd_soc_dapm_widget cs35l45_dapm_widgets[] = {
 
 	SND_SOC_DAPM_MUX("DACPCM Source", SND_SOC_NOPM, 0, 0, &cs35l45_dac_muxes[0]),
 
+	SND_SOC_DAPM_SWITCH("AMP Enable", SND_SOC_NOPM, 0, 0, &amp_en_ctl),
+
 	SND_SOC_DAPM_OUT_DRV("AMP", SND_SOC_NOPM, 0, 0, NULL, 0),
 
 	SND_SOC_DAPM_OUTPUT("SPK"),
@@ -586,7 +590,8 @@  static const struct snd_soc_dapm_route cs35l45_dapm_routes[] = {
 
 	CS35L45_DAC_MUX_ROUTE("DACPCM"),
 
-	{ "SPK", NULL, "AMP"},
+	{ "AMP Enable", "Switch", "AMP" },
+	{ "SPK", NULL, "AMP Enable"},
 };
 
 static const char * const amplifier_mode_texts[] = {"SPK", "RCV"};