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
