linux/include/linux/gpio_mouse.h
<<
>>
Prefs
   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