# 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.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.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.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
