# SPDX-License-Identifier: ISC
config ATH10K
	tristate "Atheros 802.11ac wireless cards support"
	depends on MAC80211 && HAS_DMA
	select ATH_COMMON
	select CRC32
	select WANT_DEV_COREDUMP
	select ATH10K_CE
	help
	  This module adds support for wireless adapters based on
	  Atheros IEEE 802.11ac family of chipsets.

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

config ATH10K_CE
	bool

config ATH10K_PCI
	tristate "Atheros ath10k PCI support"
	depends on ATH10K && PCI
	help
	  This module adds support for PCIE bus

config ATH10K_AHB
	bool "Atheros ath10k AHB support"
	depends on ATH10K_PCI && OF && RESET_CONTROLLER
	help
	  This module adds support for AHB bus

config ATH10K_SDIO
	tristate "Atheros ath10k SDIO support"
	depends on ATH10K && MMC
	help
	  This module adds support for SDIO/MMC bus.

config ATH10K_USB
	tristate "Atheros ath10k USB support (EXPERIMENTAL)"
	depends on ATH10K && USB
	help
	  This module adds experimental support for USB bus. Currently
	  work in progress and will not fully work.

config ATH10K_SNOC
	tristate "Qualcomm ath10k SNOC support"
	depends on ATH10K
	depends on ARCH_QCOM || COMPILE_TEST
	select QCOM_SCM
	select QCOM_QMI_HELPERS
	help
	  This module adds support for integrated WCN3990 chip connected
	  to system NOC(SNOC).

config ATH10K_DEBUG
	bool "Atheros ath10k debugging"
	depends on ATH10K
	help
	  Enables debug support

	  If unsure, say Y to make it easier to debug problems.

config ATH10K_DEBUGFS
	bool "Atheros ath10k debugfs support"
	depends on ATH10K && DEBUG_FS
	help
	  Enabled debugfs support

	  If unsure, say Y to make it easier to debug problems.

config ATH10K_SPECTRAL
	bool "Atheros ath10k spectral scan support"
	depends on ATH10K_DEBUGFS
	select RELAY
	default n
	help
	  Say Y to enable access to the FFT/spectral data via debugfs.

config ATH10K_TRACING
	bool "Atheros ath10k tracing support"
	depends on ATH10K
	depends on EVENT_TRACING
	help
	  Select this to ath10k use tracing infrastructure.

config ATH10K_DFS_CERTIFIED
	bool "Atheros DFS support for certified platforms"
	depends on ATH10K && CFG80211_CERTIFICATION_ONUS
	default n
	help
	This option enables DFS support for initiating radiation on
	ath10k.
