1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Mouse driver configuration
4#
5menuconfig 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
14if INPUT_MOUSE
15
16config 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
42config 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
52config 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
62config 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
72config 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
82config 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
94config 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
104config 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
114config 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
124config 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
137config 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
149config 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
158config 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
167config 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
177config 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
187config 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
199config MOUSE_PS2_SMBUS
200	bool
201	depends on MOUSE_PS2
202
203config 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
216config 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
237config 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
260config 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
273config 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
284config 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
294config 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
303config 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
313config 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
319config 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
329config 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
339config 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
349config 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
360config 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
370config 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
381config 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
396config 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
407config 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
425config 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
442endif
443