# SPDX-License-Identifier: GPL-2.0-only
menuconfig RTW88
	tristate "Realtek 802.11ac wireless chips support"
	depends on MAC80211
	help
	  This module adds support for mac80211-based wireless drivers that
	  enables Realtek IEEE 802.11ac wireless chipsets.

	  If you choose to build a module, it'll be called rtw88.

if RTW88

config RTW88_CORE
	tristate

config RTW88_PCI
	tristate

config RTW88_SDIO
	tristate

config RTW88_USB
	tristate

config RTW88_8822B
	tristate

config RTW88_8822C
	tristate

config RTW88_8723D
	tristate

config RTW88_8821C
	tristate

config RTW88_8822BE
	tristate "Realtek 8822BE PCI wireless network adapter"
	depends on PCI
	select RTW88_CORE
	select RTW88_PCI
	select RTW88_8822B
	help
	  Select this option will enable support for 8822BE chipset

	  802.11ac PCIe wireless network adapter

config RTW88_8822BS
	tristate "Realtek 8822BS SDIO wireless network adapter"
	depends on MMC
	select RTW88_CORE
	select RTW88_SDIO
	select RTW88_8822B
	help
	  Select this option will enable support for 8822BS chipset

	  802.11ac SDIO wireless network adapter

config RTW88_8822BU
	tristate "Realtek 8822BU USB wireless network adapter"
	depends on USB
	select RTW88_CORE
	select RTW88_USB
	select RTW88_8822B
	help
	  Select this option will enable support for 8822BU chipset

	  802.11ac USB wireless network adapter

config RTW88_8822CE
	tristate "Realtek 8822CE PCI wireless network adapter"
	depends on PCI
	select RTW88_CORE
	select RTW88_PCI
	select RTW88_8822C
	help
	  Select this option will enable support for 8822CE chipset

	  802.11ac PCIe wireless network adapter

config RTW88_8822CS
	tristate "Realtek 8822CS SDIO wireless network adapter"
	depends on MMC
	select RTW88_CORE
	select RTW88_SDIO
	select RTW88_8822C
	help
	  Select this option will enable support for 8822CS chipset

	  802.11ac SDIO wireless network adapter

config RTW88_8822CU
	tristate "Realtek 8822CU USB wireless network adapter"
	depends on USB
	select RTW88_CORE
	select RTW88_USB
	select RTW88_8822C
	help
	  Select this option will enable support for 8822CU chipset

	  802.11ac USB wireless network adapter

config RTW88_8723DE
	tristate "Realtek 8723DE PCI wireless network adapter"
	depends on PCI
	select RTW88_CORE
	select RTW88_PCI
	select RTW88_8723D
	help
	  Select this option will enable support for 8723DE chipset

	  802.11n PCIe wireless network adapter

config RTW88_8723DS
	tristate "Realtek 8723DS SDIO wireless network adapter"
	depends on MMC
	select RTW88_CORE
	select RTW88_SDIO
	select RTW88_8723D
	help
	  Select this option will enable support for 8723DS chipset

	  802.11n SDIO wireless network adapter

config RTW88_8723DU
	tristate "Realtek 8723DU USB wireless network adapter"
	depends on USB
	select RTW88_CORE
	select RTW88_USB
	select RTW88_8723D
	help
	  Select this option will enable support for 8723DU chipset

	  802.11n USB wireless network adapter

config RTW88_8821CE
	tristate "Realtek 8821CE PCI wireless network adapter"
	depends on PCI
	select RTW88_CORE
	select RTW88_PCI
	select RTW88_8821C
	help
	  Select this option will enable support for 8821CE chipset

	  802.11ac PCIe wireless network adapter

config RTW88_8821CS
	tristate "Realtek 8821CS SDIO wireless network adapter"
	depends on MMC
	select RTW88_CORE
	select RTW88_SDIO
	select RTW88_8821C
	help
	  Select this option will enable support for 8821CS chipset

	  802.11ac SDIO wireless network adapter

config RTW88_8821CU
	tristate "Realtek 8821CU USB wireless network adapter"
	depends on USB
	select RTW88_CORE
	select RTW88_USB
	select RTW88_8821C
	help
	  Select this option will enable support for 8821CU chipset

	  802.11ac USB wireless network adapter

config RTW88_DEBUG
	bool "Realtek rtw88 debug support"
	depends on RTW88_CORE
	help
	  Enable debug support

	  If unsure, say Y to simplify debug problems

config RTW88_DEBUGFS
	bool "Realtek rtw88 debugfs support"
	depends on RTW88_CORE
	help
	  Enable debug support

	  If unsure, say Y to simplify debug problems

endif
