Russell King | a09e64f | 2008-08-05 16:14:15 +0100 | [diff] [blame] | 1 | /* |
| 2 | * Copied from arch/arm/mach-sa1100/include/mach/system.h |
Nicolas Pitre | 2f82af0 | 2009-09-14 03:25:28 -0400 | [diff] [blame] | 3 | * Copyright (c) 1999 Nicolas Pitre <nico@fluxnic.net> |
Russell King | a09e64f | 2008-08-05 16:14:15 +0100 | [diff] [blame] | 4 | */ |
| 5 | #ifndef __ASM_ARCH_SYSTEM_H |
| 6 | #define __ASM_ARCH_SYSTEM_H |
| 7 | #include <linux/clk.h> |
| 8 | |
| 9 | #include <asm/mach-types.h> |
| 10 | #include <mach/hardware.h> |
| 11 | |
Tony Lindgren | ce491cf | 2009-10-20 09:40:47 -0700 | [diff] [blame] | 12 | #include <plat/prcm.h> |
Paul Walmsley | fecb494 | 2009-01-27 19:12:50 -0700 | [diff] [blame] | 13 | |
Russell King | a09e64f | 2008-08-05 16:14:15 +0100 | [diff] [blame] | 14 | #ifndef CONFIG_MACH_VOICEBLUE |
| 15 | #define voiceblue_reset() do {} while (0) |
Tony Lindgren | 6b0147c | 2009-03-23 18:07:39 -0700 | [diff] [blame] | 16 | #else |
| 17 | extern void voiceblue_reset(void); |
Russell King | a09e64f | 2008-08-05 16:14:15 +0100 | [diff] [blame] | 18 | #endif |
| 19 | |
Russell King | a09e64f | 2008-08-05 16:14:15 +0100 | [diff] [blame] | 20 | static inline void arch_idle(void) |
| 21 | { |
| 22 | cpu_do_idle(); |
| 23 | } |
| 24 | |
| 25 | static inline void omap1_arch_reset(char mode) |
| 26 | { |
| 27 | /* |
| 28 | * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 |
| 29 | * "Global Software Reset Affects Traffic Controller Frequency". |
| 30 | */ |
| 31 | if (cpu_is_omap5912()) { |
| 32 | omap_writew(omap_readw(DPLL_CTL) & ~(1 << 4), |
| 33 | DPLL_CTL); |
| 34 | omap_writew(0x8, ARM_RSTCT1); |
| 35 | } |
| 36 | |
| 37 | if (machine_is_voiceblue()) |
| 38 | voiceblue_reset(); |
| 39 | else |
| 40 | omap_writew(1, ARM_RSTCT1); |
| 41 | } |
| 42 | |
Russell King | be093be | 2009-03-19 16:20:24 +0000 | [diff] [blame] | 43 | static inline void arch_reset(char mode, const char *cmd) |
Russell King | a09e64f | 2008-08-05 16:14:15 +0100 | [diff] [blame] | 44 | { |
Syed Mohammed, Khasim | cc26b3b | 2008-10-09 17:51:41 +0300 | [diff] [blame] | 45 | if (!cpu_class_is_omap2()) |
Russell King | a09e64f | 2008-08-05 16:14:15 +0100 | [diff] [blame] | 46 | omap1_arch_reset(mode); |
| 47 | else |
| 48 | omap_prcm_arch_reset(mode); |
| 49 | } |
| 50 | |
| 51 | #endif |