1.\" Copyright (c) 2009 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 November 12, 2009 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 45module 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 54device found in many Apple laptops. 55.Pp 56The driver simulates a three\-button mouse using multi\-finger tap 57detection. 58. 59A single\-finger tap generates a left button click; 60two\-finger tap maps to the middle button; whereas a three\-finger tap 61gets treated as a right button click. 62. 63A double\-tap followed by a drag is treated as a selection gesture; a 64virtual left\-button click is assumed for the lifespan of the drag. 65. 66.Nm 67attempts to filter away activity at the horizontal edges of the 68trackpad\-\-this is to keep unintentional palm movement from being 69considered as user input. 70. 71.Pp 72.Nm 73supports dynamic reconfiguration using 74.Xr sysctl 8 ; 75through nodes under 76.Nm hw.usb.atp . 77Pointer sensitivity can be controlled using the sysctl tunable 78.Nm hw.usb.atp.scale_factor . 79. 80.Sh HARDWARE 81The 82.Nm 83driver provides support for the following Product IDs: 84.Pp 85.Bl -bullet -compact 86.It 87Core Duo MacBook & MacBook Pro (IDs: 0x0217, 0x0218, 0x0219) 88.It 89Core2 Duo MacBook & MacBook Pro (IDs: 0x021a, 0x021b, 0x021c) 90.It 91Core2 Duo MacBook3,1 (IDs: 0x0229, 0x022a, 0x022b) 92.It 9312 inch PowerBook and iBook (IDs: 0x030a, 0x030b) 94.It 9515 inch PowerBook (IDs: 0x020e, 0x020f, 0x0215) 96.It 9717 inch PowerBook (ID: 0x020d) 98.El 99.Pp 100To discover the product\-id of a touchpad, search for 'Trackpad' in the 101output of 102.Xr lshal 1 103and look up the property 104.Nm usb_device.product_id . 105.Sh FILES 106.Nm 107creates a blocking pseudo\-device file, 108.Pa /dev/atp0 , 109which presents the mouse as a 110.Ar sysmouse 111or 112.Ar mousesystems 113type device\-\-see 114.Xr moused 8 115for an explanation of these mouse 116types. 117.Xr moused 8 118can be configured to read touchpad data from 119.Pa /dev/atp0 120and pass it along to the 121.Xr sysmouse 4 122driver so that any process wanting to utilize mouse operation (such as 123an X server) may fetch it from 124.Pa /dev/sysmouse ; 125alternatively, 126.Pa /dev/atp0 127may be manipulated via 128.Xr read 2 129and 130.Xr ioctl 2 131calls to get mouse data directly. 132.Sh EXAMPLES 133To use a compatible Apple Trackpad as your console mouse: 134.Pp 135.Dl moused -p /dev/atp0 -t auto 136.Pp 137To launch 138.Xr moused 8 139automatically upon boot, add the following to 140.Pa /etc/rc.conf : 141.Pp 142.Dl moused_enable="YES" 143.Dl moused_type="auto" 144.Dl moused_port="/dev/atp0" 145.Pp 146If you want 147.Xr moused 8 148to also probe for external USB mice or other devices, then add the 149following to 150.Pa /etc/rc.conf : 151.Pp 152.Dl moused_nondefault_enable="YES" 153.Dl moused_ums0_enable="YES" 154.Dl moused_ums1_enable="YES" 155.Pp 156To be able to use the trackpad under X, change the "Pointer" section in 157.Nm xorg.conf 158to the following: 159.Pp 160.Dl Device "/dev/atp0" 161.Dl Protocol "Auto" 162.Pp 163Better still, if you want to be able to use the mouse in both virtual 164consoles as well as in X change it to: 165.Pp 166.Dl Device "/dev/sysmouse" 167.Dl Protocol "Auto" 168.Sh SEE ALSO 169.Xr sysmouse 4 , 170.Xr usb 4 , 171.Xr loader.conf 5 , 172.Xr xorg.conf 5 Pq Pa ports/x11/xorg , 173.Xr moused 8 , 174.Xr sysctl 8 . 175.Sh AUTHORS 176.An -nosplit 177The 178.Nm 179driver was written by 180.An Rohit Grover Aq rgrover1@gmail.com 181