aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/iio/magnetometer/hmc5843.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/iio/magnetometer/hmc5843.c')
-rw-r--r--drivers/staging/iio/magnetometer/hmc5843.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
index f2e85a9cf19..d24992ceb2b 100644
--- a/drivers/staging/iio/magnetometer/hmc5843.c
+++ b/drivers/staging/iio/magnetometer/hmc5843.c
@@ -588,19 +588,26 @@ static int hmc5843_remove(struct i2c_client *client)
588 return 0; 588 return 0;
589} 589}
590 590
591static int hmc5843_suspend(struct i2c_client *client, pm_message_t mesg) 591#ifdef CONFIG_PM_SLEEP
592static int hmc5843_suspend(struct device *dev)
592{ 593{
593 hmc5843_configure(client, MODE_SLEEP); 594 hmc5843_configure(to_i2c_client(dev), MODE_SLEEP);
594 return 0; 595 return 0;
595} 596}
596 597
597static int hmc5843_resume(struct i2c_client *client) 598static int hmc5843_resume(struct device *dev)
598{ 599{
599 struct hmc5843_data *data = i2c_get_clientdata(client); 600 struct hmc5843_data *data = i2c_get_clientdata(to_i2c_client(dev));
600 hmc5843_configure(client, data->operating_mode); 601 hmc5843_configure(to_i2c_client(dev), data->operating_mode);
601 return 0; 602 return 0;
602} 603}
603 604
605static SIMPLE_DEV_PM_OPS(hmc5843_pm_ops, hmc5843_suspend, hmc5843_resume);
606#define HMC5843_PM_OPS (&hmc5843_pm_ops)
607#else
608#define HMC5843_PM_OPS NULL
609#endif
610
604static const struct i2c_device_id hmc5843_id[] = { 611static const struct i2c_device_id hmc5843_id[] = {
605 { "hmc5843", 0 }, 612 { "hmc5843", 0 },
606 { } 613 { }
@@ -610,14 +617,13 @@ MODULE_DEVICE_TABLE(i2c, hmc5843_id);
610static struct i2c_driver hmc5843_driver = { 617static struct i2c_driver hmc5843_driver = {
611 .driver = { 618 .driver = {
612 .name = "hmc5843", 619 .name = "hmc5843",
620 .pm = HMC5843_PM_OPS,
613 }, 621 },
614 .id_table = hmc5843_id, 622 .id_table = hmc5843_id,
615 .probe = hmc5843_probe, 623 .probe = hmc5843_probe,
616 .remove = hmc5843_remove, 624 .remove = hmc5843_remove,
617 .detect = hmc5843_detect, 625 .detect = hmc5843_detect,
618 .address_list = normal_i2c, 626 .address_list = normal_i2c,
619 .suspend = hmc5843_suspend,
620 .resume = hmc5843_resume,
621}; 627};
622module_i2c_driver(hmc5843_driver); 628module_i2c_driver(hmc5843_driver);
623 629