alps.h (fa629ef5222193214da9a2b3c94369f79353bec9) alps.h (25bded7cd60fa460e520e9f819bd06f4c5cb53f0)
1/*
2 * ALPS touchpad PS/2 mouse driver
3 *
4 * Copyright (c) 2003 Peter Osterlund <petero2@telia.com>
5 * Copyright (c) 2005 Vojtech Pavlik <vojtech@suse.cz>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11
12#ifndef _ALPS_H
13#define _ALPS_H
14
15#define ALPS_PROTO_V1 0
16#define ALPS_PROTO_V2 1
1/*
2 * ALPS touchpad PS/2 mouse driver
3 *
4 * Copyright (c) 2003 Peter Osterlund <petero2@telia.com>
5 * Copyright (c) 2005 Vojtech Pavlik <vojtech@suse.cz>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11
12#ifndef _ALPS_H
13#define _ALPS_H
14
15#define ALPS_PROTO_V1 0
16#define ALPS_PROTO_V2 1
17#define ALPS_PROTO_V3 2
18#define ALPS_PROTO_V4 3
17
18struct alps_model_info {
19 unsigned char signature[3];
19
20struct alps_model_info {
21 unsigned char signature[3];
22 unsigned char command_mode_resp; /* v3/v4 only */
20 unsigned char proto_version;
21 unsigned char byte0, mask0;
22 unsigned char flags;
23};
24
23 unsigned char proto_version;
24 unsigned char byte0, mask0;
25 unsigned char flags;
26};
27
28struct alps_nibble_commands {
29 int command;
30 unsigned char data;
31};
32
25struct alps_data {
26 struct input_dev *dev2; /* Relative device */
27 char phys[32]; /* Phys */
28 const struct alps_model_info *i;/* Info */
33struct alps_data {
34 struct input_dev *dev2; /* Relative device */
35 char phys[32]; /* Phys */
36 const struct alps_model_info *i;/* Info */
37 const struct alps_nibble_commands *nibble_commands;
38 int addr_command; /* Command to set register address */
29 int prev_fin; /* Finger bit from previous packet */
39 int prev_fin; /* Finger bit from previous packet */
40 int multi_packet; /* Multi-packet data in progress */
41 u8 quirks;
30 struct timer_list timer;
31};
32
42 struct timer_list timer;
43};
44
45#define ALPS_QUIRK_TRACKSTICK_BUTTONS 1 /* trakcstick buttons in trackstick packet */
46
33#ifdef CONFIG_MOUSE_PS2_ALPS
34int alps_detect(struct psmouse *psmouse, bool set_properties);
35int alps_init(struct psmouse *psmouse);
36#else
37inline int alps_detect(struct psmouse *psmouse, bool set_properties)
38{
39 return -ENOSYS;
40}
41inline int alps_init(struct psmouse *psmouse)
42{
43 return -ENOSYS;
44}
45#endif /* CONFIG_MOUSE_PS2_ALPS */
46
47#endif
47#ifdef CONFIG_MOUSE_PS2_ALPS
48int alps_detect(struct psmouse *psmouse, bool set_properties);
49int alps_init(struct psmouse *psmouse);
50#else
51inline int alps_detect(struct psmouse *psmouse, bool set_properties)
52{
53 return -ENOSYS;
54}
55inline int alps_init(struct psmouse *psmouse)
56{
57 return -ENOSYS;
58}
59#endif /* CONFIG_MOUSE_PS2_ALPS */
60
61#endif