# MCP2515 CAN configuration options

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

config CAN_MCP2515
	bool "MCP2515 CAN Driver"
	depends on SPI
	select CAN_AUTO_BUS_OFF_RECOVERY
	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_MCP2515_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.


config CAN_MCP2515_INIT_PRIORITY
	int "Init priority"
	default 80
	help
	  MCP2515 driver initialization priority, must be higher than SPI.

endif # CAN_MCP2515
