diff options
author | Dmitry Torokhov <dtor@insightbb.com> | 2007-04-29 23:42:45 -0400 |
---|---|---|
committer | Dmitry Torokhov <dtor@insightbb.com> | 2007-04-29 23:42:45 -0400 |
commit | 0dcd8073673115eeb67343787f244905f62532f2 (patch) | |
tree | fd419ac046696d3255d029dd77005c3345f5a9f1 /include/linux | |
parent | 85796e7d939a39787f10a643477298678fed85db (diff) |
Input: add skeleton for simple polled devices
input-polldev provides a skeleton for supporting simple input
devices that need to be periodically scanned or polled to
detect changes in their state.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/input-polldev.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/linux/input-polldev.h b/include/linux/input-polldev.h new file mode 100644 index 000000000000..597a0077b3c5 --- /dev/null +++ b/include/linux/input-polldev.h | |||
@@ -0,0 +1,46 @@ | |||
1 | #ifndef _INPUT_POLLDEV_H | ||
2 | #define _INPUT_POLLDEV_H | ||
3 | |||
4 | /* | ||
5 | * Copyright (c) 2007 Dmitry Torokhov | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License version 2 as published by | ||
9 | * the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | #include <linux/input.h> | ||
13 | #include <linux/workqueue.h> | ||
14 | |||
15 | /** | ||
16 | * struct input_polled_dev - simple polled input device | ||
17 | * @private: private driver data | ||
18 | * @flush: driver-supplied method that flushes device's state upon | ||
19 | * opening (optional) | ||
20 | * @poll: driver-supplied method that polls the device and posts | ||
21 | * input events (mandatory). | ||
22 | * @poll_interval: specifies how often the poll() method shoudl be called. | ||
23 | * @input: input device structire associated with the polled device. | ||
24 | * Must be properly initialized by the driver (id, name, phys, bits). | ||
25 | * | ||
26 | * Polled input device provides a skeleton for supporting simple input | ||
27 | * devices that do not raise interrupts but have to be periodically | ||
28 | * scanned or polled to detect changes in their state. | ||
29 | */ | ||
30 | struct input_polled_dev { | ||
31 | void *private; | ||
32 | |||
33 | void (*flush)(struct input_polled_dev *dev); | ||
34 | void (*poll)(struct input_polled_dev *dev); | ||
35 | unsigned int poll_interval; /* msec */ | ||
36 | |||
37 | struct input_dev *input; | ||
38 | struct delayed_work work; | ||
39 | }; | ||
40 | |||
41 | struct input_polled_dev *input_allocate_polled_device(void); | ||
42 | void input_free_polled_device(struct input_polled_dev *dev); | ||
43 | int input_register_polled_device(struct input_polled_dev *dev); | ||
44 | void input_unregister_polled_device(struct input_polled_dev *dev); | ||
45 | |||
46 | #endif | ||