Update ATP driver:

- Support for double-tap and drag.
- Support for 2-finger horizontal scrolling which translates to page-back/forward events.
- Single finger tap is equivalent to a left-button press.
- Two-finger taps are mapped to the right-button click.
- Three fingers are mapped to middle button.
- Add sysctl to disable single finger tapping.
- Fix for multiple open of /dev/atp0
- Enhanced support for the Fountain/Geyser family by adding Geyser4.
- Update manual page.

Submitted by:	Rohit Grover <rgrover1@gmail.com>
MFC after:	2 weeks
This commit is contained in:
Hans Petter Selasky 2014-02-23 23:36:32 +00:00
parent 2e9afe9597
commit 37247d72eb
2 changed files with 1699 additions and 1281 deletions

View File

@ -1,4 +1,4 @@
.\" Copyright (c) 2009 Rohit Grover <rgrover1 at gmail dot com>.
.\" Copyright (c) 2014 Rohit Grover <rgrover1 at gmail dot com>.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd February 7, 2014
.Dd February 23, 2014
.Dt ATP 4
.Os
.Sh NAME
@ -41,8 +41,7 @@ your kernel configuration file:
.Cd "device usb"
.Ed
.Pp
Alternatively, to load the driver as a
module at boot time, place the following line in
Alternatively, to load the driver as a module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
atp_load="YES"
@ -50,24 +49,20 @@ atp_load="YES"
.Sh DESCRIPTION
The
.Nm
driver provides support for the Apple Internal Trackpad
device found in many Apple laptops.
driver provides support for the Apple Internal Trackpad device found in many
Apple laptops. Older (Fountain/Geyser) and the newer (Wellspring) trackpad
families are all supported through a unified driver.
.Pp
The driver simulates a three\-button mouse using multi\-finger tap detection.
Single finger tap generates a left\-button click; two\-finger tap maps to the
middle button; whereas a three\-finger tap gets treated as a right button
click.
.Pp
There is support for 2-finger horizontal scrolling, which translates to
page\-back/forward events.
.Pp
The driver simulates a three\-button mouse using multi\-finger tap
detection.
.
A single\-finger tap generates a left button click;
two\-finger tap maps to the middle button; whereas a three\-finger tap
gets treated as a right button click.
.
A double\-tap followed by a drag is treated as a selection gesture; a
virtual left\-button click is assumed for the lifespan of the drag.
.
.Nm
attempts to filter away activity at the horizontal edges of the
trackpad\-\-this is to keep unintentional palm movement from being
considered as user input.
.
.Pp
.Nm
supports dynamic reconfiguration using
@ -76,6 +71,28 @@ through nodes under
.Nm hw.usb.atp .
Pointer sensitivity can be controlled using the sysctl tunable
.Nm hw.usb.atp.scale_factor .
Smaller values of
.Fa scale_factor
result in faster movement.
.
A simple high-pass filter is used to reduce contributions
from small movements; the threshold for this filter may be controlled by
.Nm hw.usb.atp.small_movement .
.
The maximum tolerable duration of a touch gesture is controlled by
.Nm hw.usb.atp.touch_timeout
(in microseconds); beyond this period, touches are considered to be slides.
(This conversion also happens when a finger stroke accumulates at least
.Nm hw.usb.atp.slide_min_movement
movement (in mickeys).
.
The maximum time (in microseconds) to allow an association between a double-
tap and drag gesture may be controlled by
.Nm hw.usb.atp.double_tap_threshold .
.
Should one want to disable tap detection and rely only upon physical button
presses, set the following sysctl to a value of 2
.Nm hw.usb.atp.tap_minimum .
.
.Sh HARDWARE
The
@ -84,6 +101,8 @@ driver provides support for the following Product IDs:
.Pp
.Bl -bullet -compact
.It
PowerBooks, iBooks (IDs: 0x020e, 0x020f, 0x0210, 0x0214, 0x0215, 0x0216)
.It
Core Duo MacBook & MacBook Pro (IDs: 0x0217, 0x0218, 0x0219)
.It
Core2 Duo MacBook & MacBook Pro (IDs: 0x021a, 0x021b, 0x021c)
@ -95,6 +114,14 @@ Core2 Duo MacBook3,1 (IDs: 0x0229, 0x022a, 0x022b)
15 inch PowerBook (IDs: 0x020e, 0x020f, 0x0215)
.It
17 inch PowerBook (ID: 0x020d)
.It
Almost all recent Macbook-Pros and Airs (IDs: 0x0223, 0x0223, 0x0224, 0x0224,
0x0225, 0x0225, 0x0230, 0x0230, 0x0231, 0x0231, 0x0232, 0x0232, 0x0236,
0x0236, 0x0237, 0x0237, 0x0238, 0x0238, 0x023f, 0x023f, 0x0240, 0x0241,
0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 0x0249, 0x024a, 0x024b,
0x024c, 0x024d, 0x024e, 0x0252, 0x0252, 0x0253, 0x0253, 0x0254, 0x0254,
0x0259, 0x025a, 0x025b, 0x0262, 0x0262, 0x0263, 0x0264, 0x0290, 0x0291,
0x0292)
.El
.Pp
To discover the product\-id of a touchpad, search for 'Trackpad' in the

File diff suppressed because it is too large Load Diff