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 */ 12 struct 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 */ 33 struct 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 */ 56 struct 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 74