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 */
42struct 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