diff options
author | Mattias Nilsson <mattias.i.nilsson@stericsson.com> | 2011-08-12 04:27:50 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-10-24 08:09:18 -0400 |
commit | d65e12d70436cfb2728a78aec3f7bc1cd79eaa34 (patch) | |
tree | 1420e6831dc051fb9cc275c1e0499ad6304f1feb /drivers/mfd | |
parent | a592c2e20fe2ba696cc7cd16d02abec8ac16ea41 (diff) |
mfd: Initialize DB8500 PRCMU regs
Some clocks may be force enabled when we probe the
driver, but they need to be turned off by default so
we have a known state. We call this the register
initialization function if we need more stuff in
there in the future.
Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/db8500-prcmu.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c index dcc690efdc25..e2c4a26a9eb1 100644 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c | |||
@@ -1840,6 +1840,16 @@ void __init prcmu_early_init(void) | |||
1840 | } | 1840 | } |
1841 | } | 1841 | } |
1842 | 1842 | ||
1843 | static void __init init_prcm_registers(void) | ||
1844 | { | ||
1845 | u32 val; | ||
1846 | |||
1847 | val = readl(PRCM_A9PL_FORCE_CLKEN); | ||
1848 | val &= ~(PRCM_A9PL_FORCE_CLKEN_PRCM_A9PL_FORCE_CLKEN | | ||
1849 | PRCM_A9PL_FORCE_CLKEN_PRCM_A9AXI_FORCE_CLKEN); | ||
1850 | writel(val, (PRCM_A9PL_FORCE_CLKEN)); | ||
1851 | } | ||
1852 | |||
1843 | /* | 1853 | /* |
1844 | * Power domain switches (ePODs) modeled as regulators for the DB8500 SoC | 1854 | * Power domain switches (ePODs) modeled as regulators for the DB8500 SoC |
1845 | */ | 1855 | */ |
@@ -2038,6 +2048,8 @@ static int __init db8500_prcmu_probe(struct platform_device *pdev) | |||
2038 | if (ux500_is_svp()) | 2048 | if (ux500_is_svp()) |
2039 | return -ENODEV; | 2049 | return -ENODEV; |
2040 | 2050 | ||
2051 | init_prcm_registers(); | ||
2052 | |||
2041 | /* Clean up the mailbox interrupts after pre-kernel code. */ | 2053 | /* Clean up the mailbox interrupts after pre-kernel code. */ |
2042 | writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR); | 2054 | writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR); |
2043 | 2055 | ||