summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2010-04-20 04:36:11 (GMT)
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-04-20 16:41:27 (GMT)
commit7d48a6acbcf5325a2551e948bd1557a46dec4c76 (patch)
treec19c1adf68c761e6aa085169eeb458aa54bf08ac
parent136ff2a272ad4bee33bf85f8c490ff8a2dd08f96 (diff)
downloadlinux-7d48a6acbcf5325a2551e948bd1557a46dec4c76.tar.xz
ASoC: Set full range of WM8994 FLL Fratio values
Use all the available Fratio values when configuring the WM8994 FLL, not just 0 and 3, following more complete characterisation of the device performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--sound/soc/codecs/wm8994.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index a27b2ff..8d3ea9b 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -2784,9 +2784,18 @@ static int wm8994_get_fll_config(struct fll_div *fll,
if (freq_in > 1000000) {
fll->fll_fratio = 0;
- } else {
+ } else if (freq_in > 256000) {
+ fll->fll_fratio = 1;
+ freq_in *= 2;
+ } else if (freq_in > 128000) {
+ fll->fll_fratio = 2;
+ freq_in *= 4;
+ } else if (freq_in > 64000) {
fll->fll_fratio = 3;
freq_in *= 8;
+ } else {
+ fll->fll_fratio = 4;
+ freq_in *= 16;
}
pr_debug("FLL_FRATIO=%d, Fref=%dHz\n", fll->fll_fratio, freq_in);