Blame view

kernel/linux-rt-4.4.41/include/linux/input/gpio_tilt.h 1.94 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  #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