1ef32fcb1SHans Petter Selasky.\" Copyright (c) 2014 Hans Petter Selasky <hselasky at freebsd dot org>. 2ef32fcb1SHans Petter Selasky.\" All rights reserved. 3ef32fcb1SHans Petter Selasky.\" 4ef32fcb1SHans Petter Selasky.\" Redistribution and use in source and binary forms, with or without 5ef32fcb1SHans Petter Selasky.\" modification, are permitted provided that the following conditions 6ef32fcb1SHans Petter Selasky.\" are met: 7ef32fcb1SHans Petter Selasky.\" 1. Redistributions of source code must retain the above copyright 8ef32fcb1SHans Petter Selasky.\" notice, this list of conditions and the following disclaimer. 9ef32fcb1SHans Petter Selasky.\" 2. Redistributions in binary form must reproduce the above copyright 10ef32fcb1SHans Petter Selasky.\" notice, this list of conditions and the following disclaimer in the 11ef32fcb1SHans Petter Selasky.\" documentation and/or other materials provided with the distribution. 12ef32fcb1SHans Petter Selasky.\" 13ef32fcb1SHans Petter Selasky.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14ef32fcb1SHans Petter Selasky.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15ef32fcb1SHans Petter Selasky.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16ef32fcb1SHans Petter Selasky.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17ef32fcb1SHans Petter Selasky.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18ef32fcb1SHans Petter Selasky.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19ef32fcb1SHans Petter Selasky.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20ef32fcb1SHans Petter Selasky.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21ef32fcb1SHans Petter Selasky.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22ef32fcb1SHans Petter Selasky.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23ef32fcb1SHans Petter Selasky.\" SUCH DAMAGE. 24ef32fcb1SHans Petter Selasky.\" 25d8c6d4c7SVladimir Kondratyev.Dd February 9, 2021 26ef32fcb1SHans Petter Selasky.Dt WSP 4 27ef32fcb1SHans Petter Selasky.Os 28ef32fcb1SHans Petter Selasky.Sh NAME 29ef32fcb1SHans Petter Selasky.Nm wsp 30ef32fcb1SHans Petter Selasky.Nd Wellspring touchpad driver 31ef32fcb1SHans Petter Selasky.Sh SYNOPSIS 32ef32fcb1SHans Petter SelaskyTo compile this driver into the kernel, place the following lines into 33ef32fcb1SHans Petter Selaskyyour kernel configuration file: 34ef32fcb1SHans Petter Selasky.Bd -ragged -offset indent 35ef32fcb1SHans Petter Selasky.Cd "device wsp" 3667de2db2SVladimir Kondratyev.Cd "device hid" 37ef32fcb1SHans Petter Selasky.Cd "device usb" 38ef32fcb1SHans Petter Selasky.Ed 39ef32fcb1SHans Petter Selasky.Pp 40577853e6SChristian BruefferAlternatively, to load the driver as a module at boot time, 41ef32fcb1SHans Petter Selaskyplace the following line in 42ef32fcb1SHans Petter Selasky.Xr loader.conf 5 : 43ef32fcb1SHans Petter Selasky.Bd -literal -offset indent 44ef32fcb1SHans Petter Selaskywsp_load="YES" 45ef32fcb1SHans Petter Selasky.Ed 46ef32fcb1SHans Petter Selasky.Sh DESCRIPTION 47ef32fcb1SHans Petter SelaskyThe 48ef32fcb1SHans Petter Selasky.Nm 49ef32fcb1SHans Petter Selaskydriver provides support for the Apple Internal Trackpad 50ef32fcb1SHans Petter Selaskydevice found in many Apple laptops. 51ef32fcb1SHans Petter Selasky.Pp 52577853e6SChristian BruefferThe driver simulates a three-button mouse using multi-finger tap 53ef32fcb1SHans Petter Selaskydetection. 54577853e6SChristian BruefferA single-finger press generates a left button click. 55577853e6SChristian BruefferA two-finger tap maps to the right button; whereas a three-finger tap 56ef32fcb1SHans Petter Selaskygets treated as a middle button click. 57ef32fcb1SHans Petter Selasky.Pp 58ef32fcb1SHans Petter Selasky.Nm 59ef32fcb1SHans Petter Selaskysupports dynamic reconfiguration using 60577853e6SChristian Brueffer.Xr sysctl 8 61ef32fcb1SHans Petter Selaskythrough nodes under 62ef32fcb1SHans Petter Selasky.Nm hw.usb.wsp . 63ef32fcb1SHans Petter SelaskyPointer sensitivity can be controlled using the sysctl tunable 64ef32fcb1SHans Petter Selasky.Nm hw.usb.wsp.scale_factor . 65bab65a84SKyle EvansTap to left-click can be controlled using the sysctl tunable 66*d452a029SJoshua Rogers.Nm hw.usb.wsp.enable_single_tap_clicks 67*d452a029SJoshua Rogerswith 0 disabling single tap clicks and 1 enabling them (default). 687b984d50SJoshua RogersMovement on the trackpad following a partially-released click can be 697b984d50SJoshua Rogerscontrolled using the sysctl tunable 707b984d50SJoshua Rogers.Nm hw.usb.wsp.enable_single_tap_movement , 71*d452a029SJoshua Rogerswith 0 to disable the movement on the trackpad until a full release 727b984d50SJoshua Rogersor 1 to allow the continued movement (default). 7362cf43ddSJoshua Rogers.Nm hw.usb.wsp.max_finger_area 7462cf43ddSJoshua Rogersdefines the maximum area on the trackpad which is registered as a 7562cf43ddSJoshua Rogersfinger (lower for greater palm detection). 76*d452a029SJoshua Rogers.Nm max_scroll_finger_distance 77*d452a029SJoshua Rogersdefines the maximum distance between two fingers where z-axis 78*d452a029SJoshua Rogersmovements are registered. 7962cf43ddSJoshua Rogers.Nm hw.usb.wsp.max_double_tap_distance 8062cf43ddSJoshua Rogersdefines the maximum distance between two finger clicks or taps which may 8162cf43ddSJoshua Rogersregister as a double-click. 82*d452a029SJoshua Rogers.Nm hw.usb.wsp.scr_hor_threshold 83*d452a029SJoshua Rogersdefines the minimum required horizontal movement to register as a forward 84*d452a029SJoshua Rogers/back button click. 85d8c6d4c7SVladimir KondratyevZ-Axis sensitivity can be controlled using the sysctl tunable 86d8c6d4c7SVladimir Kondratyev.Nm hw.usb.wsp.z_factor . 87d8c6d4c7SVladimir KondratyevZ-Axis inversion can be controlled using the sysctl tunable 88d8c6d4c7SVladimir Kondratyev.Nm hw.usb.wsp.z_invert , 89d8c6d4c7SVladimir Kondratyevset to 0 to disable (default) or 1 to enable inversion. 90*d452a029SJoshua Rogers.Pp 91*d452a029SJoshua Rogers.Nm 92*d452a029SJoshua Rogersmay use evdev data (if enabled during kernel compilation) for gesture support 93*d452a029SJoshua Rogersusing the 94*d452a029SJoshua Rogers.Xr sysctl 8 95*d452a029SJoshua Rogersvalue 96*d452a029SJoshua Rogers.Nm kern.evdev.rcpt_mask . 97*d452a029SJoshua RogersOn most MacBooks, setting this value to 3 enables gestures, while 12 98*d452a029SJoshua Rogersdisables them. 99ef32fcb1SHans Petter Selasky.Sh FILES 100ef32fcb1SHans Petter Selasky.Nm 101577853e6SChristian Brueffercreates a blocking pseudo-device file, 102ef32fcb1SHans Petter Selasky.Pa /dev/wsp0 , 103ef32fcb1SHans Petter Selaskywhich presents the mouse as a 104577853e6SChristian Brueffer.Em sysmouse 105ef32fcb1SHans Petter Selaskyor 106577853e6SChristian Brueffer.Em mousesystems 107577853e6SChristian Brueffertype device--see 108ef32fcb1SHans Petter Selasky.Xr moused 8 109ef32fcb1SHans Petter Selaskyfor an explanation of these mouse 110ef32fcb1SHans Petter Selaskytypes. 111ef32fcb1SHans Petter Selasky.Sh SEE ALSO 112ef32fcb1SHans Petter Selasky.Xr sysmouse 4 , 113ef32fcb1SHans Petter Selasky.Xr usb 4 , 114ef32fcb1SHans Petter Selasky.Xr loader.conf 5 , 115ef32fcb1SHans Petter Selasky.Xr xorg.conf 5 Pq Pa ports/x11/xorg , 116ef32fcb1SHans Petter Selasky.Xr moused 8 , 117ef32fcb1SHans Petter Selasky.Xr sysctl 8 118ef32fcb1SHans Petter Selasky.Sh AUTHORS 119ef32fcb1SHans Petter Selasky.An -nosplit 120ef32fcb1SHans Petter SelaskyThe 121ef32fcb1SHans Petter Selasky.Nm 122ef32fcb1SHans Petter Selaskydriver was written by 1236c899950SBaptiste Daroussin.An Huang Wen Hui Aq Mt huanghwh@gmail.com . 124