From 7cedb29872069e782f9f97cef4ab1232736e4c85 Mon Sep 17 00:00:00 2001 From: Jens Scharsig Date: Sun, 14 Feb 2010 12:20:43 +0100 Subject: [PATCH] updates the at91 main_clock calculation * updates the conditional main_clock calculation (if AT91_MAIN_CLOCK defined) to c structure SoC access * add need register flags Signed-off-by: Jens Scharsig --- cpu/arm926ejs/at91/clock.c | 7 ++++--- include/asm-arm/arch-at91/at91_pmc.h | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cpu/arm926ejs/at91/clock.c b/cpu/arm926ejs/at91/clock.c index 444d42d9ec..b06d7601b9 100644 --- a/cpu/arm926ejs/at91/clock.c +++ b/cpu/arm926ejs/at91/clock.c @@ -157,9 +157,10 @@ int at91_clock_init(unsigned long main_clock) */ if (!main_clock) { do { - tmp = at91_sys_read(AT91_CKGR_MCFR); - } while (!(tmp & AT91_PMC_MAINRDY)); - main_clock = (tmp & AT91_PMC_MAINF) * (AT91_SLOW_CLOCK / 16); + tmp = readl(&pmc->mcfr); + } while (!(tmp & AT91_PMC_MCFR_MAINRDY)); + tmp &= AT91_PMC_MCFR_MAINF_MASK; + main_clock = tmp * (AT91_SLOW_CLOCK / 16); } #endif main_clk_rate_hz = main_clock; diff --git a/include/asm-arm/arch-at91/at91_pmc.h b/include/asm-arm/arch-at91/at91_pmc.h index 369b5d72ef..680fe33270 100644 --- a/include/asm-arm/arch-at91/at91_pmc.h +++ b/include/asm-arm/arch-at91/at91_pmc.h @@ -71,6 +71,9 @@ typedef struct at91_pmc { #define AT91_PMC_PLLBR_USBDIV_2 0x10000000 #define AT91_PMC_PLLBR_USBDIV_4 0x20000000 +#define AT91_PMC_MCFR_MAINRDY 0x00010000 +#define AT91_PMC_MCFR_MAINF_MASK 0x0000FFFF + #define AT91_PMC_MCKR_CSS_SLOW 0x00000000 #define AT91_PMC_MCKR_CSS_MAIN 0x00000001 #define AT91_PMC_MCKR_CSS_PLLA 0x00000002 -- 2.25.1