aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSundar Iyer <sundar.iyer@stericsson.com>2010-12-12 23:03:17 -0500
committerLinus Walleij <linus.walleij@stericsson.com>2010-12-19 13:27:55 -0500
commit523bc3820f023169671e9726b8dc075669d14bec (patch)
tree02da3e7d7a60e89eb00f4f50d4301011dd547601 /drivers
parentbd77efd0cea80865d4cfcc1e4b62789c51a74b2d (diff)
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')
-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)
231 231
232 dev_info(tc3589x->dev, "manufacturer: %#x, version: %#x\n", manf, ver); 232 dev_info(tc3589x->dev, "manufacturer: %#x, version: %#x\n", manf, ver);
233 233
234 /* Put everything except the IRQ module into reset */ 234 /*
235 * Put everything except the IRQ module into reset;
236 * also spare the GPIO module for any pin initialization
237 * done during pre-kernel boot
238 */
235 ret = tc3589x_reg_write(tc3589x, TC3589x_RSTCTRL, 239 ret = tc3589x_reg_write(tc3589x, TC3589x_RSTCTRL,
236 TC3589x_RSTCTRL_TIMRST 240 TC3589x_RSTCTRL_TIMRST
237 | TC3589x_RSTCTRL_ROTRST 241 | TC3589x_RSTCTRL_ROTRST
238 | TC3589x_RSTCTRL_KBDRST 242 | TC3589x_RSTCTRL_KBDRST);
239 | TC3589x_RSTCTRL_GPIRST);
240 if (ret < 0) 243 if (ret < 0)
241 return ret; 244 return ret;
242 245