# Copyright 2017 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 pbody synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "virtual-touchpad"
    Option          "Integrated Touchpad" "1"
    Option          "Touchpad Stack Version" "2"
    # Pressure calibration results:
    # Probe Diameter   Measured   Expected   Calibrated
    # 0     3.90       51.43      11.95      -2.70
    # 1     5.70       70.73      25.52      20.65
    # 2     7.70       92.22      46.57      46.65
    # 3     9.90       132.79     76.98      95.75
    # 4     11.70      143.07     107.51     108.18
    # 5     13.90      196.64     151.75     173.01
    # 6     17.80      250.78     248.85     238.51
    Option          "Pressure Calibration Offset" "-64.9378194906"
    Option          "Pressure Calibration Slope" "1.21002945926"
EndSection
