aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-ux500/board-mop500.c2
-rw-r--r--drivers/input/touchscreen/bu21013_ts.c10
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 09dafffc7e5..22f1fbe8126 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -376,6 +376,8 @@ static int bu21013_gpio_board_exit(int reset_pin)
return retval;
}
gpio_set_value(reset_pin, 0);
+
+ gpio_free(reset_pin);
}
cs_en_check--;
return retval;
diff --git a/drivers/input/touchscreen/bu21013_ts.c b/drivers/input/touchscreen/bu21013_ts.c
index aa22a5b4805..de460a41d03 100644
--- a/drivers/input/touchscreen/bu21013_ts.c
+++ b/drivers/input/touchscreen/bu21013_ts.c
@@ -220,6 +220,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
@@ -249,6 +257,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);
}