# 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
	depends on QCOM_SMEM
	depends on QCOM_RPROC_COMMON || QCOM_RPROC_COMMON=n
	select POWER_SEQUENCING
	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_LEDS
	bool
	depends on ATH10K
	depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
	default y

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.
