aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/tc3589x.c
diff options
context:
space:
mode:
authorSundar Iyer <sundar.iyer@stericsson.com>2010-12-13 09:33:17 +0530
committerLinus Walleij <linus.walleij@stericsson.com>2010-12-19 19:27:55 +0100
commit523bc3820f023169671e9726b8dc075669d14bec (patch)
tree02da3e7d7a60e89eb00f4f50d4301011dd547601 /drivers/mfd/tc3589x.c
parentmfd/tc3589x: fix random interrupt misses (diff)
downloadlinux-dev-523bc3820f023169671e9726b8dc075669d14bec.tar.xz
linux-dev-523bc3820f023169671e9726b8dc075669d14bec.zip
mfd/tc3589x: undo gpio module reset during chip init
Skip putting the GPIO module into a reset during the chip init. This makes sure to preserve any existing GPIO configurations done by pre-kernel boot code. Acked-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Sundar Iyer <sundar.iyer@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Diffstat (limited to 'drivers/mfd/tc3589x.c')
-rw-r--r--drivers/mfd/tc3589x.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mfd/tc3589x.c b/drivers/mfd/tc3589x.c
index 708349a5c0e3..f000d2ed23e0 100644
--- a/drivers/mfd/tc3589x.c
+++ b/drivers/mfd/tc3589x.c
@@ -231,12 +231,15 @@ static int tc3589x_chip_init(struct tc3589x *tc3589x)
dev_info(tc3589x->dev, "manufacturer: %#x, version: %#x\n", manf, ver);
- /* Put everything except the IRQ module into reset */
+ /*
+ * Put everything except the IRQ module into reset;
+ * also spare the GPIO module for any pin initialization
+ * done during pre-kernel boot
+ */
ret = tc3589x_reg_write(tc3589x, TC3589x_RSTCTRL,
TC3589x_RSTCTRL_TIMRST
| TC3589x_RSTCTRL_ROTRST
- | TC3589x_RSTCTRL_KBDRST
- | TC3589x_RSTCTRL_GPIRST);
+ | TC3589x_RSTCTRL_KBDRST);
if (ret < 0)
return ret;