diff options
author | Bo Shen <voice.shen@atmel.com> | 2013-08-13 12:46:40 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2013-08-13 12:52:18 -0400 |
commit | 3719b54bc62318db7dd8ac7c39a09dfb991a208f (patch) | |
tree | a61c9157a697e18f42873c41c6db80e3852fbabf /drivers/input | |
parent | ac67be927b21c6928f4870c34f57b7fe6f3ad2fc (diff) |
Input: qt1070 - add power management ops
Add power management ops for qt1070, it may be a wakeup source.
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/keyboard/qt1070.c | 27 |
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 | ||
247 | static 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 | |||
258 | static 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 | |||
270 | static SIMPLE_DEV_PM_OPS(qt1070_pm_ops, qt1070_suspend, qt1070_resume); | ||
271 | |||
246 | static const struct i2c_device_id qt1070_id[] = { | 272 | static 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, |