# 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 pit atmel"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "Atmel"
    Option          "Touchpad Stack Version" "1"
    Option          "Integrated Touchpad" "1"
    Option          "Pressure Calibration Offset" "-20.0256397754628"
    Option          "Pressure Calibration Slope" "1.0709525531637"

    # Disable some causes of delay
    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"

    # The flexible case can cause accidental physical clicks
    Option          "Zero Finger Click Enable" "0"

    # Some fingers were accidentally triggering palm detection
    Option          "Palm Width" "26.0"
    Option          "Palm Pressure" "150.0"

    # Taps tend to have low pressure readings on Pit
    Option          "Tap Minimum Pressure" "15.0"
    Option          "Two Finger Vertical Close Distance Thresh" "35.0"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"
EndSection
