2005-04-17 06:20:36 +08:00
|
|
|
/*
|
|
|
|
* ALPS touchpad PS/2 mouse driver
|
|
|
|
*
|
|
|
|
* Copyright (c) 2003 Peter Osterlund <petero2@telia.com>
|
|
|
|
* Copyright (c) 2005 Vojtech Pavlik <vojtech@suse.cz>
|
|
|
|
*
|
|
|
|
* 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 _ALPS_H
|
|
|
|
#define _ALPS_H
|
|
|
|
|
2011-11-08 11:53:24 +08:00
|
|
|
#define ALPS_PROTO_V1 0
|
|
|
|
#define ALPS_PROTO_V2 1
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
struct alps_model_info {
|
|
|
|
unsigned char signature[3];
|
2011-11-08 11:53:24 +08:00
|
|
|
unsigned char proto_version;
|
2005-04-17 06:20:36 +08:00
|
|
|
unsigned char byte0, mask0;
|
|
|
|
unsigned char flags;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct alps_data {
|
2005-09-15 15:01:44 +08:00
|
|
|
struct input_dev *dev2; /* Relative device */
|
2005-04-17 06:20:36 +08:00
|
|
|
char phys[32]; /* Phys */
|
2006-09-11 09:54:39 +08:00
|
|
|
const struct alps_model_info *i;/* Info */
|
2005-04-17 06:20:36 +08:00
|
|
|
int prev_fin; /* Finger bit from previous packet */
|
2009-12-16 00:39:50 +08:00
|
|
|
struct timer_list timer;
|
2005-04-17 06:20:36 +08:00
|
|
|
};
|
|
|
|
|
2007-03-10 14:39:54 +08:00
|
|
|
#ifdef CONFIG_MOUSE_PS2_ALPS
|
2009-09-10 10:13:20 +08:00
|
|
|
int alps_detect(struct psmouse *psmouse, bool set_properties);
|
2007-03-10 14:39:54 +08:00
|
|
|
int alps_init(struct psmouse *psmouse);
|
|
|
|
#else
|
2009-09-10 10:13:20 +08:00
|
|
|
inline int alps_detect(struct psmouse *psmouse, bool set_properties)
|
2007-03-10 14:39:54 +08:00
|
|
|
{
|
|
|
|
return -ENOSYS;
|
|
|
|
}
|
|
|
|
inline int alps_init(struct psmouse *psmouse)
|
|
|
|
{
|
|
|
|
return -ENOSYS;
|
|
|
|
}
|
|
|
|
#endif /* CONFIG_MOUSE_PS2_ALPS */
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
#endif
|