comment "USB Input Devices"
	depends on USB

config USB_HID
	tristate "USB Human Interface Device (full HID) support"
	default y
	depends on USB && INPUT
	select HID
	---help---
	  Say Y here if you want full HID support to connect USB keyboards,
	  mice, joysticks, graphic tablets, or any other HID based devices
	  to your computer via USB, as well as Uninterruptible Power Supply
	  (UPS) and monitor control devices.

	  You can't use this driver and the HIDBP (Boot Protocol) keyboard
	  and mouse drivers at the same time. More information is available:
	  <file:Documentation/input/input.txt>.

	  If unsure, say Y.

	  To compile this driver as a module, choose M here: the
	  module will be called usbhid.

comment "Input core support is needed for USB HID input layer or HIDBP support"
	depends on USB_HID && INPUT=n

config USB_HIDINPUT_POWERBOOK
	bool "Enable support for iBook/PowerBook special keys"
	default n
	depends on USB_HID
	help
	  Say Y here if you want support for the special keys (Fn, Numlock) on
	  Apple iBooks and PowerBooks.

	  If unsure, say N.

config HID_FF
	bool "Force feedback support (EXPERIMENTAL)"
	depends on USB_HID && EXPERIMENTAL
	help
	  Say Y here is you want force feedback support for a few HID devices.
	  See below for a list of supported devices.

	  See <file:Documentation/input/ff.txt> for a description of the force
	  feedback API.

	  If unsure, say N.

config HID_PID
	bool "PID device support"
	depends on HID_FF
	help
	  Say Y here if you have a PID-compliant device and wish to enable force
	  feedback for it. Microsoft Sidewinder Force Feedback 2 is one of such
	  devices.

config LOGITECH_FF
	bool "Logitech devices support"
	depends on HID_FF
	select INPUT_FF_MEMLESS if USB_HID
	help
	  Say Y here if you have one of these devices:
	  - Logitech WingMan Cordless RumblePad
	  - Logitech WingMan Cordless RumblePad 2
	  - Logitech WingMan Force 3D
	  - Logitech Formula Force EX
	  - Logitech MOMO Force wheel

	  and if you want to enable force feedback for them.
	  Note: if you say N here, this device will still be supported, but without
	  force feedback.

config PANTHERLORD_FF
	bool "PantherLord USB/PS2 2in1 Adapter support"
	depends on HID_FF
	select INPUT_FF_MEMLESS if USB_HID
	help
	  Say Y here if you have a PantherLord USB/PS2 2in1 Adapter and want
	  to enable force feedback support for it.

config THRUSTMASTER_FF
	bool "ThrustMaster FireStorm Dual Power 2 support (EXPERIMENTAL)"
	depends on HID_FF && EXPERIMENTAL
	select INPUT_FF_MEMLESS if USB_HID
	help
	  Say Y here if you have a THRUSTMASTER FireStore Dual Power 2,
	  and want to enable force feedback support for it.
	  Note: if you say N here, this device will still be supported, but without
	  force feedback.

config ZEROPLUS_FF
	bool "Zeroplus based game controller support"
	depends on HID_FF
	select INPUT_FF_MEMLESS if USB_HID
	help
	  Say Y here if you have a Zeroplus based game controller and want to
	  enable force feedback for it.

config USB_HIDDEV
	bool "/dev/hiddev raw HID device support"
	depends on USB_HID
	help
	  Say Y here if you want to support HID devices (from the USB
	  specification standpoint) that aren't strictly user interface
	  devices, like monitor controls and Uninterruptable Power Supplies.

	  This module supports these devices separately using a separate
	  event interface on /dev/usb/hiddevX (char 180:96 to 180:111).

	  If unsure, say Y.

menu "USB HID Boot Protocol drivers"
	depends on USB!=n && USB_HID!=y

config USB_KBD
	tristate "USB HIDBP Keyboard (simple Boot) support"
	depends on USB && INPUT
	---help---
	  Say Y here only if you are absolutely sure that you don't want
	  to use the generic HID driver for your USB keyboard and prefer
	  to use the keyboard in its limited Boot Protocol mode instead.

	  This is almost certainly not what you want.  This is mostly
	  useful for embedded applications or simple keyboards.

	  To compile this driver as a module, choose M here: the
	  module will be called usbkbd.

	  If even remotely unsure, say N.

config USB_MOUSE
	tristate "USB HIDBP Mouse (simple Boot) support"
	depends on USB && INPUT
	---help---
	  Say Y here only if you are absolutely sure that you don't want
	  to use the generic HID driver for your USB mouse and prefer
	  to use the mouse in its limited Boot Protocol mode instead.

	  This is almost certainly not what you want.  This is mostly
	  useful for embedded applications or simple mice.

	  To compile this driver as a module, choose M here: the
	  module will be called usbmouse.

	  If even remotely unsure, say N.

endmenu


