diff options
author | Rajendra Nayak <rnayak@ti.com> | 2010-12-21 22:01:19 -0500 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-12-21 22:01:19 -0500 |
commit | 9b7fc907d9378f86eb6b823bbe84ec9ed584b091 (patch) | |
tree | b4519c2eb01d58ca4a407048bcb3fd83cf846e1f /arch/arm/mach-omap2/powerdomain-common.c | |
parent | 12627578523d2d9396cae76b1dad0ed3dccf1730 (diff) |
OMAP: powerdomain: Arch specific funcs for mem control
Define the following architecture specific funtions for omap2/3/4
.pwrdm_set_mem_onst
.pwrdm_set_mem_retst
.pwrdm_read_mem_pwrst
.pwrdm_read_prev_mem_pwrst
.pwrdm_read_mem_retst
.pwrdm_clear_all_prev_pwrst
.pwrdm_enable_hdwr_sar
.pwrdm_disable_hdwr_sar
.pwrdm_wait_transition
.pwrdm_set_lowpwrstchange
Convert the platform-independent framework to call these functions.
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
[paul@pwsan.com: rearranged Makefile changes]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com>
Tested-by: Kevin Hilman <khilman@deeprootsystems.com>
Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/powerdomain-common.c')
-rw-r--r-- | arch/arm/mach-omap2/powerdomain-common.c | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/powerdomain-common.c b/arch/arm/mach-omap2/powerdomain-common.c new file mode 100644 index 000000000000..cb01c7a3689a --- /dev/null +++ b/arch/arm/mach-omap2/powerdomain-common.c | |||
@@ -0,0 +1,111 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-omap2/powerdomain-common.c | ||
3 | * Contains common powerdomain framework functions | ||
4 | * | ||
5 | * Copyright (C) 2010 Texas Instruments, Inc. | ||
6 | * Copyright (C) 2010 Nokia Corporation | ||
7 | * | ||
8 | * Derived from mach-omap2/powerdomain.c written by Paul Walmsley | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | */ | ||
14 | |||
15 | #include <linux/errno.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include "pm.h" | ||
18 | #include "cm.h" | ||
19 | #include "cm-regbits-34xx.h" | ||
20 | #include "cm-regbits-44xx.h" | ||
21 | #include "prm-regbits-34xx.h" | ||
22 | #include "prm-regbits-44xx.h" | ||
23 | #include "powerdomains.h" | ||
24 | |||
25 | /* | ||
26 | * OMAP3 and OMAP4 specific register bit initialisations | ||
27 | * Notice that the names here are not according to each power | ||
28 | * domain but the bit mapping used applies to all of them | ||
29 | */ | ||
30 | /* OMAP3 and OMAP4 Memory Onstate Masks (common across all power domains) */ | ||
31 | #define OMAP_MEM0_ONSTATE_MASK OMAP3430_SHAREDL1CACHEFLATONSTATE_MASK | ||
32 | #define OMAP_MEM1_ONSTATE_MASK OMAP3430_L1FLATMEMONSTATE_MASK | ||
33 | #define OMAP_MEM2_ONSTATE_MASK OMAP3430_SHAREDL2CACHEFLATONSTATE_MASK | ||
34 | #define OMAP_MEM3_ONSTATE_MASK OMAP3430_L2FLATMEMONSTATE_MASK | ||
35 | #define OMAP_MEM4_ONSTATE_MASK OMAP4430_OCP_NRET_BANK_ONSTATE_MASK | ||
36 | |||
37 | /* OMAP3 and OMAP4 Memory Retstate Masks (common across all power domains) */ | ||
38 | #define OMAP_MEM0_RETSTATE_MASK OMAP3430_SHAREDL1CACHEFLATRETSTATE_MASK | ||
39 | #define OMAP_MEM1_RETSTATE_MASK OMAP3430_L1FLATMEMRETSTATE_MASK | ||
40 | #define OMAP_MEM2_RETSTATE_MASK OMAP3430_SHAREDL2CACHEFLATRETSTATE_MASK | ||
41 | #define OMAP_MEM3_RETSTATE_MASK OMAP3430_L2FLATMEMRETSTATE_MASK | ||
42 | #define OMAP_MEM4_RETSTATE_MASK OMAP4430_OCP_NRET_BANK_RETSTATE_MASK | ||
43 | |||
44 | /* OMAP3 and OMAP4 Memory Status bits */ | ||
45 | #define OMAP_MEM0_STATEST_MASK OMAP3430_SHAREDL1CACHEFLATSTATEST_MASK | ||
46 | #define OMAP_MEM1_STATEST_MASK OMAP3430_L1FLATMEMSTATEST_MASK | ||
47 | #define OMAP_MEM2_STATEST_MASK OMAP3430_SHAREDL2CACHEFLATSTATEST_MASK | ||
48 | #define OMAP_MEM3_STATEST_MASK OMAP3430_L2FLATMEMSTATEST_MASK | ||
49 | #define OMAP_MEM4_STATEST_MASK OMAP4430_OCP_NRET_BANK_STATEST_MASK | ||
50 | |||
51 | /* Common Internal functions used across OMAP rev's*/ | ||
52 | u32 omap2_pwrdm_get_mem_bank_onstate_mask(u8 bank) | ||
53 | { | ||
54 | switch (bank) { | ||
55 | case 0: | ||
56 | return OMAP_MEM0_ONSTATE_MASK; | ||
57 | case 1: | ||
58 | return OMAP_MEM1_ONSTATE_MASK; | ||
59 | case 2: | ||
60 | return OMAP_MEM2_ONSTATE_MASK; | ||
61 | case 3: | ||
62 | return OMAP_MEM3_ONSTATE_MASK; | ||
63 | case 4: | ||
64 | return OMAP_MEM4_ONSTATE_MASK; | ||
65 | default: | ||
66 | WARN_ON(1); /* should never happen */ | ||
67 | return -EEXIST; | ||
68 | } | ||
69 | return 0; | ||
70 | } | ||
71 | |||
72 | u32 omap2_pwrdm_get_mem_bank_retst_mask(u8 bank) | ||
73 | { | ||
74 | switch (bank) { | ||
75 | case 0: | ||
76 | return OMAP_MEM0_RETSTATE_MASK; | ||
77 | case 1: | ||
78 | return OMAP_MEM1_RETSTATE_MASK; | ||
79 | case 2: | ||
80 | return OMAP_MEM2_RETSTATE_MASK; | ||
81 | case 3: | ||
82 | return OMAP_MEM3_RETSTATE_MASK; | ||
83 | case 4: | ||
84 | return OMAP_MEM4_RETSTATE_MASK; | ||
85 | default: | ||
86 | WARN_ON(1); /* should never happen */ | ||
87 | return -EEXIST; | ||
88 | } | ||
89 | return 0; | ||
90 | } | ||
91 | |||
92 | u32 omap2_pwrdm_get_mem_bank_stst_mask(u8 bank) | ||
93 | { | ||
94 | switch (bank) { | ||
95 | case 0: | ||
96 | return OMAP_MEM0_STATEST_MASK; | ||
97 | case 1: | ||
98 | return OMAP_MEM1_STATEST_MASK; | ||
99 | case 2: | ||
100 | return OMAP_MEM2_STATEST_MASK; | ||
101 | case 3: | ||
102 | return OMAP_MEM3_STATEST_MASK; | ||
103 | case 4: | ||
104 | return OMAP_MEM4_STATEST_MASK; | ||
105 | default: | ||
106 | WARN_ON(1); /* should never happen */ | ||
107 | return -EEXIST; | ||
108 | } | ||
109 | return 0; | ||
110 | } | ||
111 | |||