diff options
Diffstat (limited to 'arch/arm/cpu/pxa/pxa2xx.c')
-rw-r--r-- | arch/arm/cpu/pxa/pxa2xx.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/arch/arm/cpu/pxa/pxa2xx.c b/arch/arm/cpu/pxa/pxa2xx.c index 0b28f0a3ef..002ff7988b 100644 --- a/arch/arm/cpu/pxa/pxa2xx.c +++ b/arch/arm/cpu/pxa/pxa2xx.c @@ -10,6 +10,8 @@ */ #include <common.h> +#include <cpu_func.h> +#include <irq_func.h> #include <asm/arch/pxa-regs.h> #include <asm/io.h> #include <asm/system.h> @@ -39,13 +41,6 @@ int cleanup_before_linux(void) return 0; } -void pxa_wait_ticks(int ticks) -{ - writel(0, OSCR); - while (readl(OSCR) < ticks) - asm volatile("" : : : "memory"); -} - inline void writelrb(uint32_t val, uint32_t addr) { writel(val, addr); @@ -136,8 +131,11 @@ void pxa2xx_dram_init(void) writelrb(CONFIG_SYS_MDCNFG_VAL & ~(MDCNFG_DE0 | MDCNFG_DE1 | MDCNFG_DE2 | MDCNFG_DE3), MDCNFG); + /* Wait for the clock to the SDRAMs to stabilize, 100..200 usec. */ - pxa_wait_ticks(0x300); + writel(0, OSCR); + while (readl(OSCR) < 0x300) + asm volatile("" : : : "memory"); /* * 8) Trigger a number (usually 8) refresh cycles by attempting |