summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/at91sam9260.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-at91/at91sam9260.c')
-rw-r--r--arch/arm/mach-at91/at91sam9260.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index 8975bf4665..56327a2c47 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -1,8 +1,11 @@
#include <common.h>
#include <gpio.h>
#include <init.h>
+#include <restart.h>
#include <mach/hardware.h>
#include <mach/at91_pmc.h>
+#include <mach/board.h>
+#include <mach/at91_rstc.h>
#include "generic.h"
#include "clock.h"
@@ -221,6 +224,12 @@ static void __init at91sam9260_register_clocks(void)
clk_register(&pck1);
}
+static void at91sam9260_restart(struct restart_handler *rst)
+{
+ at91sam9_reset(IOMEM(AT91SAM9260_BASE_SDRAMC),
+ IOMEM(AT91SAM9260_BASE_RSTC + AT91_RSTC_CR));
+}
+
static void at91sam9260_initialize(void)
{
/* Register the processor-specific clocks */
@@ -233,6 +242,8 @@ static void at91sam9260_initialize(void)
at91_add_pit(AT91SAM9260_BASE_PIT);
at91_add_sam9_smc(DEVICE_ID_SINGLE, AT91SAM9260_BASE_SMC, 0x200);
+
+ restart_handler_register_fn(at91sam9260_restart);
}
static int at91sam9260_setup(void)