summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMattias Nilsson <mattias.i.nilsson@stericsson.com>2011-05-30 12:02:54 +0200
committersaid m bagheri <ebgheri@steludxu2848.(none)>2011-06-17 13:42:06 +0200
commit42fe960648f17ec88643fe0733bccd48665e614d (patch)
tree76de6666d6d348c977b3c07821ddc40166487aa7 /arch
parentf16a7644c85ef8a55186aee5a6f429d2cd83f275 (diff)
arm: ux500: add initial register write
This patch adds an initial write to the register PRCM_A9PL_FORCE_CLKEN, in order to reduce power consumption. ST Ericsson ID: 337712 ST Ericsson FOSS-OUT ID: trivial ST Ericsson Linux-next: 318371 Change-Id: Ibf8ad00a869a7ec40f9f511aad5d9eebc08b5e6c Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/24147 Reviewed-by: QATEST Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-ux500/prcmu-db8500.c12
-rw-r--r--arch/arm/mach-ux500/prcmu-regs-db8500.h4
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-ux500/prcmu-db8500.c b/arch/arm/mach-ux500/prcmu-db8500.c
index 00e80e0d474..2f284e1ff4f 100644
--- a/arch/arm/mach-ux500/prcmu-db8500.c
+++ b/arch/arm/mach-ux500/prcmu-db8500.c
@@ -2059,6 +2059,16 @@ void __init prcmu_early_init(void)
}
}
+static void __init init_prcm_registers(void)
+{
+ u32 val;
+
+ val = readl(_PRCMU_BASE + PRCM_A9PL_FORCE_CLKEN);
+ val &= ~(PRCM_A9PL_FORCE_CLKEN_PRCM_A9PL_FORCE_CLKEN |
+ PRCM_A9PL_FORCE_CLKEN_PRCM_A9AXI_FORCE_CLKEN);
+ writel(val, (_PRCMU_BASE + PRCM_A9PL_FORCE_CLKEN));
+}
+
/**
* prcmu_fw_init - arch init call for the Linux PRCMU fw init logic
*
@@ -2070,6 +2080,8 @@ int __init prcmu_init(void)
if (ux500_is_svp())
return -ENODEV;
+ init_prcm_registers();
+
/* Clean up the mailbox interrupts after pre-kernel code. */
writel(ALL_MBOX_BITS, (_PRCMU_BASE + PRCM_ARM_IT1_CLR));
diff --git a/arch/arm/mach-ux500/prcmu-regs-db8500.h b/arch/arm/mach-ux500/prcmu-regs-db8500.h
index a6fafb97888..1014ea340cf 100644
--- a/arch/arm/mach-ux500/prcmu-regs-db8500.h
+++ b/arch/arm/mach-ux500/prcmu-regs-db8500.h
@@ -28,11 +28,15 @@
#define PRCM_PLLARM_ENABLE_PRCM_PLLARM_COUNTON BIT(8)
#define PRCM_ARMCLKFIX_MGT 0x0
+#define PRCM_A9PL_FORCE_CLKEN 0x19C
#define PRCM_A9_RESETN_CLR 0x1f4
#define PRCM_A9_RESETN_SET 0x1f0
#define PRCM_ARM_LS_CLAMP 0x30C
#define PRCM_SRAM_A9 0x308
+#define PRCM_A9PL_FORCE_CLKEN_PRCM_A9PL_FORCE_CLKEN BIT(0)
+#define PRCM_A9PL_FORCE_CLKEN_PRCM_A9AXI_FORCE_CLKEN BIT(1)
+
/* ARM WFI Standby signal register */
#define PRCM_ARM_WFI_STANDBY 0x130
#define PRCM_IOCR 0x310