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.ko".

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

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.ko".

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.ko".

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.ko".

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.ko".

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.ko".

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
