ARMV7: OMAP3: Fix broken reset command on OMAP36XX/37XX and OMAP4
authorSteve Sakoman <steve@sakoman.com>
Wed, 25 Aug 2010 20:22:44 +0000 (13:22 -0700)
committerSandeep Paulraj <s-paulraj@ti.com>
Wed, 8 Sep 2010 18:51:18 +0000 (14:51 -0400)
Using the reset command on OMAP36XX/37XX and OMAP4 caused a hang. This
patch uses the reset bit appropriate for each CPU architecture.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
arch/arm/cpu/armv7/omap-common/reset.S
arch/arm/include/asm/arch-omap3/cpu.h
arch/arm/include/asm/arch-omap4/omap4.h

index a53c408..838b122 100644 (file)
 reset_cpu:
        ldr     r1, rstctl                      @ get addr for global reset
                                                @ reg
-       mov     r3, #0x2                        @ full reset pll + mpu
+       ldr     r3, rstbit                      @ sw reset bit
        str     r3, [r1]                        @ force reset
        mov     r0, r0
 _loop_forever:
        b       _loop_forever
 rstctl:
        .word   PRM_RSTCTRL
+rstbit:
+       .word   PRM_RSTCTRL_RESET
index 99da756..962d6d4 100644 (file)
@@ -419,6 +419,7 @@ struct prm {
 };
 #else /* __ASSEMBLY__ */
 #define PRM_RSTCTRL            0x48307250
+#define PRM_RSTCTRL_RESET      0x04
 #endif /* __ASSEMBLY__ */
 #endif /* __KERNEL_STRICT_NAMES */
 
index 79ff22c..d0c808d 100644 (file)
@@ -88,6 +88,7 @@
 #define PRM_DEVICE_BASE                (PRM_BASE + 0x1B00)
 
 #define PRM_RSTCTRL            PRM_DEVICE_BASE
+#define PRM_RSTCTRL_RESET      0x01
 
 #ifndef __ASSEMBLY__