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