Commit | Line | Data |
---|---|---|
1da177e4 | 1 | /* |
a09e64fb | 2 | * Copied from arch/arm/mach-sa1100/include/mach/system.h |
1da177e4 LT |
3 | * Copyright (c) 1999 Nicolas Pitre <nico@cam.org> |
4 | */ | |
5 | #ifndef __ASM_ARCH_SYSTEM_H | |
6 | #define __ASM_ARCH_SYSTEM_H | |
f8ce2547 RK |
7 | #include <linux/clk.h> |
8 | ||
af973d2a | 9 | #include <asm/mach-types.h> |
a09e64fb | 10 | #include <mach/hardware.h> |
9ad5897c | 11 | |
fecb494b PW |
12 | #include <mach/prcm.h> |
13 | ||
9ad5897c TL |
14 | #ifndef CONFIG_MACH_VOICEBLUE |
15 | #define voiceblue_reset() do {} while (0) | |
16 | #endif | |
1da177e4 LT |
17 | |
18 | static inline void arch_idle(void) | |
19 | { | |
20 | cpu_do_idle(); | |
21 | } | |
22 | ||
9ad5897c | 23 | static inline void omap1_arch_reset(char mode) |
1da177e4 | 24 | { |
af973d2a TL |
25 | /* |
26 | * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 | |
27 | * "Global Software Reset Affects Traffic Controller Frequency". | |
28 | */ | |
29 | if (cpu_is_omap5912()) { | |
30 | omap_writew(omap_readw(DPLL_CTL) & ~(1 << 4), | |
31 | DPLL_CTL); | |
32 | omap_writew(0x8, ARM_RSTCT1); | |
33 | } | |
9ad5897c | 34 | |
af973d2a TL |
35 | if (machine_is_voiceblue()) |
36 | voiceblue_reset(); | |
37 | else | |
af973d2a | 38 | omap_writew(1, ARM_RSTCT1); |
1da177e4 LT |
39 | } |
40 | ||
be093beb | 41 | static inline void arch_reset(char mode, const char *cmd) |
9ad5897c | 42 | { |
cc26b3b0 | 43 | if (!cpu_class_is_omap2()) |
9ad5897c TL |
44 | omap1_arch_reset(mode); |
45 | else | |
b824efae | 46 | omap_prcm_arch_reset(mode); |
9ad5897c TL |
47 | } |
48 | ||
1da177e4 | 49 | #endif |