xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/broadcom/b43/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyunconfig B43
3*4882a593Smuzhiyun	tristate "Broadcom 43xx wireless support (mac80211 stack)"
4*4882a593Smuzhiyun	depends on (BCMA_POSSIBLE || SSB_POSSIBLE) && MAC80211 && HAS_DMA
5*4882a593Smuzhiyun	select BCMA if B43_BCMA
6*4882a593Smuzhiyun	select SSB if B43_SSB
7*4882a593Smuzhiyun	select FW_LOADER
8*4882a593Smuzhiyun	select CORDIC
9*4882a593Smuzhiyun	help
10*4882a593Smuzhiyun	  b43 is a driver for the Broadcom 43xx series wireless devices.
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun	  Check "lspci" for something like
13*4882a593Smuzhiyun	  "Broadcom Corporation BCM43XX 802.11 Wireless LAN Controller"
14*4882a593Smuzhiyun	  to determine whether you own such a device.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	  This driver supports the new BCM43xx IEEE 802.11G devices, but not
17*4882a593Smuzhiyun	  the old IEEE 802.11B devices. Old devices are supported by
18*4882a593Smuzhiyun	  the b43legacy driver.
19*4882a593Smuzhiyun	  Note that this has nothing to do with the standard that your AccessPoint
20*4882a593Smuzhiyun	  supports (A, B, G or a combination).
21*4882a593Smuzhiyun	  IEEE 802.11G devices can talk to IEEE 802.11B AccessPoints.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	  It is safe to include both b43 and b43legacy as the underlying glue
24*4882a593Smuzhiyun	  layer will automatically load the correct version for your device.
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	  This driver uses V4 firmware, which must be installed separately using
27*4882a593Smuzhiyun	  b43-fwcutter.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun	  This driver can be built as a module (recommended) that will be called "b43".
30*4882a593Smuzhiyun	  If unsure, say M.
31*4882a593Smuzhiyun
32*4882a593Smuzhiyunconfig B43_BCMA
33*4882a593Smuzhiyun	bool
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig B43_SSB
36*4882a593Smuzhiyun	bool
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunchoice
39*4882a593Smuzhiyun	prompt "Supported bus types"
40*4882a593Smuzhiyun	depends on B43
41*4882a593Smuzhiyun	default B43_BUSES_BCMA_AND_SSB
42*4882a593Smuzhiyun
43*4882a593Smuzhiyunconfig B43_BUSES_BCMA_AND_SSB
44*4882a593Smuzhiyun	bool "BCMA and SSB"
45*4882a593Smuzhiyun	depends on BCMA_POSSIBLE && SSB_POSSIBLE
46*4882a593Smuzhiyun	select B43_BCMA
47*4882a593Smuzhiyun	select B43_SSB
48*4882a593Smuzhiyun
49*4882a593Smuzhiyunconfig B43_BUSES_BCMA
50*4882a593Smuzhiyun	bool "BCMA only"
51*4882a593Smuzhiyun	depends on BCMA_POSSIBLE
52*4882a593Smuzhiyun	select B43_BCMA
53*4882a593Smuzhiyun
54*4882a593Smuzhiyunconfig B43_BUSES_SSB
55*4882a593Smuzhiyun	bool "SSB only"
56*4882a593Smuzhiyun	depends on SSB_POSSIBLE
57*4882a593Smuzhiyun	select B43_SSB
58*4882a593Smuzhiyun
59*4882a593Smuzhiyunendchoice
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun# Auto-select SSB PCI-HOST support, if possible
62*4882a593Smuzhiyunconfig B43_PCI_AUTOSELECT
63*4882a593Smuzhiyun	bool
64*4882a593Smuzhiyun	depends on B43 && SSB_PCIHOST_POSSIBLE
65*4882a593Smuzhiyun	select SSB_PCIHOST
66*4882a593Smuzhiyun	select SSB_B43_PCI_BRIDGE
67*4882a593Smuzhiyun	default y
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun# Auto-select SSB PCICORE driver, if possible
70*4882a593Smuzhiyunconfig B43_PCICORE_AUTOSELECT
71*4882a593Smuzhiyun	bool
72*4882a593Smuzhiyun	depends on B43 && SSB_DRIVER_PCICORE_POSSIBLE
73*4882a593Smuzhiyun	select SSB_DRIVER_PCICORE
74*4882a593Smuzhiyun	default y
75*4882a593Smuzhiyun
76*4882a593Smuzhiyunconfig B43_SDIO
77*4882a593Smuzhiyun	bool "Broadcom 43xx SDIO device support"
78*4882a593Smuzhiyun	depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE
79*4882a593Smuzhiyun	select SSB_SDIOHOST
80*4882a593Smuzhiyun	help
81*4882a593Smuzhiyun	  Broadcom 43xx device support for Soft-MAC SDIO devices.
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun	  With this config option you can drive Soft-MAC b43 cards with a
84*4882a593Smuzhiyun	  Secure Digital I/O interface.
85*4882a593Smuzhiyun	  This includes the WLAN daughter card found on the Nintendo Wii
86*4882a593Smuzhiyun	  video game console.
87*4882a593Smuzhiyun	  Note that this does not support Broadcom 43xx Full-MAC devices.
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun	  It's safe to select Y here, even if you don't have a B43 SDIO device.
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun	  If unsure, say N.
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun#Data transfers to the device via PIO. We want it as a fallback even
94*4882a593Smuzhiyun# if we can do DMA.
95*4882a593Smuzhiyunconfig B43_BCMA_PIO
96*4882a593Smuzhiyun	bool
97*4882a593Smuzhiyun	depends on B43 && B43_BCMA
98*4882a593Smuzhiyun	select BCMA_BLOCKIO
99*4882a593Smuzhiyun	default y
100*4882a593Smuzhiyun
101*4882a593Smuzhiyunconfig B43_PIO
102*4882a593Smuzhiyun	bool
103*4882a593Smuzhiyun	depends on B43 && B43_SSB
104*4882a593Smuzhiyun	select SSB_BLOCKIO
105*4882a593Smuzhiyun	default y
106*4882a593Smuzhiyun
107*4882a593Smuzhiyunconfig B43_PHY_G
108*4882a593Smuzhiyun	bool "Support for G-PHY (802.11g) devices"
109*4882a593Smuzhiyun	depends on B43 && B43_SSB
110*4882a593Smuzhiyun	default y
111*4882a593Smuzhiyun	help
112*4882a593Smuzhiyun	  This PHY type can be found in the following chipsets:
113*4882a593Smuzhiyun	  PCI: BCM4306, BCM4311, BCM4318
114*4882a593Smuzhiyun	  SoC: BCM4712, BCM5352E
115*4882a593Smuzhiyun
116*4882a593Smuzhiyunconfig B43_PHY_N
117*4882a593Smuzhiyun	bool "Support for N-PHY (the main 802.11n series) devices"
118*4882a593Smuzhiyun	depends on B43
119*4882a593Smuzhiyun	default y
120*4882a593Smuzhiyun	help
121*4882a593Smuzhiyun	  This PHY type can be found in the following chipsets:
122*4882a593Smuzhiyun	  PCI: BCM4321, BCM4322,
123*4882a593Smuzhiyun	       BCM43222, BCM43224, BCM43225,
124*4882a593Smuzhiyun	       BCM43131, BCM43217, BCM43227, BCM43228
125*4882a593Smuzhiyun	  SoC: BCM4716, BCM4717, BCM4718, BCM5356, BCM5357, BCM5358
126*4882a593Smuzhiyun
127*4882a593Smuzhiyunconfig B43_PHY_LP
128*4882a593Smuzhiyun	bool "Support for LP-PHY (low-power 802.11g) devices"
129*4882a593Smuzhiyun	depends on B43 && B43_SSB
130*4882a593Smuzhiyun	default y
131*4882a593Smuzhiyun	help
132*4882a593Smuzhiyun	  The LP-PHY is a low-power PHY built into some notebooks
133*4882a593Smuzhiyun	  and embedded devices. It supports 802.11a/b/g
134*4882a593Smuzhiyun	  (802.11a support is optional, and currently disabled).
135*4882a593Smuzhiyun
136*4882a593Smuzhiyunconfig B43_PHY_HT
137*4882a593Smuzhiyun	bool "Support for HT-PHY (high throughput 802.11n) devices"
138*4882a593Smuzhiyun	depends on B43 && B43_BCMA
139*4882a593Smuzhiyun	default y
140*4882a593Smuzhiyun	help
141*4882a593Smuzhiyun	  This PHY type with 3x3:3 MIMO can be found in the BCM4331 PCI chipset.
142*4882a593Smuzhiyun
143*4882a593Smuzhiyunconfig B43_PHY_LCN
144*4882a593Smuzhiyun	bool "Support for LCN-PHY devices (BROKEN)"
145*4882a593Smuzhiyun	depends on B43 && BROKEN
146*4882a593Smuzhiyun	help
147*4882a593Smuzhiyun	  Support for the LCN-PHY.
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun	  Say N, this is BROKEN and crashes driver.
150*4882a593Smuzhiyun
151*4882a593Smuzhiyunconfig B43_PHY_AC
152*4882a593Smuzhiyun	bool "Support for AC-PHY (802.11ac) devices (BROKEN)"
153*4882a593Smuzhiyun	depends on B43 && B43_BCMA && BROKEN
154*4882a593Smuzhiyun	help
155*4882a593Smuzhiyun	  This PHY type can be found in the following chipsets:
156*4882a593Smuzhiyun	  PCI: BCM4352, BCM4360
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun	  Say N, this is BROKEN and crashes driver.
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun# This config option automatically enables b43 LEDS support,
161*4882a593Smuzhiyun# if it's possible.
162*4882a593Smuzhiyunconfig B43_LEDS
163*4882a593Smuzhiyun	bool
164*4882a593Smuzhiyun	depends on B43 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43)
165*4882a593Smuzhiyun	default y
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun# This config option automatically enables b43 HW-RNG support,
168*4882a593Smuzhiyun# if the HW-RNG core is enabled.
169*4882a593Smuzhiyunconfig B43_HWRNG
170*4882a593Smuzhiyun	bool
171*4882a593Smuzhiyun	depends on B43 && (HW_RANDOM = y || HW_RANDOM = B43)
172*4882a593Smuzhiyun	default y
173*4882a593Smuzhiyun
174*4882a593Smuzhiyunconfig B43_DEBUG
175*4882a593Smuzhiyun	bool "Broadcom 43xx debugging"
176*4882a593Smuzhiyun	depends on B43
177*4882a593Smuzhiyun	help
178*4882a593Smuzhiyun	  Broadcom 43xx debugging.
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun	  This adds additional runtime sanity checks and statistics to the driver.
181*4882a593Smuzhiyun	  These checks and statistics might be expensive and hurt the runtime
182*4882a593Smuzhiyun	  performance of your system.
183*4882a593Smuzhiyun	  This also adds the b43 debugfs interface.
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun	  Do not enable this, unless you are debugging the driver.
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun	  Say N, if you are a distributor or user building a release kernel
188*4882a593Smuzhiyun	  for production use.
189*4882a593Smuzhiyun	  Only say Y, if you are debugging a problem in the b43 driver sourcecode.
190