# CAN loopback device configuration options

# Copyright (c) 2019 Alexander Wachter
# SPDX-License-Identifier: Apache-2.0

DT_COMPAT_ZEPHYR_CAN_LOOPBACK := zephyr,can-loopback

config CAN_LOOPBACK
	bool "Emulated CAN loopback driver"
	default $(dt_compat_enabled,$(DT_COMPAT_ZEPHYR_CAN_LOOPBACK))
	help
	  This is an emulated driver that can only loopback messages.

if CAN_LOOPBACK

config CAN_MAX_FILTER
	int "Maximum number of concurrent active filters"
	default 16
	range 1 1024
	help
	  Defines the array size of the filters.
	  Must be at least the size of concurrent reads.

config CAN_LOOPBACK_TX_THREAD_STACK_SIZE
	int "TX thread stack size"
	default 256
	help
	  Stack size of the TX thread.
	  The TX thread calls the callbacks of the receiver
	  if the filter matches.

config CAN_LOOPBACK_TX_THREAD_PRIORITY
	int "TX thread priority"
	default 2
	help
	  Priority of the TX thread.
	  The TX thread calls the callbacks of the receiver
	  if the filter matches.

config CAN_LOOPBACK_TX_MSGQ_SIZE
	int "TX message queue size"
	default 16
	help
	  Number of TX frames that can be buffered.
	  The send functions puts frame int this queue and TX thread takes the
	  messages from this msgq and calls the respective receiver if the
	  filter matches.

endif # CAN_LOOPBACK
