1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Joystick driver configuration
4#
5menuconfig INPUT_JOYSTICK
6	bool "Joysticks/Gamepads"
7	depends on !UML
8	help
9	  If you have a joystick, 6dof controller, gamepad, steering wheel,
10	  weapon control system or something like that you can say Y here
11	  and the list of supported devices will be displayed. This option
12	  doesn't affect the kernel.
13
14	  Please read the file <file:Documentation/input/joydev/joystick.rst> which
15	  contains more information.
16
17if INPUT_JOYSTICK
18
19config JOYSTICK_ANALOG
20	tristate "Classic PC analog joysticks and gamepads"
21	select GAMEPORT
22	help
23	  Say Y here if you have a joystick that connects to the PC
24	  gameport. In addition to the usual PC analog joystick, this driver
25	  supports many extensions, including joysticks with throttle control,
26	  with rudders, additional hats and buttons compatible with CH
27	  Flightstick Pro, ThrustMaster FCS, 6 and 8 button gamepads, or
28	  Saitek Cyborg joysticks.
29
30	  Please read the file <file:Documentation/input/joydev/joystick.rst> which
31	  contains more information.
32
33	  To compile this driver as a module, choose M here: the
34	  module will be called analog.
35
36config JOYSTICK_A3D
37	tristate "Assassin 3D and MadCatz Panther devices"
38	select GAMEPORT
39	help
40	  Say Y here if you have an FPGaming or MadCatz controller using the
41	  A3D protocol over the PC gameport.
42
43	  To compile this driver as a module, choose M here: the
44	  module will be called a3d.
45
46config JOYSTICK_ADC
47	tristate "Simple joystick connected over ADC"
48	depends on IIO
49	select IIO_BUFFER_CB
50	help
51	  Say Y here if you have a simple joystick connected over ADC.
52
53	  To compile this driver as a module, choose M here: the
54	  module will be called adc-joystick.
55
56config JOYSTICK_ADI
57	tristate "Logitech ADI digital joysticks and gamepads"
58	select GAMEPORT
59	depends on ADI!=m # avoid module name conflict
60	help
61	  Say Y here if you have a Logitech controller using the ADI
62	  protocol over the PC gameport.
63
64	  To compile this driver as a module, choose M here: the
65	  module will be called adi.
66
67config JOYSTICK_COBRA
68	tristate "Creative Labs Blaster Cobra gamepad"
69	select GAMEPORT
70	help
71	  Say Y here if you have a Creative Labs Blaster Cobra gamepad.
72
73	  To compile this driver as a module, choose M here: the
74	  module will be called cobra.
75
76config JOYSTICK_GF2K
77	tristate "Genius Flight2000 Digital joysticks and gamepads"
78	select GAMEPORT
79	help
80	  Say Y here if you have a Genius Flight2000 or MaxFighter digitally
81	  communicating joystick or gamepad.
82
83	  To compile this driver as a module, choose M here: the
84	  module will be called gf2k.
85
86config JOYSTICK_GRIP
87	tristate "Gravis GrIP joysticks and gamepads"
88	select GAMEPORT
89	help
90	  Say Y here if you have a Gravis controller using the GrIP protocol
91	  over the PC gameport.
92
93	  To compile this driver as a module, choose M here: the
94	  module will be called grip.
95
96config JOYSTICK_GRIP_MP
97	tristate "Gravis GrIP MultiPort"
98	select GAMEPORT
99	help
100	  Say Y here if you have the original Gravis GrIP MultiPort, a hub
101	  that connects to the gameport and you connect gamepads to it.
102
103	  To compile this driver as a module, choose M here: the
104	  module will be called grip_mp.
105
106config JOYSTICK_GUILLEMOT
107	tristate "Guillemot joysticks and gamepads"
108	select GAMEPORT
109	help
110	  Say Y here if you have a Guillemot joystick using a digital
111	  protocol over the PC gameport.
112
113	  To compile this driver as a module, choose M here: the
114	  module will be called guillemot.
115
116config JOYSTICK_INTERACT
117	tristate "InterAct digital joysticks and gamepads"
118	select GAMEPORT
119	help
120	  Say Y here if you have an InterAct gameport or joystick
121	  communicating digitally over the gameport.
122
123	  To compile this driver as a module, choose M here: the
124	  module will be called interact.
125
126config JOYSTICK_SIDEWINDER
127	tristate "Microsoft SideWinder digital joysticks and gamepads"
128	select GAMEPORT
129	help
130	  Say Y here if you have a Microsoft controller using the Digital
131	  Overdrive protocol over PC gameport.
132
133	  To compile this driver as a module, choose M here: the
134	  module will be called sidewinder.
135
136config JOYSTICK_TMDC
137	tristate "ThrustMaster DirectConnect joysticks and gamepads"
138	select GAMEPORT
139	help
140	  Say Y here if you have a ThrustMaster controller using the
141	  DirectConnect (BSP) protocol over the PC gameport.
142
143	  To compile this driver as a module, choose M here: the
144	  module will be called tmdc.
145
146source "drivers/input/joystick/iforce/Kconfig"
147
148config JOYSTICK_WARRIOR
149	tristate "Logitech WingMan Warrior joystick"
150	select SERIO
151	help
152	  Say Y here if you have a Logitech WingMan Warrior joystick connected
153	  to your computer's serial port.
154
155	  To compile this driver as a module, choose M here: the
156	  module will be called warrior.
157
158config JOYSTICK_MAGELLAN
159	tristate "LogiCad3d Magellan/SpaceMouse 6dof controllers"
160	select SERIO
161	help
162	  Say Y here if you have a Magellan or Space Mouse 6DOF controller
163	  connected to your computer's serial port.
164
165	  To compile this driver as a module, choose M here: the
166	  module will be called magellan.
167
168config JOYSTICK_SPACEORB
169	tristate "SpaceTec SpaceOrb/Avenger 6dof controllers"
170	select SERIO
171	help
172	  Say Y here if you have a SpaceOrb 360 or SpaceBall Avenger 6DOF
173	  controller connected to your computer's serial port.
174
175	  To compile this driver as a module, choose M here: the
176	  module will be called spaceorb.
177
178config JOYSTICK_SPACEBALL
179	tristate "SpaceTec SpaceBall 6dof controllers"
180	select SERIO
181	help
182	  Say Y here if you have a SpaceTec SpaceBall 2003/3003/4000 FLX
183	  controller connected to your computer's serial port. For the
184	  SpaceBall 4000 USB model, use the USB HID driver.
185
186	  To compile this driver as a module, choose M here: the
187	  module will be called spaceball.
188
189config JOYSTICK_STINGER
190	tristate "Gravis Stinger gamepad"
191	select SERIO
192	help
193	  Say Y here if you have a Gravis Stinger connected to one of your
194	  serial ports.
195
196	  To compile this driver as a module, choose M here: the
197	  module will be called stinger.
198
199config JOYSTICK_TWIDJOY
200	tristate "Twiddler as a joystick"
201	select SERIO
202	help
203	  Say Y here if you have a Handykey Twiddler connected to your
204	  computer's serial port and want to use it as a joystick.
205
206	  To compile this driver as a module, choose M here: the
207	  module will be called twidjoy.
208
209config JOYSTICK_ZHENHUA
210	tristate "5-byte Zhenhua RC transmitter"
211	select SERIO
212	select BITREVERSE
213	help
214	  Say Y here if you have a Zhen Hua PPM-4CH transmitter which is
215	  supplied with a ready to fly micro electric indoor helicopters
216	  such as EasyCopter, Lama, MiniCopter, DragonFly or Jabo and want
217	  to use it via serial cable as a joystick.
218
219	  To compile this driver as a module, choose M here: the
220	  module will be called zhenhua.
221
222config JOYSTICK_DB9
223	tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads"
224	depends on PARPORT
225	help
226	  Say Y here if you have a Sega Master System gamepad, Sega Genesis
227	  gamepad, Sega Saturn gamepad, or a Multisystem -- Atari, Amiga,
228	  Commodore, Amstrad CPC joystick connected to your parallel port.
229	  For more information on how to use the driver please read
230	  <file:Documentation/input/devices/joystick-parport.rst>.
231
232	  To compile this driver as a module, choose M here: the
233	  module will be called db9.
234
235config JOYSTICK_GAMECON
236	tristate "Multisystem, NES, SNES, N64, PSX joysticks and gamepads"
237	depends on PARPORT
238	select INPUT_FF_MEMLESS
239	help
240	  Say Y here if you have a Nintendo Entertainment System gamepad,
241	  Super Nintendo Entertainment System gamepad, Nintendo 64 gamepad,
242	  Sony PlayStation gamepad or a Multisystem -- Atari, Amiga,
243	  Commodore, Amstrad CPC joystick connected to your parallel port.
244	  For more information on how to use the driver please read
245	  <file:Documentation/input/devices/joystick-parport.rst>.
246
247	  To compile this driver as a module, choose M here: the
248	  module will be called gamecon.
249
250config JOYSTICK_TURBOGRAFX
251	tristate "Multisystem joysticks via TurboGraFX device"
252	depends on PARPORT
253	help
254	  Say Y here if you have the TurboGraFX interface by Steffen Schwenke,
255	  and want to use it with Multisystem -- Atari, Amiga, Commodore,
256	  Amstrad CPC joystick. For more information on how to use the driver
257	  please read <file:Documentation/input/devices/joystick-parport.rst>.
258
259	  To compile this driver as a module, choose M here: the
260	  module will be called turbografx.
261
262config JOYSTICK_AMIGA
263	tristate "Amiga joysticks"
264	depends on AMIGA
265	help
266	  Say Y here if you have an Amiga with a digital joystick connected
267	  to it.
268
269	  To compile this driver as a module, choose M here: the
270	  module will be called amijoy.
271
272config JOYSTICK_AS5011
273	tristate "Austria Microsystem AS5011 joystick"
274	depends on I2C
275	help
276	  Say Y here if you have an AS5011 digital joystick connected to your
277	  system.
278
279	  To compile this driver as a module, choose M here: the
280	  module will be called as5011.
281
282config JOYSTICK_JOYDUMP
283	tristate "Gameport data dumper"
284	select GAMEPORT
285	help
286	  Say Y here if you want to dump data from your joystick into the system
287	  log for debugging purposes. Say N if you are making a production
288	  configuration or aren't sure.
289
290	  To compile this driver as a module, choose M here: the
291	  module will be called joydump.
292
293config JOYSTICK_XPAD
294	tristate "X-Box gamepad support"
295	depends on USB_ARCH_HAS_HCD
296	select USB
297	help
298	  Say Y here if you want to use the X-Box pad with your computer.
299	  Make sure to say Y to "Joystick support" (CONFIG_INPUT_JOYDEV)
300	  and/or "Event interface support" (CONFIG_INPUT_EVDEV) as well.
301
302	  For information about how to connect the X-Box pad to USB, see
303	  <file:Documentation/input/devices/xpad.rst>.
304
305	  To compile this driver as a module, choose M here: the
306	  module will be called xpad.
307
308config JOYSTICK_XPAD_FF
309	bool "X-Box gamepad rumble support"
310	depends on JOYSTICK_XPAD && INPUT
311	select INPUT_FF_MEMLESS
312	help
313	  Say Y here if you want to take advantage of xbox 360 rumble features.
314
315config JOYSTICK_XPAD_LEDS
316	bool "LED Support for Xbox360 controller 'BigX' LED"
317	depends on JOYSTICK_XPAD && (LEDS_CLASS=y || LEDS_CLASS=JOYSTICK_XPAD)
318	help
319	  This option enables support for the LED which surrounds the Big X on
320	  XBox 360 controller.
321
322config JOYSTICK_WALKERA0701
323	tristate "Walkera WK-0701 RC transmitter"
324	depends on HIGH_RES_TIMERS && PARPORT
325	help
326	  Say Y or M here if you have a Walkera WK-0701 transmitter which is
327	  supplied with a ready to fly Walkera helicopters such as HM36,
328	  HM37, HM60 and want to use it via parport as a joystick. More
329	  information is available: <file:Documentation/input/devices/walkera0701.rst>
330
331	  To compile this driver as a module, choose M here: the
332	  module will be called walkera0701.
333
334config JOYSTICK_MAPLE
335	tristate "Dreamcast control pad"
336	depends on MAPLE
337	help
338	  Say Y here if you have a SEGA Dreamcast and want to use your
339	  controller as a joystick.
340
341	  Most Dreamcast users will say Y.
342
343	  To compile this as a module choose M here: the module will be called
344	  maplecontrol.
345
346config JOYSTICK_PSXPAD_SPI
347	tristate "PlayStation 1/2 joypads via SPI interface"
348	depends on SPI
349	help
350	  Say Y here if you wish to connect PlayStation 1/2 joypads
351	  via SPI interface.
352
353	  To compile this driver as a module, choose M here: the
354	  module will be called psxpad-spi.
355
356config JOYSTICK_PSXPAD_SPI_FF
357	bool "PlayStation 1/2 joypads force feedback (rumble) support"
358	depends on JOYSTICK_PSXPAD_SPI
359	select INPUT_FF_MEMLESS
360	help
361	  Say Y here if you want to take advantage of PlayStation 1/2
362	  joypads rumble features.
363
364	  To drive rumble motor a dedicated power supply is required.
365
366config JOYSTICK_PXRC
367	tristate "PhoenixRC Flight Controller Adapter"
368	depends on USB_ARCH_HAS_HCD
369	select USB
370	help
371	  Say Y here if you want to use the PhoenixRC Flight Controller Adapter.
372
373	  To compile this driver as a module, choose M here: the
374	  module will be called pxrc.
375
376config JOYSTICK_QWIIC
377	tristate "SparkFun Qwiic Joystick"
378	depends on I2C
379	help
380	  Say Y here if you want to use the SparkFun Qwiic Joystick.
381
382	  To compile this driver as a module, choose M here: the
383	  module will be called qwiic-joystick.
384
385config JOYSTICK_FSIA6B
386	tristate "FlySky FS-iA6B RC Receiver"
387	select SERIO
388	help
389	  Say Y here if you use a FlySky FS-i6 RC remote control along with the
390	  FS-iA6B RC receiver as a joystick input device.
391
392	  To compile this driver as a module, choose M here: the
393	  module will be called fsia6b.
394
395config JOYSTICK_N64
396	bool "N64 controller"
397	depends on MACH_NINTENDO64
398	help
399	  Say Y here if you want enable support for the four
400	  built-in controller ports on the Nintendo 64 console.
401
402endif
403