xref: /freebsd/share/man/man4/atp.4 (revision 7899f917b1c0ea178f1d2be0cfb452086d079d23)
1.\" Copyright (c) 2014 Rohit Grover <rgrover1 at gmail dot com>.
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the author nor the names of any co-contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"   without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.Dd February 24, 2014
29.Dt ATP 4
30.Os
31.Sh NAME
32.Nm atp
33.Nd Apple touchpad driver
34.Sh SYNOPSIS
35To compile this driver into the kernel, place the following lines into
36your kernel configuration file:
37.Bd -ragged -offset indent
38.Cd "device atp"
39.Cd "device hid"
40.Cd "device usb"
41.Ed
42.Pp
43Alternatively, to load the driver as a module at boot time, place the following line in
44.Xr loader.conf 5 :
45.Bd -literal -offset indent
46atp_load="YES"
47.Ed
48.Sh DESCRIPTION
49The
50.Nm
51driver provides support for the Apple Internal Trackpad device found in many
52Apple laptops.
53Older (Fountain/Geyser) and the newer (Wellspring) trackpad
54families are all supported through a unified driver.
55.Pp
56The driver simulates a three\-button mouse using multi\-finger tap detection.
57Single finger tap generates a left\-button click; two\-finger tap maps to the
58middle button; whereas a three\-finger tap gets treated as a right button
59click.
60.Pp
61There is support for 2\-finger horizontal scrolling, which translates to
62page\-back/forward events; vertical multi\-finger scrolling emulates the mouse
63wheel.
64.Pp
65A double\-tap followed by a drag is treated as a selection gesture; a
66virtual left\-button click is assumed for the lifespan of the drag.
67.Pp
68.Nm
69supports dynamic reconfiguration using
70.Xr sysctl 8 ;
71through nodes under
72.Nm hw.usb.atp .
73Pointer sensitivity can be controlled using the sysctl tunable
74.Nm hw.usb.atp.scale_factor .
75Smaller values of
76.Fa scale_factor
77result in faster movement.
78.
79A simple high-pass filter is used to reduce contributions
80from small movements; the threshold for this filter may be controlled by
81.Nm hw.usb.atp.small_movement .
82.
83The maximum tolerable duration of a touch gesture is controlled by
84.Nm hw.usb.atp.touch_timeout
85(in microseconds); beyond this period, touches are considered to be slides.
86(This conversion also happens when a finger stroke accumulates at least
87.Nm hw.usb.atp.slide_min_movement
88movement (in mickeys).
89.
90The maximum time (in microseconds) to allow an association between a double-
91tap and drag gesture may be controlled by
92.Nm hw.usb.atp.double_tap_threshold .
93.
94Should one want to disable tap detection and rely only upon physical button
95presses, set the following sysctl to a value of 2
96.Nm hw.usb.atp.tap_minimum .
97.
98.Sh HARDWARE
99The
100.Nm
101driver provides support for the following Product IDs:
102.Pp
103.Bl -bullet -compact
104.It
105PowerBooks, iBooks (IDs: 0x020e, 0x020f, 0x0210, 0x0214, 0x0215, 0x0216)
106.It
107Core Duo MacBook & MacBook Pro (IDs: 0x0217, 0x0218, 0x0219)
108.It
109Core2 Duo MacBook & MacBook Pro (IDs: 0x021a, 0x021b, 0x021c)
110.It
111Core2 Duo MacBook3,1 (IDs: 0x0229, 0x022a, 0x022b)
112.It
11312 inch PowerBook and iBook (IDs: 0x030a, 0x030b)
114.It
11515 inch PowerBook (IDs: 0x020e, 0x020f, 0x0215)
116.It
11717 inch PowerBook (ID: 0x020d)
118.It
119Almost all recent Macbook-Pros and Airs (IDs: 0x0223, 0x0223, 0x0224, 0x0224,
1200x0225, 0x0225, 0x0230, 0x0230, 0x0231, 0x0231, 0x0232, 0x0232, 0x0236,
1210x0236, 0x0237, 0x0237, 0x0238, 0x0238, 0x023f, 0x023f, 0x0240, 0x0241,
1220x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 0x0249, 0x024a, 0x024b,
1230x024c, 0x024d, 0x024e, 0x0252, 0x0252, 0x0253, 0x0253, 0x0254, 0x0254,
1240x0259, 0x025a, 0x025b, 0x0262, 0x0262, 0x0263, 0x0264, 0x0290, 0x0291,
1250x0292)
126.El
127.Pp
128To discover the product\-id of a touchpad, search for 'Trackpad' in the
129output of
130.Xr lshal 1
131and look up the property
132.Nm usb_device.product_id .
133.Sh FILES
134.Nm
135creates a blocking pseudo\-device file,
136.Pa /dev/atp0 ,
137which presents the mouse as a
138.Ar sysmouse
139or
140.Ar mousesystems
141type device\-\-see
142.Xr moused 8
143for an explanation of these mouse
144types.
145.Sh SEE ALSO
146.Xr sysmouse 4 ,
147.Xr usb 4 ,
148.Xr loader.conf 5 ,
149.Xr xorg.conf 5 Pq Pa ports/x11/xorg ,
150.Xr moused 8 ,
151.Xr sysctl 8
152.Sh AUTHORS
153.An -nosplit
154The
155.Nm
156driver was written by
157.An Rohit Grover Aq Mt rgrover1@gmail.com .
158