1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2ccb29637SOliver Hartkoppmenu "CAN Device Drivers" 3ccb29637SOliver Hartkopp 4ccb29637SOliver Hartkoppconfig CAN_VCAN 5ccb29637SOliver Hartkopp tristate "Virtual Local CAN Interface (vcan)" 6a7f7f624SMasahiro Yamada help 7ccb29637SOliver Hartkopp Similar to the network loopback devices, vcan offers a 8ccb29637SOliver Hartkopp virtual local CAN interface. 9ccb29637SOliver Hartkopp 10ccb29637SOliver Hartkopp This driver can also be built as a module. If so, the module 11ccb29637SOliver Hartkopp will be called vcan. 12ccb29637SOliver Hartkopp 13a8f820a3SOliver Hartkoppconfig CAN_VXCAN 14a8f820a3SOliver Hartkopp tristate "Virtual CAN Tunnel (vxcan)" 15a7f7f624SMasahiro Yamada help 16a8f820a3SOliver Hartkopp Similar to the virtual ethernet driver veth, vxcan implements a 17a8f820a3SOliver Hartkopp local CAN traffic tunnel between two virtual CAN network devices. 18a8f820a3SOliver Hartkopp When creating a vxcan, two vxcan devices are created as pair. 19a8f820a3SOliver Hartkopp When one end receives the packet it appears on its pair and vice 20a8f820a3SOliver Hartkopp versa. The vxcan can be used for cross namespace communication. 21a8f820a3SOliver Hartkopp 22a8f820a3SOliver Hartkopp In opposite to vcan loopback devices the vxcan only forwards CAN 23a8f820a3SOliver Hartkopp frames to its pair and does *not* provide a local echo of sent 24a8f820a3SOliver Hartkopp CAN frames. To disable a potential echo in af_can.c the vxcan driver 25a8f820a3SOliver Hartkopp announces IFF_ECHO in the interface flags. To have a clean start 26a8f820a3SOliver Hartkopp in each namespace the CAN GW hop counter is set to zero. 27a8f820a3SOliver Hartkopp 28a8f820a3SOliver Hartkopp This driver can also be built as a module. If so, the module 29a8f820a3SOliver Hartkopp will be called vxcan. 30a8f820a3SOliver Hartkopp 31a1044e36SOliver Hartkoppconfig CAN_SLCAN 32a1044e36SOliver Hartkopp tristate "Serial / USB serial CAN Adaptors (slcan)" 3321eaab6dSLinus Torvalds depends on TTY 34a7f7f624SMasahiro Yamada help 35a1044e36SOliver Hartkopp CAN driver for several 'low cost' CAN interfaces that are attached 36a1044e36SOliver Hartkopp via serial lines or via USB-to-serial adapters using the LAWICEL 37a1044e36SOliver Hartkopp ASCII protocol. The driver implements the tty linediscipline N_SLCAN. 38a1044e36SOliver Hartkopp 39a1044e36SOliver Hartkopp As only the sending and receiving of CAN frames is implemented, this 40a1044e36SOliver Hartkopp driver should work with the (serial/USB) CAN hardware from: 41c128df73SOliver Hartkopp www.canusb.com / www.can232.com / www.mictronics.de / www.canhack.de 42a1044e36SOliver Hartkopp 43a1044e36SOliver Hartkopp Userspace tools to attach the SLCAN line discipline (slcan_attach, 441eb11012SDiego Elio Pettenò slcand) can be found in the can-utils at the linux-can project, see 451eb11012SDiego Elio Pettenò https://github.com/linux-can/can-utils for details. 46a1044e36SOliver Hartkopp 47a1044e36SOliver Hartkopp The slcan driver supports up to 10 CAN netdevices by default which 48a1044e36SOliver Hartkopp can be changed by the 'maxdev=xx' module option. This driver can 49a1044e36SOliver Hartkopp also be built as a module. If so, the module will be called slcan. 50a1044e36SOliver Hartkopp 51*df6ad5ddSVincent Mailholconfig CAN_NETLINK 52*df6ad5ddSVincent Mailhol tristate "CAN device drivers with Netlink support" 53a30d5155SMarc Kleine-Budde default y 54a7f7f624SMasahiro Yamada help 55*df6ad5ddSVincent Mailhol Enables the common framework for CAN device drivers. This is the 56*df6ad5ddSVincent Mailhol standard library and provides features for the Netlink interface such 57*df6ad5ddSVincent Mailhol as bittiming validation, support of CAN error states, device restart 58*df6ad5ddSVincent Mailhol and others. 5939549eefSWolfgang Grandegger 60*df6ad5ddSVincent Mailhol This is required by all platform and hardware CAN drivers. If you 61*df6ad5ddSVincent Mailhol plan to use such devices or if unsure, say Y. 62*df6ad5ddSVincent Mailhol 63*df6ad5ddSVincent Mailholif CAN_NETLINK 646586c5d7SMarc Kleine-Budde 6539549eefSWolfgang Grandeggerconfig CAN_CALC_BITTIMING 6639549eefSWolfgang Grandegger bool "CAN bit-timing calculation" 67a30d5155SMarc Kleine-Budde default y 68a7f7f624SMasahiro Yamada help 6939549eefSWolfgang Grandegger If enabled, CAN bit-timing parameters will be calculated for the 7039549eefSWolfgang Grandegger bit-rate specified via Netlink argument "bitrate" when the device 7139549eefSWolfgang Grandegger get started. This works fine for the most common CAN controllers 7239549eefSWolfgang Grandegger with standard bit-rates but may fail for exotic bit-rates or CAN 7339549eefSWolfgang Grandegger source clock frequencies. Disabling saves some space, but then the 7439549eefSWolfgang Grandegger bit-timing parameters must be specified directly using the Netlink 7539549eefSWolfgang Grandegger arguments "tq", "prop_seg", "phase_seg1", "phase_seg2" and "sjw". 7639549eefSWolfgang Grandegger If unsure, say Y. 7739549eefSWolfgang Grandegger 7868f40152SMarc Kleine-Buddeconfig CAN_AT91 7968f40152SMarc Kleine-Budde tristate "Atmel AT91 onchip CAN controller" 809dc8be28SChen Gang depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM 81a7f7f624SMasahiro Yamada help 82b9e379bcSUwe Kleine-König This is a driver for the SoC CAN controller in Atmel's AT91SAM9263 83b9e379bcSUwe Kleine-König and AT91SAM9X5 processors. 8468f40152SMarc Kleine-Budde 8526821162SMarc Kleine-Buddeconfig CAN_FLEXCAN 8626821162SMarc Kleine-Budde tristate "Support for Freescale FLEXCAN based chips" 878dad5561SAngelo Dureghello depends on OF || COLDFIRE || COMPILE_TEST 888dad5561SAngelo Dureghello depends on HAS_IOMEM 89a7f7f624SMasahiro Yamada help 9026821162SMarc Kleine-Budde Say Y here if you want to support for Freescale FlexCAN. 9126821162SMarc Kleine-Budde 9226821162SMarc Kleine-Buddeconfig CAN_GRCAN 9326821162SMarc Kleine-Budde tristate "Aeroflex Gaisler GRCAN and GRHCAN CAN devices" 9451894cbaSMarc Kleine-Budde depends on OF && HAS_DMA && HAS_IOMEM 95a7f7f624SMasahiro Yamada help 9626821162SMarc Kleine-Budde Say Y here if you want to use Aeroflex Gaisler GRCAN or GRHCAN. 9726821162SMarc Kleine-Budde Note that the driver supports little endian, even though little 9826821162SMarc Kleine-Budde endian syntheses of the cores would need some modifications on 9926821162SMarc Kleine-Budde the hardware level to work. 10026821162SMarc Kleine-Budde 101631eb227SIra W. Snyderconfig CAN_JANZ_ICAN3 102631eb227SIra W. Snyder tristate "Janz VMOD-ICAN3 Intelligent CAN controller" 1036586c5d7SMarc Kleine-Budde depends on MFD_JANZ_CMODIO 104a7f7f624SMasahiro Yamada help 105631eb227SIra W. Snyder Driver for Janz VMOD-ICAN3 Intelligent CAN controller module, which 106631eb227SIra W. Snyder connects to a MODULbus carrier board. 107631eb227SIra W. Snyder 108631eb227SIra W. Snyder This driver can also be built as a module. If so, the module will be 109631eb227SIra W. Snyder called janz-ican3.ko. 110631eb227SIra W. Snyder 11126ad340eSHenning Collianderconfig CAN_KVASER_PCIEFD 11226ad340eSHenning Colliander depends on PCI 11326ad340eSHenning Colliander tristate "Kvaser PCIe FD cards" 1141d48595cSArnd Bergmann select CRC32 11526ad340eSHenning Colliander help 11626ad340eSHenning Colliander This is a driver for the Kvaser PCI Express CAN FD family. 11726ad340eSHenning Colliander 11826ad340eSHenning Colliander Supported devices: 11926ad340eSHenning Colliander Kvaser PCIEcan 4xHS 12026ad340eSHenning Colliander Kvaser PCIEcan 2xHS v2 12126ad340eSHenning Colliander Kvaser PCIEcan HS v2 12226ad340eSHenning Colliander Kvaser Mini PCI Express HS v2 12326ad340eSHenning Colliander Kvaser Mini PCI Express 2xHS v2 12426ad340eSHenning Colliander 1250738eff1SGerhard Bertelsmannconfig CAN_SUN4I 1260738eff1SGerhard Bertelsmann tristate "Allwinner A10 CAN controller" 1270738eff1SGerhard Bertelsmann depends on MACH_SUN4I || MACH_SUN7I || COMPILE_TEST 128a7f7f624SMasahiro Yamada help 1290738eff1SGerhard Bertelsmann Say Y here if you want to use CAN controller found on Allwinner 1300738eff1SGerhard Bertelsmann A10/A20 SoCs. 1310738eff1SGerhard Bertelsmann 1320738eff1SGerhard Bertelsmann To compile this driver as a module, choose M here: the module will 1330738eff1SGerhard Bertelsmann be called sun4i_can. 1340738eff1SGerhard Bertelsmann 13526821162SMarc Kleine-Buddeconfig CAN_TI_HECC 13626821162SMarc Kleine-Budde depends on ARM 13726821162SMarc Kleine-Budde tristate "TI High End CAN Controller" 138a7f7f624SMasahiro Yamada help 13926821162SMarc Kleine-Budde Driver for TI HECC (High End CAN Controller) module found on many 14026821162SMarc Kleine-Budde TI devices. The device specifications are available from www.ti.com 14126821162SMarc Kleine-Budde 142b1201e44SKedareswara rao Appanaconfig CAN_XILINXCAN 143b1201e44SKedareswara rao Appana tristate "Xilinx CAN" 144963a822bSMichal Simek depends on ARCH_ZYNQ || ARM64 || MICROBLAZE || COMPILE_TEST 145b1201e44SKedareswara rao Appana depends on COMMON_CLK && HAS_IOMEM 146a7f7f624SMasahiro Yamada help 147b1201e44SKedareswara rao Appana Xilinx CAN driver. This driver supports both soft AXI CAN IP and 148b1201e44SKedareswara rao Appana Zynq CANPS IP. 149b1201e44SKedareswara rao Appana 15026821162SMarc Kleine-Buddeconfig PCH_CAN 15126821162SMarc Kleine-Budde tristate "Intel EG20T PCH CAN controller" 15226821162SMarc Kleine-Budde depends on PCI && (X86_32 || COMPILE_TEST) 153a7f7f624SMasahiro Yamada help 15426821162SMarc Kleine-Budde This driver is for PCH CAN of Topcliff (Intel EG20T PCH) which 15526821162SMarc Kleine-Budde is an IOH for x86 embedded processor (Intel Atom E6xx series). 15626821162SMarc Kleine-Budde This driver can access CAN bus. 157b93cf3f0SOliver Hartkopp 158881ff67aSBhupesh Sharmasource "drivers/net/can/c_can/Kconfig" 1592a367c3aSWolfgang Grandeggersource "drivers/net/can/cc770/Kconfig" 1602dcb8e87SMartin Jerabeksource "drivers/net/can/ctucanfd/Kconfig" 1610c4d9c94SMarek Vasutsource "drivers/net/can/ifi_canfd/Kconfig" 16283407c7fSMarek Vasutsource "drivers/net/can/m_can/Kconfig" 16383407c7fSMarek Vasutsource "drivers/net/can/mscan/Kconfig" 1648ac8321eSStephane Grosjeansource "drivers/net/can/peak_canfd/Kconfig" 165dd3bd23eSRamesh Shanmugasundaramsource "drivers/net/can/rcar/Kconfig" 16683407c7fSMarek Vasutsource "drivers/net/can/sja1000/Kconfig" 16703fd3cf5SKurt Van Dijcksource "drivers/net/can/softing/Kconfig" 16883407c7fSMarek Vasutsource "drivers/net/can/spi/Kconfig" 16983407c7fSMarek Vasutsource "drivers/net/can/usb/Kconfig" 17003fd3cf5SKurt Van Dijck 171*df6ad5ddSVincent Mailholendif #CAN_NETLINK 1726586c5d7SMarc Kleine-Budde 173ccb29637SOliver Hartkoppconfig CAN_DEBUG_DEVICES 174ccb29637SOliver Hartkopp bool "CAN devices debugging messages" 175a7f7f624SMasahiro Yamada help 176ccb29637SOliver Hartkopp Say Y here if you want the CAN device drivers to produce a bunch of 177ccb29637SOliver Hartkopp debug messages to the system log. Select this if you are having 178ccb29637SOliver Hartkopp a problem with CAN support and want to see more of what is going 179ccb29637SOliver Hartkopp on. 180ccb29637SOliver Hartkopp 181ccb29637SOliver Hartkoppendmenu 182