enum hmc5843_ids id, const char *name);
 void hmc5843_common_remove(struct device *dev);
 
-int hmc5843_common_suspend(struct device *dev);
-int hmc5843_common_resume(struct device *dev);
-
-#ifdef CONFIG_PM_SLEEP
-static __maybe_unused SIMPLE_DEV_PM_OPS(hmc5843_pm_ops,
-                                       hmc5843_common_suspend,
-                                       hmc5843_common_resume);
-#define HMC5843_PM_OPS (&hmc5843_pm_ops)
-#else
-#define HMC5843_PM_OPS NULL
-#endif
-
+extern const struct dev_pm_ops hmc5843_pm_ops;
 #endif /* HMC5843_CORE_H */
 
 
 static const unsigned long hmc5843_scan_masks[] = {0x7, 0};
 
-int hmc5843_common_suspend(struct device *dev)
+static int hmc5843_common_suspend(struct device *dev)
 {
        return hmc5843_set_mode(iio_priv(dev_get_drvdata(dev)),
                                HMC5843_MODE_SLEEP);
 }
-EXPORT_SYMBOL_NS(hmc5843_common_suspend, IIO_HMC5843);
 
-int hmc5843_common_resume(struct device *dev)
+static int hmc5843_common_resume(struct device *dev)
 {
        return hmc5843_set_mode(iio_priv(dev_get_drvdata(dev)),
                HMC5843_MODE_CONVERSION_CONTINUOUS);
 }
-EXPORT_SYMBOL_NS(hmc5843_common_resume, IIO_HMC5843);
+EXPORT_NS_SIMPLE_DEV_PM_OPS(hmc5843_pm_ops, hmc5843_common_suspend,
+                           hmc5843_common_resume, IIO_HMC5843);
 
 int hmc5843_common_probe(struct device *dev, struct regmap *regmap,
                         enum hmc5843_ids id, const char *name)
 
 static struct i2c_driver hmc5843_driver = {
        .driver = {
                .name   = "hmc5843",
-               .pm     = HMC5843_PM_OPS,
+               .pm     = pm_sleep_ptr(&hmc5843_pm_ops),
                .of_match_table = hmc5843_of_match,
        },
        .id_table       = hmc5843_id,
 
 static struct spi_driver hmc5843_driver = {
        .driver = {
                .name = "hmc5843",
-               .pm = HMC5843_PM_OPS,
+               .pm = pm_sleep_ptr(&hmc5843_pm_ops),
        },
        .id_table = hmc5843_id,
        .probe = hmc5843_spi_probe,