I would appreciate any donations. Wishlist or send e-mail type donations to maekawa AT daemon-systems.org.

Thank you.

PMS(4)                       Device Drivers Manual                      PMS(4)

     pms - PS/2 auxiliary port mouse driver

     pckbc* at isa?
     pms* at pckbc?
     wsmouse* at pms?


     The pms driver provides an interface to PS/2 auxiliary port mice within
     the wscons(4) framework.  Parent device in terms of the autoconfiguration
     framework is pckbc(4), the PC keyboard controller.  "pms" is a generic
     driver which supports mice using common variants of the PS/2 protocol,
     including wheel mice of the "IntelliMouse" breed.  Wheel movements are
     mapped to a third (z-) axis.  The driver is believed to work with both
     3-button and 5-button mice with scroll wheels.  Mice which use other
     protocol extensions are not currently supported, but might be if protocol
     documentation could be found.  Mouse related data are accessed by
     wsmouse(4) devices.

     The pms driver has been updated to attempt to renegotiate mouse protocol
     after seeing suspicious or defective mouse protocol packets, or unusual
     delays in the middle of a packet; this should improve the chances that a
     mouse will recover after being switched away or reset (for instance, by a
     console switch).

     The PMS_DISABLE_POWERHOOK kernel option disables PS/2 reset on resume.

     In addition, the pms driver supports the "Synaptics" and "Elantech"
     touchpads in native mode, enabled with the PMS_SYNAPTICS_TOUCHPAD and
     PMS_ELANTECH_TOUCHPAD kernel options.  This allows the driver to take
     advantage of extra features available on Synaptics and Elantech
     Touchpads.  The following sysctl(8) variables control behavior of
     Synaptics touchpads:

             If the touchpad reports the existence of Up/Down buttons, this
             value determines if they should be reported as button 4 and 5
             events or if they should be used to emulate some other event.
             When set to 0, report Up/Down events as buttons 4 and 5.  When
             set to 1, the Up and Down buttons are both mapped to the middle
             button.  When set to 2 (default), the Up and Down buttons are
             used for Z-axis emulation, which more closely resembles how mouse
             wheels operate.

             When the Up/Down buttons are used for Z-axis emulation, this
             value specifies the emulated delta-Z value per click.

             Gestures will not be recognised if the finger moves by more than
             this amount between taps.

             Gestures will not be recognised if the number of packets (at 80
             packets per second) between taps exceeds this value.




             These values define a border around the touchpad which will be
             used for edge motion emulation during a drag gesture.  If a drag
             gesture is in progress and the finger moves into this border, the
             driver will behave as if the finger continues to move in the same
             direction beyond the edge of the touchpad.

             This specifies the pointer speed when edge motion is in effect.

             The driver will ignore new finger events until the reported
             pressure exceeds this value.

             The driver will assume a finger remains on the touchpad until the
             reported pressure drops below this value.

             More recent touchpads can report the presence of more than one
             finger on the pad.  This value determines how such events are
             used.  If set to 0 (default), two-finger events are ignored.  If
             set to 1, two-finger events generate a right button click.  If
             set to 2, two-finger events generate a middle button click.


             Scale factor used to divide movement deltas derived from
             Synaptics coordinates (0-6143) to yield more reasonable values
             (default 16).


             Limits pointer rate of change (after scaling) per reported
             movement event (default 32).

             Movements of less than this value (in Synaptics coordinates) are
             ignored (default 4).

     The following sysctl(8) variables control behavior of Elantech touchpads:


             Increased values improve the accuracy of X, Y, and Z-axis
             reporting at the expense of slower mouse movement (default 2 for
             xy, and 3 for z).

     For Elantech touchpads, the Z-axis is emulated using two-finger Y-axis

     pckbc(4), ums(4), wsmouse(4)

     The pms driver was originally written by Christopher G. Demetriou.  The
     changes to merge the "IntelliMouse" protocol in, and reset the mouse in
     the event of protocol problems, were contributed by Peter Seebach.
     Special thanks to Ray Trent, at Synaptics, who contributed valuable
     insight into how to identify bogus mouse data.  The changes to add
     "Synaptics" pad support were by Ales Krenek, Kentaro A. Kurahone, and
     Steve C. Woodford.  The changes to add "Elantech" pad support were by
     Jared D. McNeill.

     It is possible for the driver to mistakenly negotiate the non-scroll-
     wheel protocol, after which it is unlikely to recover until the device is
     closed and reopened.

     The "Elantech" pad code only supports trackpads with firmware version
     2.48 or above.

NetBSD 8.0                     December 13, 2008                    NetBSD 8.0