xref: /openbmc/linux/drivers/net/can/Kconfig (revision df6ad5dd)
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