diff options
Diffstat (limited to 'arch/arm/mach-omap2/prcm.c')
-rw-r--r-- | arch/arm/mach-omap2/prcm.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c new file mode 100644 index 000000000000..8893479dc7e0 --- /dev/null +++ b/arch/arm/mach-omap2/prcm.c | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-omap2/prcm.c | ||
3 | * | ||
4 | * OMAP 24xx Power Reset and Clock Management (PRCM) functions | ||
5 | * | ||
6 | * Copyright (C) 2005 Nokia Corporation | ||
7 | * | ||
8 | * Written by Tony Lindgren <tony.lindgren@nokia.com> | ||
9 | * | ||
10 | * Some pieces of code Copyright (C) 2005 Texas Instruments, Inc. | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify | ||
13 | * it under the terms of the GNU General Public License version 2 as | ||
14 | * published by the Free Software Foundation. | ||
15 | */ | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/module.h> | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/clk.h> | ||
20 | |||
21 | #include "prcm-regs.h" | ||
22 | |||
23 | u32 omap_prcm_get_reset_sources(void) | ||
24 | { | ||
25 | return RM_RSTST_WKUP & 0x7f; | ||
26 | } | ||
27 | EXPORT_SYMBOL(omap_prcm_get_reset_sources); | ||
28 | |||
29 | /* Resets clock rates and reboots the system. Only called from system.h */ | ||
30 | void omap_prcm_arch_reset(char mode) | ||
31 | { | ||
32 | u32 rate; | ||
33 | struct clk *vclk, *sclk; | ||
34 | |||
35 | vclk = clk_get(NULL, "virt_prcm_set"); | ||
36 | sclk = clk_get(NULL, "sys_ck"); | ||
37 | rate = clk_get_rate(sclk); | ||
38 | clk_set_rate(vclk, rate); /* go to bypass for OMAP limitation */ | ||
39 | RM_RSTCTRL_WKUP |= 2; | ||
40 | } | ||