menuconfig RT2X00
	tristate "Ralink driver support"
	depends on MAC80211 && WLAN_80211 && EXPERIMENTAL
	---help---
	  This will enable the experimental support for the Ralink drivers,
	  developed in the rt2x00 project <http://rt2x00.serialmonkey.com>.

	  These drivers make use of the mac80211 stack.

	  When building one of the individual drivers, the rt2x00 library
	  will also be created. That library (when the driver is built as
	  a module) will be called rt2x00lib.

	  Additionally PCI and USB libraries will also be build depending
	  on the types of drivers being selected, these libraries will be
	  called rt2x00pci and rt2x00usb.

if RT2X00

config RT2400PCI
	tristate "Ralink rt2400 (PCI/PCMCIA) support"
	depends on PCI
	select RT2X00_LIB_PCI
	select EEPROM_93CX6
	---help---
	  This adds support for rt2400 wireless chipset family.
	  Supported chips: RT2460.

	  When compiled as a module, this driver will be called rt2400pci.

config RT2500PCI
	tristate "Ralink rt2500 (PCI/PCMCIA) support"
	depends on PCI
	select RT2X00_LIB_PCI
	select EEPROM_93CX6
	---help---
	  This adds support for rt2500 wireless chipset family.
	  Supported chips: RT2560.

	  When compiled as a module, this driver will be called rt2500pci.

config RT61PCI
	tristate "Ralink rt2501/rt61 (PCI/PCMCIA) support"
	depends on PCI
	select RT2X00_LIB_PCI
	select RT2X00_LIB_FIRMWARE
	select RT2X00_LIB_CRYPTO
	select CRC_ITU_T
	select EEPROM_93CX6
	---help---
	  This adds support for rt2501 wireless chipset family.
	  Supported chips: RT2561, RT2561S & RT2661.

	  When compiled as a module, this driver will be called rt61pci.

config RT2500USB
	tristate "Ralink rt2500 (USB) support"
	depends on USB
	select RT2X00_LIB_USB
	select RT2X00_LIB_CRYPTO
	---help---
	  This adds support for rt2500 wireless chipset family.
	  Supported chips: RT2571 & RT2572.

	  When compiled as a module, this driver will be called rt2500usb.

config RT73USB
	tristate "Ralink rt2501/rt73 (USB) support"
	depends on USB
	select RT2X00_LIB_USB
	select RT2X00_LIB_FIRMWARE
	select RT2X00_LIB_CRYPTO
	select CRC_ITU_T
	---help---
	  This adds support for rt2501 wireless chipset family.
	  Supported chips: RT2571W, RT2573 & RT2671.

	  When compiled as a module, this driver will be called rt73usb.

config RT2800USB
	tristate "Ralink rt2800 (USB) support"
	depends on USB
	select RT2X00_LIB_USB
	select RT2X00_LIB_HT
	select RT2X00_LIB_FIRMWARE
	select RT2X00_LIB_CRYPTO
	select CRC_CCITT
	---help---
	  This adds support for rt2800 wireless chipset family.
	  Supported chips: RT2770, RT2870 & RT3070.

	  When compiled as a module, this driver will be called "rt2800usb.ko".

config RT2X00_LIB_PCI
	tristate
	select RT2X00_LIB

config RT2X00_LIB_USB
	tristate
	select RT2X00_LIB

config RT2X00_LIB
	tristate

config RT2X00_LIB_HT
	boolean

config RT2X00_LIB_FIRMWARE
	boolean
	select FW_LOADER

config RT2X00_LIB_CRYPTO
	boolean

config RT2X00_LIB_RFKILL
	boolean
	default y if (RT2X00_LIB=y && INPUT=y) || (RT2X00_LIB=m && INPUT!=n)
	select INPUT_POLLDEV

comment "rt2x00 rfkill support disabled due to modularized INPUT and built-in rt2x00"
	depends on RT2X00_LIB=y && INPUT=m

config RT2X00_LIB_LEDS
	boolean
	default y if (RT2X00_LIB=y && LEDS_CLASS=y) || (RT2X00_LIB=m && LEDS_CLASS!=n)

comment "rt2x00 leds support disabled due to modularized LEDS_CLASS and built-in rt2x00"
	depends on RT2X00_LIB=y && LEDS_CLASS=m

config RT2X00_LIB_DEBUGFS
	bool "Ralink debugfs support"
	depends on RT2X00_LIB && MAC80211_DEBUGFS
	---help---
	  Enable creation of debugfs files for the rt2x00 drivers.
	  These debugfs files support both reading and writing of the
	  most important register types of the rt2x00 hardware.

config RT2X00_DEBUG
	bool "Ralink debug output"
	depends on RT2X00_LIB
	---help---
	  Enable debugging output for all rt2x00 modules

endif
