diff options
author | Murali Karicheri <m-karicheri2@ti.com> | 2011-11-21 13:31:30 -0500 |
---|---|---|
committer | Cyril Chemparathy <cyril@ti.com> | 2012-09-21 10:43:58 -0400 |
commit | e711507bf9adcaa800d6efcb9b99839a2ed45b68 (patch) | |
tree | f13828a9572651cdac0dc4ece26fde80d5b1e8fd | |
parent | 9e5714ddf08b284914e96a52ecd07d9166a038e2 (diff) | |
download | linux-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.c | 12 |
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; |