.driver = {
                .name   = "kxsd9",
                .of_match_table = kxsd9_of_match,
-               .pm = &kxsd9_dev_pm_ops,
+               .pm = pm_ptr(&kxsd9_dev_pm_ops),
        },
        .probe          = kxsd9_i2c_probe,
        .remove         = kxsd9_i2c_remove,
 
 static struct spi_driver kxsd9_spi_driver = {
        .driver = {
                .name = "kxsd9",
-               .pm = &kxsd9_dev_pm_ops,
+               .pm = pm_ptr(&kxsd9_dev_pm_ops),
                .of_match_table = kxsd9_of_match,
        },
        .probe = kxsd9_spi_probe,
 
 }
 EXPORT_SYMBOL_NS(kxsd9_common_remove, IIO_KXSD9);
 
-#ifdef CONFIG_PM
 static int kxsd9_runtime_suspend(struct device *dev)
 {
        struct iio_dev *indio_dev = dev_get_drvdata(dev);
 
        return kxsd9_power_up(st);
 }
-#endif /* CONFIG_PM */
 
-const struct dev_pm_ops kxsd9_dev_pm_ops = {
-       SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
-                               pm_runtime_force_resume)
-       SET_RUNTIME_PM_OPS(kxsd9_runtime_suspend,
-                          kxsd9_runtime_resume, NULL)
-};
-EXPORT_SYMBOL_NS(kxsd9_dev_pm_ops, IIO_KXSD9);
+EXPORT_NS_RUNTIME_DEV_PM_OPS(kxsd9_dev_pm_ops, kxsd9_runtime_suspend,
+                            kxsd9_runtime_resume, NULL, IIO_KXSD9);
 
 MODULE_AUTHOR("Jonathan Cameron <jic23@kernel.org>");
 MODULE_DESCRIPTION("Kionix KXSD9 driver");