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 <js_at_ng@scharsoft.de>
master
Jens Scharsig 15 years ago committed by Tom Rix
parent 637833c2d6
commit 7cedb29872
  1. 7
      cpu/arm926ejs/at91/clock.c
  2. 3
      include/asm-arm/arch-at91/at91_pmc.h

@ -157,9 +157,10 @@ int at91_clock_init(unsigned long main_clock)
*/ */
if (!main_clock) { if (!main_clock) {
do { do {
tmp = at91_sys_read(AT91_CKGR_MCFR); tmp = readl(&pmc->mcfr);
} while (!(tmp & AT91_PMC_MAINRDY)); } while (!(tmp & AT91_PMC_MCFR_MAINRDY));
main_clock = (tmp & AT91_PMC_MAINF) * (AT91_SLOW_CLOCK / 16); tmp &= AT91_PMC_MCFR_MAINF_MASK;
main_clock = tmp * (AT91_SLOW_CLOCK / 16);
} }
#endif #endif
main_clk_rate_hz = main_clock; main_clk_rate_hz = main_clock;

@ -71,6 +71,9 @@ typedef struct at91_pmc {
#define AT91_PMC_PLLBR_USBDIV_2 0x10000000 #define AT91_PMC_PLLBR_USBDIV_2 0x10000000
#define AT91_PMC_PLLBR_USBDIV_4 0x20000000 #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_SLOW 0x00000000
#define AT91_PMC_MCKR_CSS_MAIN 0x00000001 #define AT91_PMC_MCKR_CSS_MAIN 0x00000001
#define AT91_PMC_MCKR_CSS_PLLA 0x00000002 #define AT91_PMC_MCKR_CSS_PLLA 0x00000002

Loading…
Cancel
Save