Skip to content

Commit

Permalink
ASoC: Stop WM8903 SYSCLK when suspending
Browse files Browse the repository at this point in the history
This will save some additional power.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Mark Brown committed Dec 10, 2008
1 parent d58d5d5 commit 3b1228a
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions sound/soc/codecs/wm8903.c
Original file line number Diff line number Diff line change
Expand Up @@ -997,6 +997,9 @@ static int wm8903_set_bias_level(struct snd_soc_codec *codec,

case SND_SOC_BIAS_STANDBY:
if (codec->bias_level == SND_SOC_BIAS_OFF) {
wm8903_write(codec, WM8903_CLOCK_RATES_2,
WM8903_CLK_SYS_ENA);

wm8903_run_sequence(codec, 0);
wm8903_sync_reg_cache(codec, codec->reg_cache);

Expand Down Expand Up @@ -1027,6 +1030,9 @@ static int wm8903_set_bias_level(struct snd_soc_codec *codec,

case SND_SOC_BIAS_OFF:
wm8903_run_sequence(codec, 32);
reg = wm8903_read(codec, WM8903_CLOCK_RATES_2);
reg &= ~WM8903_CLK_SYS_ENA;
wm8903_write(codec, WM8903_CLOCK_RATES_2, reg);
break;
}

Expand Down Expand Up @@ -1619,9 +1625,6 @@ static int wm8903_i2c_probe(struct i2c_client *i2c,

wm8903_reset(codec);

/* SYSCLK is required for pretty much anything */
wm8903_write(codec, WM8903_CLOCK_RATES_2, WM8903_CLK_SYS_ENA);

/* power on device */
wm8903_set_bias_level(codec, SND_SOC_BIAS_STANDBY);

Expand Down

0 comments on commit 3b1228a

Please sign in to comment.