diff options
Diffstat (limited to 'arch/arm/mach-omap2/prcm.c')
-rw-r--r-- | arch/arm/mach-omap2/prcm.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c index 90f530540c65..b12f423b8595 100644 --- a/arch/arm/mach-omap2/prcm.c +++ b/arch/arm/mach-omap2/prcm.c | |||
@@ -17,19 +17,27 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/clk.h> | 18 | #include <linux/clk.h> |
19 | 19 | ||
20 | #include "prcm-regs.h" | 20 | #include <asm/io.h> |
21 | |||
22 | #include "prm.h" | ||
23 | #include "prm-regbits-24xx.h" | ||
21 | 24 | ||
22 | extern void omap2_clk_prepare_for_reboot(void); | 25 | extern void omap2_clk_prepare_for_reboot(void); |
23 | 26 | ||
24 | u32 omap_prcm_get_reset_sources(void) | 27 | u32 omap_prcm_get_reset_sources(void) |
25 | { | 28 | { |
26 | return RM_RSTST_WKUP & 0x7f; | 29 | return prm_read_mod_reg(WKUP_MOD, RM_RSTST) & 0x7f; |
27 | } | 30 | } |
28 | EXPORT_SYMBOL(omap_prcm_get_reset_sources); | 31 | EXPORT_SYMBOL(omap_prcm_get_reset_sources); |
29 | 32 | ||
30 | /* Resets clock rates and reboots the system. Only called from system.h */ | 33 | /* Resets clock rates and reboots the system. Only called from system.h */ |
31 | void omap_prcm_arch_reset(char mode) | 34 | void omap_prcm_arch_reset(char mode) |
32 | { | 35 | { |
36 | u32 wkup; | ||
33 | omap2_clk_prepare_for_reboot(); | 37 | omap2_clk_prepare_for_reboot(); |
34 | RM_RSTCTRL_WKUP |= 2; | 38 | |
39 | if (cpu_is_omap24xx()) { | ||
40 | wkup = prm_read_mod_reg(WKUP_MOD, RM_RSTCTRL) | OMAP_RST_DPLL3; | ||
41 | prm_write_mod_reg(wkup, WKUP_MOD, RM_RSTCTRL); | ||
42 | } | ||
35 | } | 43 | } |