aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/power/max17040_battery.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/power/max17040_battery.c b/drivers/power/max17040_battery.c
index 74a0bd9bc162..c7ff6d67f158 100644
--- a/drivers/power/max17040_battery.c
+++ b/drivers/power/max17040_battery.c
@@ -246,31 +246,34 @@ static int max17040_remove(struct i2c_client *client)
246 return 0; 246 return 0;
247} 247}
248 248
249#ifdef CONFIG_PM 249#ifdef CONFIG_PM_SLEEP
250 250
251static int max17040_suspend(struct i2c_client *client, 251static int max17040_suspend(struct device *dev)
252 pm_message_t state)
253{ 252{
253 struct i2c_client *client = to_i2c_client(dev);
254 struct max17040_chip *chip = i2c_get_clientdata(client); 254 struct max17040_chip *chip = i2c_get_clientdata(client);
255 255
256 cancel_delayed_work(&chip->work); 256 cancel_delayed_work(&chip->work);
257 return 0; 257 return 0;
258} 258}
259 259
260static int max17040_resume(struct i2c_client *client) 260static int max17040_resume(struct device *dev)
261{ 261{
262 struct i2c_client *client = to_i2c_client(dev);
262 struct max17040_chip *chip = i2c_get_clientdata(client); 263 struct max17040_chip *chip = i2c_get_clientdata(client);
263 264
264 schedule_delayed_work(&chip->work, MAX17040_DELAY); 265 schedule_delayed_work(&chip->work, MAX17040_DELAY);
265 return 0; 266 return 0;
266} 267}
267 268
269static SIMPLE_DEV_PM_OPS(max17040_pm_ops, max17040_suspend, max17040_resume);
270#define MAX17040_PM_OPS (&max17040_pm_ops)
271
268#else 272#else
269 273
270#define max17040_suspend NULL 274#define MAX17040_PM_OPS NULL
271#define max17040_resume NULL
272 275
273#endif /* CONFIG_PM */ 276#endif /* CONFIG_PM_SLEEP */
274 277
275static const struct i2c_device_id max17040_id[] = { 278static const struct i2c_device_id max17040_id[] = {
276 { "max17040", 0 }, 279 { "max17040", 0 },
@@ -281,11 +284,10 @@ MODULE_DEVICE_TABLE(i2c, max17040_id);
281static struct i2c_driver max17040_i2c_driver = { 284static struct i2c_driver max17040_i2c_driver = {
282 .driver = { 285 .driver = {
283 .name = "max17040", 286 .name = "max17040",
287 .pm = MAX17040_PM_OPS,
284 }, 288 },
285 .probe = max17040_probe, 289 .probe = max17040_probe,
286 .remove = max17040_remove, 290 .remove = max17040_remove,
287 .suspend = max17040_suspend,
288 .resume = max17040_resume,
289 .id_table = max17040_id, 291 .id_table = max17040_id,
290}; 292};
291module_i2c_driver(max17040_i2c_driver); 293module_i2c_driver(max17040_i2c_driver);