162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciconfig B43 362306a36Sopenharmony_ci tristate "Broadcom 43xx wireless support (mac80211 stack)" 462306a36Sopenharmony_ci depends on (BCMA_POSSIBLE || SSB_POSSIBLE) && MAC80211 && HAS_DMA 562306a36Sopenharmony_ci select BCMA if B43_BCMA 662306a36Sopenharmony_ci select SSB if B43_SSB 762306a36Sopenharmony_ci select FW_LOADER 862306a36Sopenharmony_ci select CORDIC 962306a36Sopenharmony_ci help 1062306a36Sopenharmony_ci b43 is a driver for the Broadcom 43xx series wireless devices. 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci Check "lspci" for something like 1362306a36Sopenharmony_ci "Broadcom Corporation BCM43XX 802.11 Wireless LAN Controller" 1462306a36Sopenharmony_ci to determine whether you own such a device. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci This driver supports the new BCM43xx IEEE 802.11G devices, but not 1762306a36Sopenharmony_ci the old IEEE 802.11B devices. Old devices are supported by 1862306a36Sopenharmony_ci the b43legacy driver. 1962306a36Sopenharmony_ci Note that this has nothing to do with the standard that your AccessPoint 2062306a36Sopenharmony_ci supports (A, B, G or a combination). 2162306a36Sopenharmony_ci IEEE 802.11G devices can talk to IEEE 802.11B AccessPoints. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci It is safe to include both b43 and b43legacy as the underlying glue 2462306a36Sopenharmony_ci layer will automatically load the correct version for your device. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci This driver uses V4 firmware, which must be installed separately using 2762306a36Sopenharmony_ci b43-fwcutter. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci This driver can be built as a module (recommended) that will be called "b43". 3062306a36Sopenharmony_ci If unsure, say M. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciconfig B43_BCMA 3362306a36Sopenharmony_ci bool 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciconfig B43_SSB 3662306a36Sopenharmony_ci bool 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_cichoice 3962306a36Sopenharmony_ci prompt "Supported bus types" 4062306a36Sopenharmony_ci depends on B43 4162306a36Sopenharmony_ci default B43_BUSES_BCMA_AND_SSB 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciconfig B43_BUSES_BCMA_AND_SSB 4462306a36Sopenharmony_ci bool "BCMA and SSB" 4562306a36Sopenharmony_ci depends on BCMA_POSSIBLE && SSB_POSSIBLE 4662306a36Sopenharmony_ci select B43_BCMA 4762306a36Sopenharmony_ci select B43_SSB 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciconfig B43_BUSES_BCMA 5062306a36Sopenharmony_ci bool "BCMA only" 5162306a36Sopenharmony_ci depends on BCMA_POSSIBLE 5262306a36Sopenharmony_ci select B43_BCMA 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciconfig B43_BUSES_SSB 5562306a36Sopenharmony_ci bool "SSB only" 5662306a36Sopenharmony_ci depends on SSB_POSSIBLE 5762306a36Sopenharmony_ci select B43_SSB 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ciendchoice 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci# Auto-select SSB PCI-HOST support, if possible 6262306a36Sopenharmony_ciconfig B43_PCI_AUTOSELECT 6362306a36Sopenharmony_ci bool 6462306a36Sopenharmony_ci depends on B43 && SSB_PCIHOST_POSSIBLE 6562306a36Sopenharmony_ci select SSB_PCIHOST 6662306a36Sopenharmony_ci select SSB_B43_PCI_BRIDGE 6762306a36Sopenharmony_ci default y 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci# Auto-select SSB PCICORE driver, if possible 7062306a36Sopenharmony_ciconfig B43_PCICORE_AUTOSELECT 7162306a36Sopenharmony_ci bool 7262306a36Sopenharmony_ci depends on B43 && SSB_DRIVER_PCICORE_POSSIBLE 7362306a36Sopenharmony_ci select SSB_DRIVER_PCICORE 7462306a36Sopenharmony_ci default y 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ciconfig B43_SDIO 7762306a36Sopenharmony_ci bool "Broadcom 43xx SDIO device support" 7862306a36Sopenharmony_ci depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE 7962306a36Sopenharmony_ci select SSB_SDIOHOST 8062306a36Sopenharmony_ci help 8162306a36Sopenharmony_ci Broadcom 43xx device support for Soft-MAC SDIO devices. 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci With this config option you can drive Soft-MAC b43 cards with a 8462306a36Sopenharmony_ci Secure Digital I/O interface. 8562306a36Sopenharmony_ci This includes the WLAN daughter card found on the Nintendo Wii 8662306a36Sopenharmony_ci video game console. 8762306a36Sopenharmony_ci Note that this does not support Broadcom 43xx Full-MAC devices. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci It's safe to select Y here, even if you don't have a B43 SDIO device. 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci If unsure, say N. 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci#Data transfers to the device via PIO. We want it as a fallback even 9462306a36Sopenharmony_ci# if we can do DMA. 9562306a36Sopenharmony_ciconfig B43_BCMA_PIO 9662306a36Sopenharmony_ci bool 9762306a36Sopenharmony_ci depends on B43 && B43_BCMA 9862306a36Sopenharmony_ci select BCMA_BLOCKIO 9962306a36Sopenharmony_ci default y 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ciconfig B43_PIO 10262306a36Sopenharmony_ci bool 10362306a36Sopenharmony_ci depends on B43 && B43_SSB 10462306a36Sopenharmony_ci select SSB_BLOCKIO 10562306a36Sopenharmony_ci default y 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ciconfig B43_PHY_G 10862306a36Sopenharmony_ci bool "Support for G-PHY (802.11g) devices" 10962306a36Sopenharmony_ci depends on B43 && B43_SSB 11062306a36Sopenharmony_ci default y 11162306a36Sopenharmony_ci help 11262306a36Sopenharmony_ci This PHY type can be found in the following chipsets: 11362306a36Sopenharmony_ci PCI: BCM4306, BCM4311, BCM4318 11462306a36Sopenharmony_ci SoC: BCM4712, BCM5352E 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ciconfig B43_PHY_N 11762306a36Sopenharmony_ci bool "Support for N-PHY (the main 802.11n series) devices" 11862306a36Sopenharmony_ci depends on B43 11962306a36Sopenharmony_ci default y 12062306a36Sopenharmony_ci help 12162306a36Sopenharmony_ci This PHY type can be found in the following chipsets: 12262306a36Sopenharmony_ci PCI: BCM4321, BCM4322, 12362306a36Sopenharmony_ci BCM43222, BCM43224, BCM43225, 12462306a36Sopenharmony_ci BCM43131, BCM43217, BCM43227, BCM43228 12562306a36Sopenharmony_ci SoC: BCM4716, BCM4717, BCM4718, BCM5356, BCM5357, BCM5358 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ciconfig B43_PHY_LP 12862306a36Sopenharmony_ci bool "Support for LP-PHY (low-power 802.11g) devices" 12962306a36Sopenharmony_ci depends on B43 && B43_SSB 13062306a36Sopenharmony_ci default y 13162306a36Sopenharmony_ci help 13262306a36Sopenharmony_ci The LP-PHY is a low-power PHY built into some notebooks 13362306a36Sopenharmony_ci and embedded devices. It supports 802.11a/b/g 13462306a36Sopenharmony_ci (802.11a support is optional, and currently disabled). 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ciconfig B43_PHY_HT 13762306a36Sopenharmony_ci bool "Support for HT-PHY (high throughput 802.11n) devices" 13862306a36Sopenharmony_ci depends on B43 && B43_BCMA 13962306a36Sopenharmony_ci default y 14062306a36Sopenharmony_ci help 14162306a36Sopenharmony_ci This PHY type with 3x3:3 MIMO can be found in the BCM4331 PCI chipset. 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ciconfig B43_PHY_LCN 14462306a36Sopenharmony_ci bool "Support for LCN-PHY devices (BROKEN)" 14562306a36Sopenharmony_ci depends on B43 && BROKEN 14662306a36Sopenharmony_ci help 14762306a36Sopenharmony_ci Support for the LCN-PHY. 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci Say N, this is BROKEN and crashes driver. 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ciconfig B43_PHY_AC 15262306a36Sopenharmony_ci bool "Support for AC-PHY (802.11ac) devices (BROKEN)" 15362306a36Sopenharmony_ci depends on B43 && B43_BCMA && BROKEN 15462306a36Sopenharmony_ci help 15562306a36Sopenharmony_ci This PHY type can be found in the following chipsets: 15662306a36Sopenharmony_ci PCI: BCM4352, BCM4360 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci Say N, this is BROKEN and crashes driver. 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci# This config option automatically enables b43 LEDS support, 16162306a36Sopenharmony_ci# if it's possible. 16262306a36Sopenharmony_ciconfig B43_LEDS 16362306a36Sopenharmony_ci bool 16462306a36Sopenharmony_ci depends on B43 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43) 16562306a36Sopenharmony_ci default y 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci# This config option automatically enables b43 HW-RNG support, 16862306a36Sopenharmony_ci# if the HW-RNG core is enabled. 16962306a36Sopenharmony_ciconfig B43_HWRNG 17062306a36Sopenharmony_ci bool 17162306a36Sopenharmony_ci depends on B43 && (HW_RANDOM = y || HW_RANDOM = B43) 17262306a36Sopenharmony_ci default y 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ciconfig B43_DEBUG 17562306a36Sopenharmony_ci bool "Broadcom 43xx debugging" 17662306a36Sopenharmony_ci depends on B43 17762306a36Sopenharmony_ci help 17862306a36Sopenharmony_ci Broadcom 43xx debugging. 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci This adds additional runtime sanity checks and statistics to the driver. 18162306a36Sopenharmony_ci These checks and statistics might be expensive and hurt the runtime 18262306a36Sopenharmony_ci performance of your system. 18362306a36Sopenharmony_ci This also adds the b43 debugfs interface. 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci Do not enable this, unless you are debugging the driver. 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci Say N, if you are a distributor or user building a release kernel 18862306a36Sopenharmony_ci for production use. 18962306a36Sopenharmony_ci Only say Y, if you are debugging a problem in the b43 driver sourcecode. 190