diff options
author | Syed Rafiuddin <srafiuddin@nvidia.com> | 2012-04-20 16:50:10 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 01:09:00 -0700 |
commit | 6ed77e7423ee2c88971a59b1da463c6a7f874450 (patch) | |
tree | 4fb635b0d92c7a9ada3b405729708b84bc9a92a5 /drivers/power/max17048_battery.c | |
parent | ee91f841a99ea57665430d69add1dbaf21efd099 (diff) |
power: max17048: configure hibernate mode
configure fuel-gauge to enter and exit hibernate mode
Change-Id: Ifaa471a4b796fc1aa2b30f109091227eb19cf6ae
Signed-off-by: Syed Rafiuddin <srafiuddin@nvidia.com>
Reviewed-on: http://git-master/r/97900
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
Rebase-Id: R0b9e0b97fc42456251d5f8cb3105b09ddccc8423
Diffstat (limited to 'drivers/power/max17048_battery.c')
-rw-r--r-- | drivers/power/max17048_battery.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/power/max17048_battery.c b/drivers/power/max17048_battery.c index e7c71c344ee9..4b676c6e2b26 100644 --- a/drivers/power/max17048_battery.c +++ b/drivers/power/max17048_battery.c @@ -562,14 +562,30 @@ static int max17048_suspend(struct i2c_client *client, pm_message_t state) { struct max17048_chip *chip = i2c_get_clientdata(client); + int ret; cancel_delayed_work(&chip->work); + + ret = max17048_write_word(client, MAX17048_HIBRT, 0xffff); + if (ret < 0) { + dev_err(&client->dev, "failed in entering hibernate mode\n"); + return ret; + } + return 0; } static int max17048_resume(struct i2c_client *client) { struct max17048_chip *chip = i2c_get_clientdata(client); + int ret; + struct max17048_battery_model *mdata = chip->model_data; + + ret = max17048_write_word(client, MAX17048_HIBRT, mdata->hibernate); + if (ret < 0) { + dev_err(&client->dev, "failed in exiting hibernate mode\n"); + return ret; + } schedule_delayed_work(&chip->work, MAX17048_DELAY); return 0; |