1 .\" $NetBSD: pms.4,v 1.23 2008/12/14 00:56:14 jmcneill Exp $
3 .\" Copyright (c) 1993 Christopher G. Demetriou
4 .\" All rights reserved.
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
14 .\" 3. All advertising materials mentioning features or use of this software
15 .\" must display the following acknowledgement:
16 .\" This product includes software developed for the
17 .\" NetBSD Project. See http://www.NetBSD.org/ for
18 .\" information about NetBSD.
19 .\" 4. The name of the author may not be used to endorse or promote products
20 .\" derived from this software without specific prior written permission.
22 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 .\" <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>>
40 .Nd PS/2 auxiliary port mouse driver
46 .Cd options PMS_DISABLE_POWERHOOK
47 .Cd options PMS_SYNAPTICS_TOUCHPAD
48 .Cd options PMS_ELANTECH_TOUCHPAD
52 driver provides an interface to PS/2 auxiliary port mice within the
55 Parent device in terms of the autoconfiguration framework is
57 the PC keyboard controller.
59 is a generic driver which supports mice using common variants of the PS/2
60 protocol, including wheel mice of the
63 Wheel movements are mapped to a third (z-) axis.
65 believed to work with both 3-button and 5-button mice with scroll wheels.
66 Mice which use other protocol extensions are not currently supported, but
67 might be if protocol documentation could be found.
68 Mouse related data are accessed by
74 driver has been updated to attempt to renegotiate mouse protocol after seeing
75 suspicious or defective mouse protocol packets, or unusual delays in the
76 middle of a packet; this should improve the chances that a mouse will recover
77 after being switched away or reset (for instance, by a console switch).
80 .Va PMS_DISABLE_POWERHOOK
81 kernel option disables PS/2 reset on resume.
89 touchpads in native mode, enabled with the
90 .Va PMS_SYNAPTICS_TOUCHPAD
92 .Va PMS_ELANTECH_TOUCHPAD
94 This allows the driver to take advantage of extra
95 features available on Synaptics and Elantech Touchpads.
98 variables control behavior of Synaptics touchpads:
100 .It Dv hw.synaptics.up_down_emulation
101 If the touchpad reports the existence of Up/Down buttons, this value
102 determines if they should be reported as button 4 and 5 events or if
103 they should be used to emulate some other event.
104 When set to 0, report Up/Down events as buttons 4 and 5.
105 When set to 1, the Up and Down buttons are both mapped to the middle button.
106 When set to 2 (default), the Up and Down buttons are used for Z-axis
107 emulation, which more closely resembles how mouse wheels operate.
108 .It Dv hw.synaptics.up_down_motion_delta
109 When the Up/Down buttons are used for Z-axis emulation, this value specifies
110 the emulated delta-Z value per click.
111 .It Dv hw.synaptics.gesture_move
112 Gestures will not be recognised if the finger moves by more than this
114 .It Dv hw.synaptics.gesture_length
115 Gestures will not be recognised if the number of packets (at 80 packets
116 per second) between taps exceeds this value.
117 .It Dv hw.synaptics.edge_left
118 .It Dv hw.synaptics.edge_right
119 .It Dv hw.synaptics.edge_top
120 .It Dv hw.synaptics.edge_bottom
121 These values define a border around the touchpad which will be used for
122 edge motion emulation during a drag gesture.
123 If a drag gesture is in progress and the finger moves into this border,
124 the driver will behave as if the finger continues to move in the same
125 direction beyond the edge of the touchpad.
126 .It Dv hw.synaptics.edge_motion_delta
127 This specifies the pointer speed when edge motion is in effect.
128 .It Dv hw.synaptics.finger_high
129 The driver will ignore new finger events until the reported pressure exceeds
131 .It Dv hw.synaptics.finger_low
132 The driver will assume a finger remains on the touchpad until the
133 reported pressure drops below this value.
134 .It Dv hw.synaptics.two_fingers_emulation
135 More recent touchpads can report the presence of more than one finger
137 This value determines how such events are used.
138 If set to 0 (default), two-finger events are ignored.
139 If set to 1, two-finger events generate a right button click.
140 If set to 2, two-finger events generate a middle button click.
141 .It Dv hw.synaptics.scale_x
142 .It Dv hw.synaptics.scale_y
143 Scale factor used to divide movement deltas derived from Synaptics
144 coordinates (0-6143) to yield more reasonable values (default 16).
145 .It Dv hw.synaptics.max_speed_x
146 .It Dv hw.synaptics.max_speed_y
147 Limits pointer rate of change (after scaling) per reported movement
149 .It Dv hw.synaptics.movement_threshold
150 Movements of less than this value (in Synaptics coordinates) are
156 variables control behavior of Elantech touchpads:
158 .It Dv hw.elantech.xy_precision_shift
159 .It Dv hw.elantech.z_precision_shift
160 Increased values improve the accuracy of X, Y, and Z-axis reporting
161 at the expense of slower mouse movement (default 2 for xy,
165 For Elantech touchpads, the Z-axis is emulated using two-finger
174 driver was originally written by Christopher G. Demetriou.
175 The changes to merge the
177 protocol in, and reset the mouse in the event of protocol problems, were
178 contributed by Peter Seebach.
179 Special thanks to Ray Trent, at Synaptics, who contributed valuable
180 insight into how to identify bogus mouse data.
183 pad support were by Ales Krenek, Kentaro A. Kurahone, and Steve C. Woodford.
186 pad support were by Jared D. McNeill.
188 It is possible for the driver to mistakenly negotiate the non-scroll-wheel
189 protocol, after which it is unlikely to recover until the device is closed
194 pad code only supports trackpads with firmware version 2.48 or above.