Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 
0003 menuconfig CAN_DEV
0004         tristate "CAN Device Drivers"
0005         default y
0006         depends on CAN
0007         help
0008           Controller Area Network (CAN) is serial communications protocol up to
0009           1Mbit/s for its original release (now known as Classical CAN) and up
0010           to 8Mbit/s for the more recent CAN with Flexible Data-Rate
0011           (CAN-FD). The CAN bus was originally mainly for automotive, but is now
0012           widely used in marine (NMEA2000), industrial, and medical
0013           applications. More information on the CAN network protocol family
0014           PF_CAN is contained in <Documentation/networking/can.rst>.
0015 
0016           This section contains all the CAN(-FD) device drivers including the
0017           virtual ones. If you own such devices or plan to use the virtual CAN
0018           interfaces to develop applications, say Y here.
0019 
0020           To compile as a module, choose M here: the module will be called
0021           can-dev.
0022 
0023 if CAN_DEV
0024 
0025 config CAN_VCAN
0026         tristate "Virtual Local CAN Interface (vcan)"
0027         help
0028           Similar to the network loopback devices, vcan offers a
0029           virtual local CAN interface.
0030 
0031           This driver can also be built as a module.  If so, the module
0032           will be called vcan.
0033 
0034 config CAN_VXCAN
0035         tristate "Virtual CAN Tunnel (vxcan)"
0036         help
0037           Similar to the virtual ethernet driver veth, vxcan implements a
0038           local CAN traffic tunnel between two virtual CAN network devices.
0039           When creating a vxcan, two vxcan devices are created as pair.
0040           When one end receives the packet it appears on its pair and vice
0041           versa. The vxcan can be used for cross namespace communication.
0042 
0043           In opposite to vcan loopback devices the vxcan only forwards CAN
0044           frames to its pair and does *not* provide a local echo of sent
0045           CAN frames. To disable a potential echo in af_can.c the vxcan driver
0046           announces IFF_ECHO in the interface flags. To have a clean start
0047           in each namespace the CAN GW hop counter is set to zero.
0048 
0049           This driver can also be built as a module.  If so, the module
0050           will be called vxcan.
0051 
0052 config CAN_NETLINK
0053         bool "CAN device drivers with Netlink support"
0054         default y
0055         help
0056           Enables the common framework for CAN device drivers. This is the
0057           standard library and provides features for the Netlink interface such
0058           as bittiming validation, support of CAN error states, device restart
0059           and others.
0060 
0061           The additional features selected by this option will be added to the
0062           can-dev module.
0063 
0064           This is required by all platform and hardware CAN drivers. If you
0065           plan to use such devices or if unsure, say Y.
0066 
0067 if CAN_NETLINK
0068 
0069 config CAN_CALC_BITTIMING
0070         bool "CAN bit-timing calculation"
0071         default y
0072         help
0073           If enabled, CAN bit-timing parameters will be calculated for the
0074           bit-rate specified via Netlink argument "bitrate" when the device
0075           get started. This works fine for the most common CAN controllers
0076           with standard bit-rates but may fail for exotic bit-rates or CAN
0077           source clock frequencies. Disabling saves some space, but then the
0078           bit-timing parameters must be specified directly using the Netlink
0079           arguments "tq", "prop_seg", "phase_seg1", "phase_seg2" and "sjw".
0080 
0081           The additional features selected by this option will be added to the
0082           can-dev module.
0083 
0084           If unsure, say Y.
0085 
0086 config CAN_RX_OFFLOAD
0087         bool
0088 
0089 config CAN_AT91
0090         tristate "Atmel AT91 onchip CAN controller"
0091         depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM
0092         help
0093           This is a driver for the SoC CAN controller in Atmel's AT91SAM9263
0094           and AT91SAM9X5 processors.
0095 
0096 config CAN_CAN327
0097         tristate "Serial / USB serial ELM327 based OBD-II Interfaces (can327)"
0098         depends on TTY
0099         select CAN_RX_OFFLOAD
0100         help
0101           CAN driver for several 'low cost' OBD-II interfaces based on the
0102           ELM327 OBD-II interpreter chip.
0103 
0104           This is a best effort driver - the ELM327 interface was never
0105           designed to be used as a standalone CAN interface. However, it can
0106           still be used for simple request-response protocols (such as OBD II),
0107           and to monitor broadcast messages on a bus (such as in a vehicle).
0108 
0109           Please refer to the documentation for information on how to use it:
0110           Documentation/networking/device_drivers/can/can327.rst
0111 
0112           If this driver is built as a module, it will be called can327.
0113 
0114 config CAN_FLEXCAN
0115         tristate "Support for Freescale FLEXCAN based chips"
0116         depends on OF || COLDFIRE || COMPILE_TEST
0117         depends on HAS_IOMEM
0118         select CAN_RX_OFFLOAD
0119         help
0120           Say Y here if you want to support for Freescale FlexCAN.
0121 
0122 config CAN_GRCAN
0123         tristate "Aeroflex Gaisler GRCAN and GRHCAN CAN devices"
0124         depends on OF && HAS_DMA && HAS_IOMEM
0125         help
0126           Say Y here if you want to use Aeroflex Gaisler GRCAN or GRHCAN.
0127           Note that the driver supports little endian, even though little
0128           endian syntheses of the cores would need some modifications on
0129           the hardware level to work.
0130 
0131 config CAN_JANZ_ICAN3
0132         tristate "Janz VMOD-ICAN3 Intelligent CAN controller"
0133         depends on MFD_JANZ_CMODIO
0134         help
0135           Driver for Janz VMOD-ICAN3 Intelligent CAN controller module, which
0136           connects to a MODULbus carrier board.
0137 
0138           This driver can also be built as a module. If so, the module will be
0139           called janz-ican3.ko.
0140 
0141 config CAN_KVASER_PCIEFD
0142         depends on PCI
0143         tristate "Kvaser PCIe FD cards"
0144         select CRC32
0145           help
0146           This is a driver for the Kvaser PCI Express CAN FD family.
0147 
0148           Supported devices:
0149             Kvaser PCIEcan 4xHS
0150             Kvaser PCIEcan 2xHS v2
0151             Kvaser PCIEcan HS v2
0152             Kvaser Mini PCI Express HS v2
0153             Kvaser Mini PCI Express 2xHS v2
0154 
0155 config CAN_SLCAN
0156         tristate "Serial / USB serial CAN Adaptors (slcan)"
0157         depends on TTY
0158         help
0159           CAN driver for several 'low cost' CAN interfaces that are attached
0160           via serial lines or via USB-to-serial adapters using the LAWICEL
0161           ASCII protocol. The driver implements the tty linediscipline N_SLCAN.
0162 
0163           As only the sending and receiving of CAN frames is implemented, this
0164           driver should work with the (serial/USB) CAN hardware from:
0165           www.canusb.com / www.can232.com / www.mictronics.de / www.canhack.de
0166 
0167           Userspace tools to attach the SLCAN line discipline (slcan_attach,
0168           slcand) can be found in the can-utils at the linux-can project, see
0169           https://github.com/linux-can/can-utils for details.
0170 
0171           The slcan driver supports up to 10 CAN netdevices by default which
0172           can be changed by the 'maxdev=xx' module option. This driver can
0173           also be built as a module. If so, the module will be called slcan.
0174 
0175 config CAN_SUN4I
0176         tristate "Allwinner A10 CAN controller"
0177         depends on MACH_SUN4I || MACH_SUN7I || COMPILE_TEST
0178         help
0179           Say Y here if you want to use CAN controller found on Allwinner
0180           A10/A20 SoCs.
0181 
0182           To compile this driver as a module, choose M here: the module will
0183           be called sun4i_can.
0184 
0185 config CAN_TI_HECC
0186         depends on ARM
0187         tristate "TI High End CAN Controller"
0188         select CAN_RX_OFFLOAD
0189         help
0190           Driver for TI HECC (High End CAN Controller) module found on many
0191           TI devices. The device specifications are available from www.ti.com
0192 
0193 config CAN_XILINXCAN
0194         tristate "Xilinx CAN"
0195         depends on ARCH_ZYNQ || ARM64 || MICROBLAZE || COMPILE_TEST
0196         depends on COMMON_CLK && HAS_IOMEM
0197         help
0198           Xilinx CAN driver. This driver supports both soft AXI CAN IP and
0199           Zynq CANPS IP.
0200 
0201 config PCH_CAN
0202         tristate "Intel EG20T PCH CAN controller"
0203         depends on PCI && (X86_32 || COMPILE_TEST)
0204         help
0205           This driver is for PCH CAN of Topcliff (Intel EG20T PCH) which
0206           is an IOH for x86 embedded processor (Intel Atom E6xx series).
0207           This driver can access CAN bus.
0208 
0209 source "drivers/net/can/c_can/Kconfig"
0210 source "drivers/net/can/cc770/Kconfig"
0211 source "drivers/net/can/ctucanfd/Kconfig"
0212 source "drivers/net/can/ifi_canfd/Kconfig"
0213 source "drivers/net/can/m_can/Kconfig"
0214 source "drivers/net/can/mscan/Kconfig"
0215 source "drivers/net/can/peak_canfd/Kconfig"
0216 source "drivers/net/can/rcar/Kconfig"
0217 source "drivers/net/can/sja1000/Kconfig"
0218 source "drivers/net/can/softing/Kconfig"
0219 source "drivers/net/can/spi/Kconfig"
0220 source "drivers/net/can/usb/Kconfig"
0221 
0222 endif #CAN_NETLINK
0223 
0224 config CAN_DEBUG_DEVICES
0225         bool "CAN devices debugging messages"
0226         help
0227           Say Y here if you want the CAN device drivers to produce a bunch of
0228           debug messages to the system log.  Select this if you are having
0229           a problem with CAN support and want to see more of what is going
0230           on.
0231 
0232 endif #CAN_DEV