# CAN configuration options

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

#
# CAN options
#
menuconfig CAN
	bool "CAN Drivers"
	help
	  Enable CAN Driver Configuration

if CAN

module = CAN
module-str = CAN
source "subsys/logging/Kconfig.template.log_config"

config CAN_INIT_PRIORITY
	int "CAN driver init priority"
	default KERNEL_INIT_PRIORITY_DEVICE
	help
	  CAN driver device initialization priority.

config CAN_SHELL
	bool "CAN Shell"
	default y
	depends on SHELL
	select POLL
	help
	  Enable CAN Shell for testing.

config CAN_STATS
	bool "CAN controller device statistics"
	depends on STATS
	help
	  Enable CAN controller device statistics.

config CAN_HAS_CANFD
	bool
	help
	  driver supports CAN-FD

config CAN_HAS_RX_TIMESTAMP
	bool
	help
	  driver supports RX timestamps

config CAN_FD_MODE
	bool "CAN-FD"
	default y
	depends on CAN_HAS_CANFD
	help
	  Enable CAN-FD compatible API

if CAN_FD_MODE

config CANFD_MAX_DLC
	int "Max data length code in CAN frames"
	range 8 15
	default 15
	help
	  Maximum allowed DLC in a CAN frame. This parameter sets the
	  data buffer size in a CAN frame and is therefore only used to
	  optimize memory consumption.
endif # CAN_FD_MODE

config CAN_RX_TIMESTAMP
	bool "Receiving timestamps"
	depends on CAN_HAS_RX_TIMESTAMP
	help
	  This option enables a timestamp value of the CAN free running timer.
	  The value is incremented every bit time and starts when the controller
	  is initialized.

config CAN_AUTO_BUS_OFF_RECOVERY
	bool "Automatic recovery from bus-off"
	default y
	help
	  This option enables the automatic bus-off recovery according to
	  ISO 11898-1 (recovery after 128 occurrences of 11 consecutive
	  recessive bits). When this option is enabled, the recovery API is not
	  available.

source "drivers/can/Kconfig.sam"
source "drivers/can/Kconfig.stm32"
source "drivers/can/Kconfig.stm32fd"
source "drivers/can/Kconfig.stm32h7"
source "drivers/can/Kconfig.mcux"
source "drivers/can/Kconfig.mcp2515"
source "drivers/can/Kconfig.mcan"
source "drivers/can/Kconfig.rcar"
source "drivers/can/Kconfig.loopback"

source "drivers/can/Kconfig.sja1000"
source "drivers/can/Kconfig.esp32"

source "drivers/can/transceiver/Kconfig"

endif # CAN
