menuconfig WL12XX
	tristate "TI wl12xx driver support"
	depends on MAC80211 && WLAN_80211 && EXPERIMENTAL
	---help---
	  This will enable TI wl12xx driver support. The drivers make
	  use of the mac80211 stack.

config WL1251
	tristate "TI wl1251 support"
	depends on WL12XX && GENERIC_HARDIRQS
	select FW_LOADER
	select CRC7
	---help---
	  This module adds support for wireless adapters based on
	  TI wl1251 chipset.

	  If you choose to build a module, it'll be called wl1251. Say
	  N if unsure.

config WL1251_SPI
	tristate "TI wl1251 SPI support"
	depends on WL1251 && SPI_MASTER
	---help---
	  This module adds support for the SPI interface of adapters using
	  TI wl1251 chipset.  Select this if your platform is using
	  the SPI bus.

	  If you choose to build a module, it'll be called wl1251_spi.
	  Say N if unsure.

config WL1251_SDIO
	tristate "TI wl1251 SDIO support"
	depends on WL1251 && MMC
	---help---
	  This module adds support for the SDIO interface of adapters using
	  TI wl1251 chipset.  Select this if your platform is using
	  the SDIO bus.

	  If you choose to build a module, it'll be called
	  wl1251_sdio. Say N if unsure.

config WL1271
	tristate "TI wl1271 support"
	depends on WL12XX && SPI_MASTER && GENERIC_HARDIRQS
	select FW_LOADER
	select CRC7
	---help---
	  This module adds support for wireless adapters based on the
	  TI wl1271 chipset.

	  If you choose to build a module, it'll be called wl1271. Say N if
	  unsure.
