aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/input/keyboard/qt1070.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/input/keyboard/qt1070.c b/drivers/input/keyboard/qt1070.c
index 42b773b3125a..6c561ec3cc09 100644
--- a/drivers/input/keyboard/qt1070.c
+++ b/drivers/input/keyboard/qt1070.c
@@ -243,6 +243,32 @@ static int qt1070_remove(struct i2c_client *client)
243 return 0; 243 return 0;
244} 244}
245 245
246#ifdef CONFIG_PM_SLEEP
247static int qt1070_suspend(struct device *dev)
248{
249 struct i2c_client *client = to_i2c_client(dev);
250 struct qt1070_data *data = i2c_get_clientdata(client);
251
252 if (device_may_wakeup(dev))
253 enable_irq_wake(data->irq);
254
255 return 0;
256}
257
258static int qt1070_resume(struct device *dev)
259{
260 struct i2c_client *client = to_i2c_client(dev);
261 struct qt1070_data *data = i2c_get_clientdata(client);
262
263 if (device_may_wakeup(dev))
264 disable_irq_wake(data->irq);
265
266 return 0;
267}
268#endif
269
270static SIMPLE_DEV_PM_OPS(qt1070_pm_ops, qt1070_suspend, qt1070_resume);
271
246static const struct i2c_device_id qt1070_id[] = { 272static const struct i2c_device_id qt1070_id[] = {
247 { "qt1070", 0 }, 273 { "qt1070", 0 },
248 { }, 274 { },
@@ -253,6 +279,7 @@ static struct i2c_driver qt1070_driver = {
253 .driver = { 279 .driver = {
254 .name = "qt1070", 280 .name = "qt1070",
255 .owner = THIS_MODULE, 281 .owner = THIS_MODULE,
282 .pm = &qt1070_pm_ops,
256 }, 283 },
257 .id_table = qt1070_id, 284 .id_table = qt1070_id,
258 .probe = qt1070_probe, 285 .probe = qt1070_probe,