summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/arizona.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-10 17:03:46 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-10 17:17:35 +0100
commit2b4d39fc2a80e271ac8d44fccd02277a4b63c557 (patch)
tree9d4638752ae0466653fdec8015bde4128180b2cd /sound/soc/codecs/arizona.c
parenta1f34af0ec35e3131d65e0ae4cec6b048cba3e88 (diff)
downloadblackbird-op-linux-2b4d39fc2a80e271ac8d44fccd02277a4b63c557.tar.gz
blackbird-op-linux-2b4d39fc2a80e271ac8d44fccd02277a4b63c557.zip
ASoC: arizona: Support variable FLL VCO multipliers
Some Arizona chips have a higher frequency for the FLL VCO, support this in the common code. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/arizona.c')
-rw-r--r--sound/soc/codecs/arizona.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/soc/codecs/arizona.c b/sound/soc/codecs/arizona.c
index f3680c374347..5c9cacaf2d52 100644
--- a/sound/soc/codecs/arizona.c
+++ b/sound/soc/codecs/arizona.c
@@ -734,9 +734,9 @@ static int arizona_calc_fll(struct arizona_fll *fll,
/* Apply the division for our remaining calculations */
Fref /= div;
- /* Fvco should be 90-100MHz; don't check the upper bound */
+ /* Fvco should be over the targt; don't check the upper bound */
div = 1;
- while (Fout * div < 90000000) {
+ while (Fout * div < 90000000 * fll->vco_mult) {
div++;
if (div > 7) {
arizona_fll_err(fll, "No FLL_OUTDIV for Fout=%uHz\n",
@@ -744,7 +744,7 @@ static int arizona_calc_fll(struct arizona_fll *fll,
return -EINVAL;
}
}
- target = Fout * div;
+ target = Fout * div / fll->vco_mult;
cfg->outdiv = div;
arizona_fll_dbg(fll, "Fvco=%dHz\n", target);
OpenPOWER on IntegriCloud