config B43
	tristate "Broadcom 43xx wireless support (mac80211 stack)"
	depends on SSB_POSSIBLE && MAC80211 && HAS_DMA
	select SSB
	select 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 "Support for BCMA bus"
	depends on B43 && BCMA
	default y

config B43_BCMA_EXTRA
	bool "Hardware support that overlaps with the brcmsmac driver"
	depends on B43_BCMA
	default n if BRCMSMAC
	default y

config B43_SSB
	bool
	depends on B43 && SSB
	default y

# 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_PCMCIA
	bool "Broadcom 43xx PCMCIA device support"
	depends on B43 && SSB_PCMCIAHOST_POSSIBLE
	select SSB_PCMCIAHOST
	---help---
	  Broadcom 43xx PCMCIA device support.

	  Support for 16bit PCMCIA devices.
	  Please note that most PC-CARD devices are _NOT_ 16bit PCMCIA
	  devices, but 32bit CardBUS devices. CardBUS devices are supported
	  out of the box by b43.

	  With this config option you can drive b43 cards in
	  CompactFlash formfactor in a PCMCIA adaptor.
	  CF b43 cards can sometimes be found in handheld PCs.

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

	  If unsure, say N.

config B43_SDIO
	bool "Broadcom 43xx SDIO device support (EXPERIMENTAL)"
	depends on B43 && SSB_SDIOHOST_POSSIBLE && EXPERIMENTAL
	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_BCMA
	select BCMA_BLOCKIO
	default y

config B43_PIO
	bool
	depends on B43
	select SSB_BLOCKIO
	default y

config B43_PHY_N
	bool "Support for 802.11n (N-PHY) devices (EXPERIMENTAL)"
	depends on B43 && EXPERIMENTAL
	---help---
	  Support for the N-PHY.

	  This enables support for devices with N-PHY.

	  Say N if you expect high stability and performance. Saying Y will not
	  affect other devices support and may provide support for basic needs.

config B43_PHY_LP
	bool "Support for low-power (LP-PHY) devices"
	depends on B43
	default y
	---help---
	  Support for the LP-PHY.
	  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) devices (EXPERIMENTAL)"
	depends on B43 && EXPERIMENTAL
	---help---
	  Support for the HT-PHY.

	  Enables support for BCM4331 and possibly other chipsets with that PHY.

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.

# 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 me expensive and hurt 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.
