1# CAN configuration options
2
3# Copyright (c) 2018 Alexander Wachter
4# SPDX-License-Identifier: Apache-2.0
5
6#
7# CAN options
8#
9menuconfig CAN
10	bool "Controller Area Network (CAN) drivers"
11	help
12	  Enable CAN Driver Configuration
13
14if CAN
15
16module = CAN
17module-str = CAN
18source "subsys/logging/Kconfig.template.log_config"
19
20config CAN_INIT_PRIORITY
21	int "CAN driver init priority"
22	default 80
23	help
24	  CAN driver device initialization priority.
25
26config CAN_DEFAULT_BITRATE
27	int "Default CAN bitrate"
28	default 125000
29	help
30	  Default initial CAN bitrate in bits/s. This can be overridden per CAN controller using the
31	  "bitrate" devicetree property.
32
33config CAN_DEFAULT_BITRATE_DATA
34	int "Default CAN data phase bitrate"
35	default 1000000
36	depends on CAN_FD_MODE
37	help
38	  Default initial CAN data phase bitrate in bits/s. This can be overridden per CAN controller
39	  using the "bitrate-data" devicetree property.
40
41config CAN_SHELL
42	bool "CAN shell"
43	depends on SHELL
44	select POLL
45	help
46	  Enable CAN Shell for testing.
47
48if CAN_SHELL
49
50config CAN_SHELL_TX_QUEUE_SIZE
51	int "CAN shell transmit queue size"
52	default 5
53	range 1 256
54	help
55	  Maximum number of events in the CAN shell transmit queue.
56
57config CAN_SHELL_RX_QUEUE_SIZE
58	int "CAN shell receive queue size"
59	default 5
60	range 1 256
61	help
62	  Maximum number of CAN frames in the CAN shell receive queue.
63
64config CAN_SHELL_SCRIPTING_FRIENDLY
65	bool "Produce scripting-friendly output"
66	help
67	  Enable scripting-friendly/machine-readable output from the CAN shell. Enabling this
68	  bypasses the shell when printing certain outputs to ensure the output is not interleaved
69	  with the shell prompt.
70
71endif # CAN_SHELL
72
73config CAN_STATS
74	bool "CAN controller device statistics"
75	depends on STATS
76	help
77	  Enable CAN controller device statistics.
78
79config CAN_ACCEPT_RTR
80	bool "Accept Remote Transmission Requests (RTR) frames"
81	help
82	  Accept incoming Remote Transmission Request (RTR) frames matching CAN RX filters. Unless
83	  enabled, all incoming Remote Transmission Request (RTR) frames are rejected at the driver
84	  level.
85
86config CAN_FD_MODE
87	bool "CAN FD support"
88	help
89	  Enable CAN FD support. Not all CAN controllers support CAN FD.
90
91config CAN_MANUAL_RECOVERY_MODE
92	bool "Manual bus-off recovery support"
93	help
94	  Enable support for manual (non-automatic) recovery from bus-off state. Not all CAN
95	  controllers support manual recovery mode.
96
97config CAN_RX_TIMESTAMP
98	bool "Receiving timestamps"
99	help
100	  This option enables a timestamp value of the CAN free running timer.
101	  The value is incremented every bit time and starts when the controller
102	  is initialized. Not all CAN controllers support timestamps.
103
104config CAN_QEMU_IFACE_NAME
105	string "SocketCAN interface name for QEMU"
106	default ""
107	depends on QEMU_TARGET
108	help
109	  The SocketCAN interface name for QEMU. This value, if set, is given as "if" parameter to
110	  the "-object can-host-socketcan" qemu command line option. The CAN interface must be
111	  configured before starting QEMU.
112
113source "drivers/can/Kconfig.sam"
114source "drivers/can/Kconfig.sam0"
115source "drivers/can/Kconfig.stm32"
116source "drivers/can/Kconfig.mcux"
117source "drivers/can/Kconfig.mcp2515"
118source "drivers/can/Kconfig.mcan"
119source "drivers/can/Kconfig.rcar"
120source "drivers/can/Kconfig.numaker"
121source "drivers/can/Kconfig.loopback"
122source "drivers/can/Kconfig.native_linux"
123source "drivers/can/Kconfig.sja1000"
124source "drivers/can/Kconfig.esp32"
125source "drivers/can/Kconfig.kvaser"
126source "drivers/can/Kconfig.fake"
127source "drivers/can/Kconfig.nxp_s32"
128source "drivers/can/Kconfig.tcan4x5x"
129source "drivers/can/Kconfig.mcp251xfd"
130source "drivers/can/Kconfig.xmc4xxx"
131source "drivers/can/Kconfig.nrf"
132
133source "drivers/can/transceiver/Kconfig"
134
135endif # CAN
136