diff options
Diffstat (limited to 'arch/arm/mach-at91/at91sam9261.c')
-rw-r--r-- | arch/arm/mach-at91/at91sam9261.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c index 35aaa9c96a..4abc556354 100644 --- a/arch/arm/mach-at91/at91sam9261.c +++ b/arch/arm/mach-at91/at91sam9261.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" @@ -213,6 +216,12 @@ static void at91sam9261_register_clocks(void) clk_register(&hck1); } +static void at91sam9261_restart(struct restart_handler *rst) +{ + at91sam9_reset(IOMEM(AT91SAM9261_BASE_SDRAMC), + IOMEM(AT91SAM9261_BASE_RSTC + AT91_RSTC_CR)); +} + static void at91sam9261_initialize(void) { /* Register the processor-specific clocks */ @@ -225,6 +234,8 @@ static void at91sam9261_initialize(void) at91_add_pit(AT91SAM9261_BASE_PIT); at91_add_sam9_smc(DEVICE_ID_SINGLE, AT91SAM9261_BASE_SMC, 0x200); + + restart_handler_register_fn(at91sam9261_restart); } static int at91sam9261_setup(void) |