diff options
Diffstat (limited to 'arch/arm/plat-omap/omap_device.c')
| -rw-r--r-- | arch/arm/plat-omap/omap_device.c | 23 | 
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c index 9bbda9acb73..a37b8eb65b7 100644 --- a/arch/arm/plat-omap/omap_device.c +++ b/arch/arm/plat-omap/omap_device.c @@ -536,6 +536,28 @@ int omap_early_device_register(struct omap_device *od)  	return 0;  } +static int _od_runtime_suspend(struct device *dev) +{ +	struct platform_device *pdev = to_platform_device(dev); + +	return omap_device_idle(pdev); +} + +static int _od_runtime_resume(struct device *dev) +{ +	struct platform_device *pdev = to_platform_device(dev); + +	return omap_device_enable(pdev); +} + +static struct dev_power_domain omap_device_power_domain = { +	.ops = { +		.runtime_suspend = _od_runtime_suspend, +		.runtime_resume = _od_runtime_resume, +		USE_PLATFORM_PM_SLEEP_OPS +	} +}; +  /**   * omap_device_register - register an omap_device with one omap_hwmod   * @od: struct omap_device * to register @@ -549,6 +571,7 @@ int omap_device_register(struct omap_device *od)  	pr_debug("omap_device: %s: registering\n", od->pdev.name);  	od->pdev.dev.parent = &omap_device_parent; +	od->pdev.dev.pwr_domain = &omap_device_power_domain;  	return platform_device_register(&od->pdev);  }  |