Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
UATP(4) Device Drivers Manual UATP(4)
NAME
uatp - USB Apple trackpad driver
SYNOPSIS
uatp* at uhidev? reportid ?
wsmouse* at uatp? mux 0
DESCRIPTION
The uatp driver provides support for the USB trackpads found in Apple
laptops since 2005, exposed through wsmouse(4). Some USB Apple trackpads
are standard USB HID mice supported by ums(4), but uatp supports more
features. The following sysctl(8) variables control behavior of USB
Apple trackpads:
hw.uatpN.two_finger_buttons Bit mask of buttons to emulate when
two fingers are on the trackpad while
the button is pressed.
hw.uatpN.three_finger_buttons Bit mask of buttons to emulate when
three fingers are on the trackpad
while the button is pressed.
hw.uatpN.multifinger_track What to do when multiple fingers are
moved on the trackpad. If set to 0,
ignore the input. If set to 1, move
as if a single finger were at the mean
position of the fingers. If set to 2,
scroll. Note that scrolling is
currently broken.
hw.uatpN.x_sensors Number of sensor columns detecting the
x positions of fingers on the
trackpad. The driver should detect
this based on the model of hardware,
so you should not have to set this,
and likewise for the x ratio and y
sensors and ratio.
hw.uatpN.x_ratio Ratio of the number of sensor columns
in the trackpad to the number of
distinct cursor x positions.
hw.uatpN.y_sensors Number of sensor rows detecting the y
positions of fingers on the trackpad.
hw.uatpN.y_ratio Ratio of the number of sensor rows in
the trackpad to the number of distinct
cursor y positions.
hw.uatpN.sensor_threshold Nonnegative integer giving a lower
bound on the "pressure" a sensor must
report for the driver to recognize
input from it.
hw.uatpN.sensor_normalizer Nonnegative integer to subtract from
the "pressure" reported by a sensor
when averaging them to estimate the
pressure of a single finger.
hw.uatpN.palm_width If zero, palm detection is disabled.
Otherwise, a positive integer giving
the number of consecutive sensors wide
or high that will be interpreted as a
palm instead of a finger and therefore
ignored.
hw.uatpN.old_raw_weight
hw.uatpN.old_smoothed_weight
hw.uatpN.new_raw_weight When a finger moves on the trackpad,
the new smoothed (cursor) position is
computed as a positive linear
combination of the old raw (trackpad)
position, the old smoothed position,
and the new raw position. The weights
of the linear combination are given by
these sysctl knobs.
hw.uatpN.motion_threshold Threshold below which a difference in
smoothed position will not be reported
as an input event to userland.
hw.uatpN.motion_multiplier Positive integer by which a difference
in smoothed position will be
multiplied before passing it as an
input event to userland.
hw.uatpN.motion_divisor Positive integer by which a difference
in smoothed position will be divided,
after multiplying it by the motion
multiplier, before passing it as an
input event to userland.
hw.uatpN.fast_motion_threshold Threshold above which to use the fast
motion factors below.
hw.uatpN.fast_motion_multiplier Positive integer by which to multiply
a large difference in smoothed
position.
hw.uatpN.fast_motion_divisor Positive integer by which to divide a
large difference in smoothed position,
after multiplying it by the fast
motion multiplier.
hw.uatpN.motion_delay Number of input packets before uatp
reports motion to userland.
hw.uatpN.tap_limit_msec Positive integer giving the number of
milliseconds of a finger's contact
with the trackpad before it will not
be considered a tap.
hw.uatpN.double_tap_limit_msec Positive integer giving the maximum
number of milliseconds after a tap
before a second tap will keep the
button down.
hw.uatpN.one_finger_tap_buttons Bit mask of buttons that a one-finger
tap will press.
hw.uatpN.two_finger_tap_buttons Bit mask of buttons that a two-finger
tap will press.
hw.uatpN.three_finger_tap_buttons Bit mask of buttons that a three-
finger tap will press.
hw.uatpN.tap_track_distance_limit Maximum distance in smoothed position
that will be interpreted as a tap
instead of motion.
SEE ALSO
ums(4), wsmouse(4)
HISTORY
The uatp driver first appeared in NetBSD 7.0.
AUTHORS
The uatp driver was originally written by Taylor R. Campbell
<riastradh@NetBSD.org>.
BUGS
Sometimes, particularly when X starts up, the driver gets wedged in an
interrupt storm and does not reset the device. Setting
hw.uatpN.sensor_threshold to a large number, say 1000, and then back to
its original value, can fix this.
Palm detection is not very robust.
Multi-touch scrolling is currently broken.
Pinch-to-zoom and other fancy multi-touch input is not implemented.
On suspending and resuming, uatp detaches and reattaches, and loses all
sysctl settings in the process.
Do not submerge your uatp devices in water: USB adenosine triphosphate is
unstable in water, and will hydrolyze to USB adenosine diphosphate and
phosphate, which is a lower energy state that makes your mouse
narcoleptic in X.
NetBSD 10.99 August 4, 2012 NetBSD 10.99