# 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
	select SPI
	help
	  Enable MCP2515 CAN Driver

if CAN_MCP2515

config CAN_MCP2515_INT_THREAD_STACK_SIZE
	int "Stack size for interrupt handler"
	default 1024
	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
