# SPDX-License-Identifier: GPL-2.0
config WILC1000
	tristate
	help
	  This module only support IEEE 802.11n WiFi.

config WILC1000_SDIO
	tristate "Atmel WILC1000 SDIO (WiFi only)"
	depends on CFG80211 && INET && 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
	tristate "Atmel WILC1000 SPI (WiFi only)"
	depends on CFG80211 && INET && SPI
	select WILC1000
	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.

config WILC1000_HW_OOB_INTR
	bool "WILC1000 out of band interrupt"
	depends on WILC1000_SDIO
	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.
