aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/powerdomain-common.c
diff options
context:
space:
mode:
authorRajendra Nayak <rnayak@ti.com>2010-12-21 22:01:19 -0500
committerPaul Walmsley <paul@pwsan.com>2010-12-21 22:01:19 -0500
commit9b7fc907d9378f86eb6b823bbe84ec9ed584b091 (patch)
treeb4519c2eb01d58ca4a407048bcb3fd83cf846e1f /arch/arm/mach-omap2/powerdomain-common.c
parent12627578523d2d9396cae76b1dad0ed3dccf1730 (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.c111
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*/
52u32 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
72u32 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
92u32 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