137247d72SHans Petter Selasky.\" Copyright (c) 2014 Rohit Grover <rgrover1 at gmail dot com>. 226970b20SRui Paulo.\" All rights reserved. 326970b20SRui Paulo.\" 426970b20SRui Paulo.\" Redistribution and use in source and binary forms, with or without 526970b20SRui Paulo.\" modification, are permitted provided that the following conditions 626970b20SRui Paulo.\" are met: 726970b20SRui Paulo.\" 1. Redistributions of source code must retain the above copyright 826970b20SRui Paulo.\" notice, this list of conditions and the following disclaimer. 926970b20SRui Paulo.\" 2. Redistributions in binary form must reproduce the above copyright 1026970b20SRui Paulo.\" notice, this list of conditions and the following disclaimer in the 1126970b20SRui Paulo.\" documentation and/or other materials provided with the distribution. 1226970b20SRui Paulo.\" 3. Neither the name of the author nor the names of any co-contributors 1326970b20SRui Paulo.\" may be used to endorse or promote products derived from this software 1426970b20SRui Paulo.\" without specific prior written permission. 1526970b20SRui Paulo.\" 1626970b20SRui Paulo.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1726970b20SRui Paulo.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1826970b20SRui Paulo.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1926970b20SRui Paulo.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 2026970b20SRui Paulo.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2126970b20SRui Paulo.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2226970b20SRui Paulo.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2326970b20SRui Paulo.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2426970b20SRui Paulo.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2526970b20SRui Paulo.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2626970b20SRui Paulo.\" SUCH DAMAGE. 2726970b20SRui Paulo.\" 28b3c02745SHans Petter Selasky.Dd February 24, 2014 2926970b20SRui Paulo.Dt ATP 4 3026970b20SRui Paulo.Os 3126970b20SRui Paulo.Sh NAME 3226970b20SRui Paulo.Nm atp 3326970b20SRui Paulo.Nd Apple touchpad driver 3426970b20SRui Paulo.Sh SYNOPSIS 3526970b20SRui PauloTo compile this driver into the kernel, place the following lines into 3626970b20SRui Pauloyour kernel configuration file: 3726970b20SRui Paulo.Bd -ragged -offset indent 3826970b20SRui Paulo.Cd "device atp" 39*67de2db2SVladimir Kondratyev.Cd "device hid" 4026970b20SRui Paulo.Cd "device usb" 4126970b20SRui Paulo.Ed 4226970b20SRui Paulo.Pp 4337247d72SHans Petter SelaskyAlternatively, to load the driver as a module at boot time, place the following line in 4426970b20SRui Paulo.Xr loader.conf 5 : 4526970b20SRui Paulo.Bd -literal -offset indent 4626970b20SRui Pauloatp_load="YES" 4726970b20SRui Paulo.Ed 4826970b20SRui Paulo.Sh DESCRIPTION 4926970b20SRui PauloThe 5026970b20SRui Paulo.Nm 5137247d72SHans Petter Selaskydriver provides support for the Apple Internal Trackpad device found in many 5225972509SEdward Tomasz NapieralaApple laptops. 5325972509SEdward Tomasz NapieralaOlder (Fountain/Geyser) and the newer (Wellspring) trackpad 5437247d72SHans Petter Selaskyfamilies are all supported through a unified driver. 5526970b20SRui Paulo.Pp 5637247d72SHans Petter SelaskyThe driver simulates a three\-button mouse using multi\-finger tap detection. 5737247d72SHans Petter SelaskySingle finger tap generates a left\-button click; two\-finger tap maps to the 5837247d72SHans Petter Selaskymiddle button; whereas a three\-finger tap gets treated as a right button 5937247d72SHans Petter Selaskyclick. 6037247d72SHans Petter Selasky.Pp 61b3c02745SHans Petter SelaskyThere is support for 2\-finger horizontal scrolling, which translates to 62b3c02745SHans Petter Selaskypage\-back/forward events; vertical multi\-finger scrolling emulates the mouse 63b3c02745SHans Petter Selaskywheel. 6437247d72SHans Petter Selasky.Pp 6526970b20SRui PauloA double\-tap followed by a drag is treated as a selection gesture; a 6626970b20SRui Paulovirtual left\-button click is assumed for the lifespan of the drag. 6726970b20SRui Paulo.Pp 6826970b20SRui Paulo.Nm 6926970b20SRui Paulosupports dynamic reconfiguration using 7026970b20SRui Paulo.Xr sysctl 8 ; 7126970b20SRui Paulothrough nodes under 7226970b20SRui Paulo.Nm hw.usb.atp . 7326970b20SRui PauloPointer sensitivity can be controlled using the sysctl tunable 7426970b20SRui Paulo.Nm hw.usb.atp.scale_factor . 7537247d72SHans Petter SelaskySmaller values of 7637247d72SHans Petter Selasky.Fa scale_factor 7737247d72SHans Petter Selaskyresult in faster movement. 7837247d72SHans Petter Selasky. 7937247d72SHans Petter SelaskyA simple high-pass filter is used to reduce contributions 8037247d72SHans Petter Selaskyfrom small movements; the threshold for this filter may be controlled by 8137247d72SHans Petter Selasky.Nm hw.usb.atp.small_movement . 8237247d72SHans Petter Selasky. 8337247d72SHans Petter SelaskyThe maximum tolerable duration of a touch gesture is controlled by 8437247d72SHans Petter Selasky.Nm hw.usb.atp.touch_timeout 8537247d72SHans Petter Selasky(in microseconds); beyond this period, touches are considered to be slides. 8637247d72SHans Petter Selasky(This conversion also happens when a finger stroke accumulates at least 8737247d72SHans Petter Selasky.Nm hw.usb.atp.slide_min_movement 8837247d72SHans Petter Selaskymovement (in mickeys). 8937247d72SHans Petter Selasky. 9037247d72SHans Petter SelaskyThe maximum time (in microseconds) to allow an association between a double- 9137247d72SHans Petter Selaskytap and drag gesture may be controlled by 9237247d72SHans Petter Selasky.Nm hw.usb.atp.double_tap_threshold . 9337247d72SHans Petter Selasky. 9437247d72SHans Petter SelaskyShould one want to disable tap detection and rely only upon physical button 9537247d72SHans Petter Selaskypresses, set the following sysctl to a value of 2 9637247d72SHans Petter Selasky.Nm hw.usb.atp.tap_minimum . 9726970b20SRui Paulo. 9826970b20SRui Paulo.Sh HARDWARE 9926970b20SRui PauloThe 10026970b20SRui Paulo.Nm 10126970b20SRui Paulodriver provides support for the following Product IDs: 10226970b20SRui Paulo.Pp 10326970b20SRui Paulo.Bl -bullet -compact 10426970b20SRui Paulo.It 10537247d72SHans Petter SelaskyPowerBooks, iBooks (IDs: 0x020e, 0x020f, 0x0210, 0x0214, 0x0215, 0x0216) 10637247d72SHans Petter Selasky.It 10726970b20SRui PauloCore Duo MacBook & MacBook Pro (IDs: 0x0217, 0x0218, 0x0219) 10826970b20SRui Paulo.It 10926970b20SRui PauloCore2 Duo MacBook & MacBook Pro (IDs: 0x021a, 0x021b, 0x021c) 11026970b20SRui Paulo.It 11126970b20SRui PauloCore2 Duo MacBook3,1 (IDs: 0x0229, 0x022a, 0x022b) 11226970b20SRui Paulo.It 11326970b20SRui Paulo12 inch PowerBook and iBook (IDs: 0x030a, 0x030b) 11426970b20SRui Paulo.It 11526970b20SRui Paulo15 inch PowerBook (IDs: 0x020e, 0x020f, 0x0215) 11626970b20SRui Paulo.It 11726970b20SRui Paulo17 inch PowerBook (ID: 0x020d) 11837247d72SHans Petter Selasky.It 11937247d72SHans Petter SelaskyAlmost all recent Macbook-Pros and Airs (IDs: 0x0223, 0x0223, 0x0224, 0x0224, 12037247d72SHans Petter Selasky0x0225, 0x0225, 0x0230, 0x0230, 0x0231, 0x0231, 0x0232, 0x0232, 0x0236, 12137247d72SHans Petter Selasky0x0236, 0x0237, 0x0237, 0x0238, 0x0238, 0x023f, 0x023f, 0x0240, 0x0241, 12237247d72SHans Petter Selasky0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 0x0249, 0x024a, 0x024b, 12337247d72SHans Petter Selasky0x024c, 0x024d, 0x024e, 0x0252, 0x0252, 0x0253, 0x0253, 0x0254, 0x0254, 12437247d72SHans Petter Selasky0x0259, 0x025a, 0x025b, 0x0262, 0x0262, 0x0263, 0x0264, 0x0290, 0x0291, 12537247d72SHans Petter Selasky0x0292) 12626970b20SRui Paulo.El 12726970b20SRui Paulo.Pp 12826970b20SRui PauloTo discover the product\-id of a touchpad, search for 'Trackpad' in the 12926970b20SRui Paulooutput of 13026970b20SRui Paulo.Xr lshal 1 13126970b20SRui Pauloand look up the property 13226970b20SRui Paulo.Nm usb_device.product_id . 13326970b20SRui Paulo.Sh FILES 13426970b20SRui Paulo.Nm 13526970b20SRui Paulocreates a blocking pseudo\-device file, 13626970b20SRui Paulo.Pa /dev/atp0 , 13726970b20SRui Paulowhich presents the mouse as a 13826970b20SRui Paulo.Ar sysmouse 13926970b20SRui Pauloor 14026970b20SRui Paulo.Ar mousesystems 14126970b20SRui Paulotype device\-\-see 14226970b20SRui Paulo.Xr moused 8 14326970b20SRui Paulofor an explanation of these mouse 14426970b20SRui Paulotypes. 14526970b20SRui Paulo.Sh SEE ALSO 14626970b20SRui Paulo.Xr sysmouse 4 , 14726970b20SRui Paulo.Xr usb 4 , 14826970b20SRui Paulo.Xr loader.conf 5 , 14926970b20SRui Paulo.Xr xorg.conf 5 Pq Pa ports/x11/xorg , 15026970b20SRui Paulo.Xr moused 8 , 15150d922a0SGlen Barber.Xr sysctl 8 15226970b20SRui Paulo.Sh AUTHORS 15326970b20SRui Paulo.An -nosplit 15426970b20SRui PauloThe 15526970b20SRui Paulo.Nm 15626970b20SRui Paulodriver was written by 1576c899950SBaptiste Daroussin.An Rohit Grover Aq Mt rgrover1@gmail.com . 158