# STM32 CAN configuration options

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

DT_COMPAT_STM32_FDCAN := st,stm32-fdcan

config CAN_STM32FD
	bool "STM32 FDCAN driver"
	default $(dt_compat_enabled,$(DT_COMPAT_STM32_FDCAN))
	select CAN_MCAN
	select USE_STM32_LL_RCC

if CAN_STM32FD

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

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

config CAN_STM32_CLOCK_DIVISOR
	int "CAN clock divisor"
	range 1 30
	default 1
	help
	  The APB clock is divided by this value (stored in CKDIV register)
	  before it is fed to the CAN core.
	  Note that the the divisor affects all CAN controllers.
	  Allowed values: 1 or 2 * n, where n <= 15.

endif #CAN_STM32FD
