0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Mouse driver configuration
0004 #
0005 menuconfig INPUT_MOUSE
0006 bool "Mice"
0007 default y
0008 help
0009 Say Y here, and a list of supported mice will be displayed.
0010 This option doesn't affect the kernel.
0011
0012 If unsure, say Y.
0013
0014 if INPUT_MOUSE
0015
0016 config MOUSE_PS2
0017 tristate "PS/2 mouse"
0018 default y
0019 select SERIO
0020 select SERIO_LIBPS2
0021 select SERIO_I8042 if ARCH_MIGHT_HAVE_PC_SERIO
0022 select SERIO_GSCPS2 if GSC
0023 help
0024 Say Y here if you have a PS/2 mouse connected to your system. This
0025 includes the standard 2 or 3-button PS/2 mouse, as well as PS/2
0026 mice with wheels and extra buttons, Microsoft, Logitech or Genius
0027 compatible.
0028
0029 Synaptics, ALPS or Elantech TouchPad users might be interested
0030 in a specialized Xorg/XFree86 driver at:
0031 <http://w1.894.telia.com/~u89404340/touchpad/index.html>
0032 and a new version of GPM at:
0033 <http://www.geocities.com/dt_or/gpm/gpm.html>
0034 <http://xorg.freedesktop.org/archive/individual/driver/>
0035 to take advantage of the advanced features of the touchpad.
0036
0037 If unsure, say Y.
0038
0039 To compile this driver as a module, choose M here: the
0040 module will be called psmouse.
0041
0042 config MOUSE_PS2_ALPS
0043 bool "ALPS PS/2 mouse protocol extension" if EXPERT
0044 default y
0045 depends on MOUSE_PS2
0046 help
0047 Say Y here if you have an ALPS PS/2 touchpad connected to
0048 your system.
0049
0050 If unsure, say Y.
0051
0052 config MOUSE_PS2_BYD
0053 bool "BYD PS/2 mouse protocol extension" if EXPERT
0054 default y
0055 depends on MOUSE_PS2
0056 help
0057 Say Y here if you have a BYD PS/2 touchpad connected to
0058 your system.
0059
0060 If unsure, say Y.
0061
0062 config MOUSE_PS2_LOGIPS2PP
0063 bool "Logitech PS/2++ mouse protocol extension" if EXPERT
0064 default y
0065 depends on MOUSE_PS2
0066 help
0067 Say Y here if you have a Logitech PS/2++ mouse connected to
0068 your system.
0069
0070 If unsure, say Y.
0071
0072 config MOUSE_PS2_SYNAPTICS
0073 bool "Synaptics PS/2 mouse protocol extension" if EXPERT
0074 default y
0075 depends on MOUSE_PS2
0076 help
0077 Say Y here if you have a Synaptics PS/2 TouchPad connected to
0078 your system.
0079
0080 If unsure, say Y.
0081
0082 config MOUSE_PS2_SYNAPTICS_SMBUS
0083 bool "Synaptics PS/2 SMbus companion" if EXPERT
0084 default y
0085 depends on MOUSE_PS2
0086 depends on I2C=y || I2C=MOUSE_PS2
0087 select MOUSE_PS2_SMBUS
0088 help
0089 Say Y here if you have a Synaptics RMI4 touchpad connected to
0090 to an SMBus, but enumerated through PS/2.
0091
0092 If unsure, say Y.
0093
0094 config MOUSE_PS2_CYPRESS
0095 bool "Cypress PS/2 mouse protocol extension" if EXPERT
0096 default y
0097 depends on MOUSE_PS2
0098 help
0099 Say Y here if you have a Cypress PS/2 Trackpad connected to
0100 your system.
0101
0102 If unsure, say Y.
0103
0104 config MOUSE_PS2_LIFEBOOK
0105 bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EXPERT
0106 default y
0107 depends on MOUSE_PS2 && X86 && DMI
0108 help
0109 Say Y here if you have a Fujitsu B-series Lifebook PS/2
0110 TouchScreen connected to your system.
0111
0112 If unsure, say Y.
0113
0114 config MOUSE_PS2_TRACKPOINT
0115 bool "IBM Trackpoint PS/2 mouse protocol extension" if EXPERT
0116 default y
0117 depends on MOUSE_PS2
0118 help
0119 Say Y here if you have an IBM Trackpoint PS/2 mouse connected
0120 to your system.
0121
0122 If unsure, say Y.
0123
0124 config MOUSE_PS2_ELANTECH
0125 bool "Elantech PS/2 protocol extension"
0126 depends on MOUSE_PS2
0127 help
0128 Say Y here if you have an Elantech PS/2 touchpad connected
0129 to your system.
0130
0131 This driver exposes some configuration registers via sysfs
0132 entries. For further information,
0133 see <file:Documentation/input/devices/elantech.rst>.
0134
0135 If unsure, say N.
0136
0137 config MOUSE_PS2_ELANTECH_SMBUS
0138 bool "Elantech PS/2 SMbus companion" if EXPERT
0139 default y
0140 depends on MOUSE_PS2 && MOUSE_PS2_ELANTECH
0141 depends on I2C=y || I2C=MOUSE_PS2
0142 select MOUSE_PS2_SMBUS
0143 help
0144 Say Y here if you have a Elantech touchpad connected to
0145 to an SMBus, but enumerated through PS/2.
0146
0147 If unsure, say Y.
0148
0149 config MOUSE_PS2_SENTELIC
0150 bool "Sentelic Finger Sensing Pad PS/2 protocol extension"
0151 depends on MOUSE_PS2
0152 help
0153 Say Y here if you have a laptop (such as MSI WIND Netbook)
0154 with Sentelic Finger Sensing Pad touchpad.
0155
0156 If unsure, say N.
0157
0158 config MOUSE_PS2_TOUCHKIT
0159 bool "eGalax TouchKit PS/2 protocol extension"
0160 depends on MOUSE_PS2
0161 help
0162 Say Y here if you have an eGalax TouchKit PS/2 touchscreen
0163 connected to your system.
0164
0165 If unsure, say N.
0166
0167 config MOUSE_PS2_OLPC
0168 bool "OLPC PS/2 mouse protocol extension"
0169 depends on MOUSE_PS2 && OLPC
0170 help
0171 Say Y here if you have an OLPC XO-1 laptop (with built-in
0172 PS/2 touchpad/tablet device). The manufacturer calls the
0173 touchpad an HGPK.
0174
0175 If unsure, say N.
0176
0177 config MOUSE_PS2_FOCALTECH
0178 bool "FocalTech PS/2 mouse protocol extension" if EXPERT
0179 default y
0180 depends on MOUSE_PS2
0181 help
0182 Say Y here if you have a FocalTech PS/2 TouchPad connected to
0183 your system.
0184
0185 If unsure, say Y.
0186
0187 config MOUSE_PS2_VMMOUSE
0188 bool "Virtual mouse (vmmouse)"
0189 depends on MOUSE_PS2 && X86 && HYPERVISOR_GUEST
0190 help
0191 Say Y here if you are running under control of VMware hypervisor
0192 (ESXi, Workstation or Fusion). Also make sure that when you enable
0193 this option, you remove the xf86-input-vmmouse user-space driver
0194 or upgrade it to at least xf86-input-vmmouse 13.1.0, which doesn't
0195 load in the presence of an in-kernel vmmouse driver.
0196
0197 If unsure, say N.
0198
0199 config MOUSE_PS2_SMBUS
0200 bool
0201 depends on MOUSE_PS2
0202
0203 config MOUSE_SERIAL
0204 tristate "Serial mouse"
0205 select SERIO
0206 help
0207 Say Y here if you have a serial (RS-232, COM port) mouse connected
0208 to your system. This includes Sun, MouseSystems, Microsoft,
0209 Logitech and all other compatible serial mice.
0210
0211 If unsure, say N.
0212
0213 To compile this driver as a module, choose M here: the
0214 module will be called sermouse.
0215
0216 config MOUSE_APPLETOUCH
0217 tristate "Apple USB Touchpad support"
0218 depends on USB_ARCH_HAS_HCD
0219 select USB
0220 help
0221 Say Y here if you want to use an Apple USB Touchpad.
0222
0223 These are the touchpads that can be found on post-February 2005
0224 Apple Powerbooks (prior models have a Synaptics touchpad connected
0225 to the ADB bus).
0226
0227 This driver provides a basic mouse driver but can be interfaced
0228 with the synaptics X11 driver to provide acceleration and
0229 scrolling in X11.
0230
0231 For further information, see
0232 <file:Documentation/input/devices/appletouch.rst>.
0233
0234 To compile this driver as a module, choose M here: the
0235 module will be called appletouch.
0236
0237 config MOUSE_BCM5974
0238 tristate "Apple USB BCM5974 Multitouch trackpad support"
0239 depends on USB_ARCH_HAS_HCD
0240 select USB
0241 help
0242 Say Y here if you have an Apple USB BCM5974 Multitouch
0243 trackpad.
0244
0245 The BCM5974 is the multitouch trackpad found in the Macbook
0246 Air (JAN2008) and Macbook Pro Penryn (FEB2008) laptops.
0247
0248 It is also found in the IPhone (2007) and Ipod Touch (2008).
0249
0250 This driver provides multitouch functionality together with
0251 the synaptics X11 driver.
0252
0253 The interface is currently identical to the appletouch interface,
0254 for further information, see
0255 <file:Documentation/input/devices/appletouch.rst>.
0256
0257 To compile this driver as a module, choose M here: the
0258 module will be called bcm5974.
0259
0260 config MOUSE_CYAPA
0261 tristate "Cypress APA I2C Trackpad support"
0262 depends on I2C
0263 select CRC_ITU_T
0264 help
0265 This driver adds support for Cypress All Points Addressable (APA)
0266 I2C Trackpads, including the ones used in 2012 Samsung Chromebooks.
0267
0268 Say Y here if you have a Cypress APA I2C Trackpad.
0269
0270 To compile this driver as a module, choose M here: the module will be
0271 called cyapa.
0272
0273 config MOUSE_ELAN_I2C
0274 tristate "ELAN I2C Touchpad support"
0275 depends on I2C
0276 help
0277 This driver adds support for Elan I2C/SMbus Trackpads.
0278
0279 Say Y here if you have a ELAN I2C/SMbus Touchpad.
0280
0281 To compile this driver as a module, choose M here: the module will be
0282 called elan_i2c.
0283
0284 config MOUSE_ELAN_I2C_I2C
0285 bool "Enable I2C support"
0286 depends on MOUSE_ELAN_I2C
0287 default y
0288 help
0289 Say Y here if Elan Touchpad in your system is connected to
0290 a standard I2C controller.
0291
0292 If unsure, say Y.
0293
0294 config MOUSE_ELAN_I2C_SMBUS
0295 bool "Enable SMbus support"
0296 depends on MOUSE_ELAN_I2C
0297 help
0298 Say Y here if Elan Touchpad in your system is connected to
0299 a SMbus adapter.
0300
0301 If unsure, say Y.
0302
0303 config MOUSE_INPORT
0304 tristate "InPort/MS/ATIXL busmouse"
0305 depends on ISA
0306 help
0307 Say Y here if you have an InPort, Microsoft or ATI XL busmouse.
0308 They are rather rare these days.
0309
0310 To compile this driver as a module, choose M here: the
0311 module will be called inport.
0312
0313 config MOUSE_ATIXL
0314 bool "ATI XL variant"
0315 depends on MOUSE_INPORT
0316 help
0317 Say Y here if your mouse is of the ATI XL variety.
0318
0319 config MOUSE_LOGIBM
0320 tristate "Logitech busmouse"
0321 depends on ISA
0322 help
0323 Say Y here if you have a Logitech busmouse.
0324 They are rather rare these days.
0325
0326 To compile this driver as a module, choose M here: the
0327 module will be called logibm.
0328
0329 config MOUSE_PC110PAD
0330 tristate "IBM PC110 touchpad"
0331 depends on ISA
0332 help
0333 Say Y if you have the IBM PC-110 micro-notebook and want its
0334 touchpad supported.
0335
0336 To compile this driver as a module, choose M here: the
0337 module will be called pc110pad.
0338
0339 config MOUSE_AMIGA
0340 tristate "Amiga mouse"
0341 depends on AMIGA
0342 help
0343 Say Y here if you have an Amiga and want its native mouse
0344 supported by the kernel.
0345
0346 To compile this driver as a module, choose M here: the
0347 module will be called amimouse.
0348
0349 config MOUSE_ATARI
0350 tristate "Atari mouse"
0351 depends on ATARI
0352 select ATARI_KBD_CORE
0353 help
0354 Say Y here if you have an Atari and want its native mouse
0355 supported by the kernel.
0356
0357 To compile this driver as a module, choose M here: the
0358 module will be called atarimouse.
0359
0360 config MOUSE_RISCPC
0361 tristate "Acorn RiscPC mouse"
0362 depends on ARCH_ACORN
0363 help
0364 Say Y here if you have the Acorn RiscPC computer and want its
0365 native mouse supported.
0366
0367 To compile this driver as a module, choose M here: the
0368 module will be called rpcmouse.
0369
0370 config MOUSE_VSXXXAA
0371 tristate "DEC VSXXX-AA/GA mouse and VSXXX-AB tablet"
0372 select SERIO
0373 help
0374 Say Y (or M) if you want to use a DEC VSXXX-AA (hockey
0375 puck) or a VSXXX-GA (rectangular) mouse. These mice are
0376 typically used on DECstations or VAXstations, but can also
0377 be used on any box capable of RS232 (with some adaptor
0378 described in the source file). This driver also works with the
0379 digitizer (VSXXX-AB) DEC produced.
0380
0381 config MOUSE_GPIO
0382 tristate "GPIO mouse"
0383 depends on GPIOLIB || COMPILE_TEST
0384 help
0385 This driver simulates a mouse on GPIO lines of various CPUs (and some
0386 other chips).
0387
0388 Say Y here if your device has buttons or a simple joystick connected
0389 directly to GPIO lines. Your board-specific setup logic must also
0390 provide a platform device and platform data saying which GPIOs are
0391 used.
0392
0393 To compile this driver as a module, choose M here: the
0394 module will be called gpio_mouse.
0395
0396 config MOUSE_PXA930_TRKBALL
0397 tristate "PXA930 Trackball mouse"
0398 depends on CPU_PXA930 || CPU_PXA935
0399 help
0400 Say Y here to support PXA930 Trackball mouse.
0401
0402 config MOUSE_MAPLE
0403 tristate "Maple mouse (for the Dreamcast)"
0404 depends on MAPLE
0405 help
0406 This driver supports the Maple mouse on the SEGA Dreamcast.
0407
0408 Most Dreamcast users, who have a mouse, will say Y here.
0409
0410 To compile this driver as a module choose M here: the module will be
0411 called maplemouse.
0412
0413 config MOUSE_SYNAPTICS_I2C
0414 tristate "Synaptics I2C Touchpad support"
0415 depends on I2C
0416 help
0417 This driver supports Synaptics I2C touchpad controller on eXeda
0418 mobile device.
0419 The device will not work the synaptics X11 driver because
0420 (i) it reports only relative coordinates and has no capabilities
0421 to report absolute coordinates
0422 (ii) the eXeda device itself uses Xfbdev as X Server and it does
0423 not allow using xf86-input-* drivers.
0424
0425 Say y here if you have eXeda device and want to use a Synaptics
0426 I2C Touchpad.
0427
0428 To compile this driver as a module, choose M here: the
0429 module will be called synaptics_i2c.
0430
0431 config MOUSE_SYNAPTICS_USB
0432 tristate "Synaptics USB device support"
0433 depends on USB_ARCH_HAS_HCD
0434 select USB
0435 help
0436 Say Y here if you want to use a Synaptics USB touchpad or pointing
0437 stick.
0438
0439 While these devices emulate an USB mouse by default and can be used
0440 with standard usbhid driver, this driver, together with its X.Org
0441 counterpart, allows you to fully utilize capabilities of the device.
0442 More information can be found at:
0443 <http://jan-steinhoff.de/linux/synaptics-usb.html>
0444
0445 To compile this driver as a module, choose M here: the
0446 module will be called synaptics_usb.
0447
0448 config MOUSE_NAVPOINT_PXA27x
0449 tristate "Synaptics NavPoint (PXA27x SSP/SPI)"
0450 depends on PXA27x && PXA_SSP
0451 help
0452 This driver adds support for the Synaptics NavPoint touchpad connected
0453 to a PXA27x SSP port in SPI slave mode. The device emulates a mouse;
0454 a tap or tap-and-a-half drag gesture emulates the left mouse button.
0455 For example, use the xf86-input-evdev driver for an X pointing device.
0456
0457 To compile this driver as a module, choose M here: the
0458 module will be called navpoint.
0459
0460 endif