Added the Makefile and Kconfig for compiling the wilc module. Renaming the module as 'wilc', so modified the Kconfig and Makefile accordingly. Modified wilc_sdio.c file to avoid the use of wilc1000 in macro name. Signed-off-by: Ajay Singh <ajay.kathat@xxxxxxxxxxxxx> --- drivers/net/wireless/microchip/Kconfig | 14 ++++++++++ drivers/net/wireless/microchip/Makefile | 1 + drivers/net/wireless/microchip/wilc/Kconfig | 42 ++++++++++++++++++++++++++++ drivers/net/wireless/microchip/wilc/Makefile | 15 ++++++++++ drivers/staging/wilc1000/wilc_sdio.c | 4 +-- 5 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 drivers/net/wireless/microchip/Kconfig create mode 100644 drivers/net/wireless/microchip/Makefile create mode 100644 drivers/net/wireless/microchip/wilc/Kconfig create mode 100644 drivers/net/wireless/microchip/wilc/Makefile diff --git a/drivers/net/wireless/microchip/Kconfig b/drivers/net/wireless/microchip/Kconfig new file mode 100644 index 0000000..4429b3d --- /dev/null +++ b/drivers/net/wireless/microchip/Kconfig @@ -0,0 +1,14 @@ +config WLAN_VENDOR_MICROCHIP + bool "Microchip devices" + default y + ---help--- + If you have a wireless card belonging to this class, say Y. + + Note that the answer to this question doesn't directly affect the + kernel: saying N will just cause the configurator to skip all the + questions about these cards. If you say Y, you will be asked for + your specific card in the following questions. + +if WLAN_VENDOR_MICROCHIP +source "drivers/net/wireless/microchip/wilc/Kconfig" +endif # WLAN_VENDOR_MICROCHIP diff --git a/drivers/net/wireless/microchip/Makefile b/drivers/net/wireless/microchip/Makefile new file mode 100644 index 0000000..6c15d8f --- /dev/null +++ b/drivers/net/wireless/microchip/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_WILC) += wilc/ diff --git a/drivers/net/wireless/microchip/wilc/Kconfig b/drivers/net/wireless/microchip/wilc/Kconfig new file mode 100644 index 0000000..5268165 --- /dev/null +++ b/drivers/net/wireless/microchip/wilc/Kconfig @@ -0,0 +1,42 @@ +config WILC + tristate + ---help--- + This module only support IEEE 802.11n WiFi. + +config WILC_SDIO + tristate "Microchip WILC SDIO (WiFi only)" + depends on CFG80211 && INET && MMC + select WILC + ---help--- + This module adds support for the SDIO interface of adapters using + WILC chipset. The Microchip WILC 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 WILC 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 WILC_SPI + tristate "Microchip WILC SPI (WiFi only)" + depends on CFG80211 && INET && SPI + select WILC + ---help--- + This module adds support for the SPI interface of adapters using + WILC chipset. The Microchip WILC 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 WILC_HW_OOB_INTR + bool "WILC out of band interrupt" + depends on WILC_SDIO + default n + ---help--- + This option enables out-of-band interrupt support for the WILC + 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. diff --git a/drivers/net/wireless/microchip/wilc/Makefile b/drivers/net/wireless/microchip/wilc/Makefile new file mode 100644 index 0000000..a98a4af --- /dev/null +++ b/drivers/net/wireless/microchip/wilc/Makefile @@ -0,0 +1,15 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_WILC) += wilc.o + +ccflags-y += -DFIRMWARE_1002=\"atmel/wilc1002_firmware.bin\" \ + -DFIRMWARE_1003=\"atmel/wilc1003_firmware.bin\" + +wilc-objs := wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \ + coreconfigurator.o host_interface.o \ + wilc_wlan_cfg.o wilc_wlan.o + +obj-$(CONFIG_WILC_SDIO) += wilc-sdio.o +wilc-sdio-objs += wilc_sdio.o + +obj-$(CONFIG_WILC_SPI) += wilc-spi.o +wilc-spi-objs += wilc_spi.o diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c index b2080d8..4df1da1 100644 --- a/drivers/staging/wilc1000/wilc_sdio.c +++ b/drivers/staging/wilc1000/wilc_sdio.c @@ -9,7 +9,7 @@ #include "wilc_wfi_netdevice.h" -#define SDIO_MODALIAS "wilc1000_sdio" +#define SDIO_MODALIAS "wilc_sdio" #define SDIO_VENDOR_ID_WILC 0x0296 #define SDIO_DEVICE_ID_WILC 0x5347 @@ -110,7 +110,7 @@ static int linux_sdio_probe(struct sdio_func *func, int ret; struct gpio_desc *gpio = NULL; - if (IS_ENABLED(CONFIG_WILC1000_HW_OOB_INTR)) { + if (IS_ENABLED(CONFIG_WILC_HW_OOB_INTR)) { gpio = gpiod_get(&func->dev, "irq", GPIOD_IN); if (IS_ERR(gpio)) { /* get the GPIO descriptor from hardcode GPIO number */ -- 2.7.4