# 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 caroline atmel"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "Atmel"
    Option          "Touchpad Stack Version" "2"
    Option          "Integrated Touchpad" "1"
    Option          "Tap Minimum Pressure" "15.0"
    # Pressure calibration results:
    # Probe Diameter   Measured   Expected   Calibrated
    # 0     3.90       17.70      11.95      2.17
    # 1     5.70       25.00      25.52      20.05
    # 2     7.70       33.00      46.57      39.64
    # 3     9.90       53.00      76.98      88.63
    # 4     11.70      65.00      107.51     118.03
    # 5     13.90      69.57      151.75     129.23
    # 6     17.80      63.97      248.85     115.50
    Option          "Pressure Calibration Offset" "-41.1882710243"
    Option          "Pressure Calibration Slope" "2.44946377494"
    Option          "Pinch Enable" "1"
EndSection
