aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/busses/i2c-s3c2410.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index 8f42a4536cdf..3be0d6a4d630 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -951,17 +951,20 @@ static int s3c24xx_i2c_remove(struct platform_device *pdev)
951} 951}
952 952
953#ifdef CONFIG_PM 953#ifdef CONFIG_PM
954static int s3c24xx_i2c_suspend_late(struct platform_device *dev, 954static int s3c24xx_i2c_suspend_noirq(struct device *dev)
955 pm_message_t msg)
956{ 955{
957 struct s3c24xx_i2c *i2c = platform_get_drvdata(dev); 956 struct platform_device *pdev = to_platform_device(dev);
957 struct s3c24xx_i2c *i2c = platform_get_drvdata(pdev);
958
958 i2c->suspended = 1; 959 i2c->suspended = 1;
960
959 return 0; 961 return 0;
960} 962}
961 963
962static int s3c24xx_i2c_resume(struct platform_device *dev) 964static int s3c24xx_i2c_resume(struct device *dev)
963{ 965{
964 struct s3c24xx_i2c *i2c = platform_get_drvdata(dev); 966 struct platform_device *pdev = to_platform_device(dev);
967 struct s3c24xx_i2c *i2c = platform_get_drvdata(pdev);
965 968
966 i2c->suspended = 0; 969 i2c->suspended = 0;
967 s3c24xx_i2c_init(i2c); 970 s3c24xx_i2c_init(i2c);
@@ -969,9 +972,14 @@ static int s3c24xx_i2c_resume(struct platform_device *dev)
969 return 0; 972 return 0;
970} 973}
971 974
975static struct dev_pm_ops s3c24xx_i2c_dev_pm_ops = {
976 .suspend_noirq = s3c24xx_i2c_suspend_noirq,
977 .resume = s3c24xx_i2c_resume,
978};
979
980#define S3C24XX_DEV_PM_OPS (&s3c24xx_i2c_dev_pm_ops)
972#else 981#else
973#define s3c24xx_i2c_suspend_late NULL 982#define S3C24XX_DEV_PM_OPS NULL
974#define s3c24xx_i2c_resume NULL
975#endif 983#endif
976 984
977/* device driver for platform bus bits */ 985/* device driver for platform bus bits */
@@ -990,12 +998,11 @@ MODULE_DEVICE_TABLE(platform, s3c24xx_driver_ids);
990static struct platform_driver s3c24xx_i2c_driver = { 998static struct platform_driver s3c24xx_i2c_driver = {
991 .probe = s3c24xx_i2c_probe, 999 .probe = s3c24xx_i2c_probe,
992 .remove = s3c24xx_i2c_remove, 1000 .remove = s3c24xx_i2c_remove,
993 .suspend_late = s3c24xx_i2c_suspend_late,
994 .resume = s3c24xx_i2c_resume,
995 .id_table = s3c24xx_driver_ids, 1001 .id_table = s3c24xx_driver_ids,
996 .driver = { 1002 .driver = {
997 .owner = THIS_MODULE, 1003 .owner = THIS_MODULE,
998 .name = "s3c-i2c", 1004 .name = "s3c-i2c",
1005 .pm = S3C24XX_DEV_PM_OPS,
999 }, 1006 },
1000}; 1007};
1001 1008