# WiFi drivers configuration options

# Copyright (c) 2017 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

menuconfig WIFI
	bool "Wi-Fi drivers"

if WIFI

module = WIFI
module-dep = LOG
module-str = Log level for Wi-Fi driver
module-help = Sets log level for Wi-Fi Device Drivers.
source "subsys/net/Kconfig.template.log_config.net"

config WIFI_INIT_PRIORITY
	int "Wi-Fi driver init priority"
	default 80
	help
	  Wi-Fi device driver initialization priority.
	  Do not mess with it unless you know what you are doing.
	  Note that the priority needs to be lower than the net stack
	  so that it can start before the networking sub-system.

config WIFI_OFFLOAD
	bool "Support offloaded Wi-Fi device drivers"
	select NET_OFFLOAD
	help
	  Enable support for Full-MAC Wi-Fi devices.

config WIFI_USE_NATIVE_NETWORKING
	bool
	help
	  When selected, this hidden configuration enables Wi-Fi driver
	  to use native ethernet stack interface.

source "drivers/wifi/winc1500/Kconfig.winc1500"
source "drivers/wifi/simplelink/Kconfig.simplelink"
source "drivers/wifi/eswifi/Kconfig.eswifi"
source "drivers/wifi/esp_at/Kconfig.esp_at"
source "drivers/wifi/esp32/Kconfig.esp32"
source "drivers/wifi/esp_hosted/Kconfig.esp_hosted"
source "drivers/wifi/nxp/Kconfig.nxp"
source "drivers/wifi/infineon/Kconfig.airoc"
source "drivers/wifi/nrf_wifi/Kconfig.nrfwifi"
source "drivers/wifi/siwx91x/Kconfig.siwx91x"

# Choice is after individual drivers to enable driver specific defaults
choice WIFI_USAGE_MODE
	prompt "Application usage of the Wi-Fi driver"
	default WIFI_USAGE_MODE_STA
	help
	  Inform the Wi-Fi driver of which Wi-Fi features the application
	  will be using. Drivers can use this choice to default appropriate
	  driver-specific options.

config WIFI_USAGE_MODE_STA
	bool "Wi-Fi interface(s) acts as a Station"

config WIFI_USAGE_MODE_AP
	bool "Wi-Fi interface(s) acts as an Access Point"

config WIFI_USAGE_MODE_STA_AP
	bool "Wi-Fi interface(s) acts as an Access Point and Station"

config WIFI_USAGE_MODE_SCAN_ONLY
	bool "Wi-Fi interface(s) used for SSID scanning only"

endchoice

endif # WIFI
