summaryrefslogtreecommitdiff
path: root/drivers/power/max17048_battery.c
diff options
context:
space:
mode:
authorSyed Rafiuddin <srafiuddin@nvidia.com>2012-04-20 16:50:10 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 01:09:00 -0700
commit6ed77e7423ee2c88971a59b1da463c6a7f874450 (patch)
tree4fb635b0d92c7a9ada3b405729708b84bc9a92a5 /drivers/power/max17048_battery.c
parentee91f841a99ea57665430d69add1dbaf21efd099 (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.c16
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;