mfd: Convert pcf50633 to dev_pm_ops
[pandora-kernel.git] / drivers / mfd / pcf50633-core.c
index 501ce13..2640e4d 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/workqueue.h>
 #include <linux/platform_device.h>
 #include <linux/i2c.h>
+#include <linux/pm.h>
 #include <linux/slab.h>
 
 #include <linux/mfd/pcf50633/core.h>
@@ -230,27 +231,26 @@ pcf50633_client_dev_register(struct pcf50633 *pcf, const char *name,
        }
 }
 
-#ifdef CONFIG_PM
-static int pcf50633_suspend(struct i2c_client *client, pm_message_t state)
+#ifdef CONFIG_PM_SLEEP
+static int pcf50633_suspend(struct device *dev)
 {
-       struct pcf50633 *pcf;
-       pcf = i2c_get_clientdata(client);
+       struct i2c_client *client = to_i2c_client(dev);
+       struct pcf50633 *pcf = i2c_get_clientdata(client);
 
        return pcf50633_irq_suspend(pcf);
 }
 
-static int pcf50633_resume(struct i2c_client *client)
+static int pcf50633_resume(struct device *dev)
 {
-       struct pcf50633 *pcf;
-       pcf = i2c_get_clientdata(client);
+       struct i2c_client *client = to_i2c_client(dev);
+       struct pcf50633 *pcf = i2c_get_clientdata(client);
 
        return pcf50633_irq_resume(pcf);
 }
-#else
-#define pcf50633_suspend NULL
-#define pcf50633_resume NULL
 #endif
 
+static SIMPLE_DEV_PM_OPS(pcf50633_pm, pcf50633_suspend, pcf50633_resume);
+
 static int __devinit pcf50633_probe(struct i2c_client *client,
                                const struct i2c_device_id *ids)
 {
@@ -364,12 +364,11 @@ static struct i2c_device_id pcf50633_id_table[] = {
 static struct i2c_driver pcf50633_driver = {
        .driver = {
                .name   = "pcf50633",
+               .pm     = &pcf50633_pm,
        },
        .id_table = pcf50633_id_table,
        .probe = pcf50633_probe,
        .remove = __devexit_p(pcf50633_remove),
-       .suspend = pcf50633_suspend,
-       .resume = pcf50633_resume,
 };
 
 static int __init pcf50633_init(void)