diff options
author | Abhijit Pagare <abhijitpagare@ti.com> | 2010-01-26 22:12:52 -0500 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-01-26 22:12:52 -0500 |
commit | 38900c27fbbbe97e16f448b8bc9cafc05af03460 (patch) | |
tree | 6b2c90dd83235f0ca08ee0f55c82cf7c45dc3a61 /arch/arm/mach-omap2/powerdomains.h | |
parent | f37c6dfac99451b8babdd320d7aed4e03d51b94b (diff) |
ARM: OMAP4: PM: Adapt the existing OMAP2/3 and common Power Domain Frameworks.
Taking care of the platform specific and common power domains with
proper checks. Also refining some Macros according to the latest
OMAP4 requirements.
Signed-off-by: Abhijit Pagare <abhijitpagare@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Rajendra Nayak <rnayak@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/powerdomains.h')
-rw-r--r-- | arch/arm/mach-omap2/powerdomains.h | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/powerdomains.h b/arch/arm/mach-omap2/powerdomains.h index 057b2e3e2c35..d646c9979c38 100644 --- a/arch/arm/mach-omap2/powerdomains.h +++ b/arch/arm/mach-omap2/powerdomains.h | |||
@@ -12,6 +12,12 @@ | |||
12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | /* | ||
16 | * To Do List | ||
17 | * -> Move the Sleep/Wakeup dependencies from Power Domain framework to | ||
18 | * Clock Domain Framework | ||
19 | */ | ||
20 | |||
15 | #ifndef ARCH_ARM_MACH_OMAP2_POWERDOMAINS | 21 | #ifndef ARCH_ARM_MACH_OMAP2_POWERDOMAINS |
16 | #define ARCH_ARM_MACH_OMAP2_POWERDOMAINS | 22 | #define ARCH_ARM_MACH_OMAP2_POWERDOMAINS |
17 | 23 | ||
@@ -71,6 +77,7 @@ | |||
71 | 77 | ||
72 | /* OMAP2/3-common powerdomains and wakeup dependencies */ | 78 | /* OMAP2/3-common powerdomains and wakeup dependencies */ |
73 | 79 | ||
80 | #ifndef CONFIG_ARCH_OMAP4 | ||
74 | /* | 81 | /* |
75 | * 2420/2430 PM_WKDEP_GFX: CORE, MPU, WKUP | 82 | * 2420/2430 PM_WKDEP_GFX: CORE, MPU, WKUP |
76 | * 3430ES1 PM_WKDEP_GFX: adds IVA2, removes CORE | 83 | * 3430ES1 PM_WKDEP_GFX: adds IVA2, removes CORE |
@@ -110,21 +117,25 @@ static struct pwrdm_dep cam_gfx_sleepdeps[] = { | |||
110 | }, | 117 | }, |
111 | { NULL }, | 118 | { NULL }, |
112 | }; | 119 | }; |
120 | #endif | ||
113 | 121 | ||
114 | 122 | ||
115 | #include "powerdomains24xx.h" | 123 | #include "powerdomains24xx.h" |
116 | #include "powerdomains34xx.h" | 124 | #include "powerdomains34xx.h" |
125 | #include "powerdomains44xx.h" | ||
117 | 126 | ||
118 | 127 | ||
119 | /* | 128 | /* |
120 | * OMAP2/3 common powerdomains | 129 | * OMAP2/3 common powerdomains |
121 | */ | 130 | */ |
122 | 131 | ||
132 | #if defined(CONFIG_ARCH_OMAP24XX) | defined(CONFIG_ARCH_OMAP34XX) | ||
133 | |||
123 | /* | 134 | /* |
124 | * The GFX powerdomain is not present on 3430ES2, but currently we do not | 135 | * The GFX powerdomain is not present on 3430ES2, but currently we do not |
125 | * have a macro to filter it out at compile-time. | 136 | * have a macro to filter it out at compile-time. |
126 | */ | 137 | */ |
127 | static struct powerdomain gfx_pwrdm = { | 138 | static struct powerdomain gfx_omap2_pwrdm = { |
128 | .name = "gfx_pwrdm", | 139 | .name = "gfx_pwrdm", |
129 | .prcm_offs = GFX_MOD, | 140 | .prcm_offs = GFX_MOD, |
130 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | | 141 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | |
@@ -142,20 +153,23 @@ static struct powerdomain gfx_pwrdm = { | |||
142 | }, | 153 | }, |
143 | }; | 154 | }; |
144 | 155 | ||
145 | static struct powerdomain wkup_pwrdm = { | 156 | static struct powerdomain wkup_omap2_pwrdm = { |
146 | .name = "wkup_pwrdm", | 157 | .name = "wkup_pwrdm", |
147 | .prcm_offs = WKUP_MOD, | 158 | .prcm_offs = WKUP_MOD, |
148 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), | 159 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), |
149 | .dep_bit = OMAP_EN_WKUP_SHIFT, | 160 | .dep_bit = OMAP_EN_WKUP_SHIFT, |
150 | }; | 161 | }; |
151 | 162 | ||
163 | #endif | ||
152 | 164 | ||
153 | 165 | ||
154 | /* As powerdomains are added or removed above, this list must also be changed */ | 166 | /* As powerdomains are added or removed above, this list must also be changed */ |
155 | static struct powerdomain *powerdomains_omap[] __initdata = { | 167 | static struct powerdomain *powerdomains_omap[] __initdata = { |
156 | 168 | ||
157 | &gfx_pwrdm, | 169 | #if defined(CONFIG_ARCH_OMAP24XX) | defined(CONFIG_ARCH_OMAP34XX) |
158 | &wkup_pwrdm, | 170 | &wkup_omap2_pwrdm, |
171 | &gfx_omap2_pwrdm, | ||
172 | #endif | ||
159 | 173 | ||
160 | #ifdef CONFIG_ARCH_OMAP24XX | 174 | #ifdef CONFIG_ARCH_OMAP24XX |
161 | &dsp_pwrdm, | 175 | &dsp_pwrdm, |
@@ -186,6 +200,24 @@ static struct powerdomain *powerdomains_omap[] __initdata = { | |||
186 | &dpll5_pwrdm, | 200 | &dpll5_pwrdm, |
187 | #endif | 201 | #endif |
188 | 202 | ||
203 | #ifdef CONFIG_ARCH_OMAP4 | ||
204 | &core_44xx_pwrdm, | ||
205 | &gfx_44xx_pwrdm, | ||
206 | &abe_44xx_pwrdm, | ||
207 | &dss_44xx_pwrdm, | ||
208 | &tesla_44xx_pwrdm, | ||
209 | &wkup_44xx_pwrdm, | ||
210 | &cpu0_44xx_pwrdm, | ||
211 | &cpu1_44xx_pwrdm, | ||
212 | &emu_44xx_pwrdm, | ||
213 | &mpu_44xx_pwrdm, | ||
214 | &ivahd_44xx_pwrdm, | ||
215 | &cam_44xx_pwrdm, | ||
216 | &l3init_44xx_pwrdm, | ||
217 | &l4per_44xx_pwrdm, | ||
218 | &always_on_core_44xx_pwrdm, | ||
219 | &cefuse_44xx_pwrdm, | ||
220 | #endif | ||
189 | NULL | 221 | NULL |
190 | }; | 222 | }; |
191 | 223 | ||