# 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 lulu synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "SYNA"
    Option          "Integrated Touchpad" "1"
    Option          "Touchpad Stack Version" "2"
    # Pressure calibration results:
    # Probe Diameter   Measured   Expected   Calibrated
    # 0     3.90       39.31      11.95      7.78
    # 1     5.70       40.03      25.52      10.43
    # 2     7.70       50.45      46.57      48.76
    # 3     9.90       58.97      76.98      80.13
    # 4     11.70      70.19      107.51     121.41
    # 5     13.90      80.38      151.75     158.90
    # 6     17.80      120.61     248.85     306.98
    Option          "Pressure Calibration Offset" "-136.896426947"
    Option          "Pressure Calibration Slope" "3.68015979309"
    Option          "Palm Pressure" "300.0"

    Option          "Max Allowed Pressure Change Per Sec" "1250.0"
    Option          "Max Hysteresis Pressure Per Sec" "1000.0"
EndSection
