1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 26a528644SVincent Mailhol 36a528644SVincent Mailholmenuconfig CAN_DEV 46a528644SVincent Mailhol tristate "CAN Device Drivers" 56a528644SVincent Mailhol default y 6d7786af5SVincent Mailhol depends on CAN 76a528644SVincent Mailhol help 86a528644SVincent Mailhol Controller Area Network (CAN) is serial communications protocol up to 96a528644SVincent Mailhol 1Mbit/s for its original release (now known as Classical CAN) and up 106a528644SVincent Mailhol to 8Mbit/s for the more recent CAN with Flexible Data-Rate 116a528644SVincent Mailhol (CAN-FD). The CAN bus was originally mainly for automotive, but is now 126a528644SVincent Mailhol widely used in marine (NMEA2000), industrial, and medical 136a528644SVincent Mailhol applications. More information on the CAN network protocol family 146a528644SVincent Mailhol PF_CAN is contained in <Documentation/networking/can.rst>. 156a528644SVincent Mailhol 166a528644SVincent Mailhol This section contains all the CAN(-FD) device drivers including the 176a528644SVincent Mailhol virtual ones. If you own such devices or plan to use the virtual CAN 186a528644SVincent Mailhol interfaces to develop applications, say Y here. 196a528644SVincent Mailhol 206a528644SVincent Mailhol To compile as a module, choose M here: the module will be called 216a528644SVincent Mailhol can-dev. 226a528644SVincent Mailhol 236a528644SVincent Mailholif CAN_DEV 24ccb29637SOliver Hartkopp 25ccb29637SOliver Hartkoppconfig CAN_VCAN 26ccb29637SOliver Hartkopp tristate "Virtual Local CAN Interface (vcan)" 27a7f7f624SMasahiro Yamada help 28ccb29637SOliver Hartkopp Similar to the network loopback devices, vcan offers a 29ccb29637SOliver Hartkopp virtual local CAN interface. 30ccb29637SOliver Hartkopp 31ccb29637SOliver Hartkopp This driver can also be built as a module. If so, the module 32ccb29637SOliver Hartkopp will be called vcan. 33ccb29637SOliver Hartkopp 34a8f820a3SOliver Hartkoppconfig CAN_VXCAN 35a8f820a3SOliver Hartkopp tristate "Virtual CAN Tunnel (vxcan)" 36a7f7f624SMasahiro Yamada help 37a8f820a3SOliver Hartkopp Similar to the virtual ethernet driver veth, vxcan implements a 38a8f820a3SOliver Hartkopp local CAN traffic tunnel between two virtual CAN network devices. 39a8f820a3SOliver Hartkopp When creating a vxcan, two vxcan devices are created as pair. 40a8f820a3SOliver Hartkopp When one end receives the packet it appears on its pair and vice 41a8f820a3SOliver Hartkopp versa. The vxcan can be used for cross namespace communication. 42a8f820a3SOliver Hartkopp 43a8f820a3SOliver Hartkopp In opposite to vcan loopback devices the vxcan only forwards CAN 44a8f820a3SOliver Hartkopp frames to its pair and does *not* provide a local echo of sent 45a8f820a3SOliver Hartkopp CAN frames. To disable a potential echo in af_can.c the vxcan driver 46a8f820a3SOliver Hartkopp announces IFF_ECHO in the interface flags. To have a clean start 47a8f820a3SOliver Hartkopp in each namespace the CAN GW hop counter is set to zero. 48a8f820a3SOliver Hartkopp 49a8f820a3SOliver Hartkopp This driver can also be built as a module. If so, the module 50a8f820a3SOliver Hartkopp will be called vxcan. 51a8f820a3SOliver Hartkopp 52df6ad5ddSVincent Mailholconfig CAN_NETLINK 536a528644SVincent Mailhol bool "CAN device drivers with Netlink support" 54a30d5155SMarc Kleine-Budde default y 55a7f7f624SMasahiro Yamada help 56df6ad5ddSVincent Mailhol Enables the common framework for CAN device drivers. This is the 57df6ad5ddSVincent Mailhol standard library and provides features for the Netlink interface such 58df6ad5ddSVincent Mailhol as bittiming validation, support of CAN error states, device restart 59df6ad5ddSVincent Mailhol and others. 6039549eefSWolfgang Grandegger 616a528644SVincent Mailhol The additional features selected by this option will be added to the 626a528644SVincent Mailhol can-dev module. 636a528644SVincent Mailhol 64df6ad5ddSVincent Mailhol This is required by all platform and hardware CAN drivers. If you 65df6ad5ddSVincent Mailhol plan to use such devices or if unsure, say Y. 66df6ad5ddSVincent Mailhol 67df6ad5ddSVincent Mailholif CAN_NETLINK 686586c5d7SMarc Kleine-Budde 6939549eefSWolfgang Grandeggerconfig CAN_CALC_BITTIMING 7039549eefSWolfgang Grandegger bool "CAN bit-timing calculation" 71a30d5155SMarc Kleine-Budde default y 72a7f7f624SMasahiro Yamada help 7339549eefSWolfgang Grandegger If enabled, CAN bit-timing parameters will be calculated for the 7439549eefSWolfgang Grandegger bit-rate specified via Netlink argument "bitrate" when the device 7539549eefSWolfgang Grandegger get started. This works fine for the most common CAN controllers 7639549eefSWolfgang Grandegger with standard bit-rates but may fail for exotic bit-rates or CAN 7739549eefSWolfgang Grandegger source clock frequencies. Disabling saves some space, but then the 7839549eefSWolfgang Grandegger bit-timing parameters must be specified directly using the Netlink 7939549eefSWolfgang Grandegger arguments "tq", "prop_seg", "phase_seg1", "phase_seg2" and "sjw". 800c7e1151SVincent Mailhol 810c7e1151SVincent Mailhol The additional features selected by this option will be added to the 820c7e1151SVincent Mailhol can-dev module. 830c7e1151SVincent Mailhol 8439549eefSWolfgang Grandegger If unsure, say Y. 8539549eefSWolfgang Grandegger 86bfe0092dSVincent Mailholconfig CAN_RX_OFFLOAD 87bfe0092dSVincent Mailhol bool 88bfe0092dSVincent Mailhol 8968f40152SMarc Kleine-Buddeconfig CAN_AT91 9068f40152SMarc Kleine-Budde tristate "Atmel AT91 onchip CAN controller" 919dc8be28SChen Gang depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM 92a7f7f624SMasahiro Yamada help 93b9e379bcSUwe Kleine-König This is a driver for the SoC CAN controller in Atmel's AT91SAM9263 94b9e379bcSUwe Kleine-König and AT91SAM9X5 processors. 9568f40152SMarc Kleine-Budde 96f00647d8SDario Binacchiconfig CAN_BXCAN 97f00647d8SDario Binacchi tristate "STM32 Basic Extended CAN (bxCAN) devices" 98*4920bdedSGeert Uytterhoeven depends on ARCH_STM32 || COMPILE_TEST 99f00647d8SDario Binacchi depends on HAS_IOMEM 100f00647d8SDario Binacchi select CAN_RX_OFFLOAD 101f00647d8SDario Binacchi help 102f00647d8SDario Binacchi Say yes here to build support for the STMicroelectronics STM32 basic 103f00647d8SDario Binacchi extended CAN Controller (bxCAN). 104f00647d8SDario Binacchi 105f00647d8SDario Binacchi This driver can also be built as a module. If so, the module 106f00647d8SDario Binacchi will be called bxcan. 107f00647d8SDario Binacchi 10843da2f07SMax Staudtconfig CAN_CAN327 10943da2f07SMax Staudt tristate "Serial / USB serial ELM327 based OBD-II Interfaces (can327)" 11043da2f07SMax Staudt depends on TTY 11143da2f07SMax Staudt select CAN_RX_OFFLOAD 11243da2f07SMax Staudt help 11343da2f07SMax Staudt CAN driver for several 'low cost' OBD-II interfaces based on the 11443da2f07SMax Staudt ELM327 OBD-II interpreter chip. 11543da2f07SMax Staudt 11643da2f07SMax Staudt This is a best effort driver - the ELM327 interface was never 11743da2f07SMax Staudt designed to be used as a standalone CAN interface. However, it can 11843da2f07SMax Staudt still be used for simple request-response protocols (such as OBD II), 11943da2f07SMax Staudt and to monitor broadcast messages on a bus (such as in a vehicle). 12043da2f07SMax Staudt 12143da2f07SMax Staudt Please refer to the documentation for information on how to use it: 12243da2f07SMax Staudt Documentation/networking/device_drivers/can/can327.rst 12343da2f07SMax Staudt 12443da2f07SMax Staudt If this driver is built as a module, it will be called can327. 12543da2f07SMax Staudt 12626821162SMarc Kleine-Buddeconfig CAN_FLEXCAN 12726821162SMarc Kleine-Budde tristate "Support for Freescale FLEXCAN based chips" 1288dad5561SAngelo Dureghello depends on OF || COLDFIRE || COMPILE_TEST 1298dad5561SAngelo Dureghello depends on HAS_IOMEM 130bfe0092dSVincent Mailhol select CAN_RX_OFFLOAD 131a7f7f624SMasahiro Yamada help 13226821162SMarc Kleine-Budde Say Y here if you want to support for Freescale FlexCAN. 13326821162SMarc Kleine-Budde 13426821162SMarc Kleine-Buddeconfig CAN_GRCAN 13526821162SMarc Kleine-Budde tristate "Aeroflex Gaisler GRCAN and GRHCAN CAN devices" 13651894cbaSMarc Kleine-Budde depends on OF && HAS_DMA && HAS_IOMEM 137a7f7f624SMasahiro Yamada help 13826821162SMarc Kleine-Budde Say Y here if you want to use Aeroflex Gaisler GRCAN or GRHCAN. 13926821162SMarc Kleine-Budde Note that the driver supports little endian, even though little 14026821162SMarc Kleine-Budde endian syntheses of the cores would need some modifications on 14126821162SMarc Kleine-Budde the hardware level to work. 14226821162SMarc Kleine-Budde 143631eb227SIra W. Snyderconfig CAN_JANZ_ICAN3 144631eb227SIra W. Snyder tristate "Janz VMOD-ICAN3 Intelligent CAN controller" 1456586c5d7SMarc Kleine-Budde depends on MFD_JANZ_CMODIO 146a7f7f624SMasahiro Yamada help 147631eb227SIra W. Snyder Driver for Janz VMOD-ICAN3 Intelligent CAN controller module, which 148631eb227SIra W. Snyder connects to a MODULbus carrier board. 149631eb227SIra W. Snyder 150631eb227SIra W. Snyder This driver can also be built as a module. If so, the module will be 151631eb227SIra W. Snyder called janz-ican3.ko. 152631eb227SIra W. Snyder 15326ad340eSHenning Collianderconfig CAN_KVASER_PCIEFD 15426ad340eSHenning Colliander depends on PCI 15526ad340eSHenning Colliander tristate "Kvaser PCIe FD cards" 1561d48595cSArnd Bergmann select CRC32 15726ad340eSHenning Colliander help 15826ad340eSHenning Colliander This is a driver for the Kvaser PCI Express CAN FD family. 15926ad340eSHenning Colliander 16026ad340eSHenning Colliander Supported devices: 16126ad340eSHenning Colliander Kvaser PCIEcan 4xHS 16226ad340eSHenning Colliander Kvaser PCIEcan 2xHS v2 16326ad340eSHenning Colliander Kvaser PCIEcan HS v2 16426ad340eSHenning Colliander Kvaser Mini PCI Express HS v2 16526ad340eSHenning Colliander Kvaser Mini PCI Express 2xHS v2 16626ad340eSHenning Colliander 167c4e54b06SDario Binacchiconfig CAN_SLCAN 168c4e54b06SDario Binacchi tristate "Serial / USB serial CAN Adaptors (slcan)" 169c4e54b06SDario Binacchi depends on TTY 170c4e54b06SDario Binacchi help 171c4e54b06SDario Binacchi CAN driver for several 'low cost' CAN interfaces that are attached 172c4e54b06SDario Binacchi via serial lines or via USB-to-serial adapters using the LAWICEL 173c4e54b06SDario Binacchi ASCII protocol. The driver implements the tty linediscipline N_SLCAN. 174c4e54b06SDario Binacchi 175c4e54b06SDario Binacchi As only the sending and receiving of CAN frames is implemented, this 176c4e54b06SDario Binacchi driver should work with the (serial/USB) CAN hardware from: 177c4e54b06SDario Binacchi www.canusb.com / www.can232.com / www.mictronics.de / www.canhack.de 178c4e54b06SDario Binacchi 179c4e54b06SDario Binacchi Userspace tools to attach the SLCAN line discipline (slcan_attach, 180c4e54b06SDario Binacchi slcand) can be found in the can-utils at the linux-can project, see 181c4e54b06SDario Binacchi https://github.com/linux-can/can-utils for details. 182c4e54b06SDario Binacchi 183c4e54b06SDario Binacchi The slcan driver supports up to 10 CAN netdevices by default which 184c4e54b06SDario Binacchi can be changed by the 'maxdev=xx' module option. This driver can 185c4e54b06SDario Binacchi also be built as a module. If so, the module will be called slcan. 186c4e54b06SDario Binacchi 1870738eff1SGerhard Bertelsmannconfig CAN_SUN4I 1880738eff1SGerhard Bertelsmann tristate "Allwinner A10 CAN controller" 1890738eff1SGerhard Bertelsmann depends on MACH_SUN4I || MACH_SUN7I || COMPILE_TEST 190a7f7f624SMasahiro Yamada help 1910738eff1SGerhard Bertelsmann Say Y here if you want to use CAN controller found on Allwinner 1920738eff1SGerhard Bertelsmann A10/A20 SoCs. 1930738eff1SGerhard Bertelsmann 1940738eff1SGerhard Bertelsmann To compile this driver as a module, choose M here: the module will 1950738eff1SGerhard Bertelsmann be called sun4i_can. 1960738eff1SGerhard Bertelsmann 19726821162SMarc Kleine-Buddeconfig CAN_TI_HECC 19826821162SMarc Kleine-Budde depends on ARM 19926821162SMarc Kleine-Budde tristate "TI High End CAN Controller" 200bfe0092dSVincent Mailhol select CAN_RX_OFFLOAD 201a7f7f624SMasahiro Yamada help 20226821162SMarc Kleine-Budde Driver for TI HECC (High End CAN Controller) module found on many 20326821162SMarc Kleine-Budde TI devices. The device specifications are available from www.ti.com 20426821162SMarc Kleine-Budde 205b1201e44SKedareswara rao Appanaconfig CAN_XILINXCAN 206b1201e44SKedareswara rao Appana tristate "Xilinx CAN" 207963a822bSMichal Simek depends on ARCH_ZYNQ || ARM64 || MICROBLAZE || COMPILE_TEST 208b1201e44SKedareswara rao Appana depends on COMMON_CLK && HAS_IOMEM 209a7f7f624SMasahiro Yamada help 210b1201e44SKedareswara rao Appana Xilinx CAN driver. This driver supports both soft AXI CAN IP and 211b1201e44SKedareswara rao Appana Zynq CANPS IP. 212b1201e44SKedareswara rao Appana 213881ff67aSBhupesh Sharmasource "drivers/net/can/c_can/Kconfig" 2142a367c3aSWolfgang Grandeggersource "drivers/net/can/cc770/Kconfig" 2152dcb8e87SMartin Jerabeksource "drivers/net/can/ctucanfd/Kconfig" 2160c4d9c94SMarek Vasutsource "drivers/net/can/ifi_canfd/Kconfig" 21783407c7fSMarek Vasutsource "drivers/net/can/m_can/Kconfig" 21883407c7fSMarek Vasutsource "drivers/net/can/mscan/Kconfig" 2198ac8321eSStephane Grosjeansource "drivers/net/can/peak_canfd/Kconfig" 220dd3bd23eSRamesh Shanmugasundaramsource "drivers/net/can/rcar/Kconfig" 22183407c7fSMarek Vasutsource "drivers/net/can/sja1000/Kconfig" 22203fd3cf5SKurt Van Dijcksource "drivers/net/can/softing/Kconfig" 22383407c7fSMarek Vasutsource "drivers/net/can/spi/Kconfig" 22483407c7fSMarek Vasutsource "drivers/net/can/usb/Kconfig" 22503fd3cf5SKurt Van Dijck 226df6ad5ddSVincent Mailholendif #CAN_NETLINK 2276586c5d7SMarc Kleine-Budde 228ccb29637SOliver Hartkoppconfig CAN_DEBUG_DEVICES 229ccb29637SOliver Hartkopp bool "CAN devices debugging messages" 230a7f7f624SMasahiro Yamada help 231ccb29637SOliver Hartkopp Say Y here if you want the CAN device drivers to produce a bunch of 232ccb29637SOliver Hartkopp debug messages to the system log. Select this if you are having 233ccb29637SOliver Hartkopp a problem with CAN support and want to see more of what is going 234ccb29637SOliver Hartkopp on. 235ccb29637SOliver Hartkopp 2366a528644SVincent Mailholendif #CAN_DEV 237