# SPDX-License-Identifier: ISC
config ATH5K
	tristate "Atheros 5xxx wireless cards support"
	depends on (PCI || ATH25) && MAC80211
	select ATH_COMMON
	select MAC80211_LEDS
	select LEDS_CLASS
	select NEW_LEDS
	select ATH5K_AHB if ATH25
	select ATH5K_PCI if !ATH25
	help
	  This module adds support for wireless adapters based on
	  Atheros 5xxx chipset.

	  Currently the following chip versions are supported:

	  MAC: AR5211 AR5212
	  PHY: RF5111/2111 RF5112/2112 RF5413/2413

	  This driver uses the kernel's mac80211 subsystem.

	  If you choose to build a module, it'll be called ath5k. Say M if
	  unsure.

config ATH5K_DEBUG
	bool "Atheros 5xxx debugging"
	depends on ATH5K
	help
	  Atheros 5xxx debugging messages.

	  Say Y, if and you will get debug options for ath5k.
	  To use this, you need to mount debugfs:

	  mount -t debugfs debug /sys/kernel/debug

	  You will get access to files under:
	  /sys/kernel/debug/ath5k/phy0/

	  To enable debug, pass the debug level to the debug module
	  parameter. For example:

	  modprobe ath5k debug=0x00000400

config ATH5K_TRACER
	bool "Atheros 5xxx tracer"
	depends on ATH5K
	depends on EVENT_TRACING
	help
	  Say Y here to enable tracepoints for the ath5k driver
	  using the kernel tracing infrastructure.  Select this
	  option if you are interested in debugging the driver.

	  If unsure, say N.

config ATH5K_AHB
	bool "Atheros 5xxx AHB bus support"
	depends on ATH25 && ATH5K
	help
	  This adds support for WiSoC type chipsets of the 5xxx Atheros
	  family.

config ATH5K_PCI
	bool "Atheros 5xxx PCI bus support"
	depends on (!ATH25 && PCI)
	help
	  This adds support for PCI type chipsets of the 5xxx Atheros
	  family.

config ATH5K_TEST_CHANNELS
	bool "Enables testing channels on ath5k"
	depends on ATH5K && CFG80211_CERTIFICATION_ONUS
	help
	  This enables non-standard IEEE 802.11 channels on ath5k, which
	  can be used for research purposes. This option should be disabled
	  unless doing research.
