# SPDX-License-Identifier: GPL-2.0-only
config P54_COMMON
	tristate "Softmac Prism54 support"
	depends on MAC80211
	select FW_LOADER
	select CRC_CCITT
	help
	  This is common code for isl38xx/stlc45xx based modules.
	  This module does nothing by itself - the USB/PCI/SPI front-ends
	  also need to be enabled in order to support any devices.

	  These devices require softmac firmware which can be found at
	  <http://wireless.wiki.kernel.org/en/users/Drivers/p54>

	  If you choose to build a module, it'll be called p54common.

config P54_USB
	tristate "Prism54 USB support"
	depends on P54_COMMON && USB
	select CRC32
	help
	  This driver is for USB isl38xx based wireless cards.

	  These devices require softmac firmware which can be found at
	  <http://wireless.wiki.kernel.org/en/users/Drivers/p54>

	  If you choose to build a module, it'll be called p54usb.

config P54_PCI
	tristate "Prism54 PCI support"
	depends on P54_COMMON && PCI
	help
	  This driver is for PCI isl38xx based wireless cards.
	  This driver supports most devices that are supported by the
	  fullmac prism54 driver plus many devices which are not
	  supported by the fullmac driver/firmware.

	  This driver requires softmac firmware which can be found at
	  <http://wireless.wiki.kernel.org/en/users/Drivers/p54>

	  If you choose to build a module, it'll be called p54pci.

config P54_SPI
	tristate "Prism54 SPI (stlc45xx) support"
	depends on P54_COMMON && SPI_MASTER
	help
	  This driver is for stlc4550 or stlc4560 based wireless chips
	  such as Nokia's N800/N810 Portable Internet Tablet.

	  If you choose to build a module, it'll be called p54spi.

config P54_SPI_DEFAULT_EEPROM
	bool "Include fallback EEPROM blob"
	depends on P54_SPI
	default n
	help
	 Unlike the PCI or USB devices, the SPI variants don't have
	 a dedicated EEPROM chip to store all device specific values
	 for calibration, country and interface settings.

	 The driver will try to load the image "3826.eeprom", if the
	 file is put at the right place. (usually /lib/firmware.)

	 Only if this request fails, this option will provide a
	 backup set of generic values to get the device working.

	 Enabling this option adds about 4k to p54spi.

config P54_LEDS
	bool
	depends on P54_COMMON && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = P54_COMMON)
	default y
