# 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):
#   systemd-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:input:b0003v05ACp022A*
 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 F3Sg
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnASUSTeKComputerInc.:pnF3Sg:*
 EVDEV_ABS_00=0:6143:136
 EVDEV_ABS_01=1103:5856:61

# Asus VivoBook E402SA
evdev:name:Elan Touchpad:dmi:*svnASUSTeKCOMPUTERINC.:pnE402SA*
 EVDEV_ABS_00=::29
 EVDEV_ABS_01=::29
 EVDEV_ABS_35=::29
 EVDEV_ABS_36=::29

# 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

# Asus X550CC and S550CB
evdev:name:ETPS/2 Elantech Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pn?550C?:*
 EVDEV_ABS_00=::31
 EVDEV_ABS_01=::30
 EVDEV_ABS_35=::31
 EVDEV_ABS_36=::30

# Asus UX301L
evdev:name:Elan Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnUX301LAA:*
 EVDEV_ABS_00=::30
 EVDEV_ABS_01=::29
 EVDEV_ABS_35=::30
 EVDEV_ABS_36=::29

# 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 Latitude E6320
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6320*
 EVDEV_ABS_00=79:1841:22
 EVDEV_ABS_01=140:1325:29
 EVDEV_ABS_35=79:1841:22
 EVDEV_ABS_36=140:1325:29

# Dell Latitude E7470
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7470*
 EVDEV_ABS_00=29:2930:30
 EVDEV_ABS_01=26:1533:29
 EVDEV_ABS_35=29:2930:30
 EVDEV_ABS_36=26:1533:29

# 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

#####
# Sun
#####

# Fujitsu Component - USB Touch Panel
evdev:input:b0003v0430p0530*
 EVDEV_ABS_00=0:4096:16
 EVDEV_ABS_01=0:4096:16

#########################################
# 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

# HP Pavilion dv7
evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondv7*
 EVDEV_ABS_00=1068:5805:44
 EVDEV_ABS_01=1197:4890:57
 EVDEV_ABS_35=1068:5805:44
 EVDEV_ABS_36=1197:4890:57

# HP Spectre
evdev:name:SynPS/2 Synaptics TouchPad:dmi:i*svnHP:pnHPSpectreNotebook*
 EVDEV_ABS_00=1205:5691:47
 EVDEV_ABS_01=1083:4808:65
 EVDEV_ABS_35=1205:5691:47
 EVDEV_ABS_36=1083:4808:65

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

# Lenovo B590
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrLenovoB590*
 EVDEV_ABS_00=1243:5759:48
 EVDEV_ABS_01=1130:4832:65
 EVDEV_ABS_35=1243:5759:48
 EVDEV_ABS_36=1130:4832:65

# 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 ThinkPad T430
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadT430*
 EVDEV_ABS_00=1250:5631:58
 EVDEV_ABS_01=1309:4826:78
 EVDEV_ABS_35=1250:5631:58
 EVDEV_ABS_36=1309:4826:78

# Lenovo Thinkpad Carbon X1 4th gen. and X1 Yoga 1st gen.
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX1Carbon4th*
 EVDEV_ABS_00=1262:5679:44
 EVDEV_ABS_01=1101:4824:65
 EVDEV_ABS_35=1262:5679:44
 EVDEV_ABS_36=1101:4824:65

# Lenovo Thinkpad Carbon X1 5th gen.
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX1Carbon5th*
 EVDEV_ABS_00=::44
 EVDEV_ABS_01=::65
 EVDEV_ABS_35=::44
 EVDEV_ABS_36=::65

# Lenovo Thinkpad Carbon X1 5th gen. (rmi4)
evdev:name:Synaptics TM3289-002:dmi:*svnLENOVO*:pvrThinkPadX1Carbon5th*
 EVDEV_ABS_00=::19
 EVDEV_ABS_01=::19
 EVDEV_ABS_35=::19
 EVDEV_ABS_36=::19

# 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 W530
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrThinkPadW530*
 EVDEV_ABS_00=1250:5631:59
 EVDEV_ABS_01=1205:4834:81
 EVDEV_ABS_35=1250:5631:59
 EVDEV_ABS_36=1205:4834:81

# 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

# Lenovo Flex 3 15-inch
evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnLENOVO*:pvrFlex3-15*
 EVDEV_ABS_00=::38
 EVDEV_ABS_01=::28
 EVDEV_ABS_35=::38
 EVDEV_ABS_36=::28

#########################################
# 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

# Samsung 880Z5E
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn870Z5E/880Z5E/680Z5E*
 EVDEV_ABS_00=::30
 EVDEV_ABS_01=::29
 EVDEV_ABS_35=::30
 EVDEV_ABS_36=::29

#########################################
# System76
#########################################

# GalagoPro 2 (galp2)
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnSystem76:pnGalagoPro:pvrgalp2:*
 EVDEV_ABS_00=1238:5747:50
 EVDEV_ABS_01=901:4900:83
 EVDEV_ABS_35=1238:5747:50
 EVDEV_ABS_36=901:4900:83

#########################################
# Toshiba
#########################################

# Toshiba Tecra M11
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnTOSHIBA:pnTECRAM11*
 EVDEV_ABS_00=90:962:11
 EVDEV_ABS_01=51:681:14

#########################################
# Razer
#########################################

# Razer Blade Stealth (2016)
evdev:name:Synaptics TM2438-005:dmi:*svnRazer:pnBladeStealth*
 EVDEV_ABS_00=0:4064:29
 EVDEV_ABS_01=0:2405:37
 EVDEV_ABS_35=0:4064:29
 EVDEV_ABS_36=0:2405:37

#########################################
# Waltop
#########################################

# WALTOP International Corp. Slim Tablet
evdev:input:b0003v172Fp0031*
 EVDEV_ABS_00=0:10000:400
 EVDEV_ABS_01=0:6250:400
