1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Mouse driver configuration
4 #
5 menuconfig INPUT_MOUSE
6 	bool "Mice"
7 	default y
8 	help
9 	  Say Y here, and a list of supported mice will be displayed.
10 	  This option doesn't affect the kernel.
11 
12 	  If unsure, say Y.
13 
14 if INPUT_MOUSE
15 
16 config MOUSE_PS2
17 	tristate "PS/2 mouse"
18 	default y
19 	select SERIO
20 	select SERIO_LIBPS2
21 	select SERIO_I8042 if ARCH_MIGHT_HAVE_PC_SERIO
22 	select SERIO_GSCPS2 if GSC
23 	help
24 	  Say Y here if you have a PS/2 mouse connected to your system. This
25 	  includes the standard 2 or 3-button PS/2 mouse, as well as PS/2
26 	  mice with wheels and extra buttons, Microsoft, Logitech or Genius
27 	  compatible.
28 
29 	  Synaptics, ALPS or Elantech TouchPad users might be interested
30 	  in a specialized Xorg/XFree86 driver at:
31 		<http://w1.894.telia.com/~u89404340/touchpad/index.html>
32 	  and a new version of GPM at:
33 		<http://www.geocities.com/dt_or/gpm/gpm.html>
34 		<http://xorg.freedesktop.org/archive/individual/driver/>
35 	  to take advantage of the advanced features of the touchpad.
36 
37 	  If unsure, say Y.
38 
39 	  To compile this driver as a module, choose M here: the
40 	  module will be called psmouse.
41 
42 config MOUSE_PS2_ALPS
43 	bool "ALPS PS/2 mouse protocol extension" if EXPERT
44 	default y
45 	depends on MOUSE_PS2
46 	help
47 	  Say Y here if you have an ALPS PS/2 touchpad connected to
48 	  your system.
49 
50 	  If unsure, say Y.
51 
52 config MOUSE_PS2_BYD
53 	bool "BYD PS/2 mouse protocol extension" if EXPERT
54 	default y
55 	depends on MOUSE_PS2
56 	help
57 	  Say Y here if you have a BYD PS/2 touchpad connected to
58 	  your system.
59 
60 	  If unsure, say Y.
61 
62 config MOUSE_PS2_LOGIPS2PP
63 	bool "Logitech PS/2++ mouse protocol extension" if EXPERT
64 	default y
65 	depends on MOUSE_PS2
66 	help
67 	  Say Y here if you have a Logitech PS/2++ mouse connected to
68 	  your system.
69 
70 	  If unsure, say Y.
71 
72 config MOUSE_PS2_SYNAPTICS
73 	bool "Synaptics PS/2 mouse protocol extension" if EXPERT
74 	default y
75 	depends on MOUSE_PS2
76 	help
77 	  Say Y here if you have a Synaptics PS/2 TouchPad connected to
78 	  your system.
79 
80 	  If unsure, say Y.
81 
82 config MOUSE_PS2_SYNAPTICS_SMBUS
83 	bool "Synaptics PS/2 SMbus companion" if EXPERT
84 	default y
85 	depends on MOUSE_PS2
86 	depends on I2C=y || I2C=MOUSE_PS2
87 	select MOUSE_PS2_SMBUS
88 	help
89 	  Say Y here if you have a Synaptics RMI4 touchpad connected to
90 	  to an SMBus, but enumerated through PS/2.
91 
92 	  If unsure, say Y.
93 
94 config MOUSE_PS2_CYPRESS
95 	bool "Cypress PS/2 mouse protocol extension" if EXPERT
96 	default y
97 	depends on MOUSE_PS2
98 	help
99 	  Say Y here if you have a Cypress PS/2 Trackpad connected to
100 	  your system.
101 
102 	  If unsure, say Y.
103 
104 config MOUSE_PS2_LIFEBOOK
105 	bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EXPERT
106 	default y
107 	depends on MOUSE_PS2 && X86 && DMI
108 	help
109 	  Say Y here if you have a Fujitsu B-series Lifebook PS/2
110 	  TouchScreen connected to your system.
111 
112 	  If unsure, say Y.
113 
114 config MOUSE_PS2_TRACKPOINT
115 	bool "IBM Trackpoint PS/2 mouse protocol extension" if EXPERT
116 	default y
117 	depends on MOUSE_PS2
118 	help
119 	  Say Y here if you have an IBM Trackpoint PS/2 mouse connected
120 	  to your system.
121 
122 	  If unsure, say Y.
123 
124 config MOUSE_PS2_ELANTECH
125 	bool "Elantech PS/2 protocol extension"
126 	depends on MOUSE_PS2
127 	help
128 	  Say Y here if you have an Elantech PS/2 touchpad connected
129 	  to your system.
130 
131 	  This driver exposes some configuration registers via sysfs
132 	  entries. For further information,
133 	  see <file:Documentation/input/devices/elantech.rst>.
134 
135 	  If unsure, say N.
136 
137 config MOUSE_PS2_ELANTECH_SMBUS
138 	bool "Elantech PS/2 SMbus companion" if EXPERT
139 	default y
140 	depends on MOUSE_PS2 && MOUSE_PS2_ELANTECH
141 	depends on I2C=y || I2C=MOUSE_PS2
142 	select MOUSE_PS2_SMBUS
143 	help
144 	  Say Y here if you have a Elantech touchpad connected to
145 	  to an SMBus, but enumerated through PS/2.
146 
147 	  If unsure, say Y.
148 
149 config MOUSE_PS2_SENTELIC
150 	bool "Sentelic Finger Sensing Pad PS/2 protocol extension"
151 	depends on MOUSE_PS2
152 	help
153 	  Say Y here if you have a laptop (such as MSI WIND Netbook)
154 	  with Sentelic Finger Sensing Pad touchpad.
155 
156 	  If unsure, say N.
157 
158 config MOUSE_PS2_TOUCHKIT
159 	bool "eGalax TouchKit PS/2 protocol extension"
160 	depends on MOUSE_PS2
161 	help
162 	  Say Y here if you have an eGalax TouchKit PS/2 touchscreen
163 	  connected to your system.
164 
165 	  If unsure, say N.
166 
167 config MOUSE_PS2_OLPC
168 	bool "OLPC PS/2 mouse protocol extension"
169 	depends on MOUSE_PS2 && OLPC
170 	help
171 	  Say Y here if you have an OLPC XO-1 laptop (with built-in
172 	  PS/2 touchpad/tablet device).  The manufacturer calls the
173 	  touchpad an HGPK.
174 
175 	  If unsure, say N.
176 
177 config MOUSE_PS2_FOCALTECH
178 	bool "FocalTech PS/2 mouse protocol extension" if EXPERT
179 	default y
180 	depends on MOUSE_PS2
181 	help
182 	  Say Y here if you have a FocalTech PS/2 TouchPad connected to
183 	  your system.
184 
185 	  If unsure, say Y.
186 
187 config MOUSE_PS2_VMMOUSE
188 	bool "Virtual mouse (vmmouse)"
189 	depends on MOUSE_PS2 && X86 && HYPERVISOR_GUEST
190 	help
191 	  Say Y here if you are running under control of VMware hypervisor
192 	  (ESXi, Workstation or Fusion). Also make sure that when you enable
193 	  this option, you remove the xf86-input-vmmouse user-space driver
194 	  or upgrade it to at least xf86-input-vmmouse 13.1.0, which doesn't
195 	  load in the presence of an in-kernel vmmouse driver.
196 
197 	  If unsure, say N.
198 
199 config MOUSE_PS2_SMBUS
200 	bool
201 	depends on MOUSE_PS2
202 
203 config MOUSE_SERIAL
204 	tristate "Serial mouse"
205 	select SERIO
206 	help
207 	  Say Y here if you have a serial (RS-232, COM port) mouse connected
208 	  to your system. This includes Sun, MouseSystems, Microsoft,
209 	  Logitech and all other compatible serial mice.
210 
211 	  If unsure, say N.
212 
213 	  To compile this driver as a module, choose M here: the
214 	  module will be called sermouse.
215 
216 config MOUSE_APPLETOUCH
217 	tristate "Apple USB Touchpad support"
218 	depends on USB_ARCH_HAS_HCD
219 	select USB
220 	help
221 	  Say Y here if you want to use an Apple USB Touchpad.
222 
223 	  These are the touchpads that can be found on post-February 2005
224 	  Apple Powerbooks (prior models have a Synaptics touchpad connected
225 	  to the ADB bus).
226 
227 	  This driver provides a basic mouse driver but can be interfaced
228 	  with the synaptics X11 driver to provide acceleration and
229 	  scrolling in X11.
230 
231 	  For further information, see
232 	  <file:Documentation/input/devices/appletouch.rst>.
233 
234 	  To compile this driver as a module, choose M here: the
235 	  module will be called appletouch.
236 
237 config MOUSE_BCM5974
238 	tristate "Apple USB BCM5974 Multitouch trackpad support"
239 	depends on USB_ARCH_HAS_HCD
240 	select USB
241 	help
242 	  Say Y here if you have an Apple USB BCM5974 Multitouch
243 	  trackpad.
244 
245 	  The BCM5974 is the multitouch trackpad found in the Macbook
246 	  Air (JAN2008) and Macbook Pro Penryn (FEB2008) laptops.
247 
248 	  It is also found in the IPhone (2007) and Ipod Touch (2008).
249 
250 	  This driver provides multitouch functionality together with
251 	  the synaptics X11 driver.
252 
253 	  The interface is currently identical to the appletouch interface,
254 	  for further information, see
255 	  <file:Documentation/input/devices/appletouch.rst>.
256 
257 	  To compile this driver as a module, choose M here: the
258 	  module will be called bcm5974.
259 
260 config MOUSE_CYAPA
261 	tristate "Cypress APA I2C Trackpad support"
262 	depends on I2C
263 	select CRC_ITU_T
264 	help
265 	  This driver adds support for Cypress All Points Addressable (APA)
266 	  I2C Trackpads, including the ones used in 2012 Samsung Chromebooks.
267 
268 	  Say Y here if you have a Cypress APA I2C Trackpad.
269 
270 	  To compile this driver as a module, choose M here: the module will be
271 	  called cyapa.
272 
273 config MOUSE_ELAN_I2C
274 	tristate "ELAN I2C Touchpad support"
275 	depends on I2C
276 	help
277 	  This driver adds support for Elan I2C/SMbus Trackpads.
278 
279 	  Say Y here if you have a ELAN I2C/SMbus Touchpad.
280 
281 	  To compile this driver as a module, choose M here: the module will be
282 	  called elan_i2c.
283 
284 config MOUSE_ELAN_I2C_I2C
285 	bool "Enable I2C support"
286 	depends on MOUSE_ELAN_I2C
287 	default y
288 	help
289 	   Say Y here if Elan Touchpad in your system is connected to
290 	   a standard I2C controller.
291 
292 	   If unsure, say Y.
293 
294 config MOUSE_ELAN_I2C_SMBUS
295 	bool "Enable SMbus support"
296 	depends on MOUSE_ELAN_I2C
297 	help
298 	   Say Y here if Elan Touchpad in your system is connected to
299 	   a SMbus adapter.
300 
301 	   If unsure, say Y.
302 
303 config MOUSE_INPORT
304 	tristate "InPort/MS/ATIXL busmouse"
305 	depends on ISA
306 	help
307 	  Say Y here if you have an InPort, Microsoft or ATI XL busmouse.
308 	  They are rather rare these days.
309 
310 	  To compile this driver as a module, choose M here: the
311 	  module will be called inport.
312 
313 config MOUSE_ATIXL
314 	bool "ATI XL variant"
315 	depends on MOUSE_INPORT
316 	help
317 	  Say Y here if your mouse is of the ATI XL variety.
318 
319 config MOUSE_LOGIBM
320 	tristate "Logitech busmouse"
321 	depends on ISA
322 	help
323 	  Say Y here if you have a Logitech busmouse.
324 	  They are rather rare these days.
325 
326 	  To compile this driver as a module, choose M here: the
327 	  module will be called logibm.
328 
329 config MOUSE_PC110PAD
330 	tristate "IBM PC110 touchpad"
331 	depends on ISA
332 	help
333 	  Say Y if you have the IBM PC-110 micro-notebook and want its
334 	  touchpad supported.
335 
336 	  To compile this driver as a module, choose M here: the
337 	  module will be called pc110pad.
338 
339 config MOUSE_AMIGA
340 	tristate "Amiga mouse"
341 	depends on AMIGA
342 	help
343 	  Say Y here if you have an Amiga and want its native mouse
344 	  supported by the kernel.
345 
346 	  To compile this driver as a module, choose M here: the
347 	  module will be called amimouse.
348 
349 config MOUSE_ATARI
350 	tristate "Atari mouse"
351 	depends on ATARI
352 	select ATARI_KBD_CORE
353 	help
354 	  Say Y here if you have an Atari and want its native mouse
355 	  supported by the kernel.
356 
357 	  To compile this driver as a module, choose M here: the
358 	  module will be called atarimouse.
359 
360 config MOUSE_RISCPC
361 	tristate "Acorn RiscPC mouse"
362 	depends on ARCH_ACORN
363 	help
364 	  Say Y here if you have the Acorn RiscPC computer and want its
365 	  native mouse supported.
366 
367 	  To compile this driver as a module, choose M here: the
368 	  module will be called rpcmouse.
369 
370 config MOUSE_VSXXXAA
371 	tristate "DEC VSXXX-AA/GA mouse and VSXXX-AB tablet"
372 	select SERIO
373 	help
374 	  Say Y (or M) if you want to use a DEC VSXXX-AA (hockey
375 	  puck) or a VSXXX-GA (rectangular) mouse. These mice are
376 	  typically used on DECstations or VAXstations, but can also
377 	  be used on any box capable of RS232 (with some adaptor
378 	  described in the source file). This driver also works with the
379 	  digitizer (VSXXX-AB) DEC produced.
380 
381 config MOUSE_GPIO
382 	tristate "GPIO mouse"
383 	depends on GPIOLIB || COMPILE_TEST
384 	help
385 	  This driver simulates a mouse on GPIO lines of various CPUs (and some
386 	  other chips).
387 
388 	  Say Y here if your device has buttons or a simple joystick connected
389 	  directly to GPIO lines. Your board-specific setup logic must also
390 	  provide a platform device and platform data saying which GPIOs are
391 	  used.
392 
393 	  To compile this driver as a module, choose M here: the
394 	  module will be called gpio_mouse.
395 
396 config MOUSE_MAPLE
397 	tristate "Maple mouse (for the Dreamcast)"
398 	depends on MAPLE
399 	help
400 	  This driver supports the Maple mouse on the SEGA Dreamcast.
401 
402 	  Most Dreamcast users, who have a mouse, will say Y here.
403 
404 	  To compile this driver as a module choose M here: the module will be
405 	  called maplemouse.
406 
407 config MOUSE_SYNAPTICS_I2C
408 	tristate "Synaptics I2C Touchpad support"
409 	depends on I2C
410 	help
411 	  This driver supports Synaptics I2C touchpad controller on eXeda
412 	  mobile device.
413 	  The device will not work the synaptics X11 driver because
414 	  (i) it  reports only relative coordinates and has no capabilities
415 	  to report absolute coordinates
416 	  (ii) the eXeda device itself uses Xfbdev as X Server and it does
417 	  not allow using xf86-input-* drivers.
418 
419 	  Say y here if you have eXeda device and want to use a Synaptics
420 	  I2C Touchpad.
421 
422 	  To compile this driver as a module, choose M here: the
423 	  module will be called synaptics_i2c.
424 
425 config MOUSE_SYNAPTICS_USB
426 	tristate "Synaptics USB device support"
427 	depends on USB_ARCH_HAS_HCD
428 	select USB
429 	help
430 	  Say Y here if you want to use a Synaptics USB touchpad or pointing
431 	  stick.
432 
433 	  While these devices emulate an USB mouse by default and can be used
434 	  with standard usbhid driver, this driver, together with its X.Org
435 	  counterpart, allows you to fully utilize capabilities of the device.
436 	  More information can be found at:
437 	  <http://jan-steinhoff.de/linux/synaptics-usb.html>
438 
439 	  To compile this driver as a module, choose M here: the
440 	  module will be called synaptics_usb.
441 
442 endif
443