config BRCMUTIL
	tristate

config BRCMSMAC
	tristate "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver"
	depends on MAC80211
	depends on BCMA_POSSIBLE
	select BCMA
	select NEW_LEDS if BCMA_DRIVER_GPIO
	select LEDS_CLASS if BCMA_DRIVER_GPIO
	select BRCMUTIL
	select FW_LOADER
	select CORDIC
	---help---
	  This module adds support for PCIe wireless adapters based on Broadcom
	  IEEE802.11n SoftMAC chipsets. It also has WLAN led support, which will
	  be available if you select BCMA_DRIVER_GPIO. If you choose to build a
	  module, the driver will be called brcmsmac.ko.

config BRCMFMAC
	tristate "Broadcom IEEE802.11n embedded FullMAC WLAN driver"
	depends on CFG80211
	select BRCMUTIL
	---help---
	  This module adds support for embedded wireless adapters based on
	  Broadcom IEEE802.11n FullMAC chipsets. It has to work with at least
	  one of the bus interface support. If you choose to build a module,
	  it'll be called brcmfmac.ko.

config BRCMFMAC_SDIO
	bool "SDIO bus interface support for FullMAC driver"
	depends on (MMC = y || MMC = BRCMFMAC)
	depends on BRCMFMAC
	select FW_LOADER
	default y
	---help---
	  This option enables the SDIO bus interface support for Broadcom
	  IEEE802.11n embedded FullMAC WLAN driver. Say Y if you want to
	  use the driver for a SDIO wireless card.

config BRCMFMAC_USB
	bool "USB bus interface support for FullMAC driver"
	depends on (USB = y || USB = BRCMFMAC)
	depends on BRCMFMAC
	select FW_LOADER
	---help---
	  This option enables the USB bus interface support for Broadcom
	  IEEE802.11n embedded FullMAC WLAN driver. Say Y if you want to
	  use the driver for an USB wireless card.

config BRCMFMAC_PCIE
	bool "PCIE bus interface support for FullMAC driver"
	depends on BRCMFMAC
	depends on PCI
	select FW_LOADER
	---help---
	  This option enables the PCIE bus interface support for Broadcom
	  IEEE802.11ac embedded FullMAC WLAN driver. Say Y if you want to
	  use the driver for an PCIE wireless card.

config BRCM_TRACING
	bool "Broadcom device tracing"
	depends on BRCMSMAC || BRCMFMAC
	---help---
	  If you say Y here, the Broadcom wireless drivers will register
	  with ftrace to dump event information into the trace ringbuffer.
	  Tracing can be enabled at runtime to aid in debugging wireless
	  issues. This option adds a small amount of overhead when tracing
	  is disabled. If unsure, say Y to allow developers to better help
	  you when wireless problems occur.

config BRCMDBG
	bool "Broadcom driver debug functions"
	depends on BRCMSMAC || BRCMFMAC
	---help---
	  Selecting this enables additional code for debug purposes.
