# SPDX-License-Identifier: GPL-2.0-only
menuconfig RT2X00
	tristate "Ralink driver support"
	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 PCI
	select RT2X00_LIB_MMIO
	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_MMIO
	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_MMIO
	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 RT2800PCI
	tristate "Ralink rt27xx/rt28xx/rt30xx (PCI/PCIe/PCMCIA) support"
	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
	select CRC_CCITT
	select 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 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 rt27xx/rt28xx/rt30xx (USB) support"
	depends on USB
	select RT2800_LIB
	select RT2X00_LIB_USB
	select RT2X00_LIB_FIRMWARE
	select RT2X00_LIB_CRYPTO
	select 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 SOC_RT288X || SOC_RT305X || SOC_MT7620
	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

config RT2800_LIB_MMIO
	tristate
	select RT2X00_LIB_MMIO
	select RT2800_LIB

config RT2X00_LIB_MMIO
	tristate

config RT2X00_LIB_PCI
	tristate
	select RT2X00_LIB

config RT2X00_LIB_SOC
	tristate
	select RT2X00_LIB

config RT2X00_LIB_USB
	tristate
	select RT2X00_LIB

config RT2X00_LIB
	tristate

config RT2X00_LIB_FIRMWARE
	bool
	select 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
