# es-WiFi driver options

# Copyright (c) 2018 Linaro
# SPDX-License-Identifier: Apache-2.0

menuconfig WIFI_ESWIFI
	bool "Inventek eS-WiFi support"
	default y
	depends on DT_HAS_INVENTEK_ESWIFI_ENABLED || DT_HAS_INVENTEK_ESWIFI_UART_ENABLED
	select NET_L2_WIFI_MGMT
	select WIFI_OFFLOAD
	select NET_OFFLOAD
	select NET_SOCKETS
	imply NET_SOCKETS_OFFLOAD
	select GPIO

if WIFI_ESWIFI

choice WIFI_ESWIFI_BUS
	bool "Select BUS interface"
	default WIFI_ESWIFI_BUS_SPI

config WIFI_ESWIFI_BUS_SPI
	bool "SPI Bus interface"
	select SPI

config WIFI_ESWIFI_BUS_UART
	bool "UART Bus interface"
	select SERIAL

endchoice

config WIFI_ESWIFI_THREAD_PRIO
	int "esWiFi threads priority"
	default 2
	help
	  This option sets the priority of the esWiFi threads.
	  Do not touch it unless you know what you are doing.

config WIFI_ESWIFI_SHELL
	bool "esWiFi shell"
	depends on SHELL
	help
	  Enable esWiFi shell

endif
