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

Section "InputClass"
    Identifier      "touchpad gandof 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       38.98      11.95      11.09
    # 1     5.70       43.83      25.52      27.00
    # 2     7.70       53.90      46.57      59.99
    # 3     9.90       62.70      76.98      88.85
    # 4     11.70      75.75      107.51     131.59
    # 5     13.90      85.98      151.75     165.14
    # 6     17.80      116.86     248.85     266.34
    Option          "Pressure Calibration Offset" "-116.641766519"
    Option          "Pressure Calibration Slope" "3.27718585036"

    Option          "Palm Pressure" "150"
    Option          "Tap Minimum Pressure 12.0"
EndSection
