aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/at91sam9260.c
diff options
context:
space:
mode:
authorPeter Horton <phorton@bitbox.co.uk>2010-05-28 11:37:26 -0400
committerNicolas Ferre <nicolas.ferre@atmel.com>2010-10-26 05:32:47 -0400
commit184c82e853704ee98e729af0f36a8539355c0e2e (patch)
tree927e9c1a4ab1a339b842619709fa852ae1926003 /arch/arm/mach-at91/at91sam9260.c
parentabf0c1bc94cb16f9eed331ea98ac151d08adf4fe (diff)
AT91: Fix AT91SAM9G20 reset as per the errata in the data sheet
If the SDRAM is not cleanly shutdown before reset it can be left driving the bus, which then stops the bootloader booting from NAND. Signed-off-by: Peter Horton <phorton@bitbox.co.uk> [nicolas.ferre@atmel.com: change file header line order] Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Diffstat (limited to 'arch/arm/mach-at91/at91sam9260.c')
-rw-r--r--arch/arm/mach-at91/at91sam9260.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index 0894f1077be7..f8844506eabb 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -25,6 +25,8 @@
25#include "generic.h" 25#include "generic.h"
26#include "clock.h" 26#include "clock.h"
27 27
28extern void at91sam9g20_reset(void);
29
28static struct map_desc at91sam9260_io_desc[] __initdata = { 30static struct map_desc at91sam9260_io_desc[] __initdata = {
29 { 31 {
30 .virtual = AT91_VA_BASE_SYS, 32 .virtual = AT91_VA_BASE_SYS,
@@ -327,7 +329,11 @@ void __init at91sam9260_initialize(unsigned long main_clock)
327 else 329 else
328 iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc)); 330 iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
329 331
330 at91_arch_reset = at91sam9260_reset; 332 if (cpu_is_at91sam9g20())
333 at91_arch_reset = at91sam9g20_reset;
334 else
335 at91_arch_reset = at91sam9260_reset;
336
331 pm_power_off = at91sam9260_poweroff; 337 pm_power_off = at91sam9260_poweroff;
332 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1) 338 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
333 | (1 << AT91SAM9260_ID_IRQ2); 339 | (1 << AT91SAM9260_ID_IRQ2);