summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hwdb/70-touchpad.hwdb39
-rw-r--r--hwdb/Makefile.am3
-rw-r--r--rules/70-touchpad.rules12
-rw-r--r--rules/Makefile.am1
4 files changed, 54 insertions, 1 deletions
diff --git a/hwdb/70-touchpad.hwdb b/hwdb/70-touchpad.hwdb
new file mode 100644
index 0000000000..bbf44db778
--- /dev/null
+++ b/hwdb/70-touchpad.hwdb
@@ -0,0 +1,39 @@
+# This file is part of systemd.
+#
+# The lookup keys are composed in:
+# 70-touchpad.rules
+#
+# Note: The format of the "touchpad:" prefix match key is a
+# contract between the rules file and the hardware data, it might
+# change in later revisions to support more or better matches, it
+# is not necessarily expected to be a stable ABI.
+#
+# Match string format:
+# touchpad:pnpid:<pnpid>:
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-touchpad-local.hwdb
+# and add your rules there. To load the new rules execute (as root):
+# udevadm hwdb --update
+# udevadm trigger /dev/input/eventXX
+# where /dev/input/eventXX is the touchpad in question. If in
+# doubt, simply use /dev/input/event* to reload all input rules.
+#
+# If your changes are generally applicable, open a bug report on
+# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd
+# and include your new rules, a description of the device, and the
+# output of
+# udevadm info /dev/input/eventXX
+# (or /dev/input/event*).
+#
+# Allowed properties are:
+# TOUCHPAD_HAS_TRACKPOINT_BUTTONS=1
+#
+# If the TOUCHPAD_HAS_TRACKPOINT_BUTTONS property is set, this
+# device has # the trackpoint buttons wired up to the touchpad as
+# BTN_0, BTN_1 and BTN_2. This affects the Lenovo X1 Carbon 3rd
+# and the *50 series (T450, T550, etc.)
+
+# Lenovo X1 Carbon 3rd
+touchpad:pnpid:*LEN0048*:
+ TOUCHPAD_HAS_TRACKPOINT_BUTTONS=1
diff --git a/hwdb/Makefile.am b/hwdb/Makefile.am
index c00cfe1335..192fa7e132 100644
--- a/hwdb/Makefile.am
+++ b/hwdb/Makefile.am
@@ -10,7 +10,8 @@ dist_udevhwdb_DATA = \
20-sdio-vendor-model.hwdb \
20-usb-classes.hwdb \
20-usb-vendor-model.hwdb \
- 70-mouse.hwdb
+ 70-mouse.hwdb \
+ 70-touchpad.hwdb
if ENABLE_KEYMAP
dist_udevhwdb_DATA += \
diff --git a/rules/70-touchpad.rules b/rules/70-touchpad.rules
new file mode 100644
index 0000000000..88e6fd2f25
--- /dev/null
+++ b/rules/70-touchpad.rules
@@ -0,0 +1,12 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION=="remove", GOTO="touchpad_end"
+KERNEL!="event*", GOTO="touchpad_end"
+ENV{ID_INPUT_TOUCHPAD}=="", GOTO="touchpad_end"
+
+# touchpad:pnpid:<pnpid>:*
+KERNELS=="serio1", \
+ IMPORT{builtin}="hwdb 'touchpad:pnpid:$attr{firmware_id}:'", \
+ GOTO="touchpad_end"
+
+LABEL="touchpad_end"
diff --git a/rules/Makefile.am b/rules/Makefile.am
index dfbda04684..1fae8b56ec 100644
--- a/rules/Makefile.am
+++ b/rules/Makefile.am
@@ -13,6 +13,7 @@ dist_udevrules_DATA = \
61-accelerometer.rules \
64-btrfs.rules \
70-mouse.rules \
+ 70-touchpad.rules \
75-net-description.rules \
75-probe_mtd.rules \
75-tty-description.rules \