Skip to content

Commit

Permalink
ASoC: arizona: Support variable FLL VCO multipliers
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Mark Brown committed Jul 10, 2012
1 parent a1f34af commit 2b4d39f
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
6 changes: 3 additions & 3 deletions sound/soc/codecs/arizona.c
Original file line number Diff line number Diff line change
Expand Up @@ -734,17 +734,17 @@ 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",
Fout);
return -EINVAL;
}
}
target = Fout * div;
target = Fout * div / fll->vco_mult;
cfg->outdiv = div;

arizona_fll_dbg(fll, "Fvco=%dHz\n", target);
Expand Down
1 change: 1 addition & 0 deletions sound/soc/codecs/arizona.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ struct arizona_fll {
struct arizona *arizona;
int id;
unsigned int base;
unsigned int vco_mult;
struct completion lock;
struct completion ok;

Expand Down
3 changes: 3 additions & 0 deletions sound/soc/codecs/wm5102.c
Original file line number Diff line number Diff line change
Expand Up @@ -853,6 +853,9 @@ static int __devinit wm5102_probe(struct platform_device *pdev)

wm5102->core.arizona = arizona;

for (i = 0; i < ARRAY_SIZE(wm5102->fll); i++)
wm5102->fll[i].vco_mult = 1;

arizona_init_fll(arizona, 1, ARIZONA_FLL1_CONTROL_1 - 1,
ARIZONA_IRQ_FLL1_LOCK, ARIZONA_IRQ_FLL1_CLOCK_OK,
&wm5102->fll[0]);
Expand Down

0 comments on commit 2b4d39f

Please sign in to comment.