]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
3bfd5c5b HS |
2 | #ifndef _INPUT_GPIO_TILT_H |
3 | #define _INPUT_GPIO_TILT_H | |
4 | ||
5 | /** | |
6 | * struct gpio_tilt_axis - Axis used by the tilt switch | |
7 | * @axis: Constant describing the axis, e.g. ABS_X | |
8 | * @min: minimum value for abs_param | |
9 | * @max: maximum value for abs_param | |
10 | * @fuzz: fuzz value for abs_param | |
11 | * @flat: flat value for abs_param | |
12 | */ | |
13 | struct gpio_tilt_axis { | |
14 | int axis; | |
15 | int min; | |
16 | int max; | |
17 | int fuzz; | |
18 | int flat; | |
19 | }; | |
20 | ||
21 | /** | |
22 | * struct gpio_tilt_state - state description | |
23 | * @gpios: bitfield of gpio target-states for the value | |
24 | * @axes: array containing the axes settings for the gpio state | |
25 | * The array indizes must correspond to the axes defined | |
26 | * in platform_data | |
27 | * | |
28 | * This structure describes a supported axis settings | |
29 | * and the necessary gpio-state which represent it. | |
30 | * | |
31 | * The n-th bit in the bitfield describes the state of the n-th GPIO | |
32 | * from the gpios-array defined in gpio_regulator_config below. | |
33 | */ | |
34 | struct gpio_tilt_state { | |
35 | int gpios; | |
36 | int *axes; | |
37 | }; | |
38 | ||
39 | /** | |
40 | * struct gpio_tilt_platform_data | |
41 | * @gpios: Array containing the gpios determining the tilt state | |
42 | * @nr_gpios: Number of gpios | |
43 | * @axes: Array of gpio_tilt_axis descriptions | |
44 | * @nr_axes: Number of axes | |
45 | * @states: Array of gpio_tilt_state entries describing | |
46 | * the gpio state for specific tilts | |
47 | * @nr_states: Number of states available | |
48 | * @debounce_interval: debounce ticks interval in msecs | |
49 | * @poll_interval: polling interval in msecs - for polling driver only | |
50 | * @enable: callback to enable the tilt switch | |
51 | * @disable: callback to disable the tilt switch | |
52 | * | |
53 | * This structure contains gpio-tilt-switch configuration | |
54 | * information that must be passed by platform code to the | |
55 | * gpio-tilt input driver. | |
56 | */ | |
57 | struct gpio_tilt_platform_data { | |
58 | struct gpio *gpios; | |
59 | int nr_gpios; | |
60 | ||
61 | struct gpio_tilt_axis *axes; | |
62 | int nr_axes; | |
63 | ||
64 | struct gpio_tilt_state *states; | |
65 | int nr_states; | |
66 | ||
67 | int debounce_interval; | |
68 | ||
69 | unsigned int poll_interval; | |
70 | int (*enable)(struct device *dev); | |
71 | void (*disable)(struct device *dev); | |
72 | }; | |
73 | ||
74 | #endif |