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