ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / drivers / input / mouse / psmouse.h
1 #ifndef _PSMOUSE_H
2 #define _PSMOUSE_H
3
4 #define PSMOUSE_CMD_SETSCALE11  0x00e6
5 #define PSMOUSE_CMD_SETRES      0x10e8
6 #define PSMOUSE_CMD_GETINFO     0x03e9
7 #define PSMOUSE_CMD_SETSTREAM   0x00ea
8 #define PSMOUSE_CMD_POLL        0x03eb
9 #define PSMOUSE_CMD_GETID       0x02f2
10 #define PSMOUSE_CMD_SETRATE     0x10f3
11 #define PSMOUSE_CMD_ENABLE      0x00f4
12 #define PSMOUSE_CMD_RESET_DIS   0x00f6
13 #define PSMOUSE_CMD_RESET_BAT   0x02ff
14
15 #define PSMOUSE_RET_BAT         0xaa
16 #define PSMOUSE_RET_ID          0x00
17 #define PSMOUSE_RET_ACK         0xfa
18 #define PSMOUSE_RET_NAK         0xfe
19
20 /* psmouse states */
21 #define PSMOUSE_CMD_MODE        0
22 #define PSMOUSE_ACTIVATED       1
23 #define PSMOUSE_IGNORE          2
24
25 struct psmouse;
26
27 struct psmouse_ptport {
28         struct serio serio;
29
30         void (*activate)(struct psmouse *parent);
31         void (*deactivate)(struct psmouse *parent);
32 };
33
34 struct psmouse {
35         void *private;
36         struct input_dev dev;
37         struct serio *serio;
38         struct psmouse_ptport *ptport;
39         char *vendor;
40         char *name;
41         unsigned char cmdbuf[8];
42         unsigned char packet[8];
43         unsigned char cmdcnt;
44         unsigned char pktcnt;
45         unsigned char type;
46         unsigned char model;
47         unsigned long last;
48         unsigned char state;
49         char acking;
50         volatile char ack;
51         char error;
52         char devname[64];
53         char phys[32];
54
55         int (*reconnect)(struct psmouse *psmouse);
56         void (*disconnect)(struct psmouse *psmouse);
57 };
58
59 #define PSMOUSE_PS2             1
60 #define PSMOUSE_PS2PP           2
61 #define PSMOUSE_PS2TPP          3
62 #define PSMOUSE_GENPS           4
63 #define PSMOUSE_IMPS            5
64 #define PSMOUSE_IMEX            6
65 #define PSMOUSE_SYNAPTICS       7
66
67 int psmouse_command(struct psmouse *psmouse, unsigned char *param, int command);
68 int psmouse_reset(struct psmouse *psmouse);
69
70 extern int psmouse_smartscroll;
71 extern unsigned int psmouse_rate;
72 extern unsigned int psmouse_resetafter;
73
74 #endif /* _PSMOUSE_H */