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