aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/power/pm2301_charger.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/drivers/power/pm2301_charger.c b/drivers/power/pm2301_charger.c
index 618c46d25a3b..f123f3c219c3 100644
--- a/drivers/power/pm2301_charger.c
+++ b/drivers/power/pm2301_charger.c
@@ -26,6 +26,7 @@
26#include <linux/pm2301_charger.h> 26#include <linux/pm2301_charger.h>
27#include <linux/gpio.h> 27#include <linux/gpio.h>
28#include <linux/pm_runtime.h> 28#include <linux/pm_runtime.h>
29#include <linux/pm.h>
29 30
30#include "pm2301_charger.h" 31#include "pm2301_charger.h"
31 32
@@ -906,8 +907,13 @@ static struct pm2xxx_irq pm2xxx_charger_irq[] = {
906 {"PM2XXX_IRQ_INT", pm2xxx_irq_int}, 907 {"PM2XXX_IRQ_INT", pm2xxx_irq_int},
907}; 908};
908 909
909static int pm2xxx_wall_charger_resume(struct i2c_client *i2c_client) 910#ifdef CONFIG_PM
911
912#ifdef CONFIG_PM_SLEEP
913
914static int pm2xxx_wall_charger_resume(struct device *dev)
910{ 915{
916 struct i2c_client *i2c_client = to_i2c_client(dev);
911 struct pm2xxx_charger *pm2; 917 struct pm2xxx_charger *pm2;
912 918
913 pm2 = (struct pm2xxx_charger *)i2c_get_clientdata(i2c_client); 919 pm2 = (struct pm2xxx_charger *)i2c_get_clientdata(i2c_client);
@@ -921,9 +927,9 @@ static int pm2xxx_wall_charger_resume(struct i2c_client *i2c_client)
921 return 0; 927 return 0;
922} 928}
923 929
924static int pm2xxx_wall_charger_suspend(struct i2c_client *i2c_client, 930static int pm2xxx_wall_charger_suspend(struct device *dev)
925 pm_message_t state)
926{ 931{
932 struct i2c_client *i2c_client = to_i2c_client(dev);
927 struct pm2xxx_charger *pm2; 933 struct pm2xxx_charger *pm2;
928 934
929 pm2 = (struct pm2xxx_charger *)i2c_get_clientdata(i2c_client); 935 pm2 = (struct pm2xxx_charger *)i2c_get_clientdata(i2c_client);
@@ -939,7 +945,10 @@ static int pm2xxx_wall_charger_suspend(struct i2c_client *i2c_client,
939 return 0; 945 return 0;
940} 946}
941 947
942#ifdef CONFIG_PM 948#endif
949
950#ifdef CONFIG_PM_RUNTIME
951
943static int pm2xxx_runtime_suspend(struct device *dev) 952static int pm2xxx_runtime_suspend(struct device *dev)
944{ 953{
945 struct i2c_client *pm2xxx_i2c_client = to_i2c_client(dev); 954 struct i2c_client *pm2xxx_i2c_client = to_i2c_client(dev);
@@ -977,9 +986,12 @@ static int pm2xxx_runtime_resume(struct device *dev)
977 return ret; 986 return ret;
978} 987}
979 988
989#endif
990
980static const struct dev_pm_ops pm2xxx_pm_ops = { 991static const struct dev_pm_ops pm2xxx_pm_ops = {
981 .runtime_suspend = pm2xxx_runtime_suspend, 992 SET_SYSTEM_SLEEP_PM_OPS(pm2xxx_wall_charger_suspend,
982 .runtime_resume = pm2xxx_runtime_resume, 993 pm2xxx_wall_charger_resume)
994 SET_RUNTIME_PM_OPS(pm2xxx_runtime_suspend, pm2xxx_runtime_resume, NULL)
983}; 995};
984#define PM2XXX_PM_OPS (&pm2xxx_pm_ops) 996#define PM2XXX_PM_OPS (&pm2xxx_pm_ops)
985#else 997#else
@@ -1234,8 +1246,6 @@ MODULE_DEVICE_TABLE(i2c, pm2xxx_id);
1234static struct i2c_driver pm2xxx_charger_driver = { 1246static struct i2c_driver pm2xxx_charger_driver = {
1235 .probe = pm2xxx_wall_charger_probe, 1247 .probe = pm2xxx_wall_charger_probe,
1236 .remove = pm2xxx_wall_charger_remove, 1248 .remove = pm2xxx_wall_charger_remove,
1237 .suspend = pm2xxx_wall_charger_suspend,
1238 .resume = pm2xxx_wall_charger_resume,
1239 .driver = { 1249 .driver = {
1240 .name = "pm2xxx-wall_charger", 1250 .name = "pm2xxx-wall_charger",
1241 .owner = THIS_MODULE, 1251 .owner = THIS_MODULE,