1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
258619b14SKalle Valoconfig B43
358619b14SKalle Valo	tristate "Broadcom 43xx wireless support (mac80211 stack)"
458619b14SKalle Valo	depends on (BCMA_POSSIBLE || SSB_POSSIBLE) && MAC80211 && HAS_DMA
558619b14SKalle Valo	select BCMA if B43_BCMA
658619b14SKalle Valo	select SSB if B43_SSB
758619b14SKalle Valo	select FW_LOADER
8d5a43355SPriit Laes	select CORDIC
9a7f7f624SMasahiro Yamada	help
1058619b14SKalle Valo	  b43 is a driver for the Broadcom 43xx series wireless devices.
1158619b14SKalle Valo
1258619b14SKalle Valo	  Check "lspci" for something like
1358619b14SKalle Valo	  "Broadcom Corporation BCM43XX 802.11 Wireless LAN Controller"
1458619b14SKalle Valo	  to determine whether you own such a device.
1558619b14SKalle Valo
1658619b14SKalle Valo	  This driver supports the new BCM43xx IEEE 802.11G devices, but not
1758619b14SKalle Valo	  the old IEEE 802.11B devices. Old devices are supported by
1858619b14SKalle Valo	  the b43legacy driver.
1958619b14SKalle Valo	  Note that this has nothing to do with the standard that your AccessPoint
2058619b14SKalle Valo	  supports (A, B, G or a combination).
2158619b14SKalle Valo	  IEEE 802.11G devices can talk to IEEE 802.11B AccessPoints.
2258619b14SKalle Valo
2358619b14SKalle Valo	  It is safe to include both b43 and b43legacy as the underlying glue
2458619b14SKalle Valo	  layer will automatically load the correct version for your device.
2558619b14SKalle Valo
2658619b14SKalle Valo	  This driver uses V4 firmware, which must be installed separately using
2758619b14SKalle Valo	  b43-fwcutter.
2858619b14SKalle Valo
2958619b14SKalle Valo	  This driver can be built as a module (recommended) that will be called "b43".
3058619b14SKalle Valo	  If unsure, say M.
3158619b14SKalle Valo
3258619b14SKalle Valoconfig B43_BCMA
3358619b14SKalle Valo	bool
3458619b14SKalle Valo
3558619b14SKalle Valoconfig B43_SSB
3658619b14SKalle Valo	bool
3758619b14SKalle Valo
3858619b14SKalle Valochoice
3958619b14SKalle Valo	prompt "Supported bus types"
4058619b14SKalle Valo	depends on B43
4158619b14SKalle Valo	default B43_BUSES_BCMA_AND_SSB
4258619b14SKalle Valo
4358619b14SKalle Valoconfig B43_BUSES_BCMA_AND_SSB
4458619b14SKalle Valo	bool "BCMA and SSB"
4558619b14SKalle Valo	depends on BCMA_POSSIBLE && SSB_POSSIBLE
4658619b14SKalle Valo	select B43_BCMA
4758619b14SKalle Valo	select B43_SSB
4858619b14SKalle Valo
4958619b14SKalle Valoconfig B43_BUSES_BCMA
5058619b14SKalle Valo	bool "BCMA only"
5158619b14SKalle Valo	depends on BCMA_POSSIBLE
5258619b14SKalle Valo	select B43_BCMA
5358619b14SKalle Valo
5458619b14SKalle Valoconfig B43_BUSES_SSB
5558619b14SKalle Valo	bool "SSB only"
5658619b14SKalle Valo	depends on SSB_POSSIBLE
5758619b14SKalle Valo	select B43_SSB
5858619b14SKalle Valo
5958619b14SKalle Valoendchoice
6058619b14SKalle Valo
6158619b14SKalle Valo# Auto-select SSB PCI-HOST support, if possible
6258619b14SKalle Valoconfig B43_PCI_AUTOSELECT
6358619b14SKalle Valo	bool
6458619b14SKalle Valo	depends on B43 && SSB_PCIHOST_POSSIBLE
6558619b14SKalle Valo	select SSB_PCIHOST
6658619b14SKalle Valo	select SSB_B43_PCI_BRIDGE
6758619b14SKalle Valo	default y
6858619b14SKalle Valo
6958619b14SKalle Valo# Auto-select SSB PCICORE driver, if possible
7058619b14SKalle Valoconfig B43_PCICORE_AUTOSELECT
7158619b14SKalle Valo	bool
7258619b14SKalle Valo	depends on B43 && SSB_DRIVER_PCICORE_POSSIBLE
7358619b14SKalle Valo	select SSB_DRIVER_PCICORE
7458619b14SKalle Valo	default y
7558619b14SKalle Valo
7658619b14SKalle Valoconfig B43_SDIO
7758619b14SKalle Valo	bool "Broadcom 43xx SDIO device support"
7858619b14SKalle Valo	depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE
7958619b14SKalle Valo	select SSB_SDIOHOST
80a7f7f624SMasahiro Yamada	help
8158619b14SKalle Valo	  Broadcom 43xx device support for Soft-MAC SDIO devices.
8258619b14SKalle Valo
8358619b14SKalle Valo	  With this config option you can drive Soft-MAC b43 cards with a
8458619b14SKalle Valo	  Secure Digital I/O interface.
8558619b14SKalle Valo	  This includes the WLAN daughter card found on the Nintendo Wii
8658619b14SKalle Valo	  video game console.
8758619b14SKalle Valo	  Note that this does not support Broadcom 43xx Full-MAC devices.
8858619b14SKalle Valo
8958619b14SKalle Valo	  It's safe to select Y here, even if you don't have a B43 SDIO device.
9058619b14SKalle Valo
9158619b14SKalle Valo	  If unsure, say N.
9258619b14SKalle Valo
9358619b14SKalle Valo#Data transfers to the device via PIO. We want it as a fallback even
9458619b14SKalle Valo# if we can do DMA.
9558619b14SKalle Valoconfig B43_BCMA_PIO
9658619b14SKalle Valo	bool
9758619b14SKalle Valo	depends on B43 && B43_BCMA
9858619b14SKalle Valo	select BCMA_BLOCKIO
9958619b14SKalle Valo	default y
10058619b14SKalle Valo
10158619b14SKalle Valoconfig B43_PIO
10258619b14SKalle Valo	bool
10358619b14SKalle Valo	depends on B43 && B43_SSB
10458619b14SKalle Valo	select SSB_BLOCKIO
10558619b14SKalle Valo	default y
10658619b14SKalle Valo
10758619b14SKalle Valoconfig B43_PHY_G
10858619b14SKalle Valo	bool "Support for G-PHY (802.11g) devices"
10958619b14SKalle Valo	depends on B43 && B43_SSB
11058619b14SKalle Valo	default y
111a7f7f624SMasahiro Yamada	help
11258619b14SKalle Valo	  This PHY type can be found in the following chipsets:
11358619b14SKalle Valo	  PCI: BCM4306, BCM4311, BCM4318
11458619b14SKalle Valo	  SoC: BCM4712, BCM5352E
11558619b14SKalle Valo
11658619b14SKalle Valoconfig B43_PHY_N
11758619b14SKalle Valo	bool "Support for N-PHY (the main 802.11n series) devices"
11858619b14SKalle Valo	depends on B43
11958619b14SKalle Valo	default y
120a7f7f624SMasahiro Yamada	help
12158619b14SKalle Valo	  This PHY type can be found in the following chipsets:
12258619b14SKalle Valo	  PCI: BCM4321, BCM4322,
12358619b14SKalle Valo	       BCM43222, BCM43224, BCM43225,
12458619b14SKalle Valo	       BCM43131, BCM43217, BCM43227, BCM43228
12558619b14SKalle Valo	  SoC: BCM4716, BCM4717, BCM4718, BCM5356, BCM5357, BCM5358
12658619b14SKalle Valo
12758619b14SKalle Valoconfig B43_PHY_LP
12858619b14SKalle Valo	bool "Support for LP-PHY (low-power 802.11g) devices"
12958619b14SKalle Valo	depends on B43 && B43_SSB
13058619b14SKalle Valo	default y
131a7f7f624SMasahiro Yamada	help
13258619b14SKalle Valo	  The LP-PHY is a low-power PHY built into some notebooks
13358619b14SKalle Valo	  and embedded devices. It supports 802.11a/b/g
13458619b14SKalle Valo	  (802.11a support is optional, and currently disabled).
13558619b14SKalle Valo
13658619b14SKalle Valoconfig B43_PHY_HT
13758619b14SKalle Valo	bool "Support for HT-PHY (high throughput 802.11n) devices"
13858619b14SKalle Valo	depends on B43 && B43_BCMA
13958619b14SKalle Valo	default y
140a7f7f624SMasahiro Yamada	help
14158619b14SKalle Valo	  This PHY type with 3x3:3 MIMO can be found in the BCM4331 PCI chipset.
14258619b14SKalle Valo
14358619b14SKalle Valoconfig B43_PHY_LCN
14458619b14SKalle Valo	bool "Support for LCN-PHY devices (BROKEN)"
14558619b14SKalle Valo	depends on B43 && BROKEN
146a7f7f624SMasahiro Yamada	help
14758619b14SKalle Valo	  Support for the LCN-PHY.
14858619b14SKalle Valo
14958619b14SKalle Valo	  Say N, this is BROKEN and crashes driver.
15058619b14SKalle Valo
15158619b14SKalle Valoconfig B43_PHY_AC
15258619b14SKalle Valo	bool "Support for AC-PHY (802.11ac) devices (BROKEN)"
15358619b14SKalle Valo	depends on B43 && B43_BCMA && BROKEN
154a7f7f624SMasahiro Yamada	help
15558619b14SKalle Valo	  This PHY type can be found in the following chipsets:
15658619b14SKalle Valo	  PCI: BCM4352, BCM4360
15758619b14SKalle Valo
15858619b14SKalle Valo	  Say N, this is BROKEN and crashes driver.
15958619b14SKalle Valo
16058619b14SKalle Valo# This config option automatically enables b43 LEDS support,
16158619b14SKalle Valo# if it's possible.
16258619b14SKalle Valoconfig B43_LEDS
16358619b14SKalle Valo	bool
16458619b14SKalle Valo	depends on B43 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43)
16558619b14SKalle Valo	default y
16658619b14SKalle Valo
16758619b14SKalle Valo# This config option automatically enables b43 HW-RNG support,
16858619b14SKalle Valo# if the HW-RNG core is enabled.
16958619b14SKalle Valoconfig B43_HWRNG
17058619b14SKalle Valo	bool
17158619b14SKalle Valo	depends on B43 && (HW_RANDOM = y || HW_RANDOM = B43)
17258619b14SKalle Valo	default y
17358619b14SKalle Valo
17458619b14SKalle Valoconfig B43_DEBUG
17558619b14SKalle Valo	bool "Broadcom 43xx debugging"
17658619b14SKalle Valo	depends on B43
177a7f7f624SMasahiro Yamada	help
17858619b14SKalle Valo	  Broadcom 43xx debugging.
17958619b14SKalle Valo
18058619b14SKalle Valo	  This adds additional runtime sanity checks and statistics to the driver.
18158619b14SKalle Valo	  These checks and statistics might be expensive and hurt the runtime
18258619b14SKalle Valo	  performance of your system.
18358619b14SKalle Valo	  This also adds the b43 debugfs interface.
18458619b14SKalle Valo
18558619b14SKalle Valo	  Do not enable this, unless you are debugging the driver.
18658619b14SKalle Valo
18758619b14SKalle Valo	  Say N, if you are a distributor or user building a release kernel
18858619b14SKalle Valo	  for production use.
18958619b14SKalle Valo	  Only say Y, if you are debugging a problem in the b43 driver sourcecode.
190