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 RT2X00_LIB_PCI
	tristate
	select RT2X00_LIB

config RT2X00_LIB_USB
	tristate
	select RT2X00_LIB

config RT2X00_LIB
	tristate

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
