# Kconfig - SimpleLink WiFi driver options

#
# Copyright (c) 2018 Texas Instruments, Incorporated
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig WIFI_SIMPLELINK
	bool "SimpleLink WiFi driver support"
	select SIMPLELINK_HOST_DRIVER
	select WIFI_OFFLOAD
	select NET_L2_WIFI_MGMT

if WIFI_SIMPLELINK

config WIFI_SIMPLELINK_NAME
	string "Driver name"
	default "SimpleLink"

config WIFI_SIMPLELINK_MAX_PACKET_SIZE
	int "Maximum size of a packet, in bytes"
	# MTU (ipv4) per: http://www.ti.com/lit/ug/swru455d/swru455d.pdf:
	default 1472
	help
	 Set the maximum size of a network packet going through the chip.
	 This sets the size of each buffer, in each buffer pool.
	 Do not modify it unless you know what you are doing.

config WIFI_SIMPLELINK_SCAN_COUNT
	int "Number of entries in network scan table: Max: 30"
	default 20
	help
	 The number of results to request on a wifi scan operation.
	 Actual number returned may be less.  Maximum is 30.

config WIFI_SIMPLELINK_MAX_SCAN_RETRIES
	int "Number of retries to get network scan table"
	default 10
	help
	 The number of times, separated by a one second interval, to retry
	 a request for the network list.

config WIFI_SIMPLELINK_FAST_CONNECT_TIMEOUT
	int "Time (in seconds) to wait for fast connect on startup"
	default 7
	help
	 SimpleLink uses the "FastConnect" feature to reconnect to the
	 previously connected AP on startup. Should the WiFi connection
	 timeout, the SimpleLink driver will fail to initialize,
	 and LOG an error.

endif # WIFI_SIMPLELINK
