
From: Alessandro Rubini rubini@unipv.it
The timer decrements and READ_TIMER() negates the value read. Writing 0 in reset_timer() is this wrong, as a readback before 400us will read back 0 and will report 1780 seconds, so nand operations did timeout. This patch writes ~0 in reset_timer to prevent this.
Signed-off-by: Alessandro Rubini rubini@unipv.it Acked-by: Andrea Gallo andrea.gallo@stericsson.com ---
This must be applied for nand to work. It's a simple bugfix so I think it got simply forgotten.
BTW: I got no feedback for the lcd/keypad stuff, neither positive nor negative. Shall I repost my current status in that regard?
thanks /alessandro
cpu/arm926ejs/nomadik/timer.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/cpu/arm926ejs/nomadik/timer.c b/cpu/arm926ejs/nomadik/timer.c index 16067c9..2115b71 100644 --- a/cpu/arm926ejs/nomadik/timer.c +++ b/cpu/arm926ejs/nomadik/timer.c @@ -46,10 +46,10 @@ int timer_init(void) return 0; }
-/* Restart counting from 0 */ +/* Restart counting from ~0 (can't be 0, since READ_TIMER negates) */ void reset_timer(void) { - writel(0, CONFIG_SYS_TIMERBASE + MTU_LR(0)); /* Immediate effect */ + writel(~0, CONFIG_SYS_TIMERBASE + MTU_LR(0)); /* Immediate effect */ }
/* Return how many HZ passed since "base" */