config B43
	tristate "Broadcom 43xx wireless support (mac80211 stack)"
	depends on m
	depends on (BCMA_POSSIBLE || SSB_POSSIBLE) && MAC80211 && HAS_DMA
	select BCMA if B43_BCMA
	select SSB if B43_SSB
	depends on FW_LOADER
	---help---
	  b43 is a driver for the Broadcom 43xx series wireless devices.

	  Check "lspci" for something like
	  "Broadcom Corporation BCM43XX 802.11 Wireless LAN Controller"
	  to determine whether you own such a device.

	  This driver supports the new BCM43xx IEEE 802.11G devices, but not
	  the old IEEE 802.11B devices. Old devices are supported by
	  the b43legacy driver.
	  Note that this has nothing to do with the standard that your AccessPoint
	  supports (A, B, G or a combination).
	  IEEE 802.11G devices can talk to IEEE 802.11B AccessPoints.

	  It is safe to include both b43 and b43legacy as the underlying glue
	  layer will automatically load the correct version for your device.

	  This driver uses V4 firmware, which must be installed separately using
	  b43-fwcutter.

	  This driver can be built as a module (recommended) that will be called "b43".
	  If unsure, say M.

config B43_BCMA
	bool

config B43_SSB
	bool

choice
	prompt "Supported bus types"
	depends on B43
	default B43_BUSES_BCMA_AND_SSB

config B43_BUSES_BCMA_AND_SSB
	bool "BCMA and SSB"
	depends on BCMA_POSSIBLE && SSB_POSSIBLE
	select B43_BCMA
	select B43_SSB

config B43_BUSES_BCMA
	bool "BCMA only"
	depends on BCMA_POSSIBLE
	select B43_BCMA

config B43_BUSES_SSB
	bool "SSB only"
	depends on SSB_POSSIBLE
	select B43_SSB

endchoice

# Auto-select SSB PCI-HOST support, if possible
config B43_PCI_AUTOSELECT
	bool
	depends on B43 && SSB_PCIHOST_POSSIBLE
	select SSB_PCIHOST
	select SSB_B43_PCI_BRIDGE
	default y

# Auto-select SSB PCICORE driver, if possible
config B43_PCICORE_AUTOSELECT
	bool
	depends on B43 && SSB_DRIVER_PCICORE_POSSIBLE
	select SSB_DRIVER_PCICORE
	default y

config B43_SDIO
	bool "Broadcom 43xx SDIO device support"
	depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE
	select SSB_SDIOHOST
	---help---
	  Broadcom 43xx device support for Soft-MAC SDIO devices.

	  With this config option you can drive Soft-MAC b43 cards with a
	  Secure Digital I/O interface.
	  This includes the WLAN daughter card found on the Nintendo Wii
	  video game console.
	  Note that this does not support Broadcom 43xx Full-MAC devices.

	  It's safe to select Y here, even if you don't have a B43 SDIO device.

	  If unsure, say N.

#Data transfers to the device via PIO. We want it as a fallback even
# if we can do DMA.
config B43_BCMA_PIO
	bool
	depends on B43 && B43_BCMA
	select BCMA_BLOCKIO
	default y

config B43_PIO
	bool
	depends on B43 && B43_SSB
	select SSB_BLOCKIO
	default y

config B43_PHY_G
	bool "Support for G-PHY (802.11g) devices"
	depends on B43 && B43_SSB
	default y
	---help---
	  This PHY type can be found in the following chipsets:
	  PCI: BCM4306, BCM4311, BCM4318
	  SoC: BCM4712, BCM5352E

config B43_PHY_N
	bool "Support for N-PHY (the main 802.11n series) devices"
	depends on B43
	default y
	---help---
	  This PHY type can be found in the following chipsets:
	  PCI: BCM4321, BCM4322,
	       BCM43222, BCM43224, BCM43225,
	       BCM43131, BCM43217, BCM43227, BCM43228
	  SoC: BCM4716, BCM4717, BCM4718, BCM5356, BCM5357, BCM5358

config B43_PHY_LP
	bool "Support for LP-PHY (low-power 802.11g) devices"
	depends on B43 && B43_SSB
	default y
	---help---
	  The LP-PHY is a low-power PHY built into some notebooks
	  and embedded devices. It supports 802.11a/b/g
	  (802.11a support is optional, and currently disabled).

config B43_PHY_HT
	bool "Support for HT-PHY (high throughput 802.11n) devices"
	depends on B43 && B43_BCMA
	default y
	---help---
	  This PHY type with 3x3:3 MIMO can be found in the BCM4331 PCI chipset.

config B43_PHY_LCN
	bool "Support for LCN-PHY devices (BROKEN)"
	depends on B43 && BROKEN
	---help---
	  Support for the LCN-PHY.

	  Say N, this is BROKEN and crashes driver.

config B43_PHY_AC
	bool "Support for AC-PHY (802.11ac) devices (BROKEN)"
	depends on B43 && B43_BCMA && BROKEN
	---help---
	  This PHY type can be found in the following chipsets:
	  PCI: BCM4352, BCM4360

	  Say N, this is BROKEN and crashes driver.

# This config option automatically enables b43 LEDS support,
# if it's possible.
config B43_LEDS
	bool
	depends on B43 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43)
	default y

# This config option automatically enables b43 HW-RNG support,
# if the HW-RNG core is enabled.
config B43_HWRNG
	bool
	depends on B43 && (HW_RANDOM = y || HW_RANDOM = B43)
	default y

config B43_DEBUG
	bool "Broadcom 43xx debugging"
	depends on B43
	---help---
	  Broadcom 43xx debugging.

	  This adds additional runtime sanity checks and statistics to the driver.
	  These checks and statistics might be expensive and hurt the runtime
	  performance of your system.
	  This also adds the b43 debugfs interface.

	  Do not enable this, unless you are debugging the driver.

	  Say N, if you are a distributor or user building a release kernel
	  for production use.
	  Only say Y, if you are debugging a problem in the b43 driver sourcecode.
