config BRCMUTIL
	tristate

config BRCMSMAC
	tristate "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver"
	depends on MAC80211
	depends on BCMA
	select BRCMUTIL
	select FW_LOADER
	select CRC_CCITT
	select CRC8
	select CORDIC
	---help---
	  This module adds support for PCIe wireless adapters based on Broadcom
	  IEEE802.11n SoftMAC chipsets.  If you choose to build a module, it'll
	  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
	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_SDIO_OOB
	bool "Out of band interrupt support for SDIO interface chipset"
	depends on BRCMFMAC_SDIO
	---help---
	  This option enables out-of-band interrupt support for Broadcom
	  SDIO Wifi chipset using fullmac in order to gain better
	  performance and deep sleep wake up capability on certain
	  platforms. Say N if you are unsure.

config BRCMFMAC_USB
	bool "USB bus interface support for FullMAC driver"
	depends on USB
	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 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.
