aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/at91sam9260.c
diff options
context:
space:
mode:
authorNicolas Ferre <nicolas.ferre@atmel.com>2010-10-14 13:14:00 -0400
committerNicolas Ferre <nicolas.ferre@atmel.com>2010-10-26 05:32:48 -0400
commitbb413db591d53c29292868577068fa822b84da82 (patch)
tree4a60e1015dd56ec54f00a809a9f3fffa99fa38a2 /arch/arm/mach-at91/at91sam9260.c
parent1345562b449e95e2098cc60eb0eed6d2415cd0b0 (diff)
AT91: reset: extend alternate reset procedure to several chips
Several at91sam9 chips need the alternate reset procedure to be sure to halt SDRAM smoothly before resetting the chip. This is an extension of previous patch "Fix AT91SAM9G20 reset" to all chips affected. 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.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index dfd3529cd10..195208b3002 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -25,8 +25,6 @@
25#include "generic.h" 25#include "generic.h"
26#include "clock.h" 26#include "clock.h"
27 27
28extern void at91sam9_alt_reset(void);
29
30static struct map_desc at91sam9260_io_desc[] __initdata = { 28static struct map_desc at91sam9260_io_desc[] __initdata = {
31 { 29 {
32 .virtual = AT91_VA_BASE_SYS, 30 .virtual = AT91_VA_BASE_SYS,
@@ -281,11 +279,6 @@ static struct at91_gpio_bank at91sam9260_gpio[] = {
281 } 279 }
282}; 280};
283 281
284static void at91sam9260_reset(void)
285{
286 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
287}
288
289static void at91sam9260_poweroff(void) 282static void at91sam9260_poweroff(void)
290{ 283{
291 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW); 284 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
@@ -329,11 +322,7 @@ void __init at91sam9260_initialize(unsigned long main_clock)
329 else 322 else
330 iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc)); 323 iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
331 324
332 if (cpu_is_at91sam9g20()) 325 at91_arch_reset = at91sam9_alt_reset;
333 at91_arch_reset = at91sam9_alt_reset;
334 else
335 at91_arch_reset = at91sam9260_reset;
336
337 pm_power_off = at91sam9260_poweroff; 326 pm_power_off = at91sam9260_poweroff;
338 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1) 327 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
339 | (1 << AT91SAM9260_ID_IRQ2); 328 | (1 << AT91SAM9260_ID_IRQ2);