# 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
	select WANT_DEV_COREDUMP

config RTW88_PCI
	tristate

config RTW88_SDIO
	tristate

config RTW88_USB
	tristate

config RTW88_8822B
	tristate

config RTW88_8822C
	tristate

config RTW88_8723X
	tristate

config RTW88_8703B
	tristate
	select RTW88_8723X

config RTW88_8723D
	tristate
	select RTW88_8723X

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_8723CS
	tristate "Realtek 8723CS SDIO wireless network adapter"
	depends on MMC
	select RTW88_CORE
	select RTW88_SDIO
	select RTW88_8703B
	help
	  Select this option to enable support for 8723CS chipset (EXPERIMENTAL)

	  This module adds support for the 8723CS 802.11n SDIO
	  wireless network adapter.

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

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
