1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunmenu "CAN Device Drivers" 3*4882a593Smuzhiyun 4*4882a593Smuzhiyunconfig CAN_VCAN 5*4882a593Smuzhiyun tristate "Virtual Local CAN Interface (vcan)" 6*4882a593Smuzhiyun help 7*4882a593Smuzhiyun Similar to the network loopback devices, vcan offers a 8*4882a593Smuzhiyun virtual local CAN interface. 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun This driver can also be built as a module. If so, the module 11*4882a593Smuzhiyun will be called vcan. 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunconfig CAN_VXCAN 14*4882a593Smuzhiyun tristate "Virtual CAN Tunnel (vxcan)" 15*4882a593Smuzhiyun help 16*4882a593Smuzhiyun Similar to the virtual ethernet driver veth, vxcan implements a 17*4882a593Smuzhiyun local CAN traffic tunnel between two virtual CAN network devices. 18*4882a593Smuzhiyun When creating a vxcan, two vxcan devices are created as pair. 19*4882a593Smuzhiyun When one end receives the packet it appears on its pair and vice 20*4882a593Smuzhiyun versa. The vxcan can be used for cross namespace communication. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun In opposite to vcan loopback devices the vxcan only forwards CAN 23*4882a593Smuzhiyun frames to its pair and does *not* provide a local echo of sent 24*4882a593Smuzhiyun CAN frames. To disable a potential echo in af_can.c the vxcan driver 25*4882a593Smuzhiyun announces IFF_ECHO in the interface flags. To have a clean start 26*4882a593Smuzhiyun in each namespace the CAN GW hop counter is set to zero. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun This driver can also be built as a module. If so, the module 29*4882a593Smuzhiyun will be called vxcan. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyunconfig CAN_SLCAN 32*4882a593Smuzhiyun tristate "Serial / USB serial CAN Adaptors (slcan)" 33*4882a593Smuzhiyun depends on TTY 34*4882a593Smuzhiyun help 35*4882a593Smuzhiyun CAN driver for several 'low cost' CAN interfaces that are attached 36*4882a593Smuzhiyun via serial lines or via USB-to-serial adapters using the LAWICEL 37*4882a593Smuzhiyun ASCII protocol. The driver implements the tty linediscipline N_SLCAN. 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun As only the sending and receiving of CAN frames is implemented, this 40*4882a593Smuzhiyun driver should work with the (serial/USB) CAN hardware from: 41*4882a593Smuzhiyun www.canusb.com / www.can232.com / www.mictronics.de / www.canhack.de 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun Userspace tools to attach the SLCAN line discipline (slcan_attach, 44*4882a593Smuzhiyun slcand) can be found in the can-utils at the linux-can project, see 45*4882a593Smuzhiyun https://github.com/linux-can/can-utils for details. 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun The slcan driver supports up to 10 CAN netdevices by default which 48*4882a593Smuzhiyun can be changed by the 'maxdev=xx' module option. This driver can 49*4882a593Smuzhiyun also be built as a module. If so, the module will be called slcan. 50*4882a593Smuzhiyun 51*4882a593Smuzhiyunconfig CAN_DEV 52*4882a593Smuzhiyun tristate "Platform CAN drivers with Netlink support" 53*4882a593Smuzhiyun default y 54*4882a593Smuzhiyun help 55*4882a593Smuzhiyun Enables the common framework for platform CAN drivers with Netlink 56*4882a593Smuzhiyun support. This is the standard library for CAN drivers. 57*4882a593Smuzhiyun If unsure, say Y. 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunif CAN_DEV 60*4882a593Smuzhiyun 61*4882a593Smuzhiyunconfig CAN_CALC_BITTIMING 62*4882a593Smuzhiyun bool "CAN bit-timing calculation" 63*4882a593Smuzhiyun default y 64*4882a593Smuzhiyun help 65*4882a593Smuzhiyun If enabled, CAN bit-timing parameters will be calculated for the 66*4882a593Smuzhiyun bit-rate specified via Netlink argument "bitrate" when the device 67*4882a593Smuzhiyun get started. This works fine for the most common CAN controllers 68*4882a593Smuzhiyun with standard bit-rates but may fail for exotic bit-rates or CAN 69*4882a593Smuzhiyun source clock frequencies. Disabling saves some space, but then the 70*4882a593Smuzhiyun bit-timing parameters must be specified directly using the Netlink 71*4882a593Smuzhiyun arguments "tq", "prop_seg", "phase_seg1", "phase_seg2" and "sjw". 72*4882a593Smuzhiyun If unsure, say Y. 73*4882a593Smuzhiyun 74*4882a593Smuzhiyunconfig CAN_LEDS 75*4882a593Smuzhiyun bool "Enable LED triggers for Netlink based drivers" 76*4882a593Smuzhiyun depends on LEDS_CLASS 77*4882a593Smuzhiyun # The netdev trigger (LEDS_TRIGGER_NETDEV) should be able to do 78*4882a593Smuzhiyun # everything that this driver is doing. This is marked as broken 79*4882a593Smuzhiyun # because it uses stuff that is intended to be changed or removed. 80*4882a593Smuzhiyun # Please consider switching to the netdev trigger and confirm it 81*4882a593Smuzhiyun # fulfills your needs instead of fixing this driver. 82*4882a593Smuzhiyun depends on BROKEN 83*4882a593Smuzhiyun select LEDS_TRIGGERS 84*4882a593Smuzhiyun help 85*4882a593Smuzhiyun This option adds two LED triggers for packet receive and transmit 86*4882a593Smuzhiyun events on each supported CAN device. 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun Say Y here if you are working on a system with led-class supported 89*4882a593Smuzhiyun LEDs and you want to use them as canbus activity indicators. 90*4882a593Smuzhiyun 91*4882a593Smuzhiyunconfig CAN_AT91 92*4882a593Smuzhiyun tristate "Atmel AT91 onchip CAN controller" 93*4882a593Smuzhiyun depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM 94*4882a593Smuzhiyun help 95*4882a593Smuzhiyun This is a driver for the SoC CAN controller in Atmel's AT91SAM9263 96*4882a593Smuzhiyun and AT91SAM9X5 processors. 97*4882a593Smuzhiyun 98*4882a593Smuzhiyunconfig CAN_FLEXCAN 99*4882a593Smuzhiyun tristate "Support for Freescale FLEXCAN based chips" 100*4882a593Smuzhiyun depends on OF && HAS_IOMEM 101*4882a593Smuzhiyun help 102*4882a593Smuzhiyun Say Y here if you want to support for Freescale FlexCAN. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyunconfig CAN_GRCAN 105*4882a593Smuzhiyun tristate "Aeroflex Gaisler GRCAN and GRHCAN CAN devices" 106*4882a593Smuzhiyun depends on OF && HAS_DMA 107*4882a593Smuzhiyun help 108*4882a593Smuzhiyun Say Y here if you want to use Aeroflex Gaisler GRCAN or GRHCAN. 109*4882a593Smuzhiyun Note that the driver supports little endian, even though little 110*4882a593Smuzhiyun endian syntheses of the cores would need some modifications on 111*4882a593Smuzhiyun the hardware level to work. 112*4882a593Smuzhiyun 113*4882a593Smuzhiyunconfig CAN_JANZ_ICAN3 114*4882a593Smuzhiyun tristate "Janz VMOD-ICAN3 Intelligent CAN controller" 115*4882a593Smuzhiyun depends on MFD_JANZ_CMODIO 116*4882a593Smuzhiyun help 117*4882a593Smuzhiyun Driver for Janz VMOD-ICAN3 Intelligent CAN controller module, which 118*4882a593Smuzhiyun connects to a MODULbus carrier board. 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun This driver can also be built as a module. If so, the module will be 121*4882a593Smuzhiyun called janz-ican3.ko. 122*4882a593Smuzhiyun 123*4882a593Smuzhiyunconfig CAN_KVASER_PCIEFD 124*4882a593Smuzhiyun depends on PCI 125*4882a593Smuzhiyun tristate "Kvaser PCIe FD cards" 126*4882a593Smuzhiyun select CRC32 127*4882a593Smuzhiyun help 128*4882a593Smuzhiyun This is a driver for the Kvaser PCI Express CAN FD family. 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun Supported devices: 131*4882a593Smuzhiyun Kvaser PCIEcan 4xHS 132*4882a593Smuzhiyun Kvaser PCIEcan 2xHS v2 133*4882a593Smuzhiyun Kvaser PCIEcan HS v2 134*4882a593Smuzhiyun Kvaser Mini PCI Express HS v2 135*4882a593Smuzhiyun Kvaser Mini PCI Express 2xHS v2 136*4882a593Smuzhiyun 137*4882a593Smuzhiyunconfig CAN_SUN4I 138*4882a593Smuzhiyun tristate "Allwinner A10 CAN controller" 139*4882a593Smuzhiyun depends on MACH_SUN4I || MACH_SUN7I || COMPILE_TEST 140*4882a593Smuzhiyun help 141*4882a593Smuzhiyun Say Y here if you want to use CAN controller found on Allwinner 142*4882a593Smuzhiyun A10/A20 SoCs. 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module will 145*4882a593Smuzhiyun be called sun4i_can. 146*4882a593Smuzhiyun 147*4882a593Smuzhiyunconfig CAN_TI_HECC 148*4882a593Smuzhiyun depends on ARM 149*4882a593Smuzhiyun tristate "TI High End CAN Controller" 150*4882a593Smuzhiyun help 151*4882a593Smuzhiyun Driver for TI HECC (High End CAN Controller) module found on many 152*4882a593Smuzhiyun TI devices. The device specifications are available from www.ti.com 153*4882a593Smuzhiyun 154*4882a593Smuzhiyunconfig CAN_XILINXCAN 155*4882a593Smuzhiyun tristate "Xilinx CAN" 156*4882a593Smuzhiyun depends on ARCH_ZYNQ || ARM64 || MICROBLAZE || COMPILE_TEST 157*4882a593Smuzhiyun depends on COMMON_CLK && HAS_IOMEM 158*4882a593Smuzhiyun help 159*4882a593Smuzhiyun Xilinx CAN driver. This driver supports both soft AXI CAN IP and 160*4882a593Smuzhiyun Zynq CANPS IP. 161*4882a593Smuzhiyun 162*4882a593Smuzhiyunconfig PCH_CAN 163*4882a593Smuzhiyun tristate "Intel EG20T PCH CAN controller" 164*4882a593Smuzhiyun depends on PCI && (X86_32 || COMPILE_TEST) 165*4882a593Smuzhiyun help 166*4882a593Smuzhiyun This driver is for PCH CAN of Topcliff (Intel EG20T PCH) which 167*4882a593Smuzhiyun is an IOH for x86 embedded processor (Intel Atom E6xx series). 168*4882a593Smuzhiyun This driver can access CAN bus. 169*4882a593Smuzhiyun 170*4882a593Smuzhiyunsource "drivers/net/can/c_can/Kconfig" 171*4882a593Smuzhiyunsource "drivers/net/can/cc770/Kconfig" 172*4882a593Smuzhiyunsource "drivers/net/can/ifi_canfd/Kconfig" 173*4882a593Smuzhiyunsource "drivers/net/can/m_can/Kconfig" 174*4882a593Smuzhiyunsource "drivers/net/can/mscan/Kconfig" 175*4882a593Smuzhiyunsource "drivers/net/can/peak_canfd/Kconfig" 176*4882a593Smuzhiyunsource "drivers/net/can/rcar/Kconfig" 177*4882a593Smuzhiyunsource "drivers/net/can/rockchip/Kconfig" 178*4882a593Smuzhiyunsource "drivers/net/can/sja1000/Kconfig" 179*4882a593Smuzhiyunsource "drivers/net/can/softing/Kconfig" 180*4882a593Smuzhiyunsource "drivers/net/can/spi/Kconfig" 181*4882a593Smuzhiyunsource "drivers/net/can/usb/Kconfig" 182*4882a593Smuzhiyun 183*4882a593Smuzhiyunendif 184*4882a593Smuzhiyun 185*4882a593Smuzhiyunconfig CAN_DEBUG_DEVICES 186*4882a593Smuzhiyun bool "CAN devices debugging messages" 187*4882a593Smuzhiyun help 188*4882a593Smuzhiyun Say Y here if you want the CAN device drivers to produce a bunch of 189*4882a593Smuzhiyun debug messages to the system log. Select this if you are having 190*4882a593Smuzhiyun a problem with CAN support and want to see more of what is going 191*4882a593Smuzhiyun on. 192*4882a593Smuzhiyun 193*4882a593Smuzhiyunendmenu 194