]> git.sur5r.net Git - u-boot/commitdiff
arm:reset: call the reset_misc() before the cpu reset
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Mon, 1 Sep 2014 11:50:48 +0000 (13:50 +0200)
committerMinkyu Kang <mk7.kang@samsung.com>
Fri, 5 Sep 2014 04:58:49 +0000 (13:58 +0900)
On an Odroid U3 board, the SOC is unable to reset the eMMC card
in the DWMMC mode by the cpu software reset. Manual reset of the card
by switching proper gpio pin - fixes this issue.

Such solution needs to add a call to pre reset function.
This is done by the reset_misc() function, which is called before reset_cpu().
The function reset_misc() is a weak function.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Cc: Tom Rini <trini@ti.com>
Changes v4:
- arch/arm/reset: fix weak function attribute to proper style
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/lib/reset.c
include/common.h

index 7a0358071ced67b39f7f9f77cf261c827659e276..9a95f085044ade0c8f62fe489263c455b08df221 100644 (file)
 
 #include <common.h>
 
+__weak void reset_misc(void)
+{
+}
+
 int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        puts ("resetting ...\n");
@@ -30,6 +34,8 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        udelay (50000);                         /* wait 50 ms */
 
        disable_interrupts();
+
+       reset_misc();
        reset_cpu(0);
 
        /*NOTREACHED*/
index c7e51ca41c98214a7fc7338c09ddf97e937082d3..97c04df588ed641d50435f571342e0bb8b640a34 100644 (file)
@@ -616,6 +616,7 @@ int checkicache   (void);
 int    checkdcache   (void);
 void   upmconfig     (unsigned int, unsigned int *, unsigned int);
 ulong  get_tbclk     (void);
+void   reset_misc    (void);
 void   reset_cpu     (ulong addr);
 #if defined (CONFIG_OF_LIBFDT) && defined (CONFIG_OF_BOARD_SETUP)
 void ft_cpu_setup(void *blob, bd_t *bd);