# 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 orco 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.92      11.95      2.28
    # 1     5.70       42.89      25.52      12.95
    # 2     7.70       59.70      46.57      58.09
    # 3     9.90       66.19      76.98      75.50
    # 4     11.70      82.64      107.51     119.69
    # 5     13.90      102.82     151.75     173.87
    # 6     17.80      115.53     248.85     207.99
    Option          "Pressure Calibration Offset" "-102.203788083"
    Option          "Pressure Calibration Slope" "2.68491671316"
    Option          "Tap Minimum Pressure" "25.0"
    Option          "Palm Edge Zone Width" "2.0"
    Option          "Tap Exclusion Border Width" "1.0"
EndSection
