OMAP: powerdomain: Arch specific funcs for mem control
[deliverable/linux.git] / arch / arm / mach-omap2 / powerdomain-common.c
CommitLineData
9b7fc907
RN
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
This page took 0.029172 seconds and 5 git commands to generate.