summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Langlais <philippe.langlais@linaro.org>2011-05-09 15:31:08 +0200
committerUlf Hansson <ulf.hansson@stericsson.com>2011-09-19 15:15:06 +0200
commit0d3644b8626deaff53292cae6d5dde346e6f40f6 (patch)
tree102b6e52fd3325adc42565c370b933c170d0be3d
parent94e82af0cabf2185686291eb50c815fc05160dc9 (diff)
bu21013: Proper reset implementation during suspend and resume
Proper reset implementation during suspend and resume for BU21013 touch screen driver by initializing the reset gpio pin. ST-Ericsson Id: ER 334949 Signed-off-by: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com> Change-Id: I75469d92cf0d49d75500e0e24d34ca0bb5de6311 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/20840 Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> Conflicts: arch/arm/mach-ux500/board-mop500.c
-rw-r--r--arch/arm/mach-ux500/board-mop500-stuib.c2
-rw-r--r--drivers/input/touchscreen/bu21013_ts.c10
2 files changed, 11 insertions, 1 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-stuib.c b/arch/arm/mach-ux500/board-mop500-stuib.c
index a275a986775..1a162cec8e0 100644
--- a/arch/arm/mach-ux500/board-mop500-stuib.c
+++ b/arch/arm/mach-ux500/board-mop500-stuib.c
@@ -195,7 +195,7 @@ static int bu21013_gpio_board_exit(int reset_pin)
__func__);
return retval;
}
- gpio_set_value(reset_pin, 0);
+ gpio_free(reset_pin);
}
bu21013_devices--;
diff --git a/drivers/input/touchscreen/bu21013_ts.c b/drivers/input/touchscreen/bu21013_ts.c
index 109fe386e93..4449ea27453 100644
--- a/drivers/input/touchscreen/bu21013_ts.c
+++ b/drivers/input/touchscreen/bu21013_ts.c
@@ -212,6 +212,14 @@ static int bu21013_enable(struct bu21013_ts_data *pdata)
if (pdata->regulator)
regulator_enable(pdata->regulator);
+ if (pdata->chip->cs_en) {
+ retval = pdata->chip->cs_en(pdata->chip->cs_pin);
+ if (retval < 0) {
+ dev_err(&pdata->client->dev, "enable hw failed\n");
+ return retval;
+ }
+ }
+
if (pdata->ext_clk_state)
retval = bu21013_ext_clk(pdata, true, true);
else
@@ -241,6 +249,8 @@ static void bu21013_disable(struct bu21013_ts_data *pdata)
(void) bu21013_ext_clk(pdata, false, false);
disable_irq(pdata->chip->irq);
+ if (pdata->chip->cs_dis)
+ pdata->chip->cs_dis(pdata->chip->cs_pin);
if (pdata->regulator)
regulator_disable(pdata->regulator);
}