diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-12-02 12:37:00 (GMT) |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-12-02 15:09:20 (GMT) |
commit | 10a2b662c4b49e91a09e225071d3c3508cd6ee83 (patch) | |
tree | 112064ea41e577135412f530e61fdc667e817317 /sound/soc/codecs/wm_adsp.c | |
parent | e436cadd65c51a57639522f334269793b1c68e22 (diff) | |
download | linux-fsl-qoriq-10a2b662c4b49e91a09e225071d3c3508cd6ee83.tar.xz |
ASoC: adsp: Keep ADSP2 memory powered off when not in use
Turn off the ADSP memory when we aren't using it, saving a small amount of
power.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm_adsp.c')
-rw-r--r-- | sound/soc/codecs/wm_adsp.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index a41742d..3a8d75b 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c @@ -629,6 +629,17 @@ int wm_adsp2_init(struct wm_adsp *adsp, bool dvfs) { int ret; + /* + * Disable the DSP memory by default when in reset for a small + * power saving. + */ + ret = regmap_update_bits(adsp->regmap, adsp->base + ADSP2_CONTROL, + ADSP2_MEM_ENA, 0); + if (ret != 0) { + adsp_err(adsp, "Failed to clear memory retention: %d\n", ret); + return ret; + } + if (dvfs) { adsp->dvfs = devm_regulator_get(adsp->dev, "DCVDD"); if (IS_ERR(adsp->dvfs)) { |