xref: /freebsd/share/man/man4/wsp.4 (revision 25cefe826504190feefa762356badcf1ce1c0fd3)
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
52a79397d1SJoshua RogersThe driver simulates a three-button mouse using multi-finger press/tap
53ef32fcb1SHans Petter Selaskydetection.
54577853e6SChristian BruefferA single-finger press generates a left button click.
55a79397d1SJoshua RogersA two-finger press maps to the right button; whereas a three-finger
56a79397d1SJoshua Rogerspress gets treated as a middle button click.
57ef32fcb1SHans Petter Selasky.Pp
58a79397d1SJoshua RogersThe trackpad functions with presses and taps. A press is a full-forced
59a79397d1SJoshua Rogerspress which causes a physical lowering of the trackpad. A tap is a
60a79397d1SJoshua Rogerstouch of the trackpad which does not depress the physical trackpad.
61d452a029SJoshua Rogers.Pp
62a79397d1SJoshua RogersThe
63d452a029SJoshua Rogers.Nm
64a79397d1SJoshua Rogersdriver supports receiving evdev input device data if enabled. This data
65a79397d1SJoshua Rogersis used for extended usage of the touchpad like multi-finger support,
66a79397d1SJoshua Rogerspressure detection, tap support, and gestures. At least the second bit
67a79397d1SJoshua Rogersof the
68d452a029SJoshua Rogers.Xr sysctl 8
69a79397d1SJoshua Rogerstunable
70*25cefe82SJoshua Rogers.Va kern.evdev.rcpt_mask
71a79397d1SJoshua Rogersmust be set. This can be enabled with
72*25cefe82SJoshua Rogers.Va kern.evdev.rcpt_mask=3 .
73a79397d1SJoshua Rogers.Pp
74a79397d1SJoshua RogersVertical scrolling (z-axis) is enabled by default with a two-finger
75a79397d1SJoshua Rogerstap and the movement of a finger up and down.
76a79397d1SJoshua RogersHorizontal scrolling (t-axis) is not natively supported by the sysmouse
77a79397d1SJoshua Rogersprotocol, therefore must be enabled with evdev data. This can be enabled
78a79397d1SJoshua Rogerswith the
79a79397d1SJoshua Rogers.Xr sysctl 8
80a79397d1SJoshua Rogerstunable
81*25cefe82SJoshua Rogers.Va kern.evdev.sysmouse_t_axis=3.
82a79397d1SJoshua RogersHorizontal scrolling can be used with a two-finger tap and the movement
83a79397d1SJoshua Rogersof a finger from side to side. The
84a79397d1SJoshua Rogers.Xr sysctl 8
85a79397d1SJoshua Rogerstunable
86*25cefe82SJoshua Rogers.Va hw.usb.wsp.t_factor
87a79397d1SJoshua Rogersmust be greater than 0 for horizontal scrolling to be enabled, too.
88a79397d1SJoshua Rogers.Pp
89a79397d1SJoshua RogersHorizontal swiping with a three-finger tap is registered as mouse buttons
90a79397d1SJoshua Rogers8 and 9, depending on the direction. These buttons default to backwards
91a79397d1SJoshua Rogersand forwards keyboard events.
92a79397d1SJoshua Rogers.Sh SYSCTL VARIABLES
93a79397d1SJoshua RogersThe following variables are available as
94a79397d1SJoshua Rogers.Xr sysctl 8
95a79397d1SJoshua Rogerstunables:
96a79397d1SJoshua Rogers.Bl -tag -width indent
97a79397d1SJoshua Rogers.It Va hw.usb.wsp.scale_factor
98a79397d1SJoshua RogersControls the pointer sensitivity. Default is 12.
99a79397d1SJoshua Rogers.El
100a79397d1SJoshua Rogers.Bl -tag -width indent
101a79397d1SJoshua Rogers.It Va hw.usb.wsp.enable_single_tap_clicks
102a79397d1SJoshua RogersEnables single-tap to register as a left-click. Default is 1 (enabled).
103a79397d1SJoshua Rogers.El
104a79397d1SJoshua Rogers.Bl -tag -width indent
105a79397d1SJoshua Rogers.It Va hw.usb.wsp.enable_single_tap_movement
106a79397d1SJoshua RogersEnables movement on the trackpad follow a partially-released left-click.
107a79397d1SJoshua RogersDefault is 1 (enabled).
108a79397d1SJoshua Rogers.El
109a79397d1SJoshua Rogers.Bl -tag -width indent
110e381dabcSJoshua Rogers.It Va hw.usb.wsp.max_finger_diameter
111e381dabcSJoshua RogersSpecifies the maximum finger diameter on the trackpad that is registered as a
112a79397d1SJoshua Rogersfinger (a lower value is used for palm detection). Default is 1900.
113a79397d1SJoshua Rogers.El
114a79397d1SJoshua Rogers.Bl -tag -width indent
115a79397d1SJoshua Rogers.It Va max_scroll_finger_distance
116a79397d1SJoshua RogersSpecifies the maximum distance between two fingers where z-axis
117a79397d1SJoshua Rogersand t-axis movements are registered. Z-axis and T-axis movements
118a79397d1SJoshua Rogersare vertical and horizontal movements with more than one finger
119a79397d1SJoshua Rogerstapped (not clicked), respectively. Default is 8192.
120a79397d1SJoshua Rogers.El
121a79397d1SJoshua Rogers.Bl -tag -width indent
122a79397d1SJoshua Rogers.It Va hw.usb.wsp.max_double_tap_distance
123a79397d1SJoshua RogersSpecifies the maximum distance between two fingers that a two-finger
124a79397d1SJoshua Rogersclick will be registered as a right-click. Default is 2500.
125a79397d1SJoshua Rogers.El
126a79397d1SJoshua Rogers.Bl -tag -width indent
127a79397d1SJoshua Rogers.It Va hw.usb.wsp.scr_threshold
128a79397d1SJoshua RogersSpecifies the minimum horizontal or vertical distance required to
129a79397d1SJoshua Rogersregister as a scrolling gesture. Default is 20.
130a79397d1SJoshua Rogers.El
131a79397d1SJoshua Rogers.Bl -tag -width indent
132a79397d1SJoshua Rogers.It Va hw.usb.wsp.z_factor
133a79397d1SJoshua RogersZ-axis sensitivity. Default is 5.
134a79397d1SJoshua Rogers.El
135a79397d1SJoshua Rogers.Bl -tag -width indent
136a79397d1SJoshua Rogers.It Va hw.usb.wsp.z_invert
137a79397d1SJoshua RogersZ-axis inversion. Default is 0 (disabled).
138a79397d1SJoshua Rogers.El
139a79397d1SJoshua Rogers.Bl -tag -width indent
140a79397d1SJoshua Rogers.It Va hw.usb.wsp.t_factor
141a79397d1SJoshua RogersT-axis sensitivity. Default is 0 (disabled).
142a79397d1SJoshua Rogers.El
143a79397d1SJoshua Rogers.Bl -tag -width indent
144a79397d1SJoshua Rogers.It Va hw.usb.wsp.t_invert
145a79397d1SJoshua RogersT-axis inversion. Default is 0 (disabled).
146a79397d1SJoshua Rogers.El
147a79397d1SJoshua Rogers.Bl -tag -width indent
148a79397d1SJoshua Rogers.It Va hw.usb.wsp.scroll_finger_count
149a79397d1SJoshua RogersSpecifies the number of tapped fingers which registers as a scrolling
150a79397d1SJoshua Rogersmovement. Default is 2.
151a79397d1SJoshua Rogers.El
152a79397d1SJoshua Rogers.Bl -tag -width indent
153a79397d1SJoshua Rogers.It Va hw.usb.wsp.horizontal_swipe_finger_count
154a79397d1SJoshua RogersSpeifies the number of tapped fingers which registers as a swipe
155a79397d1SJoshua Rogersgesture. Default is 3.
156a79397d1SJoshua Rogers.El
157a79397d1SJoshua Rogers.Bl -tag -width indent
158a79397d1SJoshua Rogers.It Va hw.usb.wsp.pressure_touch_threshold
159a79397d1SJoshua RogersSpecifies the threshold for a finger to be registered as a click.
160a79397d1SJoshua RogersDefault is 50.
161a79397d1SJoshua Rogers.El
162a79397d1SJoshua Rogers.Bl -tag -width indent
163a79397d1SJoshua Rogers.It Va hw.usb.wsp.pressure_untouch_threshold
164a79397d1SJoshua RogersSpecifies the threshold for a finger to be registered as an unclick.
165a79397d1SJoshua RogersDefault is 10.
166a79397d1SJoshua Rogers.El
167a79397d1SJoshua Rogers.Bl -tag -width indent
168a79397d1SJoshua Rogers.It Va hw.usb.wsp.pressure_tap_threshold
169a79397d1SJoshua RogersSpecifies the threadhold for a finger to be registered as a tap.
170a79397d1SJoshua RogersDefault is 120.
171a79397d1SJoshua Rogers.El
172a79397d1SJoshua Rogers.Bl -tag -width indent
173a79397d1SJoshua Rogers.It Va hw.usb.wsp.debug
174a79397d1SJoshua RogersSpecifies the
175a79397d1SJoshua Rogers.Nm
176a79397d1SJoshua Rogersdriver debugging level (0-3). Default is 1.
177ef32fcb1SHans Petter Selasky.Sh FILES
178ef32fcb1SHans Petter Selasky.Nm
179577853e6SChristian Brueffercreates a blocking pseudo-device file,
180ef32fcb1SHans Petter Selasky.Pa /dev/wsp0 ,
181ef32fcb1SHans Petter Selaskywhich presents the mouse as a
182577853e6SChristian Brueffer.Em sysmouse
183ef32fcb1SHans Petter Selaskyor
184577853e6SChristian Brueffer.Em mousesystems
185577853e6SChristian Brueffertype device--see
186ef32fcb1SHans Petter Selasky.Xr moused 8
187ef32fcb1SHans Petter Selaskyfor an explanation of these mouse
188ef32fcb1SHans Petter Selaskytypes.
189ef32fcb1SHans Petter Selasky.Sh SEE ALSO
190ef32fcb1SHans Petter Selasky.Xr sysmouse 4 ,
191ef32fcb1SHans Petter Selasky.Xr usb 4 ,
192ef32fcb1SHans Petter Selasky.Xr loader.conf 5 ,
193ef32fcb1SHans Petter Selasky.Xr xorg.conf 5 Pq Pa ports/x11/xorg ,
194ef32fcb1SHans Petter Selasky.Xr moused 8 ,
195ef32fcb1SHans Petter Selasky.Xr sysctl 8
196ef32fcb1SHans Petter Selasky.Sh AUTHORS
197ef32fcb1SHans Petter Selasky.An -nosplit
198ef32fcb1SHans Petter SelaskyThe
199ef32fcb1SHans Petter Selasky.Nm
200ef32fcb1SHans Petter Selaskydriver was written by
2016c899950SBaptiste Daroussin.An Huang Wen Hui Aq Mt huanghwh@gmail.com .
202