aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMurali Karicheri <m-karicheri2@ti.com>2011-11-21 13:31:30 -0500
committerCyril Chemparathy <cyril@ti.com>2012-09-21 10:43:58 -0400
commite711507bf9adcaa800d6efcb9b99839a2ed45b68 (patch)
treef13828a9572651cdac0dc4ece26fde80d5b1e8fd
parent9e5714ddf08b284914e96a52ecd07d9166a038e2 (diff)
downloadlinux-keystone-e711507bf9adcaa800d6efcb9b99839a2ed45b68.tar.gz
davinci: add support for multiple power domains
In one of the new SoC that we are working on, there are multiple power domains similar to that in C6670. Currently clock module assumes that there are only two power domains (ARM and DSP). This patch is added to allow porting of Linux on to the above SoC. Boot tested this change on DM365 and OMAP L137 Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
-rw-r--r--arch/arm/mach-davinci/psc.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/arm/mach-davinci/psc.c b/arch/arm/mach-davinci/psc.c
index d7e210f4b55c85..a1267f8a50adf7 100644
--- a/arch/arm/mach-davinci/psc.c
+++ b/arch/arm/mach-davinci/psc.c
@@ -88,9 +88,15 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr,
ptcmd = 1 << domain;
__raw_writel(ptcmd, psc_base + PTCMD);
- do {
- epcpr = __raw_readl(psc_base + EPCPR);
- } while ((((epcpr >> domain) & 1) == 0));
+ if (cpu_is_davinci_dm644x()) {
+ do {
+ epcpr = __raw_readl(psc_base + EPCPR);
+ } while ((((epcpr >> domain) & 1) == 0));
+ }
+
+ pdctl = __raw_readl(psc_base + PDCTL + 4 * domain);
+ pdctl |= 0x100;
+ __raw_writel(pdctl, psc_base + PDCTL + 4 * domain);
pdctl = __raw_readl(psc_base + PDCTL + 4 * domain);
pdctl |= PDCTL_EPCGOOD;