aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/i2c/busses/i2c-omap.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index b605ff3a1fa0..0541df90b9fb 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -1137,12 +1137,40 @@ omap_i2c_remove(struct platform_device *pdev)
1137 return 0; 1137 return 0;
1138} 1138}
1139 1139
1140#ifdef CONFIG_SUSPEND
1141static int omap_i2c_suspend(struct device *dev)
1142{
1143 if (!pm_runtime_suspended(dev))
1144 if (dev->bus && dev->bus->pm && dev->bus->pm->runtime_suspend)
1145 dev->bus->pm->runtime_suspend(dev);
1146
1147 return 0;
1148}
1149
1150static int omap_i2c_resume(struct device *dev)
1151{
1152 if (!pm_runtime_suspended(dev))
1153 if (dev->bus && dev->bus->pm && dev->bus->pm->runtime_resume)
1154 dev->bus->pm->runtime_resume(dev);
1155
1156 return 0;
1157}
1158
1159static struct dev_pm_ops omap_i2c_pm_ops = {
1160 .suspend = omap_i2c_suspend,
1161 .resume = omap_i2c_resume,
1162};
1163#else
1164#define omap_i2c_pm_ops NULL
1165#endif
1166
1140static struct platform_driver omap_i2c_driver = { 1167static struct platform_driver omap_i2c_driver = {
1141 .probe = omap_i2c_probe, 1168 .probe = omap_i2c_probe,
1142 .remove = omap_i2c_remove, 1169 .remove = omap_i2c_remove,
1143 .driver = { 1170 .driver = {
1144 .name = "omap_i2c", 1171 .name = "omap_i2c",
1145 .owner = THIS_MODULE, 1172 .owner = THIS_MODULE,
1173 .pm = &omap_i2c_pm_ops,
1146 }, 1174 },
1147}; 1175};
1148 1176