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 5139549eefSWolfgang Grandeggerconfig CAN_DEV 5239549eefSWolfgang Grandegger tristate "Platform CAN drivers with Netlink support" 53a30d5155SMarc Kleine-Budde default y 54a7f7f624SMasahiro Yamada help 5539549eefSWolfgang Grandegger Enables the common framework for platform CAN drivers with Netlink 5639549eefSWolfgang Grandegger support. This is the standard library for CAN drivers. 5739549eefSWolfgang Grandegger If unsure, say Y. 5839549eefSWolfgang Grandegger 596586c5d7SMarc Kleine-Buddeif CAN_DEV 606586c5d7SMarc Kleine-Budde 6139549eefSWolfgang Grandeggerconfig CAN_CALC_BITTIMING 6239549eefSWolfgang Grandegger bool "CAN bit-timing calculation" 63a30d5155SMarc Kleine-Budde default y 64a7f7f624SMasahiro Yamada help 6539549eefSWolfgang Grandegger If enabled, CAN bit-timing parameters will be calculated for the 6639549eefSWolfgang Grandegger bit-rate specified via Netlink argument "bitrate" when the device 6739549eefSWolfgang Grandegger get started. This works fine for the most common CAN controllers 6839549eefSWolfgang Grandegger with standard bit-rates but may fail for exotic bit-rates or CAN 6939549eefSWolfgang Grandegger source clock frequencies. Disabling saves some space, but then the 7039549eefSWolfgang Grandegger bit-timing parameters must be specified directly using the Netlink 7139549eefSWolfgang Grandegger arguments "tq", "prop_seg", "phase_seg1", "phase_seg2" and "sjw". 7239549eefSWolfgang Grandegger If unsure, say Y. 7339549eefSWolfgang Grandegger 74996a953dSFabio Baltiericonfig CAN_LEDS 75996a953dSFabio Baltieri bool "Enable LED triggers for Netlink based drivers" 76996a953dSFabio Baltieri depends on LEDS_CLASS 7730f3b421SUwe Kleine-König # The netdev trigger (LEDS_TRIGGER_NETDEV) should be able to do 7830f3b421SUwe Kleine-König # everything that this driver is doing. This is marked as broken 7930f3b421SUwe Kleine-König # because it uses stuff that is intended to be changed or removed. 8030f3b421SUwe Kleine-König # Please consider switching to the netdev trigger and confirm it 8130f3b421SUwe Kleine-König # fulfills your needs instead of fixing this driver. 8230f3b421SUwe Kleine-König depends on BROKEN 83996a953dSFabio Baltieri select LEDS_TRIGGERS 84a7f7f624SMasahiro Yamada help 85996a953dSFabio Baltieri This option adds two LED triggers for packet receive and transmit 86996a953dSFabio Baltieri events on each supported CAN device. 87996a953dSFabio Baltieri 88996a953dSFabio Baltieri Say Y here if you are working on a system with led-class supported 89996a953dSFabio Baltieri LEDs and you want to use them as canbus activity indicators. 90996a953dSFabio Baltieri 9168f40152SMarc Kleine-Buddeconfig CAN_AT91 9268f40152SMarc Kleine-Budde tristate "Atmel AT91 onchip CAN controller" 939dc8be28SChen Gang depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM 94a7f7f624SMasahiro Yamada help 95b9e379bcSUwe Kleine-König This is a driver for the SoC CAN controller in Atmel's AT91SAM9263 96b9e379bcSUwe Kleine-König and AT91SAM9X5 processors. 9768f40152SMarc Kleine-Budde 9826821162SMarc Kleine-Buddeconfig CAN_FLEXCAN 9926821162SMarc Kleine-Budde tristate "Support for Freescale FLEXCAN based chips" 1000f8af56fSPankaj Bansal depends on OF && HAS_IOMEM 101a7f7f624SMasahiro Yamada help 10226821162SMarc Kleine-Budde Say Y here if you want to support for Freescale FlexCAN. 10326821162SMarc Kleine-Budde 10426821162SMarc Kleine-Buddeconfig CAN_GRCAN 10526821162SMarc Kleine-Budde tristate "Aeroflex Gaisler GRCAN and GRHCAN CAN devices" 10626821162SMarc Kleine-Budde depends on OF && HAS_DMA 107a7f7f624SMasahiro Yamada help 10826821162SMarc Kleine-Budde Say Y here if you want to use Aeroflex Gaisler GRCAN or GRHCAN. 10926821162SMarc Kleine-Budde Note that the driver supports little endian, even though little 11026821162SMarc Kleine-Budde endian syntheses of the cores would need some modifications on 11126821162SMarc Kleine-Budde the hardware level to work. 11226821162SMarc Kleine-Budde 113631eb227SIra W. Snyderconfig CAN_JANZ_ICAN3 114631eb227SIra W. Snyder tristate "Janz VMOD-ICAN3 Intelligent CAN controller" 1156586c5d7SMarc Kleine-Budde depends on MFD_JANZ_CMODIO 116a7f7f624SMasahiro Yamada help 117631eb227SIra W. Snyder Driver for Janz VMOD-ICAN3 Intelligent CAN controller module, which 118631eb227SIra W. Snyder connects to a MODULbus carrier board. 119631eb227SIra W. Snyder 120631eb227SIra W. Snyder This driver can also be built as a module. If so, the module will be 121631eb227SIra W. Snyder called janz-ican3.ko. 122631eb227SIra W. Snyder 12326ad340eSHenning Collianderconfig CAN_KVASER_PCIEFD 12426ad340eSHenning Colliander depends on PCI 12526ad340eSHenning Colliander tristate "Kvaser PCIe FD cards" 126*1d48595cSArnd Bergmann select CRC32 12726ad340eSHenning Colliander help 12826ad340eSHenning Colliander This is a driver for the Kvaser PCI Express CAN FD family. 12926ad340eSHenning Colliander 13026ad340eSHenning Colliander Supported devices: 13126ad340eSHenning Colliander Kvaser PCIEcan 4xHS 13226ad340eSHenning Colliander Kvaser PCIEcan 2xHS v2 13326ad340eSHenning Colliander Kvaser PCIEcan HS v2 13426ad340eSHenning Colliander Kvaser Mini PCI Express HS v2 13526ad340eSHenning Colliander Kvaser Mini PCI Express 2xHS v2 13626ad340eSHenning Colliander 1370738eff1SGerhard Bertelsmannconfig CAN_SUN4I 1380738eff1SGerhard Bertelsmann tristate "Allwinner A10 CAN controller" 1390738eff1SGerhard Bertelsmann depends on MACH_SUN4I || MACH_SUN7I || COMPILE_TEST 140a7f7f624SMasahiro Yamada help 1410738eff1SGerhard Bertelsmann Say Y here if you want to use CAN controller found on Allwinner 1420738eff1SGerhard Bertelsmann A10/A20 SoCs. 1430738eff1SGerhard Bertelsmann 1440738eff1SGerhard Bertelsmann To compile this driver as a module, choose M here: the module will 1450738eff1SGerhard Bertelsmann be called sun4i_can. 1460738eff1SGerhard Bertelsmann 14726821162SMarc Kleine-Buddeconfig CAN_TI_HECC 14826821162SMarc Kleine-Budde depends on ARM 14926821162SMarc Kleine-Budde tristate "TI High End CAN Controller" 150a7f7f624SMasahiro Yamada help 15126821162SMarc Kleine-Budde Driver for TI HECC (High End CAN Controller) module found on many 15226821162SMarc Kleine-Budde TI devices. The device specifications are available from www.ti.com 15326821162SMarc Kleine-Budde 154b1201e44SKedareswara rao Appanaconfig CAN_XILINXCAN 155b1201e44SKedareswara rao Appana tristate "Xilinx CAN" 156963a822bSMichal Simek depends on ARCH_ZYNQ || ARM64 || MICROBLAZE || COMPILE_TEST 157b1201e44SKedareswara rao Appana depends on COMMON_CLK && HAS_IOMEM 158a7f7f624SMasahiro Yamada help 159b1201e44SKedareswara rao Appana Xilinx CAN driver. This driver supports both soft AXI CAN IP and 160b1201e44SKedareswara rao Appana Zynq CANPS IP. 161b1201e44SKedareswara rao Appana 16226821162SMarc Kleine-Buddeconfig PCH_CAN 16326821162SMarc Kleine-Budde tristate "Intel EG20T PCH CAN controller" 16426821162SMarc Kleine-Budde depends on PCI && (X86_32 || COMPILE_TEST) 165a7f7f624SMasahiro Yamada help 16626821162SMarc Kleine-Budde This driver is for PCH CAN of Topcliff (Intel EG20T PCH) which 16726821162SMarc Kleine-Budde is an IOH for x86 embedded processor (Intel Atom E6xx series). 16826821162SMarc Kleine-Budde This driver can access CAN bus. 169b93cf3f0SOliver Hartkopp 170881ff67aSBhupesh Sharmasource "drivers/net/can/c_can/Kconfig" 1712a367c3aSWolfgang Grandeggersource "drivers/net/can/cc770/Kconfig" 1720c4d9c94SMarek Vasutsource "drivers/net/can/ifi_canfd/Kconfig" 17383407c7fSMarek Vasutsource "drivers/net/can/m_can/Kconfig" 17483407c7fSMarek Vasutsource "drivers/net/can/mscan/Kconfig" 1758ac8321eSStephane Grosjeansource "drivers/net/can/peak_canfd/Kconfig" 176dd3bd23eSRamesh Shanmugasundaramsource "drivers/net/can/rcar/Kconfig" 17783407c7fSMarek Vasutsource "drivers/net/can/sja1000/Kconfig" 17803fd3cf5SKurt Van Dijcksource "drivers/net/can/softing/Kconfig" 17983407c7fSMarek Vasutsource "drivers/net/can/spi/Kconfig" 18083407c7fSMarek Vasutsource "drivers/net/can/usb/Kconfig" 18103fd3cf5SKurt Van Dijck 1826586c5d7SMarc Kleine-Buddeendif 1836586c5d7SMarc Kleine-Budde 184ccb29637SOliver Hartkoppconfig CAN_DEBUG_DEVICES 185ccb29637SOliver Hartkopp bool "CAN devices debugging messages" 186a7f7f624SMasahiro Yamada help 187ccb29637SOliver Hartkopp Say Y here if you want the CAN device drivers to produce a bunch of 188ccb29637SOliver Hartkopp debug messages to the system log. Select this if you are having 189ccb29637SOliver Hartkopp a problem with CAN support and want to see more of what is going 190ccb29637SOliver Hartkopp on. 191ccb29637SOliver Hartkopp 192ccb29637SOliver Hartkoppendmenu 193