# 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" "-32.9238443200488"
    Option          "Pressure Calibration Slope" "1.04389025281584"

    # 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"

    Option          "Palm Pressure" "120.0"
    Option          "Palm Width" "26.0"
    Option          "Two Finger Vertical Close Distance Thresh" "35.0"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"
EndSection
