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