diff options
author | Paul Walmsley <paul@pwsan.com> | 2009-02-05 22:45:28 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-02-23 09:52:51 -0500 |
commit | 7eb1afc9765d07c9036b1ad9e7c03e5bd1a58a2b (patch) | |
tree | 481467823b3810af2a94597129748aaf04f902d2 /arch/arm/mach-omap2 | |
parent | d41ad52040dee5043ce6b1d49a1c8864706d2bfd (diff) |
[ARM] OMAP3 powerdomains: make USBTLL SAR only available on ES3.1 and beyond
Richard Woodruff writes that chip errata prevent USBTLL SAR from working
on OMAP3 ES levels before ES3.1:
http://marc.info/?l=linux-arm-kernel&m=123319614808833&w=2
Update the OMAP3 powerdomain structures appropriately.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/powerdomains.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/powerdomains34xx.h | 25 |
2 files changed, 25 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/powerdomains.h b/arch/arm/mach-omap2/powerdomains.h index 1329443f2cd5..691470ea4c6a 100644 --- a/arch/arm/mach-omap2/powerdomains.h +++ b/arch/arm/mach-omap2/powerdomains.h | |||
@@ -171,7 +171,8 @@ static struct powerdomain *powerdomains_omap[] __initdata = { | |||
171 | &iva2_pwrdm, | 171 | &iva2_pwrdm, |
172 | &mpu_34xx_pwrdm, | 172 | &mpu_34xx_pwrdm, |
173 | &neon_pwrdm, | 173 | &neon_pwrdm, |
174 | &core_34xx_pwrdm, | 174 | &core_34xx_pre_es3_1_pwrdm, |
175 | &core_34xx_es3_1_pwrdm, | ||
175 | &cam_pwrdm, | 176 | &cam_pwrdm, |
176 | &dss_pwrdm, | 177 | &dss_pwrdm, |
177 | &per_pwrdm, | 178 | &per_pwrdm, |
diff --git a/arch/arm/mach-omap2/powerdomains34xx.h b/arch/arm/mach-omap2/powerdomains34xx.h index 78acfce8bbdc..4dcf94b800ab 100644 --- a/arch/arm/mach-omap2/powerdomains34xx.h +++ b/arch/arm/mach-omap2/powerdomains34xx.h | |||
@@ -200,12 +200,33 @@ static struct powerdomain mpu_34xx_pwrdm = { | |||
200 | }; | 200 | }; |
201 | 201 | ||
202 | /* No wkdeps or sleepdeps for 34xx core apparently */ | 202 | /* No wkdeps or sleepdeps for 34xx core apparently */ |
203 | static struct powerdomain core_34xx_pwrdm = { | 203 | static struct powerdomain core_34xx_pre_es3_1_pwrdm = { |
204 | .name = "core_pwrdm", | 204 | .name = "core_pwrdm", |
205 | .prcm_offs = CORE_MOD, | 205 | .prcm_offs = CORE_MOD, |
206 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | 206 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1 | |
207 | CHIP_IS_OMAP3430ES2 | | ||
208 | CHIP_IS_OMAP3430ES3_0), | ||
209 | .pwrsts = PWRSTS_OFF_RET_ON, | ||
210 | .dep_bit = OMAP3430_EN_CORE_SHIFT, | ||
211 | .banks = 2, | ||
212 | .pwrsts_mem_ret = { | ||
213 | [0] = PWRSTS_OFF_RET, /* MEM1RETSTATE */ | ||
214 | [1] = PWRSTS_OFF_RET, /* MEM2RETSTATE */ | ||
215 | }, | ||
216 | .pwrsts_mem_on = { | ||
217 | [0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */ | ||
218 | [1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */ | ||
219 | }, | ||
220 | }; | ||
221 | |||
222 | /* No wkdeps or sleepdeps for 34xx core apparently */ | ||
223 | static struct powerdomain core_34xx_es3_1_pwrdm = { | ||
224 | .name = "core_pwrdm", | ||
225 | .prcm_offs = CORE_MOD, | ||
226 | .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES3_1), | ||
207 | .pwrsts = PWRSTS_OFF_RET_ON, | 227 | .pwrsts = PWRSTS_OFF_RET_ON, |
208 | .dep_bit = OMAP3430_EN_CORE_SHIFT, | 228 | .dep_bit = OMAP3430_EN_CORE_SHIFT, |
229 | .flags = PWRDM_HAS_HDWR_SAR, /* for USBTLL only */ | ||
209 | .banks = 2, | 230 | .banks = 2, |
210 | .pwrsts_mem_ret = { | 231 | .pwrsts_mem_ret = { |
211 | [0] = PWRSTS_OFF_RET, /* MEM1RETSTATE */ | 232 | [0] = PWRSTS_OFF_RET, /* MEM1RETSTATE */ |