0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config B43
0003 tristate "Broadcom 43xx wireless support (mac80211 stack)"
0004 depends on (BCMA_POSSIBLE || SSB_POSSIBLE) && MAC80211 && HAS_DMA
0005 select BCMA if B43_BCMA
0006 select SSB if B43_SSB
0007 select FW_LOADER
0008 select CORDIC
0009 help
0010 b43 is a driver for the Broadcom 43xx series wireless devices.
0011
0012 Check "lspci" for something like
0013 "Broadcom Corporation BCM43XX 802.11 Wireless LAN Controller"
0014 to determine whether you own such a device.
0015
0016 This driver supports the new BCM43xx IEEE 802.11G devices, but not
0017 the old IEEE 802.11B devices. Old devices are supported by
0018 the b43legacy driver.
0019 Note that this has nothing to do with the standard that your AccessPoint
0020 supports (A, B, G or a combination).
0021 IEEE 802.11G devices can talk to IEEE 802.11B AccessPoints.
0022
0023 It is safe to include both b43 and b43legacy as the underlying glue
0024 layer will automatically load the correct version for your device.
0025
0026 This driver uses V4 firmware, which must be installed separately using
0027 b43-fwcutter.
0028
0029 This driver can be built as a module (recommended) that will be called "b43".
0030 If unsure, say M.
0031
0032 config B43_BCMA
0033 bool
0034
0035 config B43_SSB
0036 bool
0037
0038 choice
0039 prompt "Supported bus types"
0040 depends on B43
0041 default B43_BUSES_BCMA_AND_SSB
0042
0043 config B43_BUSES_BCMA_AND_SSB
0044 bool "BCMA and SSB"
0045 depends on BCMA_POSSIBLE && SSB_POSSIBLE
0046 select B43_BCMA
0047 select B43_SSB
0048
0049 config B43_BUSES_BCMA
0050 bool "BCMA only"
0051 depends on BCMA_POSSIBLE
0052 select B43_BCMA
0053
0054 config B43_BUSES_SSB
0055 bool "SSB only"
0056 depends on SSB_POSSIBLE
0057 select B43_SSB
0058
0059 endchoice
0060
0061 # Auto-select SSB PCI-HOST support, if possible
0062 config B43_PCI_AUTOSELECT
0063 bool
0064 depends on B43 && SSB_PCIHOST_POSSIBLE
0065 select SSB_PCIHOST
0066 select SSB_B43_PCI_BRIDGE
0067 default y
0068
0069 # Auto-select SSB PCICORE driver, if possible
0070 config B43_PCICORE_AUTOSELECT
0071 bool
0072 depends on B43 && SSB_DRIVER_PCICORE_POSSIBLE
0073 select SSB_DRIVER_PCICORE
0074 default y
0075
0076 config B43_SDIO
0077 bool "Broadcom 43xx SDIO device support"
0078 depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE
0079 select SSB_SDIOHOST
0080 help
0081 Broadcom 43xx device support for Soft-MAC SDIO devices.
0082
0083 With this config option you can drive Soft-MAC b43 cards with a
0084 Secure Digital I/O interface.
0085 This includes the WLAN daughter card found on the Nintendo Wii
0086 video game console.
0087 Note that this does not support Broadcom 43xx Full-MAC devices.
0088
0089 It's safe to select Y here, even if you don't have a B43 SDIO device.
0090
0091 If unsure, say N.
0092
0093 #Data transfers to the device via PIO. We want it as a fallback even
0094 # if we can do DMA.
0095 config B43_BCMA_PIO
0096 bool
0097 depends on B43 && B43_BCMA
0098 select BCMA_BLOCKIO
0099 default y
0100
0101 config B43_PIO
0102 bool
0103 depends on B43 && B43_SSB
0104 select SSB_BLOCKIO
0105 default y
0106
0107 config B43_PHY_G
0108 bool "Support for G-PHY (802.11g) devices"
0109 depends on B43 && B43_SSB
0110 default y
0111 help
0112 This PHY type can be found in the following chipsets:
0113 PCI: BCM4306, BCM4311, BCM4318
0114 SoC: BCM4712, BCM5352E
0115
0116 config B43_PHY_N
0117 bool "Support for N-PHY (the main 802.11n series) devices"
0118 depends on B43
0119 default y
0120 help
0121 This PHY type can be found in the following chipsets:
0122 PCI: BCM4321, BCM4322,
0123 BCM43222, BCM43224, BCM43225,
0124 BCM43131, BCM43217, BCM43227, BCM43228
0125 SoC: BCM4716, BCM4717, BCM4718, BCM5356, BCM5357, BCM5358
0126
0127 config B43_PHY_LP
0128 bool "Support for LP-PHY (low-power 802.11g) devices"
0129 depends on B43 && B43_SSB
0130 default y
0131 help
0132 The LP-PHY is a low-power PHY built into some notebooks
0133 and embedded devices. It supports 802.11a/b/g
0134 (802.11a support is optional, and currently disabled).
0135
0136 config B43_PHY_HT
0137 bool "Support for HT-PHY (high throughput 802.11n) devices"
0138 depends on B43 && B43_BCMA
0139 default y
0140 help
0141 This PHY type with 3x3:3 MIMO can be found in the BCM4331 PCI chipset.
0142
0143 config B43_PHY_LCN
0144 bool "Support for LCN-PHY devices (BROKEN)"
0145 depends on B43 && BROKEN
0146 help
0147 Support for the LCN-PHY.
0148
0149 Say N, this is BROKEN and crashes driver.
0150
0151 config B43_PHY_AC
0152 bool "Support for AC-PHY (802.11ac) devices (BROKEN)"
0153 depends on B43 && B43_BCMA && BROKEN
0154 help
0155 This PHY type can be found in the following chipsets:
0156 PCI: BCM4352, BCM4360
0157
0158 Say N, this is BROKEN and crashes driver.
0159
0160 # This config option automatically enables b43 LEDS support,
0161 # if it's possible.
0162 config B43_LEDS
0163 bool
0164 depends on B43 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43)
0165 default y
0166
0167 # This config option automatically enables b43 HW-RNG support,
0168 # if the HW-RNG core is enabled.
0169 config B43_HWRNG
0170 bool
0171 depends on B43 && (HW_RANDOM = y || HW_RANDOM = B43)
0172 default y
0173
0174 config B43_DEBUG
0175 bool "Broadcom 43xx debugging"
0176 depends on B43
0177 help
0178 Broadcom 43xx debugging.
0179
0180 This adds additional runtime sanity checks and statistics to the driver.
0181 These checks and statistics might be expensive and hurt the runtime
0182 performance of your system.
0183 This also adds the b43 debugfs interface.
0184
0185 Do not enable this, unless you are debugging the driver.
0186
0187 Say N, if you are a distributor or user building a release kernel
0188 for production use.
0189 Only say Y, if you are debugging a problem in the b43 driver sourcecode.