mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.9 KiB
73 lines
1.9 KiB
#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
|
|
|