# MCUX CAN configuration options

# Copyright (c) 2019 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0

config CAN_MCUX_FLEXCAN
	bool "MCUX FlexCAN driver"
	depends on HAS_MCUX_FLEXCAN && CLOCK_CONTROL
	select CAN_HAS_RX_TIMESTAMP
	help
	  Enable support for mcux flexcan driver.

config CAN_MAX_FILTER
	int "Maximum number of concurrent active RX filters"
	depends on CAN_MCUX_FLEXCAN
	default 5
	range 1 15 if SOC_SERIES_KINETIS_KE1XF || SOC_SERIES_KINETIS_K6X
	range 1 63 if SOC_SERIES_IMX_RT
	help
	  Defines maximum number of concurrent active RX filters

config CAN_MCUX_MCAN
	bool "MCUX MCAN driver"
	depends on HAS_MCUX_MCAN && CLOCK_CONTROL
	select CAN_MCAN
	help
	  Enable support for mcux mcan driver.
