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 (EXPERIMENTAL)"
	depends on ATH10K && MMC
	---help---
	  This module adds experimental support for SDIO/MMC bus. Currently
	  work in progress and will not fully work.

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 (EXPERIMENTAL)"
        depends on ATH10K && ARCH_QCOM
        ---help---
          This module adds support for integrated WCN3990 chip connected
          to system NOC(SNOC). Currently work in progress and will not
          fully work.

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.
