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