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

# As banjo and yuna use the same TP, keep this file in sync with
# 60-touchpad-cmt-auron_yuna.conf

# Configure touchpads to use Chromium Multitouch (cmt) X input driver
Section "InputClass"
    Identifier      "touchpad banjo elan"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "Elan"
    Option          "Integrated Touchpad" "1"
    Option          "Touchpad Stack Version" "2"
    # Pressure calibration results:
    # Probe Diameter   Measured   Expected   Calibrated
    # 0     3.90       31.34      11.95      -4.53
    # 1     5.70       36.59      25.52      19.51
    # 2     7.70       43.78      46.57      52.48
    # 3     9.90       52.41      76.98      92.02
    # 4     11.70      56.13      107.51     109.04
    # 5     13.90      90.85      151.75     268.14
    # 6     17.80      121.47     248.85     408.43
    Option          "Pressure Calibration Offset" "-148.118845541"
    Option          "Pressure Calibration Slope" "4.58167539518"
    Option          "Tap Minimum Pressure" "25.0"
EndSection
