summaryrefslogtreecommitdiffstats
path: root/sys/arm/at91/at91_pmc.c
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2010-10-06 22:40:27 +0000
committercognet <cognet@FreeBSD.org>2010-10-06 22:40:27 +0000
commit3a67028003520c808580f7ad76332264113ed3a7 (patch)
tree010ee20a0e63d75a94eab678b3d2218f57017895 /sys/arm/at91/at91_pmc.c
parent776b19482a8b1aebc00d0c1371eff3d2ed92bcd0 (diff)
downloadFreeBSD-src-3a67028003520c808580f7ad76332264113ed3a7.zip
FreeBSD-src-3a67028003520c808580f7ad76332264113ed3a7.tar.gz
Add support for the AT91SAM9260
Submitted by: Greg Ansley
Diffstat (limited to 'sys/arm/at91/at91_pmc.c')
-rw-r--r--sys/arm/at91/at91_pmc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/arm/at91/at91_pmc.c b/sys/arm/at91/at91_pmc.c
index 1f314c3..03a7a6e 100644
--- a/sys/arm/at91/at91_pmc.c
+++ b/sys/arm/at91/at91_pmc.c
@@ -331,6 +331,9 @@ at91_pmc_pll_rate(struct at91_pmc_clock *clk, uint32_t reg)
div = (reg >> clk->pll_div_shift) & clk->pll_div_mask;
mul = (reg >> clk->pll_mul_shift) & clk->pll_mul_mask;
+// printf("pll = (%d / %d) * %d = %d\n",
+// freq, div ,mul + 1, (freq/div) * (mul+1));
+
if (div != 0 && mul != 0) {
freq /= div;
freq *= mul + 1;
@@ -338,6 +341,8 @@ at91_pmc_pll_rate(struct at91_pmc_clock *clk, uint32_t reg)
freq = 0;
}
clk->hz = freq;
+
+
return (freq);
}
@@ -444,7 +449,8 @@ at91_pmc_init_clock(struct at91_pmc_softc *sc, unsigned int main_clock)
mdiv = (mckr & PMC_MCKR_MDIV_MASK) >> 8;
if (at91_is_sam9()) {
- mck.hz /= (mdiv) ? (mdiv * 2) : 1;
+ if (mdiv > 0)
+ mck.hz /= mdiv * 2;
} else
mck.hz /= (1 + mdiv);
OpenPOWER on IntegriCloud