diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-11-04 13:48:28 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-11-04 18:47:55 -0400 |
commit | 94b88e647c795b2ba5add6d43dc7a454c6d02356 (patch) | |
tree | f75edb80ca1bf3b1bfab4f91ca4317f4f2e64bed /sound/soc/codecs/wm8962.c | |
parent | a04e0c868058b6df7cb5b9a92b469ff72288bbc7 (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.c | 8 |
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), | |||
2679 | SND_SOC_DAPM_SUPPLY_S("DSP2", 1, WM8962_DSP2_POWER_MANAGEMENT, | 2679 | SND_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), |
2682 | SND_SOC_DAPM_SUPPLY("TEMP_HP", WM8962_ADDITIONAL_CONTROL_4, 2, 0, NULL, 0), | ||
2683 | SND_SOC_DAPM_SUPPLY("TEMP_SPK", WM8962_ADDITIONAL_CONTROL_4, 1, 0, NULL, 0), | ||
2682 | 2684 | ||
2683 | SND_SOC_DAPM_MIXER("INPGAL", WM8962_LEFT_INPUT_PGA_CONTROL, 4, 0, | 2685 | SND_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 | ||
2839 | static const struct snd_soc_dapm_route wm8962_spk_mono_intercon[] = { | 2844 | static 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" }, |