# Kconfig.mcp2515 - 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
	help
	  Enable MCP2515 CAN Driver

if CAN_MCP2515

config CAN_MCP2515_OSC_FREQ
	int "Oscillator frequency"
	default 8000000
	help
	  Specify the frequency of the oscillator connected to the MCP2515.

config CAN_PROP_SEG
	int "Prop_Seg"
	default 2
	range 1 8
	help
	  Time quantums of propagation segment (ISO 11898-1)

config CAN_PHASE_SEG1
	int "Phase_Seg1"
	default 7
	range 1 8
	help
	  Time quantums of phase buffer 1 segment (ISO 11898-1)

config CAN_PHASE_SEG2
	int "Phase_Seg2"
	default 6
	range 2 8
	help
	  Time quantums of phase buffer 2 segment (ISO 11898-1)

config CAN_SJW
	int "SJW"
	default 1
	range 1 4
	help
	  Resynchronization jump width  (ISO 11898-1)

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
