config ATH9K_HW
	tristate
config ATH9K_COMMON
	tristate
	select ATH_COMMON
config ATH9K_DFS_DEBUGFS
	def_bool y
	depends on ATH9K_DEBUGFS && ATH9K_DFS_CERTIFIED

config ATH9K_BTCOEX_SUPPORT
	bool "Atheros bluetooth coexistence support"
	depends on (ATH9K || ATH9K_HTC)
	default y
	---help---
	  Say Y, if you want to use the ath9k/ath9k_htc radios together with
	  Bluetooth modules in the same system.

config ATH9K
	tristate "Atheros 802.11n wireless cards support"
	depends on MAC80211
	select ATH9K_HW
	select MAC80211_LEDS
	select LEDS_CLASS
	select NEW_LEDS
	select ATH9K_COMMON
	---help---
	  This module adds support for wireless adapters based on
	  Atheros IEEE 802.11n AR5008, AR9001 and AR9002 family
	  of chipsets. For a specific list of supported external
	  cards, laptops that already ship with these cards and
	  APs that come with these cards refer to to ath9k wiki
	  products page:

	  http://wireless.kernel.org/en/users/Drivers/ath9k/products

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

config ATH9K_PCI
	bool "Atheros ath9k PCI/PCIe bus support"
	default y
	depends on ATH9K && PCI
	---help---
	  This option enables the PCI bus support in ath9k.

	  Say Y, if you have a compatible PCI/PCIe wireless card.

config ATH9K_AHB
	bool "Atheros ath9k AHB bus support"
	depends on ATH9K
	default n
	---help---
	  This option enables the AHB bus support in ath9k.

	  Say Y, if you have a SoC with a compatible built-in
	  wireless MAC. Say N if unsure.

config ATH9K_DEBUGFS
	bool "Atheros ath9k debugging"
	depends on ATH9K
	select MAC80211_DEBUGFS
	---help---
	  Say Y, if you need access to ath9k's statistics for
	  interrupts, rate control, etc.

	  Also required for changing debug message flags at run time.

config ATH9K_DFS_CERTIFIED
	bool "Atheros DFS support for certified platforms"
	depends on ATH9K && CFG80211_CERTIFICATION_ONUS
	default n
	---help---
	  This option enables DFS support for initiating radiation on
	  ath9k. There is no way to dynamically detect if a card was DFS
	  certified and as such this is left as a build time option. This
	  option should only be enabled by system integrators that can
	  guarantee that all the platforms that their kernel will run on
	  have obtained appropriate regulatory body certification for a
	  respective Atheros card by using ath9k on the target shipping
	  platforms.

	  This is currently only a placeholder for future DFS support,
	  as DFS support requires more components that still need to be
	  developed. At this point enabling this option won't do anything
	  except increase code size.

config ATH9K_MAC_DEBUG
	bool "Atheros MAC statistics"
	depends on ATH9K_DEBUGFS
	default y
	---help---
	  This option enables collection of statistics for Rx/Tx status
	  data and some other MAC related statistics

config ATH9K_RATE_CONTROL
	bool "Atheros ath9k rate control"
	depends on ATH9K
	default y
	---help---
	  Say Y, if you want to use the ath9k specific rate control
	  module instead of minstrel_ht.

config ATH9K_HTC
       tristate "Atheros HTC based wireless cards support"
       depends on USB && MAC80211
       select ATH9K_HW
       select MAC80211_LEDS
       select LEDS_CLASS
       select NEW_LEDS
       select ATH9K_COMMON
       ---help---
	 Support for Atheros HTC based cards.
	 Chipsets supported: AR9271

	 For more information: http://wireless.kernel.org/en/users/Drivers/ath9k_htc

	 The built module will be ath9k_htc.

config ATH9K_HTC_DEBUGFS
	bool "Atheros ath9k_htc debugging"
	depends on ATH9K_HTC && DEBUG_FS
	---help---
	  Say Y, if you need access to ath9k_htc's statistics.
