| #ifndef _INPUT_GPIO_TILT_H | |
| #define _INPUT_GPIO_TILT_H | |
| /** | |
| * struct gpio_tilt_axis - Axis used by the tilt switch | |
| * @axis: Constant describing the axis, e.g. ABS_X | |
| * @min: minimum value for abs_param | |
| * @max: maximum value for abs_param | |
| * @fuzz: fuzz value for abs_param | |
| * @flat: flat value for abs_param | |
| */ | |
| struct gpio_tilt_axis { | |
| int axis; | |
| int min; | |
| int max; | |
| int fuzz; | |
| int flat; | |
| }; | |
| /** | |
| * struct gpio_tilt_state - state description | |
| * @gpios: bitfield of gpio target-states for the value | |
| * @axes: array containing the axes settings for the gpio state | |
| * The array indizes must correspond to the axes defined | |
| * in platform_data | |
| * | |
| * This structure describes a supported axis settings | |
| * and the necessary gpio-state which represent it. | |
| * | |
| * The n-th bit in the bitfield describes the state of the n-th GPIO | |
| * from the gpios-array defined in gpio_regulator_config below. | |
| */ | |
| struct gpio_tilt_state { | |
| int gpios; | |
| int *axes; | |
| }; | |
| /** | |
| * struct gpio_tilt_platform_data | |
| * @gpios: Array containing the gpios determining the tilt state | |
| * @nr_gpios: Number of gpios | |
| * @axes: Array of gpio_tilt_axis descriptions | |
| * @nr_axes: Number of axes | |
| * @states: Array of gpio_tilt_state entries describing | |
| * the gpio state for specific tilts | |
| * @nr_states: Number of states available | |
| * @debounce_interval: debounce ticks interval in msecs | |
| * @poll_interval: polling interval in msecs - for polling driver only | |
| * @enable: callback to enable the tilt switch | |
| * @disable: callback to disable the tilt switch | |
| * | |
| * This structure contains gpio-tilt-switch configuration | |
| * information that must be passed by platform code to the | |
| * gpio-tilt input driver. | |
| */ | |
| struct gpio_tilt_platform_data { | |
| struct gpio *gpios; | |
| int nr_gpios; | |
| struct gpio_tilt_axis *axes; | |
| int nr_axes; | |
| struct gpio_tilt_state *states; | |
| int nr_states; | |
| int debounce_interval; | |
| unsigned int poll_interval; | |
| int (*enable)(struct device *dev); | |
| void (*disable)(struct device *dev); | |
| }; | |
| #endif |