summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRickard Andersson <rickard.andersson@stericsson.com>2011-03-22 11:50:07 +0100
committerUlf Hansson <ulf.hansson@stericsson.com>2011-09-19 15:15:00 +0200
commitf31be4371a26be91cdd38c02d0d161ed8df2bbe6 (patch)
tree2300c1b6e69ec3597b366448e3668dcfcad94ec2
parent9d2b53909e243f00f20388a70845a58d0cf9842d (diff)
mach-ux500: Control bluetooth pins correctly
This patch fixes a problem with the configuration of bluetooth pins during suspend. ST-Ericsson Linux next: - ST-Ericsson ID:328950 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ic3ab0ea5afb7d79612d8ada58385b21f3b72b8f6 Signed-off-by: Rickard Andersson <rickard.andersson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/18623 Reviewed-by: Par-Gunnar HJALMDAHL <par-gunnar.p.hjalmdahl@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
-rw-r--r--arch/arm/mach-ux500/board-mop500-pins.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c
index d804f516bd9..6d69cb0f081 100644
--- a/arch/arm/mach-ux500/board-mop500-pins.c
+++ b/arch/arm/mach-ux500/board-mop500-pins.c
@@ -377,7 +377,7 @@ void mop500_pins_suspend_force(void)
mask |= 0x10;
writel(0x409C702A & ~w_imsc & ~mask, bankaddr + NMK_GPIO_DIR);
- writel(0x001C002A & ~w_imsc & ~mask, bankaddr + NMK_GPIO_DATS);
+ writel(0x001C0022 & ~w_imsc & ~mask, bankaddr + NMK_GPIO_DATS);
writel(0x807000 & ~w_imsc & ~mask, bankaddr + NMK_GPIO_DATC);
writel(0x5FFFFFFF & ~w_imsc & ~imsc & ~mask, bankaddr + NMK_GPIO_PDIS);
writel(readl(bankaddr + NMK_GPIO_SLPC) & mask,
@@ -458,9 +458,14 @@ void mop500_pins_suspend_force(void)
imsc = readl(bankaddr + NMK_GPIO_RIMSC) |
readl(bankaddr + NMK_GPIO_FIMSC);
+
+ if (machine_is_hrefv60()) {
+ /* Make sure that camera pin 170 "XENON_CHARGE" is low */
+ writel(0x400 & ~w_imsc, bankaddr + NMK_GPIO_DIRS);
+ writel(0x400 & ~w_imsc, bankaddr + NMK_GPIO_DATC);
+ }
+
writel(0x3FF , bankaddr + NMK_GPIO_DIRC);
- writel(0xC00 & ~w_imsc, bankaddr + NMK_GPIO_DIRS);
- writel(0xC00 & ~w_imsc, bankaddr + NMK_GPIO_DATC);
writel(0xFFFFFFFF & ~w_imsc & ~imsc, bankaddr + NMK_GPIO_PDIS);
writel(0 , bankaddr + NMK_GPIO_SLPC);