From 0cc2e80bafc55502c34122eb32706b06e12e5409 Mon Sep 17 00:00:00 2001 From: Terry Lv Date: Fri, 8 Apr 2011 16:16:34 +0800 Subject: ENGR00141885: mx50 and mx53 reboot fail when booting from spi nor mx50 reboot fail when booting from spi nor. Reconfigure eCSPI SS signal as GPIO before reset. Signed-off-by: Terry Lv --- cpu/arm_cortexa8/mx50/interrupts.c | 9 ++++++++- cpu/arm_cortexa8/mx53/interrupts.c | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'cpu') diff --git a/cpu/arm_cortexa8/mx50/interrupts.c b/cpu/arm_cortexa8/mx50/interrupts.c index 45765073b1..0e4a49ebf2 100644 --- a/cpu/arm_cortexa8/mx50/interrupts.c +++ b/cpu/arm_cortexa8/mx50/interrupts.c @@ -2,7 +2,7 @@ * (C) Copyright 2007 * Sascha Hauer, Pengutronix * - * Copyright (C) 2010 Freescale Semiconductor, Inc. + * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. * * See file CREDITS for list of people who contributed to this * project. @@ -26,6 +26,7 @@ #include #include #include +#include /* nothing really to do with interrupts, just starts up a counter. */ int interrupt_init(void) @@ -35,5 +36,11 @@ int interrupt_init(void) void reset_cpu(ulong addr) { + /* Reconfigure eCSPI SS signal as GPIO before reset */ + /* de-select SS0 of instance: CSPI */ + mxc_request_iomux(MX50_PIN_CSPI_SS0, IOMUX_CONFIG_ALT1); + /* de-select SS1 of instance: eCSPI1 */ + mxc_request_iomux(MX50_PIN_ECSPI1_MOSI, IOMUX_CONFIG_ALT1); + __REG16(WDOG1_BASE_ADDR) = 4; } diff --git a/cpu/arm_cortexa8/mx53/interrupts.c b/cpu/arm_cortexa8/mx53/interrupts.c index 0b7bd95df9..0cc24db44c 100644 --- a/cpu/arm_cortexa8/mx53/interrupts.c +++ b/cpu/arm_cortexa8/mx53/interrupts.c @@ -2,7 +2,7 @@ * (C) Copyright 2007 * Sascha Hauer, Pengutronix * - * Copyright (C) 2010 Freescale Semiconductor, Inc. + * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. * * See file CREDITS for list of people who contributed to this * project. @@ -26,6 +26,7 @@ #include #include #include +#include /* nothing really to do with interrupts, just starts up a counter. */ int interrupt_init(void) @@ -35,5 +36,10 @@ int interrupt_init(void) void reset_cpu(ulong addr) { + /* de-select SS0 of instance: eCSPI1 */ + mxc_request_iomux(MX53_PIN_EIM_EB2, IOMUX_CONFIG_ALT1); + /* de-select SS1 of instance: eCSPI1 */ + mxc_request_iomux(MX53_PIN_EIM_D19, IOMUX_CONFIG_ALT1); + __REG16(WDOG1_BASE_ADDR) = 4; } -- cgit v1.2.3