74 lines
1.9 KiB
C
74 lines
1.9 KiB
C
|
#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
|