# ENC424J600 Ethernet driver configuration options

# Copyright (c) 2019 PHYTEC Messtechnik GmbH
# SPDX-License-Identifier: Apache-2.0

menuconfig ETH_ENC424J600
	bool "ENC424J600C Ethernet Controller"
	default y
	depends on DT_HAS_MICROCHIP_ENC424J600_ENABLED
	select SPI
	help
	  ENC424J600C Stand-Alone Ethernet Controller
	  with SPI Interface

if ETH_ENC424J600

config ETH_ENC424J600_RX_THREAD_STACK_SIZE
	int "Stack size for internal incoming packet handler"
	default 800
	help
	  Size of the stack used for internal thread which is ran for
	  incoming packet processing.

config ETH_ENC424J600_RX_THREAD_PRIO
	int "Priority for internal incoming packet handler"
	default 2
	help
	  Priority level for internal thread which is ran for incoming
	  packet processing.

config ETH_ENC424J600_TIMEOUT
	int "IP buffer timeout"
	default 100
	help
	  Given timeout in milliseconds. Maximum amount of time
	  that the driver will wait from the IP stack to get
	  a memory buffer before the Ethernet frame is dropped.

endif
