diff options
author | Sundar Iyer <sundar.iyer@stericsson.com> | 2010-12-13 05:03:17 +0100 |
---|---|---|
committer | Linus Walleij <linus.walleij@stericsson.com> | 2010-12-19 19:27:55 +0100 |
commit | 523bc3820f023169671e9726b8dc075669d14bec (patch) | |
tree | 02da3e7d7a60e89eb00f4f50d4301011dd547601 | |
parent | mfd/tc3589x: fix random interrupt misses (diff) | |
download | linux-523bc3820f023169671e9726b8dc075669d14bec.tar.xz linux-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>
-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) 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; |