|
@@ -1426,12 +1426,37 @@ static const struct platform_device_id spi_driver_ids[] = {
|
|
|
};
|
|
|
MODULE_DEVICE_TABLE(platform, spi_driver_ids);
|
|
|
|
|
|
+#ifdef CONFIG_PM_SLEEP
|
|
|
+static int sh_msiof_spi_suspend(struct device *dev)
|
|
|
+{
|
|
|
+ struct platform_device *pdev = to_platform_device(dev);
|
|
|
+ struct sh_msiof_spi_priv *p = platform_get_drvdata(pdev);
|
|
|
+
|
|
|
+ return spi_master_suspend(p->master);
|
|
|
+}
|
|
|
+
|
|
|
+static int sh_msiof_spi_resume(struct device *dev)
|
|
|
+{
|
|
|
+ struct platform_device *pdev = to_platform_device(dev);
|
|
|
+ struct sh_msiof_spi_priv *p = platform_get_drvdata(pdev);
|
|
|
+
|
|
|
+ return spi_master_resume(p->master);
|
|
|
+}
|
|
|
+
|
|
|
+static SIMPLE_DEV_PM_OPS(sh_msiof_spi_pm_ops, sh_msiof_spi_suspend,
|
|
|
+ sh_msiof_spi_resume);
|
|
|
+#define DEV_PM_OPS &sh_msiof_spi_pm_ops
|
|
|
+#else
|
|
|
+#define DEV_PM_OPS NULL
|
|
|
+#endif /* CONFIG_PM_SLEEP */
|
|
|
+
|
|
|
static struct platform_driver sh_msiof_spi_drv = {
|
|
|
.probe = sh_msiof_spi_probe,
|
|
|
.remove = sh_msiof_spi_remove,
|
|
|
.id_table = spi_driver_ids,
|
|
|
.driver = {
|
|
|
.name = "spi_sh_msiof",
|
|
|
+ .pm = DEV_PM_OPS,
|
|
|
.of_match_table = of_match_ptr(sh_msiof_match),
|
|
|
},
|
|
|
};
|