PageRenderTime 19ms CodeModel.GetById 11ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/include/linux/input/gpio_tilt.h

https://github.com/airy09/android_kernel_sony_apq8064
C Header | 73 lines | 26 code | 8 blank | 39 comment | 0 complexity | f978f403cd05339d6e6da8924dd7fce8 MD5 | raw file
 1#ifndef _INPUT_GPIO_TILT_H
 2#define _INPUT_GPIO_TILT_H
 3
 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
11 */
12struct gpio_tilt_axis {
13	int axis;
14	int min;
15	int max;
16	int fuzz;
17	int flat;
18};
19
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
26 *
27 * This structure describes a supported axis settings
28 * and the necessary gpio-state which represent it.
29 *
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.
32 */
33struct gpio_tilt_state {
34	int gpios;
35	int *axes;
36};
37
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
51 *
52 * This structure contains gpio-tilt-switch configuration
53 * information that must be passed by platform code to the
54 * gpio-tilt input driver.
55 */
56struct gpio_tilt_platform_data {
57	struct gpio *gpios;
58	int nr_gpios;
59
60	struct gpio_tilt_axis *axes;
61	int nr_axes;
62
63	struct gpio_tilt_state *states;
64	int nr_states;
65
66	int debounce_interval;
67
68	unsigned int poll_interval;
69	int (*enable)(struct device *dev);
70	void (*disable)(struct device *dev);
71};
72
73#endif