@@ -1361,9 +1361,29 @@ static __devexit int gpmc_remove(struct platform_device *pdev)
return 0;
}
+#ifdef CONFIG_PM
+static int gpmc_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ omap3_gpmc_save_context();
+ pm_runtime_put_sync(&pdev->dev);
+ return 0;
+}
+
+static int gpmc_resume(struct platform_device *pdev)
+{
+ pm_runtime_get_sync(&pdev->dev);
+ omap3_gpmc_restore_context();
+ return 0;
+}
+#endif
+
static struct platform_driver gpmc_driver = {
.probe = gpmc_probe,
.remove = __devexit_p(gpmc_remove),
+#ifdef CONFIG_PM
+ .suspend = gpmc_suspend,
+ .resume = gpmc_resume,
+#endif
.driver = {
.name = DEVICE_NAME,
.owner = THIS_MODULE,
With GPMC converted to platform driver recently, adds low power transition support in driver itself. Signed-off-by: Philip Avinash <avinashphilip@ti.com> --- Changes since v1: Module disable & enable added using pm_runtime support. arch/arm/mach-omap2/gpmc.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)