# This file is part of systemd.
#
# The lookup keys are composed in:
#   60-evdev.rules
#
# Note: The format of the "evdev:" 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 formats:
# evdev:<modalias>
# evdev:name:<device name>:dmi:<dmi string>
#
# To add local entries, create a new file
#   /etc/udev/hwdb.d/61-evdev-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 device in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
# If your changes are generally applicable, preferably send them as a pull
# request to
#   https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
#   udevadm info /dev/input/eventXX.
#
# Allowed properties are:
#    EVDEV_ABS_<axis>=<min>:<max>:<res>:<fuzz>:<flat>
#
# where <axis> is the hexadecimal EV_ABS code as listed in linux/input.h
# and min, max, res, fuzz, flat are the decimal values to the respective
# fields of the struct input_absinfo as listed in linux/input.h.
# If a field is missing the field will be left as-is. Not all fields need to
# be present. e.g. ::45 sets the resolution to 45 units/mm.

#
# Sort by brand, model

#########################################
# Apple
#########################################

#  Macbook2,1 (late 2006), single-button touchpad
evdev:input:b0003v05ACp021B*
# Macbook4,1
evdev:input:b0003v05ACp0229*
 EVDEV_ABS_00=256:1471:12
 EVDEV_ABS_01=256:831:12

# Macbook5,1 (unibody), aka wellspring3
evdev:input:b0003v05ACp0236*
evdev:input:b0003v05ACp0237*
evdev:input:b0003v05ACp0238*
 EVDEV_ABS_00=::92
 EVDEV_ABS_01=::90
 EVDEV_ABS_35=::92
 EVDEV_ABS_36=::90

# Macbook8 (unibody, March 2011)
evdev:input:b0003v05ACp0245*
evdev:input:b0003v05ACp0246*
evdev:input:b0003v05ACp0247*
 EVDEV_ABS_00=::92
 EVDEV_ABS_01=::91
 EVDEV_ABS_35=::92
 EVDEV_ABS_36=::91

# Macbook8,2 (unibody)
evdev:input:b0003v05ACp0252*
evdev:input:b0003v05ACp0253*
evdev:input:b0003v05ACp0254*
 EVDEV_ABS_00=::94
 EVDEV_ABS_01=::92
 EVDEV_ABS_35=::94
 EVDEV_ABS_36=::92

# MacbookPro10,1 (unibody, June 2012)
evdev:input:b0003v05ACp0262*
evdev:input:b0003v05ACp0263*
evdev:input:b0003v05ACp0264*
# MacbookPro10,2 (unibody, October 2012)
evdev:input:b0003v05ACp0259*
evdev:input:b0003v05ACp025A*
evdev:input:b0003v05ACp025B*
 EVDEV_ABS_00=::94
 EVDEV_ABS_01=::92
 EVDEV_ABS_35=::94
 EVDEV_ABS_36=::92

#########################################
# ASUS
#########################################
# Asus K52JT
evdev:name:ETPS/2 Elantech Touchpad:dmi:bvn*:bvr*:bd*:svnASUSTeKComputerInc.:pnK52JT:*
 EVDEV_ABS_00=::18
 EVDEV_ABS_01=::16
 EVDEV_ABS_35=::18
 EVDEV_ABS_36=::16

evdev:name:ETPS/2 Elantech Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnX550CC:*
 EVDEV_ABS_00=::31
 EVDEV_ABS_01=::30
 EVDEV_ABS_35=::31
 EVDEV_ABS_36=::30

# Asus UX305
evdev:name:Elan Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnUX305UA:*
 EVDEV_ABS_00=0:3097:32
 EVDEV_ABS_01=0:2119:33
 EVDEV_ABS_35=0:3097:32
 EVDEV_ABS_36=0:2119:33

#########################################
# Dell
#########################################

# Dell Vostro 1510
evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnDellInc.:pnVostro1510*
 EVDEV_ABS_00=::14
 EVDEV_ABS_01=::18

# Dell Inspiron N5040
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnInspironN5040*
 EVDEV_ABS_00=25:2000:22
 EVDEV_ABS_01=0:1351:28
 EVDEV_ABS_35=25:2000:22
 EVDEV_ABS_36=0:1351:28

# Dell Latitude E6220
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6220*
 EVDEV_ABS_00=76:1815:22
 EVDEV_ABS_01=131:1330:30
 EVDEV_ABS_35=76:1815:22
 EVDEV_ABS_36=131:1330:30

# Dell Precision 5510
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*
 EVDEV_ABS_00=::42
 EVDEV_ABS_01=::43
 EVDEV_ABS_35=::42
 EVDEV_ABS_36=::43

# Dell Precision M4700
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnDellInc.:pnPrecisionM4700*
 EVDEV_ABS_00=0:1960:24
 EVDEV_ABS_01=113:1436:30
 EVDEV_ABS_35=0:1960:24
 EVDEV_ABS_36=113:1436:30

# Dell XPS15 9550
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPS159550*
 EVDEV_ABS_00=::41
 EVDEV_ABS_01=::43
 EVDEV_ABS_35=::41
 EVDEV_ABS_36=::43

# Dell XPS M1530
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPSM1530*
 EVDEV_ABS_00=85:947:15
 EVDEV_ABS_01=154:726:18

#########################################
# Google
#########################################

# Chromebook Pixel (2015) - Samus
evdev:name:Atmel maXTouch Touch*:dmi:bvn*:bvr*:bd*:svnGOOGLE:pnSamus*
 EVDEV_ABS_00=::10
 EVDEV_ABS_01=::10
 EVDEV_ABS_35=::10
 EVDEV_ABS_36=::10

#########################################
# HP
#########################################

# HP Pavilion dm4
evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondm4*
 EVDEV_ABS_00=1360:5563:47
 EVDEV_ABS_01=1269:4618:61
 EVDEV_ABS_35=1360:5563:47
 EVDEV_ABS_36=1269:4618:61

#########################################
# Lenovo
#########################################

# Lenovo E530
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:pn*ThinkPadEdgeE530*
 EVDEV_ABS_00=1241:5703:49
 EVDEV_ABS_01=1105:4820:68
 EVDEV_ABS_35=1241:5703:49
 EVDEV_ABS_36=1105:4820:68

# Lenovo L430
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnLENOVO*:pvrThinkPadL430*
 EVDEV_ABS_00=19:2197:29
 EVDEV_ABS_01=12:1151:25
 EVDEV_ABS_35=19:2197:29
 EVDEV_ABS_36=12:1151:25

# Lenovo P50
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*P50*
 EVDEV_ABS_00=::44
 EVDEV_ABS_01=::67
 EVDEV_ABS_35=::44
 EVDEV_ABS_36=::67

# Lenovo *40 series
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPad??40:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPad??40?:*
 EVDEV_ABS_00=::41
 EVDEV_ABS_01=::37
 EVDEV_ABS_35=::41
 EVDEV_ABS_36=::37

# Lenovo T460
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*T460*
 EVDEV_ABS_00=1266:5677:44
 EVDEV_ABS_01=1093:4832:65
 EVDEV_ABS_35=1266:5677:44
 EVDEV_ABS_36=1093:4832:65

# Lenovo T510
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*T510*
 EVDEV_ABS_00=778:6239:72
 EVDEV_ABS_01=841:5330:100
 EVDEV_ABS_35=778:6239:72
 EVDEV_ABS_36=841:5330:100

# Lenovo V360
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrLenovoV360*
 EVDEV_ABS_00=1243:5927:60
 EVDEV_ABS_01=902:5330:108

# Lenovo X220 series
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrThinkPadX220*
 EVDEV_ABS_00=1316:5627:58
 EVDEV_ABS_01=1355:4826:81
 EVDEV_ABS_35=1316:5627:58
 EVDEV_ABS_36=1355:4826:81

# Lenovo X230 series
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*X230*
 EVDEV_ABS_01=::100
 EVDEV_ABS_36=::100

# Lenovo Y700-14ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapadY700-14ISK*
 EVDEV_ABS_00=::27
 EVDEV_ABS_01=::29
 EVDEV_ABS_35=::27
 EVDEV_ABS_36=::29

# Lenovo Ideapad 500S-13ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapad500S-13ISK*
 EVDEV_ABS_00=125:3955:37
 EVDEV_ABS_01=104:1959:27
 EVDEV_ABS_35=125:3954:37
 EVDEV_ABS_36=104:1959:27

# Lenovo Yoga 500-14ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoYoga500-14ISK*
 EVDEV_ABS_00=124:3955:36
 EVDEV_ABS_01=103:1959:26
 EVDEV_ABS_35=124:3955:36
 EVDEV_ABS_36=103:1959:26

#########################################
# Samsung
#########################################

# Samsung 305V4
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn305V4A/305V5A*
 EVDEV_ABS_00=0:2480:28
 EVDEV_ABS_01=0:1116:24
 EVDEV_ABS_35=0:2480:28
 EVDEV_ABS_36=0:1116:24