diff options
author | Sundar Iyer <sundar.iyer@stericsson.com> | 2010-12-12 23:03:17 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@stericsson.com> | 2010-12-19 13:27:55 -0500 |
commit | 523bc3820f023169671e9726b8dc075669d14bec (patch) | |
tree | 02da3e7d7a60e89eb00f4f50d4301011dd547601 /drivers/mfd/tc3589x.c | |
parent | bd77efd0cea80865d4cfcc1e4b62789c51a74b2d (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/mfd/tc3589x.c')
-rw-r--r-- | drivers/mfd/tc3589x.c | 9 |
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 | ||