menuconfig RT2X00
	tristate "Ralink driver support"
	depends on m
	depends on MAC80211 && HAS_DMA
	---help---
	  This will enable the 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 m
	depends on PCI
	select RT2X00_LIB_MMIO
	select RT2X00_LIB_PCI
	depends on 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 m
	depends on PCI
	select RT2X00_LIB_MMIO
	select RT2X00_LIB_PCI
	depends on 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 m
	depends on PCI
	select RT2X00_LIB_PCI
	select RT2X00_LIB_MMIO
	select RT2X00_LIB_FIRMWARE
	select RT2X00_LIB_CRYPTO
	depends on CRC_ITU_T
	depends on 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 RT2800PCI
	tristate "Ralink rt27xx/rt28xx/rt30xx (PCI/PCIe/PCMCIA) support"
	depends on m
	depends on PCI
	select RT2800_LIB
	select RT2800_LIB_MMIO
	select RT2X00_LIB_MMIO
	select RT2X00_LIB_PCI
	select RT2X00_LIB_FIRMWARE
	select RT2X00_LIB_CRYPTO
	depends on CRC_CCITT
	depends on EEPROM_93CX6
	---help---
	  This adds support for rt27xx/rt28xx/rt30xx wireless chipset family.
	  Supported chips: RT2760, RT2790, RT2860, RT2880, RT2890, RT3052,
			   RT3090, RT3091 & RT3092

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

if RT2800PCI

config RT2800PCI_RT33XX
	bool "rt2800pci - Include support for rt33xx devices"
	default y
	---help---
	  This adds support for rt33xx wireless chipset family to the
	  rt2800pci driver.
	  Supported chips: RT3390

config RT2800PCI_RT35XX
	bool "rt2800pci - Include support for rt35xx devices (EXPERIMENTAL)"
	default y
	---help---
	  This adds support for rt35xx wireless chipset family to the
	  rt2800pci driver.
	  Supported chips: RT3060, RT3062, RT3562, RT3592


config RT2800PCI_RT53XX
       bool "rt2800pci - Include support for rt53xx devices (EXPERIMENTAL)"
       default y
       ---help---
         This adds support for rt53xx wireless chipset family to the
         rt2800pci driver.
         Supported chips: RT5390

config RT2800PCI_RT3290
       bool "rt2800pci - Include support for rt3290 devices (EXPERIMENTAL)"
       default y
       ---help---
         This adds support for rt3290 wireless chipset family to the
         rt2800pci driver.
         Supported chips: RT3290
endif

config RT2500USB
	tristate "Ralink rt2500 (USB) support"
	depends on m
	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 m
	depends on USB
	select RT2X00_LIB_USB
	select RT2X00_LIB_FIRMWARE
	select RT2X00_LIB_CRYPTO
	depends on 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 rt27xx/rt28xx/rt30xx (USB) support"
	depends on m
	depends on USB
	select RT2800_LIB
	select RT2X00_LIB_USB
	select RT2X00_LIB_FIRMWARE
	select RT2X00_LIB_CRYPTO
	depends on CRC_CCITT
	---help---
	  This adds support for rt27xx/rt28xx/rt30xx wireless chipset family.
	  Supported chips: RT2770, RT2870 & RT3070, RT3071 & RT3072

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

if RT2800USB

config RT2800USB_RT33XX
	bool "rt2800usb - Include support for rt33xx devices"
	default y
	---help---
	  This adds support for rt33xx wireless chipset family to the
	  rt2800usb driver.
	  Supported chips: RT3370

config RT2800USB_RT35XX
	bool "rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)"
	default y
	---help---
	  This adds support for rt35xx wireless chipset family to the
	  rt2800usb driver.
	  Supported chips: RT3572

config RT2800USB_RT3573
	bool "rt2800usb - Include support for rt3573 devices (EXPERIMENTAL)"
	---help---
	  This enables support for RT3573 chipset based wireless USB devices
	  in the rt2800usb driver.

config RT2800USB_RT53XX
       bool "rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)"
       ---help---
         This adds support for rt53xx wireless chipset family to the
         rt2800usb driver.
         Supported chips: RT5370

config RT2800USB_RT55XX
       bool "rt2800usb - Include support for rt55xx devices (EXPERIMENTAL)"
       ---help---
         This adds support for rt55xx wireless chipset family to the
         rt2800usb driver.
         Supported chips: RT5572

config RT2800USB_UNKNOWN
	bool "rt2800usb - Include support for unknown (USB) devices"
	default n
	---help---
	  This adds support for rt2800usb devices that are known to
	  have a rt28xx family compatible chipset, but for which the exact
	  chipset is unknown.

	  Support status for these devices is unknown, and enabling these
	  devices may or may not work.

endif

config RT2800SOC
	tristate "Ralink WiSoC support"
	depends on m
	depends on SOC_RT288X || SOC_RT305X
	select RT2X00_LIB_SOC
	select RT2X00_LIB_MMIO
	select RT2X00_LIB_CRYPTO
	select RT2X00_LIB_FIRMWARE
	select RT2800_LIB
	select RT2800_LIB_MMIO
	---help---
	  This adds support for Ralink WiSoC devices.
	  Supported chips: RT2880, RT3050, RT3052, RT3350, RT3352.

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


config RT2800_LIB
	tristate
	depends on m

config RT2800_LIB_MMIO
	tristate
	depends on m
	select RT2X00_LIB_MMIO
	select RT2800_LIB

config RT2X00_LIB_MMIO
	tristate
	depends on m

config RT2X00_LIB_PCI
	tristate
	depends on m
	select RT2X00_LIB

config RT2X00_LIB_SOC
	tristate
	depends on m
	select RT2X00_LIB

config RT2X00_LIB_USB
	tristate
	depends on m
	select RT2X00_LIB

config RT2X00_LIB
	tristate
	depends on m

config RT2X00_LIB_FIRMWARE
	bool
	depends on FW_LOADER

config RT2X00_LIB_CRYPTO
	bool

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

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
