Input: byd - add BYD PS/2 touchpad driver

Driver for the BYD BTP10463 touchpad, found in PC Specialist `Lafite'
laptops. This patch sends the magic command sequence which causes the
touchpad to stream intellimouse-style packets.

Gestures are detected inside the touchpad, and exposed as special
values in the Z component of each packet - absolute coordinates are
not supported, even in the Windows driver. At present, this supports
two-finger vertical and horizontal scrolling, and provides the
framework to expose the other gestures it can recognize.

Signed-off-by: Chris Diamand <chris@diamand.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
Chris Diamand
2016-01-27 17:04:35 -08:00
committed by Dmitry Torokhov
parent 8fb81d2001
commit 98ee377144
6 changed files with 381 additions and 0 deletions

View File

@@ -37,6 +37,7 @@
#include "cypress_ps2.h"
#include "focaltech.h"
#include "vmmouse.h"
#include "byd.h"
#define DRIVER_DESC "PS/2 mouse driver"
@@ -841,6 +842,15 @@ static const struct psmouse_protocol psmouse_protocols[] = {
.detect = vmmouse_detect,
.init = vmmouse_init,
},
#endif
#ifdef CONFIG_MOUSE_PS2_BYD
{
.type = PSMOUSE_BYD,
.name = "BydPS/2",
.alias = "byd",
.detect = byd_detect,
.init = byd_init,
},
#endif
{
.type = PSMOUSE_AUTO,
@@ -1105,6 +1115,10 @@ static int psmouse_extensions(struct psmouse *psmouse,
if (psmouse_try_protocol(psmouse, PSMOUSE_TOUCHKIT_PS2,
&max_proto, set_properties, true))
return PSMOUSE_TOUCHKIT_PS2;
if (psmouse_try_protocol(psmouse, PSMOUSE_BYD,
&max_proto, set_properties, true))
return PSMOUSE_BYD;
}
/*