• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Driver for simulating a mouse on GPIO lines.
3  *
4  * Copyright (C) 2007 Atmel Corporation
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 
11 #ifndef _GPIO_MOUSE_H
12 #define _GPIO_MOUSE_H
13 
14 #define GPIO_MOUSE_POLARITY_ACT_HIGH	0x00
15 #define GPIO_MOUSE_POLARITY_ACT_LOW	0x01
16 
17 #define GPIO_MOUSE_PIN_UP	0
18 #define GPIO_MOUSE_PIN_DOWN	1
19 #define GPIO_MOUSE_PIN_LEFT	2
20 #define GPIO_MOUSE_PIN_RIGHT	3
21 #define GPIO_MOUSE_PIN_BLEFT	4
22 #define GPIO_MOUSE_PIN_BMIDDLE	5
23 #define GPIO_MOUSE_PIN_BRIGHT	6
24 #define GPIO_MOUSE_PIN_MAX	7
25 
26 /**
27  * struct gpio_mouse_platform_data
28  * @scan_ms: integer in ms specifying the scan periode.
29  * @polarity: Pin polarity, active high or low.
30  * @up: GPIO line for up value.
31  * @down: GPIO line for down value.
32  * @left: GPIO line for left value.
33  * @right: GPIO line for right value.
34  * @bleft: GPIO line for left button.
35  * @bmiddle: GPIO line for middle button.
36  * @bright: GPIO line for right button.
37  *
38  * This struct must be added to the platform_device in the board code.
39  * It is used by the gpio_mouse driver to setup GPIO lines and to
40  * calculate mouse movement.
41  */
42 struct gpio_mouse_platform_data {
43 	int scan_ms;
44 	int polarity;
45 
46 	union {
47 		struct {
48 			int up;
49 			int down;
50 			int left;
51 			int right;
52 
53 			int bleft;
54 			int bmiddle;
55 			int bright;
56 		};
57 		int pins[GPIO_MOUSE_PIN_MAX];
58 	};
59 };
60 
61 #endif /* _GPIO_MOUSE_H */
62