Linux 2.6.33-rc2
[pohmelfs.git] / include / linux / gpio_mouse.h
blob44ed7aa14d85240a0e69b497bc15176080ae876b
1 /*
2 * Driver for simulating a mouse on GPIO lines.
4 * Copyright (C) 2007 Atmel Corporation
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 */
11 #ifndef _GPIO_MOUSE_H
12 #define _GPIO_MOUSE_H
14 #define GPIO_MOUSE_POLARITY_ACT_HIGH 0x00
15 #define GPIO_MOUSE_POLARITY_ACT_LOW 0x01
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
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.
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.
42 struct gpio_mouse_platform_data {
43 int scan_ms;
44 int polarity;
46 union {
47 struct {
48 int up;
49 int down;
50 int left;
51 int right;
53 int bleft;
54 int bmiddle;
55 int bright;
57 int pins[GPIO_MOUSE_PIN_MAX];
61 #endif /* _GPIO_MOUSE_H */