diff options
author | Peter Horton <phorton@bitbox.co.uk> | 2010-05-28 16:37:26 +0100 |
---|---|---|
committer | Nicolas Ferre <nicolas.ferre@atmel.com> | 2010-10-26 11:32:47 +0200 |
commit | 184c82e853704ee98e729af0f36a8539355c0e2e (patch) | |
tree | 927e9c1a4ab1a339b842619709fa852ae1926003 /arch/arm/mach-at91/at91sam9260.c | |
parent | abf0c1bc94cb16f9eed331ea98ac151d08adf4fe (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.c | 8 |
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 @@ #include "generic.h" #include "clock.h" +extern void at91sam9g20_reset(void); + static struct map_desc at91sam9260_io_desc[] __initdata = { { .virtual = AT91_VA_BASE_SYS, @@ -327,7 +329,11 @@ void __init at91sam9260_initialize(unsigned long main_clock) else iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc)); - at91_arch_reset = at91sam9260_reset; + if (cpu_is_at91sam9g20()) + at91_arch_reset = at91sam9g20_reset; + else + at91_arch_reset = at91sam9260_reset; + pm_power_off = at91sam9260_poweroff; at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1) | (1 << AT91SAM9260_ID_IRQ2); |