# SPDX-License-Identifier: GPL-2.0
#
# Makefile for the input core drivers.
#

# Each configuration option enables a list of files.

obj-$(CONFIG_JOYSTICK_A3D)		+= a3d.o
obj-$(CONFIG_JOYSTICK_ADC)		+= adc-joystick.o
obj-$(CONFIG_JOYSTICK_ADI)		+= adi.o
obj-$(CONFIG_JOYSTICK_AMIGA)		+= amijoy.o
obj-$(CONFIG_JOYSTICK_AS5011)		+= as5011.o
obj-$(CONFIG_JOYSTICK_ANALOG)		+= analog.o
obj-$(CONFIG_JOYSTICK_COBRA)		+= cobra.o
obj-$(CONFIG_JOYSTICK_DB9)		+= db9.o
obj-$(CONFIG_JOYSTICK_FSIA6B)		+= fsia6b.o
obj-$(CONFIG_JOYSTICK_GAMECON)		+= gamecon.o
obj-$(CONFIG_JOYSTICK_GF2K)		+= gf2k.o
obj-$(CONFIG_JOYSTICK_GRIP)		+= grip.o
obj-$(CONFIG_JOYSTICK_GRIP_MP)		+= grip_mp.o
obj-$(CONFIG_JOYSTICK_GUILLEMOT)	+= guillemot.o
obj-$(CONFIG_JOYSTICK_IFORCE)		+= iforce/
obj-$(CONFIG_JOYSTICK_INTERACT)		+= interact.o
obj-$(CONFIG_JOYSTICK_JOYDUMP)		+= joydump.o
obj-$(CONFIG_JOYSTICK_MAGELLAN)		+= magellan.o
obj-$(CONFIG_JOYSTICK_MAPLE)		+= maplecontrol.o
obj-$(CONFIG_JOYSTICK_N64)		+= n64joy.o
obj-$(CONFIG_JOYSTICK_PSXPAD_SPI)	+= psxpad-spi.o
obj-$(CONFIG_JOYSTICK_PXRC)		+= pxrc.o
obj-$(CONFIG_JOYSTICK_QWIIC)		+= qwiic-joystick.o
obj-$(CONFIG_JOYSTICK_SEESAW)		+= adafruit-seesaw.o
obj-$(CONFIG_JOYSTICK_SENSEHAT)	+= sensehat-joystick.o
obj-$(CONFIG_JOYSTICK_SIDEWINDER)	+= sidewinder.o
obj-$(CONFIG_JOYSTICK_SPACEBALL)	+= spaceball.o
obj-$(CONFIG_JOYSTICK_SPACEORB)		+= spaceorb.o
obj-$(CONFIG_JOYSTICK_STINGER)		+= stinger.o
obj-$(CONFIG_JOYSTICK_TMDC)		+= tmdc.o
obj-$(CONFIG_JOYSTICK_TURBOGRAFX)	+= turbografx.o
obj-$(CONFIG_JOYSTICK_TWIDJOY)		+= twidjoy.o
obj-$(CONFIG_JOYSTICK_WARRIOR)		+= warrior.o
obj-$(CONFIG_JOYSTICK_WALKERA0701)	+= walkera0701.o
obj-$(CONFIG_JOYSTICK_XPAD)		+= xpad.o
obj-$(CONFIG_JOYSTICK_ZHENHUA)		+= zhenhua.o
