# Atmel WINC1500 WiFi driver options

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

menuconfig WIFI_WINC1500
	bool "WINC1500 driver support"
	select ATMEL_WINC1500
	select WIFI_OFFLOAD
	select NET_L2_WIFI_MGMT

if WIFI_WINC1500

config WIFI_WINC1500_NAME
	string "Driver name"
	default "WINC1500"

config WIFI_WINC1500_GPIO_SPI_CS
	bool "Manage SPI CS through a GPIO pin"
	help
	  This option is useful if one needs to manage SPI CS through a GPIO
	  pin to by-pass the SPI controller's CS logic.

config WIFI_WINC1500_THREAD_STACK_SIZE
	int "HAL callback handler thread stack size"
	default 2048
	help
	  This option sets the size of the stack used by the thread handling
	  WINC1500 HAL callbacks. Do not touch it unless you know what you are
	  doing.

config WIFI_WINC1500_THREAD_PRIO
	int "HAL callback handler thread priority"
	default 2
	help
	  This option sets the priority of the thread handling WINC1500 HAL
	  callbacks. Do not touch it unless you know what you are doing.

config WIFI_WINC1500_BUF_CTR
	int "Number of buffer per-buffer pool"
	default 1
	help
	  Set the number of buffer the driver will have access to in each of
	  its buffer pools.

config WIFI_WINC1500_MAX_PACKET_SIZE
	int "Maximum size of a packet, in bytes"
	default 1500
	help
	  Set the maximum size of a network packet going through the chip.
	  This sets the size of each buffer, in each buffer pools.
	  Do not modify it unless you know what you are doing.

config WIFI_WINC1500_OFFLOAD_MAX_SOCKETS
	int "Maximum number of sockets that can be managed"
	default 2
	help
	  Set the number of sockets that can be managed through the driver
	  and the chip.

choice
	bool "In which region is the chip running?"
	default WIFI_WINC1500_REGION_NORTH_AMERICA

config WIFI_WINC1500_REGION_NORTH_AMERICA
	bool "Region North America"

config WIFI_WINC1500_REGION_EUROPE
	bool "Region Europe"

config WIFI_WINC1500_REGION_ASIA
	bool "Region Asia"

endchoice

endif # WIFI_WINC1500
