NAME
cyapa – Cypress APA trackpad with I2C interface driver
SYNOPSIS
To compile this driver into the kernel, place the following lines into the kernel configuration file:
device cyapa device ig4 device iicbus
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
cyapa_load="YES" ig4_load="YES"
On many Chromebook models this driver can be automatically configured with the help of the chromebook_platform(4) driver. Alternatively, the
cyapa driver can be manually configured in /boot/device.hints: hint.cyapa.0.at="iicbus0" hint.cyapa.0.addr="0xCE" hint.cyapa.1.at="iicbus1" hint.cyapa.1.addr="0xCE"
DESCRIPTION
The cyapa driver provides support for the Cypress APA trackpad. It emulates the IntelliMouse PS/2 protocol. It supports basic mouse ioctls, so that moused(8) is supported properly.
Trackpad layout
2/3 1/3
+--------------------+------------+
| | Middle |
| | Button |
| Left | |
| Button +------------+
| | Right |
| | Button |
+--------------------+............|
| Thumb/Button Area | 15%
+---------------------------------+
Trackpad features
- Two finger scrolling
-
Use two fingers for Z axis scrolling.
- Button down/second finger
-
While one finger clicks and holds down the touchpad, the second finger can be used to move the mouse cursor. This can be useful for drawing or selecting text.
- Thumb/Button area
-
The lower 15% of the trackpad will not affect the mouse cursor position. This allows for high precision clicking, by controlling the cursor with the index finger and pushing/holding the pad down with the thumb.
- Trackpad button
-
Push physical button. The left two thirds of the pad issues a LEFT button event. The upper right corner issues a MIDDLE button event. The lower right corner issues a RIGHT button. Optionally, tap to click can be enabled (see below).
On a system using device.hints(5), these values are configurable for cyapa:
SYSCTL VARIABLES
These sysctl(8) variables are available:
- debug.cyapa_idle_freq
-
Scan frequency in idle mode, the default is 1.
- debug.cyapa_slow_freq
-
Scan frequency in slow mode, the default is 20.
- debug.cyapa_norm_freq
-
Scan frequency in normal mode, the default is 100.
- debug.cyapa_minpressure
-
Minimum pressure to detect a finger, the default is 12.
- debug.cyapa_enable_tapclick
-
Controls tap to click. Possible values:
- 0
-
Tap to click is disabled. This is the default value.
- 1
-
Tap to click always generates a left mouse button event.
- 2
-
Tap to click generates left mouse button event if the left 2/3rds of the pad are tapped and a right mouse button event otherwise.
- 3
-
Tap to click generates mouse button events as if the physical button was pressed (see DESCRIPTION above).
- debug.cyapa_tapclick_min_ticks
-
Minimum tap duration in ticks to create a click, the default is 1.
- debug.cyapa_tapclick_max_ticks
-
Maximum tap duration in ticks to create a click, the default is 8.
- debug.cyapa_move_min_ticks
-
Minimum ticks before cursor movement occurs, the default is 4.
- debug.cyapa_scroll_wait_ticks
-
Ticks to wait before starting to scroll, the default is 0.
- debug.cyapa_scroll_stick_ticks
-
Ticks while preventing cursor movement on single finger after scroll, the default is 15.
- debug.cyapa_thumbarea_percent
-
Size of bottom thumb area in percent, the default is 15.
- debug.cyapa_debug
-
Setting this to a non-zero value enables debug output to console and syslog, the default is 0.
- debug.cyapa_reset
-
Setting this to a non-zero value reinitializes the device. The sysctl resets to zero immediately.
FILES
cyapa creates /dev/cyapa0, which presents the mouse as an IntelliMouse PS/2 device. It supports moused(8) levels 0 through 2, level 1 is used by default.
EXAMPLES
To use cyapa with moused(8), add the following lines to the rc.conf(5) file:
moused_enable="YES"
moused_port="/dev/cyapa0"
If vertical scrolling is not desired, add
moused_flags="-l0"
to rc.conf(5).
Enable tap to click for the left and the right mouse button and disable the thumb area by adding these lines to the sysctl.conf(5) file:
debug.cyapa_thumbarea_percent=0
debug.cyapa_enable_tapclick=2
SEE ALSO
chromebook_platform(4), ig4(4), iicbus(4), sysmouse(4), moused(8)
AUTHORS
The original cyapa driver was written for DragonFly by Matthew Dillon.
It has been ported, modified, and enhanced for FreeBSD by Michael Gmelin ⟨[email protected]⟩.
This manual page was written by Michael Gmelin ⟨[email protected]⟩.
BUGS
The cyapa driver detects the device from the I2C address. This might have unforeseen consequences if the initialization sequence is sent to an unknown device at that address.