# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Configure touchpads to use Chromium Multitouch (cmt) X input driver
Section "InputClass"
    Identifier      "touchpad"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver          "cmt"
    Option          "AccelerationProfile" "-1"
    Option          "Scroll Buttons" "0"
    Option          "Scroll Axes" "1"

    # CMT devices potentially process keyboard events
    Option          "XkbModel" "pc"
    Option          "XkbLayout" "us"
EndSection

Section "InputClass"
    Identifier      "CMT for Synaptics Touchpad"
    MatchUSBID      "06cb:*"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"

    # default calibration values for Synaptics firmware
    Option          "Pressure Calibration Offset" "-51.1766"
    Option          "Pressure Calibration Slope"  "1.7716"
EndSection

Section "InputClass"
    Identifier      "CMT for Elan Touchpad"
    MatchUSBID      "04f3:*"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"

    # default calibration values for Elan firmware
    Option          "Pressure Calibration Offset" "0.0"
    Option          "Pressure Calibration Slope"  "3.1416"

    # Devices with the default pressure calibration have a lower tap threshold
    Option          "Tap Minimum Pressure" "10.0"
EndSection

Section "InputClass"
    Identifier      "CMT for GDIX Touchpad"
    MatchUSBID      "27C6:*"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"

    Option          "Palm Pressure" "260"
    Option          "Fat Finger Pressure Ratio"  "1.0"

    # default calibration values for GDIX firmware
    Option          "Pressure Calibration Offset" "0.0"
    Option          "Pressure Calibration Slope"  "1.10"

    # Devices with the default pressure calibration have a lower tap threshold
EndSection

Section "InputClass"
    Identifier      "CMT for Apple Magic Trackpad"
    MatchUSBID      "05ac:030e"
    MatchDevicePath "/dev/input/event*"
    Option          "Touchpad Stack Version" "1"
# We are using raw touch major value as pressure value, so set the Palm
# pressure threshold high.
    Option          "Palm Pressure" "1000"
    Option          "Compute Surface Area from Pressure" "0"
    Option          "IIR b0" "1"
    Option          "IIR b1" "0"
    Option          "IIR b2" "0"
    Option          "IIR b3" "0"
    Option          "IIR a1" "0"
    Option          "IIR a2" "0"
    # TODO(clchiou): Calibrate bias on X-axis
    Option          "Touchpad Device Output Bias on X-Axis" "-283.3226025266607"
    Option          "Touchpad Device Output Bias on Y-Axis" "-283.3226025266607"
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    # Disable drumroll suppression
    Option          "Drumroll Suppression Enable" "0"
    Option          "Two Finger Vertical Close Distance Thresh" "35.0"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"
EndSection

Section "InputClass"
    Identifier      "CMT for Apple Magic Trackpad 2"
    MatchUSBID      "05ac:0265|004c:0265"
    MatchDevicePath "/dev/input/event*"

    Option          "Pressure Calibration Offset" "30"
    Option          "Palm Pressure" "250.0"
    Option          "Palm Width" "20.0"
    Option          "Multiple Palm Width" "20.0"

    # Enable Stationary Wiggle Filter
    Option          "Stationary Wiggle Filter Enabled" "1"
    Option          "Finger Moving Energy" "0.0008"
    Option          "Finger Moving Hysteresis" "0.0004"

    # Avoid accidental scroll/move on finger lift
    Option          "Max Stationary Move Speed" "47"
    Option          "Max Stationary Move Speed Hysteresis" "1"
    Option          "Max Stationary Move Suppress Distance" "0.2"
EndSection

Section "InputClass"
    Identifier      "CMT for Apple Magic Mouse"
    MatchUSBID      "05ac:030d"
    MatchDevicePath "/dev/input/event*"
    Driver          "cmt"
    Option          "AccelerationProfile" "-1"
    Option          "Scroll X Out Scale" "3"
    Option          "Scroll Y Out Scale" "3"
    Option          "Compute Surface Area from Pressure" "0"
    Option          "Max Allowed Pressure Change Per Sec" "170.0"
    Option          "Max Hysteresis Pressure Per Sec" "170.0"
    Option          "Max Finger Stationary Speed" "94.32"
    Option          "Mouse Accel Curves" "1"
    Option          "Mouse Scroll Curves" "0"
    Option          "Box Width" "8.0"
    Option          "Box Height" "1.0"
    # Resolution overrides:
    Option          "Vertical Resolution" "40"
    Option          "Horizontal Resolution" "45"
    # Assume a frame interval to handle jitter on the bus
    Option          "Accel Min dt" "0.003"
EndSection

Section "InputClass"
    Identifier      "CMT for Apple Magic Mouse 2"
    MatchUSBID      "004c:0269"
    MatchDevicePath "/dev/input/event*"
    Driver          "cmt"
    Option          "AccelerationProfile" "-1"
    Option          "Scroll X Out Scale" "3"
    Option          "Scroll Y Out Scale" "3"
    Option          "Compute Surface Area from Pressure" "0"
    Option          "Max Allowed Pressure Change Per Sec" "800.0"
    Option          "Max Hysteresis Pressure Per Sec" "600.0"
    Option          "Max Finger Stationary Speed" "94.32"
    Option          "Mouse Accel Curves" "1"
    Option          "Mouse Scroll Curves" "0"
    Option          "Box Width" "8.0"
    Option          "Box Height" "1.0"
    # Resolution overrides:
    Option          "Vertical Resolution" "40"
    Option          "Horizontal Resolution" "45"
    # Assume a frame interval to handle jitter on the bus
    Option          "Accel Min dt" "0.003"
EndSection

Section "InputClass"
    Identifier      "CMT for Logitech Wireless Touchpad"
    MatchUSBID      "046d:4011"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option          "Touchpad Stack Version" "1"
    Option          "IIR b0" "1"
    Option          "IIR b1" "0"
    Option          "IIR b2" "0"
    Option          "IIR b3" "0"
    Option          "IIR a1" "0"
    Option          "IIR a2" "0"
    Option          "Pressure Calibration Offset" "-313.240741792594"
    Option          "Pressure Calibration Slope" "4.39678062436752"
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    Option          "Palm Pressure" "100000.0"
    Option          "Two Finger Vertical Close Distance Thresh" "35.0"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"
EndSection

Section "InputClass"
    Identifier      "CMT for Logitech T650"
    MatchUSBID      "046d:4101"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option          "Touchpad Stack Version" "1"
    Option          "IIR b0" "1"
    Option          "IIR b1" "0"
    Option          "IIR b2" "0"
    Option          "IIR b3" "0"
    Option          "IIR a1" "0"
    Option          "IIR a2" "0"
    Option          "Pressure Calibration Offset" "-0.439288351750068"
    Option          "Pressure Calibration Slope" "3.05998553523335"
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    Option          "Two Finger Vertical Close Distance Thresh" "35.0"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"
EndSection

Section "InputClass"
    Identifier      "CMT for Logitech T651"
    MatchUSBID      "046d:b00c"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option          "Touchpad Stack Version" "1"
    Option          "IIR b0" "1"
    Option          "IIR b1" "0"
    Option          "IIR b2" "0"
    Option          "IIR b3" "0"
    Option          "IIR a1" "0"
    Option          "IIR a2" "0"
    Option          "Pressure Calibration Offset" "-4.46520447177073"
    Option          "Pressure Calibration Slope" "3.21071719332644"
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    Option          "Two Finger Vertical Close Distance Thresh" "35.0"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"
EndSection

Section "InputClass"
    Identifier      "CMT for Logitech T620"
    MatchUSBID      "046d:4027"
    MatchDevicePath "/dev/input/event*"
    Driver          "cmt"
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    Option          "Box Width" "6"
    Option          "Box Height" "1"
    Option          "Drumroll Suppression Enable" "0"
    Option          "Input Queue Max Delay" "0.0"
    Option          "Mouse Accel Curves" "1"
    Option          "Mouse Scroll Curves" "0"
    Option          "AccelerationProfile" "-1"
    # Assume a frame interval to handle jitter on the bus
    Option          "Accel Min dt" "0.003"
EndSection

Section "InputClass"
    Identifier      "CMT for Logitech T400"
    MatchUSBID      "046d:4026"
    MatchDevicePath "/dev/input/event*"
    Driver          "cmt"
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    Option          "Box Width" "6"
    Option          "Box Height" "1"
    Option          "Drumroll Suppression Enable" "0"
    Option          "Input Queue Max Delay" "0.0"
    Option          "Mouse Accel Curves" "1"
    Option          "Mouse Scroll Curves" "0"
    Option          "AccelerationProfile" "-1"
    # Assume a frame interval to handle jitter on the bus
    Option          "Accel Min dt" "0.003"
EndSection

Section "InputClass"
    Identifier      "CMT for Logitech Bluetooth Touchmouse"
    MatchUSBID      "046d:b00d"
    MatchDevicePath "/dev/input/event*"
    Driver          "cmt"
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    Option          "Box Width" "6"
    Option          "Box Height" "1"
    Option          "Drumroll Suppression Enable" "0"
    Option          "Input Queue Max Delay" "0.0"
    Option          "Mouse Accel Curves" "1"
    Option          "Mouse Scroll Curves" "0"
    Option          "AccelerationProfile" "-1"
    # Assume a frame interval to handle jitter on the bus
    Option          "Accel Min dt" "0.003"
EndSection

Section "InputClass"
    Identifier      "CMT for Logitech TK820"
    MatchUSBID      "046d:4102"
    MatchDevicePath "/dev/input/event*"
    Driver          "cmt"
    Option          "Touchpad Stack Version" "2"
    # Pressure jumps around a lot on this touchpad, so allow that:
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    Option          "Pressure Calibration Offset" "-18.8078435"
    Option          "Pressure Calibration Slope" "2.466208137"
EndSection

Section "InputClass"
    Identifier "CMT for Stantum"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "MTP_USB_Controller"
    Driver          "cmt"
    Option          "SendCoreEvents" "On"
    Option          "IIR b0" "1"
    Option          "IIR b1" "0"
    Option          "IIR b2" "0"
    Option          "IIR b3" "0"
    Option          "IIR a1" "0"
    Option          "IIR a2" "0"
    Option          "IIR Distance Threshold" "1000"
    Option          "Horizontal Resolution" "8"
    Option          "Vertical Resolution" "10"
    Option          "Two Finger Scroll Distance Thresh" "0.5"
    Option          "Pressure Calibration Offset" "1.0"
    Option          "Pressure Calibration Slope" "15.0"
    Option          "Max Allowed Pressure Change Per Sec" "100000.0"
    Option          "Max Hysteresis Pressure Per Sec" "100000.0"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"
EndSection

Section "InputClass"
    Identifier      "Whiskers Touchpad"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchUSBID    "18D1:5030"

    # Use new touchpad gesture stack
    Option          "Touchpad Stack Version" "2"
    Option          "Integrated Touchpad" "1"

    Option          "Pressure Calibration Offset" "0.0"
    Option          "Pressure Calibration Slope"  "2"

    # Enable Stationary Wiggle Filter
    Option          "Stationary Wiggle Filter Enabled" "1"

    Option          "Box Width" "0.5"
    Option          "Box Height" "0.5"

    # Avoid accidental scroll/move on finger lift
    Option          "Max Stationary Move Speed" "47"
    Option          "Max Stationary Move Speed Hysteresis" "1"
    Option          "Max Stationary Move Suppress Distance" "0.2"

    # Suppress clicks without fingers on the pad.
    Option          "Zero Finger Click Enable" "0"

    Option          "Filter Low Pressure" "1"
    Option          "Pinch Enable" "1"
    Option          "Palm Pressure" "220.0"
    Option          "Palm Filter Top Edge Enable" "1"
    Option          "Smooth Accel" "1"
    Option          "Tap Minimum Pressure" "20.0"

    # Touch size increases with finger count, so ignore touch size for
    # detecting palms if there are multiple touches.
    Option          "Multiple Palm Width" "200.0"
EndSection

Section "InputClass"
    Identifier      "Brydge Touchpad"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchUSBID      "03F6:A001"

    Option          "Fake Timestamp Delta" "0.010"
EndSection
