Merge /spare/repo/netdev-2.6 branch 'ieee80211'
[powerpc.git] / include / asm-arm / arch-omap / system.h
index 17a2c48..ff37bc2 100644 (file)
@@ -5,7 +5,9 @@
 #ifndef __ASM_ARCH_SYSTEM_H
 #define __ASM_ARCH_SYSTEM_H
 #include <linux/config.h>
+#include <asm/mach-types.h>
 #include <asm/arch/hardware.h>
+#include <asm/mach-types.h>
 
 static inline void arch_idle(void)
 {
@@ -14,7 +16,24 @@ static inline void arch_idle(void)
 
 static inline void arch_reset(char mode)
 {
-       omap_writew(1, ARM_RSTCT1);
+
+#ifdef CONFIG_ARCH_OMAP16XX
+       /*
+        * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28
+        * "Global Software Reset Affects Traffic Controller Frequency".
+        */
+       if (cpu_is_omap5912()) {
+               omap_writew(omap_readw(DPLL_CTL) & ~(1 << 4),
+                                DPLL_CTL);
+               omap_writew(0x8, ARM_RSTCT1);
+       }
+#endif
+#ifdef CONFIG_MACH_VOICEBLUE
+       if (machine_is_voiceblue())
+               voiceblue_reset();
+       else
+#endif
+               omap_writew(1, ARM_RSTCT1);
 }
 
 #endif