xref: /freebsd-src/share/man/man4/atp.4 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
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