# WNCM 14A2A driver options

# Copyright (c) 2018 Foundries.io
# SPDX-License-Identifier: Apache-2.0

menuconfig MODEM_WNCM14A2A
	bool "Wistron LTE-M modem driver"
	select MODEM_RECEIVER
	select NET_OFFLOAD
	imply GPIO
	help
	  Choose this setting to enable Wistron WNC-M14A2A LTE-M modem driver.
	  NOTE: Currently the pin settings only work with FRDM K64F shield.

if MODEM_WNCM14A2A

config MODEM_WNCM14A2A_RX_STACK_SIZE
	int "Size of the stack for the WNC-M14A2A modem driver RX thread"
	default 1028
	help
	  This stack is used by the WNCM14A2A RX thread.

config MODEM_WNCM14A2A_RX_WORKQ_STACK_SIZE
	int "Size of the stack for the WNC-M14A2A modem driver work queue"
	default 2048
	help
	  This stack is used by the work queue to pass off net_pkt data
	  to the rest of the network stack, letting the rx thread continue
	  processing data.

config MODEM_WNCM14A2A_APN_NAME
	string "APN name for establishing network connection"
	default "m2m.com.attz"
	help
	  This setting is used in the AT%PDNSET command to set the APN name
	  for the network connection context.  Normally, don't need to change
	  this value.

config MODEM_WNCM14A2A_INIT_PRIORITY
	int "WNC-M14A2A driver init priority"
	default 80
	help
	  WNC-M14A2A 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.

endif # MODEM_WNCM14A2A
