# STM32 CAN configuration options

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

config CAN_STM32
	bool "STM32 CAN Driver"
	default y
	depends on DT_HAS_ST_STM32_CAN_ENABLED
	help
	  Enable STM32 CAN Driver.
	  Tested on STM32F0, STM32F4, STM32L4 and STM32F7 series.

config CAN_MAX_STD_ID_FILTER
	int "Maximum number of std ID filters"
	default 14
	range 0 28
	help
	  Defines the maximum number of filters with standard ID (11-bit)
	  that can be added by the application.

	  One standard ID filter with mask occupies 1/2 of the 14 available
	  filter banks.

	  The following equation determines the maximum total number of
	  filters:

	    CAN_MAX_STD_ID_FILTER + CAN_MAX_EXT_ID_FILTER * 2 <= 28

config CAN_MAX_EXT_ID_FILTER
	int "Maximum number of ext ID filters"
	default 7
	range 0 14
	help
	  Defines the maximum number of filters with extended ID (29-bit)
	  that can be added by the application.

	  One extended ID filter with mask occupies 1 of the 14 available
	  filter banks.

	  The following equation determines the maximum total number of
	  filters:

	    CAN_MAX_STD_ID_FILTER + CAN_MAX_EXT_ID_FILTER * 2 <= 28
