From d0903d7c37a2a4fbac6d830e7fdbcb7e512694d2 Mon Sep 17 00:00:00 2001 From: Syed Rafiuddin Date: Fri, 20 Apr 2012 16:50:10 +0530 Subject: power: max17048: configure hibernate mode configure fuel-gauge to enter and exit hibernate mode Change-Id: Ifaa471a4b796fc1aa2b30f109091227eb19cf6ae Signed-off-by: Syed Rafiuddin Reviewed-on: http://git-master/r/97900 Reviewed-by: Simone Willett Tested-by: Simone Willett --- drivers/power/max17048_battery.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'drivers') diff --git a/drivers/power/max17048_battery.c b/drivers/power/max17048_battery.c index e5cdfa878267..e6dee61cc9b4 100644 --- a/drivers/power/max17048_battery.c +++ b/drivers/power/max17048_battery.c @@ -567,14 +567,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; -- cgit v1.2.3