xref: /freebsd/share/man/man4/atp.4 (revision 8e3e3a7ae841ccf6f6ac30a2eeab85df5d7f04bc)
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.\" $FreeBSD$
29.\"
30.Dd February 24, 2014
31.Dt ATP 4
32.Os
33.Sh NAME
34.Nm atp
35.Nd Apple touchpad driver
36.Sh SYNOPSIS
37To compile this driver into the kernel, place the following lines into
38your kernel configuration file:
39.Bd -ragged -offset indent
40.Cd "device atp"
41.Cd "device usb"
42.Ed
43.Pp
44Alternatively, to load the driver as a module at boot time, place the following line in
45.Xr loader.conf 5 :
46.Bd -literal -offset indent
47atp_load="YES"
48.Ed
49.Sh DESCRIPTION
50The
51.Nm
52driver provides support for the Apple Internal Trackpad device found in many
53Apple laptops.
54Older (Fountain/Geyser) and the newer (Wellspring) trackpad
55families are all supported through a unified driver.
56.Pp
57The driver simulates a three\-button mouse using multi\-finger tap detection.
58Single finger tap generates a left\-button click; two\-finger tap maps to the
59middle button; whereas a three\-finger tap gets treated as a right button
60click.
61.Pp
62There is support for 2\-finger horizontal scrolling, which translates to
63page\-back/forward events; vertical multi\-finger scrolling emulates the mouse
64wheel.
65.Pp
66A double\-tap followed by a drag is treated as a selection gesture; a
67virtual left\-button click is assumed for the lifespan of the drag.
68.Pp
69.Nm
70supports dynamic reconfiguration using
71.Xr sysctl 8 ;
72through nodes under
73.Nm hw.usb.atp .
74Pointer sensitivity can be controlled using the sysctl tunable
75.Nm hw.usb.atp.scale_factor .
76Smaller values of
77.Fa scale_factor
78result in faster movement.
79.
80A simple high-pass filter is used to reduce contributions
81from small movements; the threshold for this filter may be controlled by
82.Nm hw.usb.atp.small_movement .
83.
84The maximum tolerable duration of a touch gesture is controlled by
85.Nm hw.usb.atp.touch_timeout
86(in microseconds); beyond this period, touches are considered to be slides.
87(This conversion also happens when a finger stroke accumulates at least
88.Nm hw.usb.atp.slide_min_movement
89movement (in mickeys).
90.
91The maximum time (in microseconds) to allow an association between a double-
92tap and drag gesture may be controlled by
93.Nm hw.usb.atp.double_tap_threshold .
94.
95Should one want to disable tap detection and rely only upon physical button
96presses, set the following sysctl to a value of 2
97.Nm hw.usb.atp.tap_minimum .
98.
99.Sh HARDWARE
100The
101.Nm
102driver provides support for the following Product IDs:
103.Pp
104.Bl -bullet -compact
105.It
106PowerBooks, iBooks (IDs: 0x020e, 0x020f, 0x0210, 0x0214, 0x0215, 0x0216)
107.It
108Core Duo MacBook & MacBook Pro (IDs: 0x0217, 0x0218, 0x0219)
109.It
110Core2 Duo MacBook & MacBook Pro (IDs: 0x021a, 0x021b, 0x021c)
111.It
112Core2 Duo MacBook3,1 (IDs: 0x0229, 0x022a, 0x022b)
113.It
11412 inch PowerBook and iBook (IDs: 0x030a, 0x030b)
115.It
11615 inch PowerBook (IDs: 0x020e, 0x020f, 0x0215)
117.It
11817 inch PowerBook (ID: 0x020d)
119.It
120Almost all recent Macbook-Pros and Airs (IDs: 0x0223, 0x0223, 0x0224, 0x0224,
1210x0225, 0x0225, 0x0230, 0x0230, 0x0231, 0x0231, 0x0232, 0x0232, 0x0236,
1220x0236, 0x0237, 0x0237, 0x0238, 0x0238, 0x023f, 0x023f, 0x0240, 0x0241,
1230x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 0x0249, 0x024a, 0x024b,
1240x024c, 0x024d, 0x024e, 0x0252, 0x0252, 0x0253, 0x0253, 0x0254, 0x0254,
1250x0259, 0x025a, 0x025b, 0x0262, 0x0262, 0x0263, 0x0264, 0x0290, 0x0291,
1260x0292)
127.El
128.Pp
129To discover the product\-id of a touchpad, search for 'Trackpad' in the
130output of
131.Xr lshal 1
132and look up the property
133.Nm usb_device.product_id .
134.Sh FILES
135.Nm
136creates a blocking pseudo\-device file,
137.Pa /dev/atp0 ,
138which presents the mouse as a
139.Ar sysmouse
140or
141.Ar mousesystems
142type device\-\-see
143.Xr moused 8
144for an explanation of these mouse
145types.
146.Sh SEE ALSO
147.Xr sysmouse 4 ,
148.Xr usb 4 ,
149.Xr loader.conf 5 ,
150.Xr xorg.conf 5 Pq Pa ports/x11/xorg ,
151.Xr moused 8 ,
152.Xr sysctl 8
153.Sh AUTHORS
154.An -nosplit
155The
156.Nm
157driver was written by
158.An Rohit Grover Aq Mt rgrover1@gmail.com .
159