config WILC1000_DRIVER
	bool "WILC1000 support (WiFi only)"
	depends on CFG80211 && WEXT_CORE && INET
	---help---
	  This module only support IEEE 802.11n WiFi.

if WILC1000_DRIVER

config WILC1000
	tristate

choice
        prompt "Memory Allocation"
        default WILC1000_PREALLOCATE_AT_LOADING_DRIVER

config WILC1000_PREALLOCATE_AT_LOADING_DRIVER
	bool "Preallocate memory at loading driver"
	---help---
	  This choice supports static allocation of the memory
	  for the receive buffer. The driver will allocate the RX buffer
	  during initial time. The driver will also free the buffer
	  by calling network device stop.

config WILC1000_DYNAMICALLY_ALLOCATE_MEMROY
        bool "Dynamically allocate memory in real time"
        ---help---
	  This choice supports dynamic allocation of the memory
	  for the receive buffer. The driver will allocate the RX buffer
	  when it is required.
endchoice

choice
	prompt "Bus Type"
	default WILC1000_SDIO

config WILC1000_SDIO
	bool "SDIO support"
	depends on MMC
	select WILC1000
	---help---
	  This module adds support for the SDIO interface of adapters using
	  WILC1000 chipset. The Atmel WILC1000 SDIO is a full speed interface.
	  It meets SDIO card specification version 2.0. The interface supports
	  the 1-bit/4-bit SD transfer mode at the clock range of 0-50 MHz.
	  The host can use this interface to read and write from any register
	  within the chip as well as configure the WILC1000 for data DMA.
	  To use this interface, pin9 (SDIO_SPI_CFG) must be grounded. Select
	  this if your platform is using the SDIO bus.

config WILC1000_SPI
	depends on SPI
	select WILC1000
	bool "SPI support"
	---help---
	  This module adds support for the SPI interface of adapters using
	  WILC1000 chipset. The Atmel WILC1000 has a Serial Peripheral
	  Interface (SPI) that operates as a SPI slave. This SPI interface can
	  be used for control and for serial I/O of 802.11 data. The SPI is a
	  full-duplex slave synchronous serial interface that is available
	  immediately following reset when pin 9 (SDIO_SPI_CFG) is tied to
	  VDDIO. Select this if your platform is using the SPI bus.
endchoice

config WILC1000_HW_OOB_INTR
	bool "Use out of band interrupt"
	depends on WILC1000_SDIO
	default n
	---help---
	  This option enables out-of-band interrupt support for the WILC1000
	  chipset. This OOB interrupt is intended to provide a faster interrupt
	  mechanism for SDIO host controllers that don't support SDIO interrupt.
	  Select this option If the SDIO host controller in your platform
	  doesn't support SDIO time devision interrupt.

endif
