18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ciconfig B43 38c2ecf20Sopenharmony_ci tristate "Broadcom 43xx wireless support (mac80211 stack)" 48c2ecf20Sopenharmony_ci depends on (BCMA_POSSIBLE || SSB_POSSIBLE) && MAC80211 && HAS_DMA 58c2ecf20Sopenharmony_ci select BCMA if B43_BCMA 68c2ecf20Sopenharmony_ci select SSB if B43_SSB 78c2ecf20Sopenharmony_ci select FW_LOADER 88c2ecf20Sopenharmony_ci select CORDIC 98c2ecf20Sopenharmony_ci help 108c2ecf20Sopenharmony_ci b43 is a driver for the Broadcom 43xx series wireless devices. 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci Check "lspci" for something like 138c2ecf20Sopenharmony_ci "Broadcom Corporation BCM43XX 802.11 Wireless LAN Controller" 148c2ecf20Sopenharmony_ci to determine whether you own such a device. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci This driver supports the new BCM43xx IEEE 802.11G devices, but not 178c2ecf20Sopenharmony_ci the old IEEE 802.11B devices. Old devices are supported by 188c2ecf20Sopenharmony_ci the b43legacy driver. 198c2ecf20Sopenharmony_ci Note that this has nothing to do with the standard that your AccessPoint 208c2ecf20Sopenharmony_ci supports (A, B, G or a combination). 218c2ecf20Sopenharmony_ci IEEE 802.11G devices can talk to IEEE 802.11B AccessPoints. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci It is safe to include both b43 and b43legacy as the underlying glue 248c2ecf20Sopenharmony_ci layer will automatically load the correct version for your device. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci This driver uses V4 firmware, which must be installed separately using 278c2ecf20Sopenharmony_ci b43-fwcutter. 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci This driver can be built as a module (recommended) that will be called "b43". 308c2ecf20Sopenharmony_ci If unsure, say M. 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciconfig B43_BCMA 338c2ecf20Sopenharmony_ci bool 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciconfig B43_SSB 368c2ecf20Sopenharmony_ci bool 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_cichoice 398c2ecf20Sopenharmony_ci prompt "Supported bus types" 408c2ecf20Sopenharmony_ci depends on B43 418c2ecf20Sopenharmony_ci default B43_BUSES_BCMA_AND_SSB 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ciconfig B43_BUSES_BCMA_AND_SSB 448c2ecf20Sopenharmony_ci bool "BCMA and SSB" 458c2ecf20Sopenharmony_ci depends on BCMA_POSSIBLE && SSB_POSSIBLE 468c2ecf20Sopenharmony_ci select B43_BCMA 478c2ecf20Sopenharmony_ci select B43_SSB 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ciconfig B43_BUSES_BCMA 508c2ecf20Sopenharmony_ci bool "BCMA only" 518c2ecf20Sopenharmony_ci depends on BCMA_POSSIBLE 528c2ecf20Sopenharmony_ci select B43_BCMA 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ciconfig B43_BUSES_SSB 558c2ecf20Sopenharmony_ci bool "SSB only" 568c2ecf20Sopenharmony_ci depends on SSB_POSSIBLE 578c2ecf20Sopenharmony_ci select B43_SSB 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ciendchoice 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci# Auto-select SSB PCI-HOST support, if possible 628c2ecf20Sopenharmony_ciconfig B43_PCI_AUTOSELECT 638c2ecf20Sopenharmony_ci bool 648c2ecf20Sopenharmony_ci depends on B43 && SSB_PCIHOST_POSSIBLE 658c2ecf20Sopenharmony_ci select SSB_PCIHOST 668c2ecf20Sopenharmony_ci select SSB_B43_PCI_BRIDGE 678c2ecf20Sopenharmony_ci default y 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci# Auto-select SSB PCICORE driver, if possible 708c2ecf20Sopenharmony_ciconfig B43_PCICORE_AUTOSELECT 718c2ecf20Sopenharmony_ci bool 728c2ecf20Sopenharmony_ci depends on B43 && SSB_DRIVER_PCICORE_POSSIBLE 738c2ecf20Sopenharmony_ci select SSB_DRIVER_PCICORE 748c2ecf20Sopenharmony_ci default y 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciconfig B43_SDIO 778c2ecf20Sopenharmony_ci bool "Broadcom 43xx SDIO device support" 788c2ecf20Sopenharmony_ci depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE 798c2ecf20Sopenharmony_ci select SSB_SDIOHOST 808c2ecf20Sopenharmony_ci help 818c2ecf20Sopenharmony_ci Broadcom 43xx device support for Soft-MAC SDIO devices. 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci With this config option you can drive Soft-MAC b43 cards with a 848c2ecf20Sopenharmony_ci Secure Digital I/O interface. 858c2ecf20Sopenharmony_ci This includes the WLAN daughter card found on the Nintendo Wii 868c2ecf20Sopenharmony_ci video game console. 878c2ecf20Sopenharmony_ci Note that this does not support Broadcom 43xx Full-MAC devices. 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci It's safe to select Y here, even if you don't have a B43 SDIO device. 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci If unsure, say N. 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci#Data transfers to the device via PIO. We want it as a fallback even 948c2ecf20Sopenharmony_ci# if we can do DMA. 958c2ecf20Sopenharmony_ciconfig B43_BCMA_PIO 968c2ecf20Sopenharmony_ci bool 978c2ecf20Sopenharmony_ci depends on B43 && B43_BCMA 988c2ecf20Sopenharmony_ci select BCMA_BLOCKIO 998c2ecf20Sopenharmony_ci default y 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ciconfig B43_PIO 1028c2ecf20Sopenharmony_ci bool 1038c2ecf20Sopenharmony_ci depends on B43 && B43_SSB 1048c2ecf20Sopenharmony_ci select SSB_BLOCKIO 1058c2ecf20Sopenharmony_ci default y 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ciconfig B43_PHY_G 1088c2ecf20Sopenharmony_ci bool "Support for G-PHY (802.11g) devices" 1098c2ecf20Sopenharmony_ci depends on B43 && B43_SSB 1108c2ecf20Sopenharmony_ci default y 1118c2ecf20Sopenharmony_ci help 1128c2ecf20Sopenharmony_ci This PHY type can be found in the following chipsets: 1138c2ecf20Sopenharmony_ci PCI: BCM4306, BCM4311, BCM4318 1148c2ecf20Sopenharmony_ci SoC: BCM4712, BCM5352E 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ciconfig B43_PHY_N 1178c2ecf20Sopenharmony_ci bool "Support for N-PHY (the main 802.11n series) devices" 1188c2ecf20Sopenharmony_ci depends on B43 1198c2ecf20Sopenharmony_ci default y 1208c2ecf20Sopenharmony_ci help 1218c2ecf20Sopenharmony_ci This PHY type can be found in the following chipsets: 1228c2ecf20Sopenharmony_ci PCI: BCM4321, BCM4322, 1238c2ecf20Sopenharmony_ci BCM43222, BCM43224, BCM43225, 1248c2ecf20Sopenharmony_ci BCM43131, BCM43217, BCM43227, BCM43228 1258c2ecf20Sopenharmony_ci SoC: BCM4716, BCM4717, BCM4718, BCM5356, BCM5357, BCM5358 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ciconfig B43_PHY_LP 1288c2ecf20Sopenharmony_ci bool "Support for LP-PHY (low-power 802.11g) devices" 1298c2ecf20Sopenharmony_ci depends on B43 && B43_SSB 1308c2ecf20Sopenharmony_ci default y 1318c2ecf20Sopenharmony_ci help 1328c2ecf20Sopenharmony_ci The LP-PHY is a low-power PHY built into some notebooks 1338c2ecf20Sopenharmony_ci and embedded devices. It supports 802.11a/b/g 1348c2ecf20Sopenharmony_ci (802.11a support is optional, and currently disabled). 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ciconfig B43_PHY_HT 1378c2ecf20Sopenharmony_ci bool "Support for HT-PHY (high throughput 802.11n) devices" 1388c2ecf20Sopenharmony_ci depends on B43 && B43_BCMA 1398c2ecf20Sopenharmony_ci default y 1408c2ecf20Sopenharmony_ci help 1418c2ecf20Sopenharmony_ci This PHY type with 3x3:3 MIMO can be found in the BCM4331 PCI chipset. 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ciconfig B43_PHY_LCN 1448c2ecf20Sopenharmony_ci bool "Support for LCN-PHY devices (BROKEN)" 1458c2ecf20Sopenharmony_ci depends on B43 && BROKEN 1468c2ecf20Sopenharmony_ci help 1478c2ecf20Sopenharmony_ci Support for the LCN-PHY. 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci Say N, this is BROKEN and crashes driver. 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ciconfig B43_PHY_AC 1528c2ecf20Sopenharmony_ci bool "Support for AC-PHY (802.11ac) devices (BROKEN)" 1538c2ecf20Sopenharmony_ci depends on B43 && B43_BCMA && BROKEN 1548c2ecf20Sopenharmony_ci help 1558c2ecf20Sopenharmony_ci This PHY type can be found in the following chipsets: 1568c2ecf20Sopenharmony_ci PCI: BCM4352, BCM4360 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci Say N, this is BROKEN and crashes driver. 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_ci# This config option automatically enables b43 LEDS support, 1618c2ecf20Sopenharmony_ci# if it's possible. 1628c2ecf20Sopenharmony_ciconfig B43_LEDS 1638c2ecf20Sopenharmony_ci bool 1648c2ecf20Sopenharmony_ci depends on B43 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43) 1658c2ecf20Sopenharmony_ci default y 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci# This config option automatically enables b43 HW-RNG support, 1688c2ecf20Sopenharmony_ci# if the HW-RNG core is enabled. 1698c2ecf20Sopenharmony_ciconfig B43_HWRNG 1708c2ecf20Sopenharmony_ci bool 1718c2ecf20Sopenharmony_ci depends on B43 && (HW_RANDOM = y || HW_RANDOM = B43) 1728c2ecf20Sopenharmony_ci default y 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ciconfig B43_DEBUG 1758c2ecf20Sopenharmony_ci bool "Broadcom 43xx debugging" 1768c2ecf20Sopenharmony_ci depends on B43 1778c2ecf20Sopenharmony_ci help 1788c2ecf20Sopenharmony_ci Broadcom 43xx debugging. 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci This adds additional runtime sanity checks and statistics to the driver. 1818c2ecf20Sopenharmony_ci These checks and statistics might be expensive and hurt the runtime 1828c2ecf20Sopenharmony_ci performance of your system. 1838c2ecf20Sopenharmony_ci This also adds the b43 debugfs interface. 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci Do not enable this, unless you are debugging the driver. 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ci Say N, if you are a distributor or user building a release kernel 1888c2ecf20Sopenharmony_ci for production use. 1898c2ecf20Sopenharmony_ci Only say Y, if you are debugging a problem in the b43 driver sourcecode. 190