# MCP2515 CAN configuration options

# Copyright (c) 2018 Karsten Koenig
# SPDX-License-Identifier: Apache-2.0

config CAN_MCP2515
	bool "MCP2515 CAN Driver"
	default y
	depends on DT_HAS_MICROCHIP_MCP2515_ENABLED
	depends on SPI
	help
	  Enable MCP2515 CAN Driver

if CAN_MCP2515

config CAN_MCP2515_INT_THREAD_STACK_SIZE
	int "Stack size for interrupt handler"
	default 512
	help
	  Size of the stack used for internal thread which is ran for
	  interrupt handling and incoming packets.

config CAN_MCP2515_INT_THREAD_PRIO
	int "Priority for interrupt handler"
	default 2
	help
	  Priority level of the internal thread which is ran for
	  interrupt handling and incoming packets.

config CAN_MAX_FILTER
	int "Maximum number of concurrent active filters"
	default 5
	range 1 32
	help
	  Defines the array size of the callback/msgq pointers.
	  Must be at least the size of concurrent reads.

endif # CAN_MCP2515
