Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 361026
b: refs/heads/master
c: 4b7d293
h: refs/heads/master
v: v3
  • Loading branch information
Mark Brown authored and Dmitry Torokhov committed Mar 11, 2013
1 parent 7692191 commit 297f349
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f94352f8db97b9a3b3c1ec45f6fef1400880168a
refs/heads/master: 4b7d293c64fde133cc2b669d0d7637b8a4c6d62f
34 changes: 25 additions & 9 deletions trunk/drivers/input/touchscreen/mms114.c
Original file line number Diff line number Diff line change
Expand Up @@ -314,15 +314,27 @@ static int mms114_start(struct mms114_data *data)
struct i2c_client *client = data->client;
int error;

if (data->core_reg)
regulator_enable(data->core_reg);
if (data->io_reg)
regulator_enable(data->io_reg);
error = regulator_enable(data->core_reg);
if (error) {
dev_err(&client->dev, "Failed to enable avdd: %d\n", error);
return error;
}

error = regulator_enable(data->io_reg);
if (error) {
dev_err(&client->dev, "Failed to enable vdd: %d\n", error);
regulator_disable(data->core_reg);
return error;
}

mdelay(MMS114_POWERON_DELAY);

error = mms114_setup_regs(data);
if (error < 0)
if (error < 0) {
regulator_disable(data->io_reg);
regulator_disable(data->core_reg);
return error;
}

if (data->pdata->cfg_pin)
data->pdata->cfg_pin(true);
Expand All @@ -335,16 +347,20 @@ static int mms114_start(struct mms114_data *data)
static void mms114_stop(struct mms114_data *data)
{
struct i2c_client *client = data->client;
int error;

disable_irq(client->irq);

if (data->pdata->cfg_pin)
data->pdata->cfg_pin(false);

if (data->io_reg)
regulator_disable(data->io_reg);
if (data->core_reg)
regulator_disable(data->core_reg);
error = regulator_disable(data->io_reg);
if (error)
dev_warn(&client->dev, "Failed to disable vdd: %d\n", error);

error = regulator_disable(data->core_reg);
if (error)
dev_warn(&client->dev, "Failed to disable avdd: %d\n", error);
}

static int mms114_input_open(struct input_dev *dev)
Expand Down

0 comments on commit 297f349

Please sign in to comment.