aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8962.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-11-04 13:48:28 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-11-04 18:47:55 -0400
commit94b88e647c795b2ba5add6d43dc7a454c6d02356 (patch)
treef75edb80ca1bf3b1bfab4f91ca4317f4f2e64bed /sound/soc/codecs/wm8962.c
parenta04e0c868058b6df7cb5b9a92b469ff72288bbc7 (diff)
ASoC: Manage thermal shutdown for WM8962
Disable the thermal shutdown circuits for headphone and speaker when the relevant outputs are not enabled in order to save current in idle modes. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm8962.c')
-rw-r--r--sound/soc/codecs/wm8962.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index cf7df9e61ef3..c9ba826ccb36 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -2679,6 +2679,8 @@ SND_SOC_DAPM_SUPPLY("TOCLK", WM8962_ADDITIONAL_CONTROL_1, 0, 0, NULL, 0),
2679SND_SOC_DAPM_SUPPLY_S("DSP2", 1, WM8962_DSP2_POWER_MANAGEMENT, 2679SND_SOC_DAPM_SUPPLY_S("DSP2", 1, WM8962_DSP2_POWER_MANAGEMENT,
2680 WM8962_DSP2_ENA_SHIFT, 0, dsp2_event, 2680 WM8962_DSP2_ENA_SHIFT, 0, dsp2_event,
2681 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), 2681 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
2682SND_SOC_DAPM_SUPPLY("TEMP_HP", WM8962_ADDITIONAL_CONTROL_4, 2, 0, NULL, 0),
2683SND_SOC_DAPM_SUPPLY("TEMP_SPK", WM8962_ADDITIONAL_CONTROL_4, 1, 0, NULL, 0),
2682 2684
2683SND_SOC_DAPM_MIXER("INPGAL", WM8962_LEFT_INPUT_PGA_CONTROL, 4, 0, 2685SND_SOC_DAPM_MIXER("INPGAL", WM8962_LEFT_INPUT_PGA_CONTROL, 4, 0,
2684 inpgal, ARRAY_SIZE(inpgal)), 2686 inpgal, ARRAY_SIZE(inpgal)),
@@ -2834,6 +2836,9 @@ static const struct snd_soc_dapm_route wm8962_intercon[] = {
2834 2836
2835 { "HPOUTL", NULL, "HPOUT" }, 2837 { "HPOUTL", NULL, "HPOUT" },
2836 { "HPOUTR", NULL, "HPOUT" }, 2838 { "HPOUTR", NULL, "HPOUT" },
2839
2840 { "HPOUTL", NULL, "TEMP_HP" },
2841 { "HPOUTR", NULL, "TEMP_HP" },
2837}; 2842};
2838 2843
2839static const struct snd_soc_dapm_route wm8962_spk_mono_intercon[] = { 2844static const struct snd_soc_dapm_route wm8962_spk_mono_intercon[] = {
@@ -2850,6 +2855,7 @@ static const struct snd_soc_dapm_route wm8962_spk_mono_intercon[] = {
2850 { "Speaker Output", NULL, "Speaker PGA" }, 2855 { "Speaker Output", NULL, "Speaker PGA" },
2851 { "Speaker Output", NULL, "SYSCLK" }, 2856 { "Speaker Output", NULL, "SYSCLK" },
2852 { "Speaker Output", NULL, "TOCLK" }, 2857 { "Speaker Output", NULL, "TOCLK" },
2858 { "Speaker Output", NULL, "TEMP_SPK" },
2853 2859
2854 { "SPKOUT", NULL, "Speaker Output" }, 2860 { "SPKOUT", NULL, "Speaker Output" },
2855}; 2861};
@@ -2878,10 +2884,12 @@ static const struct snd_soc_dapm_route wm8962_spk_stereo_intercon[] = {
2878 { "SPKOUTL Output", NULL, "SPKOUTL PGA" }, 2884 { "SPKOUTL Output", NULL, "SPKOUTL PGA" },
2879 { "SPKOUTL Output", NULL, "SYSCLK" }, 2885 { "SPKOUTL Output", NULL, "SYSCLK" },
2880 { "SPKOUTL Output", NULL, "TOCLK" }, 2886 { "SPKOUTL Output", NULL, "TOCLK" },
2887 { "SPKOUTL Output", NULL, "TEMP_SPK" },
2881 2888
2882 { "SPKOUTR Output", NULL, "SPKOUTR PGA" }, 2889 { "SPKOUTR Output", NULL, "SPKOUTR PGA" },
2883 { "SPKOUTR Output", NULL, "SYSCLK" }, 2890 { "SPKOUTR Output", NULL, "SYSCLK" },
2884 { "SPKOUTR Output", NULL, "TOCLK" }, 2891 { "SPKOUTR Output", NULL, "TOCLK" },
2892 { "SPKOUTR Output", NULL, "TEMP_SPK" },
2885 2893
2886 { "SPKOUTL", NULL, "SPKOUTL Output" }, 2894 { "SPKOUTL", NULL, "SPKOUTL Output" },
2887 { "SPKOUTR", NULL, "SPKOUTR Output" }, 2895 { "SPKOUTR", NULL, "SPKOUTR Output" },