diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2012-11-23 16:55:01 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-11-26 08:30:41 +0100 |
commit | c61b15ffd778e50f5da435dbba173161b39c9051 (patch) | |
tree | 644f5c021388790512d2a4a5c8dc830b7efccea7 /arch | |
parent | c7a729aefe13104b6f3a9f2150a9e993bb510d43 (diff) | |
download | barebox-c61b15ffd778e50f5da435dbba173161b39c9051.tar.gz barebox-c61b15ffd778e50f5da435dbba173161b39c9051.tar.xz |
at91: fix timer rate
today the timer rate is hardcoded to 6MHz which is wrong the PIT rate is MCK / 16
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-at91/at91sam926x_time.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c index 7411ad8da2..7425e0a107 100644 --- a/arch/arm/mach-at91/at91sam926x_time.c +++ b/arch/arm/mach-at91/at91sam926x_time.c @@ -34,6 +34,7 @@ #include <mach/at91_rstc.h> #include <mach/io.h> #include <io.h> +#include <linux/clk.h> uint64_t at91sam9_clocksource_read(void) { @@ -48,16 +49,20 @@ static struct clocksource cs = { static int clocksource_init (void) { + u32 pit_rate; + /* * Enable PITC Clock * The clock is already enabled for system controller in boot */ at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS); + pit_rate = clk_get_rate(clk_get(NULL, "mck")) / 16; + /* Enable PITC */ at91_sys_write(AT91_PIT_MR, 0xfffff | AT91_PIT_PITEN); - cs.mult = clocksource_hz2mult(1000000 * 6, cs.shift); + cs.mult = clocksource_hz2mult(pit_rate, cs.shift); init_clock(&cs); |