summaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/board-mop500-pins.c
diff options
context:
space:
mode:
authorRickard Andersson <rickard.andersson@stericsson.com>2011-05-02 16:18:19 +0200
committerUlf Hansson <ulf.hansson@stericsson.com>2011-09-19 15:15:16 +0200
commit58ab2ff2e21ef8cf0bd5b4a49768ae79a8062903 (patch)
tree26ca3d6464b586be5b38f9c2dc718c298b40b924 /arch/arm/mach-ux500/board-mop500-pins.c
parentc1d6c285d8686515c1217cebe75f38ecfbca4e73 (diff)
arm: ux500: Configure modem STM pins correctly in sleep
Modem STM pins was not correctly configured for the sleep states ApSleep and ApDeepSleep. This is now fixed both for suspend and cpuidle. ST Ericsson ID: 323509 ST Ericsson FOSS-OUT ID: trivial ST Ericsson Linux next: - Change-Id: I48e8bd3f00e2a6320d8d41a61acee271d4c81d91 Signed-off-by: Rickard Andersson <rickard.andersson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/22434 Reviewed-by: QATEST Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500-pins.c')
-rw-r--r--arch/arm/mach-ux500/board-mop500-pins.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c
index e96ff362969..016fbdd2159 100644
--- a/arch/arm/mach-ux500/board-mop500-pins.c
+++ b/arch/arm/mach-ux500/board-mop500-pins.c
@@ -457,7 +457,6 @@ static void mop500_pins_suspend_force(void)
writel(0 , bankaddr + NMK_GPIO_SLPC);
/* Bank2 */
-
bankaddr = IO_ADDRESS(U8500_GPIOBANK2_BASE);
w_imsc = readl(bankaddr + NMK_GPIO_RWIMSC) |
@@ -475,7 +474,12 @@ static void mop500_pins_suspend_force(void)
writel(0x803C2830 & ~mask, bankaddr + NMK_GPIO_DIRC);
writel(0x3D7C0 & ~w_imsc & ~mask, bankaddr + NMK_GPIO_DATC);
writel(0xFFFFFFFF & ~w_imsc & ~imsc & ~mask, bankaddr + NMK_GPIO_PDIS);
- writel(0 , bankaddr + NMK_GPIO_SLPC);
+ /*
+ * No need to set SLPC (SLPM) register. This can break modem STM
+ * settings on pins (70-76) because modem is special and needs to
+ * have its mux connected even in suspend because modem could still
+ * be on and might send interesting STM debugging data.
+ */
/* Bank3 */
bankaddr = IO_ADDRESS(U8500_GPIOBANK3_BASE);
@@ -613,11 +617,7 @@ static void mop500_pins_suspend_force_mux(void)
writel(0x1 , bankaddr + NMK_GPIO_AFSLA);
writel(0x1 , bankaddr + NMK_GPIO_AFSLB);
- /* Bank2 */
- bankaddr = IO_ADDRESS(U8500_GPIOBANK2_BASE);
-
- writel(0 , bankaddr + NMK_GPIO_AFSLA);
- writel(0 , bankaddr + NMK_GPIO_AFSLB);
+ /* Bank2 (Nothing needs to be done) */
/* Bank3 */
bankaddr = IO_ADDRESS(U8500_GPIOBANK3_BASE);