Linux 4.6-rc6
[cris-mirror.git] / include / linux / input / gpio_tilt.h
blobc1cc52d380e018a8bc96961ed8dab88418a4402e
1 #ifndef _INPUT_GPIO_TILT_H
2 #define _INPUT_GPIO_TILT_H
4 /**
5 * struct gpio_tilt_axis - Axis used by the tilt switch
6 * @axis: Constant describing the axis, e.g. ABS_X
7 * @min: minimum value for abs_param
8 * @max: maximum value for abs_param
9 * @fuzz: fuzz value for abs_param
10 * @flat: flat value for abs_param
12 struct gpio_tilt_axis {
13 int axis;
14 int min;
15 int max;
16 int fuzz;
17 int flat;
20 /**
21 * struct gpio_tilt_state - state description
22 * @gpios: bitfield of gpio target-states for the value
23 * @axes: array containing the axes settings for the gpio state
24 * The array indizes must correspond to the axes defined
25 * in platform_data
27 * This structure describes a supported axis settings
28 * and the necessary gpio-state which represent it.
30 * The n-th bit in the bitfield describes the state of the n-th GPIO
31 * from the gpios-array defined in gpio_regulator_config below.
33 struct gpio_tilt_state {
34 int gpios;
35 int *axes;
38 /**
39 * struct gpio_tilt_platform_data
40 * @gpios: Array containing the gpios determining the tilt state
41 * @nr_gpios: Number of gpios
42 * @axes: Array of gpio_tilt_axis descriptions
43 * @nr_axes: Number of axes
44 * @states: Array of gpio_tilt_state entries describing
45 * the gpio state for specific tilts
46 * @nr_states: Number of states available
47 * @debounce_interval: debounce ticks interval in msecs
48 * @poll_interval: polling interval in msecs - for polling driver only
49 * @enable: callback to enable the tilt switch
50 * @disable: callback to disable the tilt switch
52 * This structure contains gpio-tilt-switch configuration
53 * information that must be passed by platform code to the
54 * gpio-tilt input driver.
56 struct gpio_tilt_platform_data {
57 struct gpio *gpios;
58 int nr_gpios;
60 struct gpio_tilt_axis *axes;
61 int nr_axes;
63 struct gpio_tilt_state *states;
64 int nr_states;
66 int debounce_interval;
68 unsigned int poll_interval;
69 int (*enable)(struct device *dev);
70 void (*disable)(struct device *dev);
73 #endif