# SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
menuconfig RTW89
	tristate "Realtek 802.11ax wireless chips support"
	depends on MAC80211
	help
	  This module adds support for mac80211-based wireless drivers that
	  enables Realtek IEEE 802.11ax wireless chipsets.

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

if RTW89

config RTW89_CORE
	tristate
	select WANT_DEV_COREDUMP

config RTW89_PCI
	tristate

config RTW89_8851B
	tristate

config RTW89_8852A
	tristate

config RTW89_8852B_COMMON
	tristate

config RTW89_8852B
	tristate

config RTW89_8852BT
	tristate

config RTW89_8852C
	tristate

config RTW89_8922A
	tristate

config RTW89_8851BE
	tristate "Realtek 8851BE PCI wireless network (Wi-Fi 6) adapter"
	depends on PCI
	select RTW89_CORE
	select RTW89_PCI
	select RTW89_8851B
	help
	  Select this option will enable support for 8851BE chipset

	  802.11ax PCIe wireless network (Wi-Fi 6) adapter

config RTW89_8852AE
	tristate "Realtek 8852AE PCI wireless network (Wi-Fi 6) adapter"
	depends on PCI
	select RTW89_CORE
	select RTW89_PCI
	select RTW89_8852A
	help
	  Select this option will enable support for 8852AE chipset

	  802.11ax PCIe wireless network (Wi-Fi 6) adapter

config RTW89_8852BE
	tristate "Realtek 8852BE PCI wireless network (Wi-Fi 6) adapter"
	depends on PCI
	select RTW89_CORE
	select RTW89_PCI
	select RTW89_8852B
	select RTW89_8852B_COMMON
	help
	  Select this option will enable support for 8852BE chipset

	  802.11ax PCIe wireless network (Wi-Fi 6) adapter

config RTW89_8852BTE
	tristate "Realtek 8852BE-VT PCI wireless network (Wi-Fi 6) adapter"
	depends on PCI
	select RTW89_CORE
	select RTW89_PCI
	select RTW89_8852BT
	select RTW89_8852B_COMMON
	help
	  Select this option will enable support for 8852BE-VT chipset

	  802.11ax PCIe wireless network (Wi-Fi 6) adapter

config RTW89_8852CE
	tristate "Realtek 8852CE PCI wireless network (Wi-Fi 6E) adapter"
	depends on PCI
	select RTW89_CORE
	select RTW89_PCI
	select RTW89_8852C
	help
	  Select this option will enable support for 8852CE chipset

	  802.11ax PCIe wireless network (Wi-Fi 6E) adapter

config RTW89_8922AE
	tristate "Realtek 8922AE PCI wireless network (Wi-Fi 7) adapter"
	depends on PCI
	select RTW89_CORE
	select RTW89_PCI
	select RTW89_8922A
	help
	  Select this option will enable support for 8922AE chipset

	  802.11be PCIe wireless network (Wi-Fi 7) adapter
	  supporting 2x2 2GHz/5GHz/6GHz 4096-QAM 160MHz channels.

config RTW89_DEBUG
	bool

config RTW89_DEBUGMSG
	bool "Realtek rtw89 debug message support"
	depends on RTW89_CORE
	select RTW89_DEBUG
	help
	  Enable debug message support

	  If unsure, say Y to simplify debug problems

config RTW89_DEBUGFS
	bool "Realtek rtw89 debugfs support"
	depends on RTW89_CORE
	select RTW89_DEBUG
	help
	  Enable debugfs support

	  If unsure, say Y to simplify debug problems

endif
