clk_disable_unprepare(keypad->clk);
 }
 
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
 static int pxa27x_keypad_suspend(struct device *dev)
 {
        struct platform_device *pdev = to_platform_device(dev);
 
        return 0;
 }
-
-static const struct dev_pm_ops pxa27x_keypad_pm_ops = {
-       .suspend        = pxa27x_keypad_suspend,
-       .resume         = pxa27x_keypad_resume,
-};
 #endif
 
+static SIMPLE_DEV_PM_OPS(pxa27x_keypad_pm_ops,
+                        pxa27x_keypad_suspend, pxa27x_keypad_resume);
+
+
 static int pxa27x_keypad_probe(struct platform_device *pdev)
 {
        struct pxa27x_keypad_platform_data *pdata = pdev->dev.platform_data;
                .name   = "pxa27x-keypad",
                .of_match_table = of_match_ptr(pxa27x_keypad_dt_match),
                .owner  = THIS_MODULE,
-#ifdef CONFIG_PM
                .pm     = &pxa27x_keypad_pm_ops,
-#endif
        },
 };
 module_platform_driver(pxa27x_keypad_driver);