# Do not edit this file, it will be overwritten on update

[Lenovo Thinkpad Touchpad]
MatchName=*Synaptics*
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPad*:*
AttrThumbPressureThreshold=100

[Lenovo x230 Touchpad]
MatchName=*SynPS/2 Synaptics TouchPad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX230*:*
ModelLenovoX230=1

[Lenovo T440p Touchpad PS/2]
MatchName=SynPS/2 Synaptics TouchPad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadT440p:*
ModelLenovoT450Touchpad=1

[Lenovo T440p Touchpad RMI4]
MatchName=Synaptics tm2964-001
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadT440p:*
ModelLenovoT450Touchpad=1

[Lenovo T470 Trackpoint]
MatchName=*TPPS/2 IBM TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadT470:*
AttrTrackpointMultiplier=0.75

[Lenovo T480 Trackpoint]
MatchName=*TPPS/2 IBM TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadT480:*
AttrTrackpointMultiplier=0.75

[Lenovo A485 Trackpoint]
MatchName=*TPPS/2 IBM TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadA485:*
AttrTrackpointMultiplier=0.75

# Touchpad is a clickpad but INPUT_PROP_BUTTONPAD is not set, see
# https://gitlab.freedesktop.org/libinput/libinput/issues/177
[Lenovo T480s Touchpad]
MatchName=Elan Touchpad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadT480s:*
AttrInputProp=+INPUT_PROP_BUTTONPAD

# Touchpad is a clickpad but INPUT_PROP_BUTTONPAD is not set, see
# https://gitlab.freedesktop.org/libinput/libinput/issues/177
[Lenovo T490s Touchpad]
MatchName=Elan Touchpad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadT490s:*
AttrInputProp=+INPUT_PROP_BUTTONPAD

[Lenovo T490s Trackpoint]
MatchName=*TPPS/2 IBM TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadT490s:*
AttrTrackpointMultiplier=0.4

[Lenovo P14s Gen 1 AMD Trackpoint]
MatchUdevType=pointingstick
MatchName=*TPPS/2 Elan TrackPoint*
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadP14sGen1:*
AttrTrackpointMultiplier=0.4

# Touchpad is a clickpad but INPUT_PROP_BUTTONPAD is not set, see
# https://gitlab.freedesktop.org/libinput/libinput/issues/234
# NOTE: This was intended for L380 Yoga but was applied before also for normal
# L380. Is needed also for non covertible model?
[Lenovo L380 Yoga Touchpad]
MatchName=Elan Touchpad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadL380Yoga:*
AttrInputProp=+INPUT_PROP_BUTTONPAD

[Lenovo X200/201 Trackpoint]
MatchName=*TPPS/2 IBM TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX20?:*
AttrTrackpointMultiplier=0.25

[Lenovo X200s/201s Trackpoint]
MatchName=*TPPS/2 IBM TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX20??:*
AttrTrackpointMultiplier=0.25

[Lenovo X230 Trackpoint]
MatchName=*TPPS/2 IBM TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX230:*
AttrTrackpointMultiplier=0.25

[Lenovo X280 Trackpoint]
MatchName=*TPPS/2 Elan TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX280:*
AttrTrackpointMultiplier=0.5

[Lenovo X280 Touchpad]
MatchName=Synaptics TM3381-002
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX280:*
AttrPalmSizeThreshold=6

[Lenovo P50 Touchpad]
MatchName=SynPS/2 Synaptics TouchPad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadP50*:*
ModelLenovoT450Touchpad=1
AttrPalmPressureThreshold=150

[Lenovo *50 Touchpad]
MatchName=SynPS/2 Synaptics TouchPad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPad??50*:*
ModelLenovoT450Touchpad=1
AttrPalmPressureThreshold=150

[Lenovo *60 Touchpad]
MatchName=SynPS/2 Synaptics TouchPad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPad??60*:*
ModelLenovoT450Touchpad=1
AttrPalmPressureThreshold=150

[Lenovo X1 Carbon 3rd Touchpad]
MatchName=SynPS/2 Synaptics TouchPad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX1Carbon3rd:*
ModelLenovoT450Touchpad=1
AttrPalmPressureThreshold=150

[Lenovo X1 Carbon 4th Trackpoint]
MatchUdevType=pointingstick
MatchName=*TPPS/2 IBM TrackPoint*
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX1Carbon4th:*
AttrTrackpointMultiplier=0.5

[Lenovo X1 Carbon 6th Trackpoint]
MatchUdevType=pointingstick
MatchName=*TPPS/2 Elan TrackPoint*
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX1Carbon6th:*
AttrTrackpointMultiplier=0.4

# Don't disable keys accessible in tablet mode, #106799 comment 7
[Lenovo Thinkpad S1 Yoga and S1 Yoga 12]
MatchBus=ps2
MatchUdevType=keyboard
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadS1Yoga*:*
ModelTabletModeNoSuspend=1

# Don't disable keys accessible in tablet mode, #103749
[Lenovo Thinkpad X1 Yoga 1st]
MatchBus=ps2
MatchUdevType=keyboard
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX1Yoga1st:*
ModelTabletModeNoSuspend=1

[Lenovo X1 Yoga Trackpoint 1st gen]
MatchName=*TPPS/2 IBM TrackPoint
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX1Yoga1st:*
AttrTrackpointMultiplier=1.25

[Lenovo Yoga C930 Tablet]
MatchBus=i2c
MatchVendor=0x056A
MatchProduct=0x5196
AttrTabletSmoothing=1

# Lenovo Carbon X1 6th gen (RMI4 only, PS/2 is broken on this device,
# sends bogus ABS_MT_TOOL_TYPE events for MT_TOOL_PALM
[Lenovo Carbon X1 6th gen]
MatchName=Synaptics TM3288-011
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX1Carbon6th:*
AttrEventCode=-ABS_MT_TOOL_TYPE
ModelLenovoX1Gen6Touchpad=1

# IBM ThinkPad X41 Tablet identify itself as DMI Chassis Type: 0Ah 10 Notebook
# but it's really a convertible one and have buttons wired as ps2 keyboard,
# don't disable them when tablet-mode switch is in effect.
[IBM ThinkPad X41 Tablet Buttons]
MatchUdevType=keyboard
MatchBus=ps2
MatchDMIModalias=dmi:*:svnIBM:*:pvrThinkPadX41Tablet:*
ModelTabletModeNoSuspend=1

# Lenovo ThinkPad X60 X61 X200 X201 X220 X230 Tablets identify themselves as
# DMI Chassis Type: 0Ah 10 Notebook but they are really convertibles ones and
# have buttons wired as ps2 keyboard, don't disable them when tablet-mode switch
# is in effect.
[Lenovo ThinkPad X Tablet Series Buttons]
MatchUdevType=keyboard
MatchBus=ps2
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX*Tablet:*
ModelTabletModeNoSuspend=1

# Modifies pressure range to avoid random jumps.
# https://gitlab.freedesktop.org/libinput/libinput/-/issues/407
[Lenovo Yoga 2 Pro touchpad]
MatchUdevType=touchpad
MatchName=*SynPS/2 Synaptics TouchPad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrLenovoYoga2Pro:*
AttrPressureRange=50:45

[Lenovo ThinkPad E14 Gen 2]
MatchUdevType=touchpad
MatchName=*Elan Touchpad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadE14Gen2:*
AttrPalmPressureThreshold=300
AttrPressureRange=10:8

[Lenovo ThinkPad E16 Gen 3]
MatchUdevType=pointingstick
MatchName=*TPPS/2 Elan TrackPoint*
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadE16Gen3:*
AttrTrackpointMultiplier=0.5

[Lenovo Thinkpad Yoga X390]
MatchUdevType=pointingstick
MatchName=*TPPS/2 Elan TrackPoint*
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrThinkPadX390Yoga*:*
AttrTrackpointMultiplier=0.4

# Lenovo Yoga Slim 7i Carbon sends bogus ABS_MT_TOOL_TYPE MT_TOOL_PALM events
[Lenovo Yoga Slim 7i Carbon]
MatchName=* Touchpad
MatchDMIModalias=dmi:*:svnLENOVO:*:pvrYogaSlim7Carbon13IAP7:*
AttrEventCode=-ABS_MT_TOOL_TYPE

# Lenovo detachable devices prior to SMBIOS 3.0.0 specficiation (2015-02-12)
# when Tablet, Convertible and Detachable Chassis Types didn't exist use Hand
# Held. e.g. First Miix devices till Lenovo MIIX 300-10IBY (80NR) and initial
# firmware versions of Lenovo MIIX 310-10ICR (80SG).
# Match chassis and *MIIX* Product Version.
# DMI Chassis Type 0Bh (11 decimal) is Hand Held as per SMBIOS specification.
[Lenovo 1st Convertible Device Buttons]
MatchBus=ps2
MatchUdevType=keyboard
MatchDMIModalias=dmi:*:svnLENOVO:*:pvr*MIIX*:*:ct11:*
ModelTabletModeNoSuspend=1

# Match also *Miix* Product Version.
[Lenovo 1st Convertible Device Buttons 2]
MatchBus=ps2
MatchUdevType=keyboard
MatchDMIModalias=dmi:*:svnLENOVO:*:pvr*Miix*:*:ct11:*
ModelTabletModeNoSuspend=1

# Input devices

[Lenovo ThinkPad Compact USB Keyboard with TrackPoint (keyboard)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x6047
AttrKeyboardIntegration=external

[Lenovo ThinkPad Compact USB Keyboard with TrackPoint (trackpoint)]
MatchUdevType=pointingstick
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x6047
AttrPointingStickIntegration=external

# IBM/Lenovo Scrollpoint mouse. Instead of a scroll wheel these mice
# feature trackpoint-like sticks which generate a huge amount of scroll
# events that need to be handled differently than scroll wheel events

[IBM ScrollPoint Mouse 3100]
MatchUdevType=mouse
MatchVendor=0x04B3
MatchProduct=0x3100
ModelLenovoScrollPoint=1

[IBM ScrollPoint Mouse 3103]
MatchUdevType=mouse
MatchVendor=0x04B3
MatchProduct=0x3103
ModelLenovoScrollPoint=1

[IBM ScrollPoint Mouse 3105]
MatchUdevType=mouse
MatchVendor=0x04B3
MatchProduct=0x3105
ModelLenovoScrollPoint=1

[IBM ScrollPoint Mouse 3108]
MatchUdevType=mouse
MatchVendor=0x04B3
MatchProduct=0x3108
ModelLenovoScrollPoint=1

[IBM ScrollPoint Mouse 3109]
MatchUdevType=mouse
MatchVendor=0x04B3
MatchProduct=0x3109
ModelLenovoScrollPoint=1

[Lenovo ScrollPoint Mouse 6049]
MatchUdevType=mouse
MatchVendor=0x17EF
MatchProduct=0x6049
ModelLenovoScrollPoint=1

[IBM USB Travel Keyboard with Ultra Nav Mouse]
MatchUdevType=pointingstick
MatchVendor=0x04B3
MatchProduct=0x301E
AttrTrackpointMultiplier=1.50

# The following ones correspond to detachable keyboard+touchpad combos used in
# Lenovo detachable devices. Names can vary within the same ids and some are
# repeated over different devices. They're mostly connected over USB bus through
# pogo pins and we need to set the keyboard as internal to achieve DWT.
# We could also do it matching the touchpad and setting AttrTPKComboLayout=below
# but this combos are tied to the structure of the device they are designed for.
# At least some of them affect lid switch state when closed while attached.

# Found in:
#   Lenovo MIIX 320-10ICR (80XF)
# Known names:
#   "HAILUCK CO.,LTD Lenovo HID Device" in 80XF
#   "HTX USB HID Device HTX HID Device Keyboard" in 80XF
#   "SIPODEV Lenovo HID Device" in 80XF
[Lenovo Detachable Keyboard (048D:8911)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x048D
MatchProduct=0x8911
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo MIIX 510-12ISK (80U1)
#   Lenovo MIIX 510-12IKB (80XE)
# Known names:
#   "SIPODEV Lenovo HID Device" in 80U1 and 80XE
[Lenovo Detachable Keyboard (04F2:1622)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x04F2
MatchProduct=0x1622
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo MIIX 3-1030 (80HV)
# Known names:
#   "Lenovo Lenovo Miix 3 1030 USB Keyboard" in 80HV
[Lenovo Detachable Keyboard (17EF:606E)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x606E
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo MIIX 700-121SK (80QL)
# Known names:
#   "Lenovo ideapad MIIX 700 USB keyboard" in 80QL
[Lenovo Detachable Keyboard (17EF:60A2)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60A2
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo MIIX 720-12IKB (80VV)
# Known names:
#   "Chicony Lenovo MIIX 720" in 80VV
[Lenovo Detachable Keyboard (17EF:60A6)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60A6
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo MIIX 720-12IKB (80VV)
# Known names:
#   "Chicony Lenovo MIIX 720" in 80VV
[Lenovo Detachable Keyboard (17EF:60A7)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60A7
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo MIIX 510-12IKB (80XE)
#   Lenovo MIIX 520-12IKB (20M3), (20M4) and (81CG)
# Known names:
#   "SIPODEV Lenovo HID Device" in 80XE, 20M3, 20M4 and 81CG
[Lenovo Detachable Keyboard (17EF:60BB)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60BB
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad D330-10IGM (81H3) and (81MD)
#   Lenovo IdeaPad D330-10IGL (82H0)
# Known names:
#   "SIPODEV Lenovo HID Device" in 81H3, 81MD and 82H0
[Lenovo Detachable Keyboard (17EF:60C3)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60C3
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad D330-10IGM (81H3) and (81MD)
# Known names:
#   "HAILUCK CO.,LTD Lenovo HID Device" in 81H3 and 81MD
[Lenovo Detachable Keyboard (17EF:60C6)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60C6
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad D330-10IGL (82H0)
# Known names:
#   "HAILUCK CO.,LTD Lenovo HID Device" in 82H0
[Lenovo Detachable Keyboard (17EF:60C8)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60C8
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad Duet3 10IGL5 (82AT)
#   Lenovo IdeaPad Duet3 10IGL5-LTE (82HK)
# Known names:
#   "HAILUCK CO.,LTD Duet 3 USB Composite Device" in 82AT and 82HK
[Lenovo Detachable Keyboard (17EF:60FA) USB]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60FA
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad Duet3 10IGL5 (82AT)
# Known names:
#   "Duet 3 BT Keyboard" in 82AT
#   "Lenovo Duet 3 BT Folio Keyboard" in 82AT
[Lenovo Detachable Keyboard (17EF:60FA) BT]
MatchUdevType=keyboard
MatchBus=bluetooth
MatchVendor=0x17EF
MatchProduct=0x60FA
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad Duet3 10IGL5 (82AT)
# Known names:
#   "SIPODEV Duet 3 USB Composite Device" in 82AT
[Lenovo Detachable Keyboard (17EF:60FB)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x60FB
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad Duet 5 12IAU7 (82TQ)
# Known names:
#   "DOKING Duet 5 USB Composite Device" in 82TQ
[Lenovo Detachable Keyboard (17EF:6139)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x6139
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad Duet 5 12IAU7 (82TQ)
#   Lenovo XiaoXinDuet IAU7 (82TQ)
# Known names:
#   "DOKING Duet 5 USB Composite Device" in 82TQ
[Lenovo Detachable Keyboard (17EF:613A)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x613A
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo IdeaPad Duet3 11IAN8 (82XK)
# Known names:
#   "SINO WEALTH USB Composite Device Keyboard" in 82XK
[Lenovo Detachable Keyboard (17EF:6169)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x17EF
MatchProduct=0x6169
AttrKeyboardIntegration=internal

# Found in:
#   Lenovo MIIX 300-10IBY (80NR)
#   Lenovo MIIX 310-10ICR (80SG)
#   Lenovo MIIX 510-12ISK (80U1)
#   Lenovo MIIX 510-12IKB (80XE)
# As non detachable in:
#   DEXP NAVIS M100
#   Insyde B14
# Known names:
#   "SINO WEALTH USB Composite Device" in 80NR
#   "SIPODEV USB Composite Device" in 80SG
#   "SIPODEV Lenovo HID Device" in 80U1, 80XE, NAVIS M100 and B14
[Lenovo Detachable Keyboard (258A:1015)]
MatchUdevType=keyboard
MatchBus=usb
MatchVendor=0x258A
MatchProduct=0x1015
AttrKeyboardIntegration=internal
