staging/wilc1000: split out bus specific modules

The SPI and SDIO specific code is now separate enough that
we just need to restructure the Makefile and Kconfig logic
a bit and export a couple of symbols from the common module
to have separate bus glue drivers.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Arnd Bergmann 2015-11-16 15:05:08 +01:00 коммит произвёл Greg Kroah-Hartman
Родитель e28e84d293
Коммит 750ffe9bdc
5 изменённых файлов: 43 добавлений и 43 удалений

Просмотреть файл

@ -1,16 +1,39 @@
config WILC1000_DRIVER
bool "WILC1000 support (WiFi only)"
depends on CFG80211 && WEXT_CORE && INET
config WILC1000
tristate
select WIRELESS_EXT
---help---
This module only support IEEE 802.11n WiFi.
if WILC1000_DRIVER
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
tristate
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.
choice
prompt "Memory Allocation"
prompt "WILC1000 Memory Allocation"
depends on WILC1000
default WILC1000_PREALLOCATE_AT_LOADING_DRIVER
config WILC1000_PREALLOCATE_AT_LOADING_DRIVER
@ -29,40 +52,9 @@ config WILC1000_DYNAMICALLY_ALLOCATE_MEMROY
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"
bool "WILC1000 out of band interrupt"
depends on WILC1000_SDIO
default n
---help---
@ -71,5 +63,3 @@ config WILC1000_HW_OOB_INTR
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

Просмотреть файл

@ -21,5 +21,8 @@ wilc1000-objs := wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \
wilc_wlan_cfg.o wilc_debugfs.o \
wilc_wlan.o
wilc1000-$(CONFIG_WILC1000_SDIO) += linux_wlan_sdio.o wilc_sdio.o
wilc1000-$(CONFIG_WILC1000_SPI) += linux_wlan_spi.o wilc_spi.o
obj-$(CONFIG_WILC1000_SDIO) += wilc1000-sdio.o
wilc1000-sdio-objs += linux_wlan_sdio.o wilc_sdio.o
obj-$(CONFIG_WILC1000_SPI) += wilc1000-spi.o
wilc1000-spi-objs += linux_wlan_spi.o wilc_spi.o

Просмотреть файл

@ -44,6 +44,8 @@ static struct net_device_stats *mac_stats(struct net_device *dev);
static int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd);
static void wilc_set_multicast_list(struct net_device *dev);
struct wilc *wilc_dev;
EXPORT_SYMBOL_GPL(wilc_dev);
bool wilc_enable_ps = true;
static const struct net_device_ops wilc_netdev_ops = {
@ -1411,6 +1413,7 @@ void wilc_netdev_cleanup(struct wilc *wilc)
wilc_debugfs_remove();
#endif
}
EXPORT_SYMBOL_GPL(wilc_netdev_cleanup);
int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
int gpio, const struct wilc_hif_func *ops)
@ -1487,3 +1490,4 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
return 0;
}
EXPORT_SYMBOL_GPL(wilc_netdev_init);

Просмотреть файл

@ -27,7 +27,9 @@ static struct dentry *wilc_dir;
#define DBG_REGION_ALL (GENERIC_DBG | HOSTAPD_DBG | HOSTINF_DBG | CORECONFIG_DBG | CFG80211_DBG | INT_DBG | TX_DBG | RX_DBG | LOCK_DBG | INIT_DBG | BUS_DBG | MEM_DBG)
#define DBG_LEVEL_ALL (DEBUG | INFO | WRN | ERR)
atomic_t WILC_REGION = ATOMIC_INIT(INIT_DBG | GENERIC_DBG | CFG80211_DBG | FIRM_DBG | HOSTAPD_DBG);
EXPORT_SYMBOL_GPL(WILC_REGION);
atomic_t WILC_DEBUG_LEVEL = ATOMIC_INIT(ERR);
EXPORT_SYMBOL_GPL(WILC_DEBUG_LEVEL);
/*
* --------------------------------------------------------------------------------

Просмотреть файл

@ -1181,6 +1181,7 @@ void wilc_handle_isr(void *wilc)
}
release_bus(RELEASE_ALLOW_SLEEP);
}
EXPORT_SYMBOL_GPL(wilc_handle_isr);
int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size)
{