ASoC: ssm4567: Add support for disabling the boost stage
authorLars-Peter Clausen <lars@metafoo.de>
Thu, 6 Nov 2014 14:59:24 +0000 (15:59 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 6 Nov 2014 16:05:10 +0000 (16:05 +0000)
This patch adds a switch to enable/disable boost stage of the output
amplifier. Applications that know that they do not need the output
amplifier boost stage can disable it to conserve a bit of power.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/ssm4567.c

index 217667926a77036adbadab1c94a25e33d6a8244f..a984485108cd10a028b45f1a7974c294c43ba3ed 100644 (file)
@@ -165,13 +165,20 @@ static const struct snd_kcontrol_new ssm4567_snd_controls[] = {
                5, 1, 0),
 };
 
+static const struct snd_kcontrol_new ssm4567_amplifier_boost_control =
+       SOC_DAPM_SINGLE("Switch", SSM4567_REG_POWER_CTRL, 1, 1, 1);
+
 static const struct snd_soc_dapm_widget ssm4567_dapm_widgets[] = {
        SND_SOC_DAPM_DAC("DAC", "HiFi Playback", SSM4567_REG_POWER_CTRL, 2, 1),
+       SND_SOC_DAPM_SWITCH("Amplifier Boost", SSM4567_REG_POWER_CTRL, 3, 1,
+               &ssm4567_amplifier_boost_control),
 
        SND_SOC_DAPM_OUTPUT("OUT"),
 };
 
 static const struct snd_soc_dapm_route ssm4567_routes[] = {
+       { "OUT", NULL, "Amplifier Boost" },
+       { "Amplifier Boost", "Switch", "DAC" },
        { "OUT", NULL, "DAC" },
 };