net: Kconfig: move the CAN device menu to the "Device Drivers" section
[linux-block.git] / drivers / net / can / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
6a528644
VM
2
3menuconfig CAN_DEV
4 tristate "CAN Device Drivers"
5 default y
d7786af5 6 depends on CAN
6a528644
VM
7 help
8 Controller Area Network (CAN) is serial communications protocol up to
9 1Mbit/s for its original release (now known as Classical CAN) and up
10 to 8Mbit/s for the more recent CAN with Flexible Data-Rate
11 (CAN-FD). The CAN bus was originally mainly for automotive, but is now
12 widely used in marine (NMEA2000), industrial, and medical
13 applications. More information on the CAN network protocol family
14 PF_CAN is contained in <Documentation/networking/can.rst>.
15
16 This section contains all the CAN(-FD) device drivers including the
17 virtual ones. If you own such devices or plan to use the virtual CAN
18 interfaces to develop applications, say Y here.
19
20 To compile as a module, choose M here: the module will be called
21 can-dev.
22
23if CAN_DEV
ccb29637
OH
24
25config CAN_VCAN
26 tristate "Virtual Local CAN Interface (vcan)"
a7f7f624 27 help
ccb29637
OH
28 Similar to the network loopback devices, vcan offers a
29 virtual local CAN interface.
30
31 This driver can also be built as a module. If so, the module
32 will be called vcan.
33
a8f820a3
OH
34config CAN_VXCAN
35 tristate "Virtual CAN Tunnel (vxcan)"
a7f7f624 36 help
a8f820a3
OH
37 Similar to the virtual ethernet driver veth, vxcan implements a
38 local CAN traffic tunnel between two virtual CAN network devices.
39 When creating a vxcan, two vxcan devices are created as pair.
40 When one end receives the packet it appears on its pair and vice
41 versa. The vxcan can be used for cross namespace communication.
42
43 In opposite to vcan loopback devices the vxcan only forwards CAN
44 frames to its pair and does *not* provide a local echo of sent
45 CAN frames. To disable a potential echo in af_can.c the vxcan driver
46 announces IFF_ECHO in the interface flags. To have a clean start
47 in each namespace the CAN GW hop counter is set to zero.
48
49 This driver can also be built as a module. If so, the module
50 will be called vxcan.
51
a1044e36
OH
52config CAN_SLCAN
53 tristate "Serial / USB serial CAN Adaptors (slcan)"
21eaab6d 54 depends on TTY
a7f7f624 55 help
a1044e36
OH
56 CAN driver for several 'low cost' CAN interfaces that are attached
57 via serial lines or via USB-to-serial adapters using the LAWICEL
58 ASCII protocol. The driver implements the tty linediscipline N_SLCAN.
59
60 As only the sending and receiving of CAN frames is implemented, this
61 driver should work with the (serial/USB) CAN hardware from:
c128df73 62 www.canusb.com / www.can232.com / www.mictronics.de / www.canhack.de
a1044e36
OH
63
64 Userspace tools to attach the SLCAN line discipline (slcan_attach,
1eb11012
DEP
65 slcand) can be found in the can-utils at the linux-can project, see
66 https://github.com/linux-can/can-utils for details.
a1044e36
OH
67
68 The slcan driver supports up to 10 CAN netdevices by default which
69 can be changed by the 'maxdev=xx' module option. This driver can
70 also be built as a module. If so, the module will be called slcan.
71
df6ad5dd 72config CAN_NETLINK
6a528644 73 bool "CAN device drivers with Netlink support"
a30d5155 74 default y
a7f7f624 75 help
df6ad5dd
VM
76 Enables the common framework for CAN device drivers. This is the
77 standard library and provides features for the Netlink interface such
78 as bittiming validation, support of CAN error states, device restart
79 and others.
80
6a528644
VM
81 The additional features selected by this option will be added to the
82 can-dev module.
83
df6ad5dd
VM
84 This is required by all platform and hardware CAN drivers. If you
85 plan to use such devices or if unsure, say Y.
39549eef 86
df6ad5dd 87if CAN_NETLINK
6586c5d7 88
39549eef
WG
89config CAN_CALC_BITTIMING
90 bool "CAN bit-timing calculation"
a30d5155 91 default y
a7f7f624 92 help
39549eef
WG
93 If enabled, CAN bit-timing parameters will be calculated for the
94 bit-rate specified via Netlink argument "bitrate" when the device
95 get started. This works fine for the most common CAN controllers
96 with standard bit-rates but may fail for exotic bit-rates or CAN
97 source clock frequencies. Disabling saves some space, but then the
98 bit-timing parameters must be specified directly using the Netlink
99 arguments "tq", "prop_seg", "phase_seg1", "phase_seg2" and "sjw".
0c7e1151
VM
100
101 The additional features selected by this option will be added to the
102 can-dev module.
103
39549eef
WG
104 If unsure, say Y.
105
bfe0092d
VM
106config CAN_RX_OFFLOAD
107 bool
108
68f40152
MKB
109config CAN_AT91
110 tristate "Atmel AT91 onchip CAN controller"
9dc8be28 111 depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM
a7f7f624 112 help
b9e379bc
UKK
113 This is a driver for the SoC CAN controller in Atmel's AT91SAM9263
114 and AT91SAM9X5 processors.
68f40152 115
e955cead
MKB
116config CAN_FLEXCAN
117 tristate "Support for Freescale FLEXCAN based chips"
8dad5561
AD
118 depends on OF || COLDFIRE || COMPILE_TEST
119 depends on HAS_IOMEM
bfe0092d 120 select CAN_RX_OFFLOAD
a7f7f624 121 help
e955cead
MKB
122 Say Y here if you want to support for Freescale FlexCAN.
123
6cec9b07
AL
124config CAN_GRCAN
125 tristate "Aeroflex Gaisler GRCAN and GRHCAN CAN devices"
51894cba 126 depends on OF && HAS_DMA && HAS_IOMEM
a7f7f624 127 help
6cec9b07
AL
128 Say Y here if you want to use Aeroflex Gaisler GRCAN or GRHCAN.
129 Note that the driver supports little endian, even though little
130 endian syntheses of the cores would need some modifications on
131 the hardware level to work.
132
26821162
MKB
133config CAN_JANZ_ICAN3
134 tristate "Janz VMOD-ICAN3 Intelligent CAN controller"
135 depends on MFD_JANZ_CMODIO
a7f7f624 136 help
26821162
MKB
137 Driver for Janz VMOD-ICAN3 Intelligent CAN controller module, which
138 connects to a MODULbus carrier board.
139
140 This driver can also be built as a module. If so, the module will be
141 called janz-ican3.ko.
142
26ad340e
HC
143config CAN_KVASER_PCIEFD
144 depends on PCI
145 tristate "Kvaser PCIe FD cards"
1d48595c 146 select CRC32
26ad340e
HC
147 help
148 This is a driver for the Kvaser PCI Express CAN FD family.
149
150 Supported devices:
151 Kvaser PCIEcan 4xHS
152 Kvaser PCIEcan 2xHS v2
153 Kvaser PCIEcan HS v2
154 Kvaser Mini PCI Express HS v2
155 Kvaser Mini PCI Express 2xHS v2
156
0738eff1
GB
157config CAN_SUN4I
158 tristate "Allwinner A10 CAN controller"
159 depends on MACH_SUN4I || MACH_SUN7I || COMPILE_TEST
a7f7f624 160 help
0738eff1
GB
161 Say Y here if you want to use CAN controller found on Allwinner
162 A10/A20 SoCs.
163
164 To compile this driver as a module, choose M here: the module will
165 be called sun4i_can.
166
26821162
MKB
167config CAN_TI_HECC
168 depends on ARM
169 tristate "TI High End CAN Controller"
bfe0092d 170 select CAN_RX_OFFLOAD
a7f7f624 171 help
26821162
MKB
172 Driver for TI HECC (High End CAN Controller) module found on many
173 TI devices. The device specifications are available from www.ti.com
174
b1201e44
KA
175config CAN_XILINXCAN
176 tristate "Xilinx CAN"
963a822b 177 depends on ARCH_ZYNQ || ARM64 || MICROBLAZE || COMPILE_TEST
b1201e44 178 depends on COMMON_CLK && HAS_IOMEM
a7f7f624 179 help
b1201e44
KA
180 Xilinx CAN driver. This driver supports both soft AXI CAN IP and
181 Zynq CANPS IP.
182
26821162
MKB
183config PCH_CAN
184 tristate "Intel EG20T PCH CAN controller"
185 depends on PCI && (X86_32 || COMPILE_TEST)
a7f7f624 186 help
26821162
MKB
187 This driver is for PCH CAN of Topcliff (Intel EG20T PCH) which
188 is an IOH for x86 embedded processor (Intel Atom E6xx series).
189 This driver can access CAN bus.
b93cf3f0 190
881ff67a 191source "drivers/net/can/c_can/Kconfig"
2a367c3a 192source "drivers/net/can/cc770/Kconfig"
2dcb8e87 193source "drivers/net/can/ctucanfd/Kconfig"
0c4d9c94 194source "drivers/net/can/ifi_canfd/Kconfig"
83407c7f
MV
195source "drivers/net/can/m_can/Kconfig"
196source "drivers/net/can/mscan/Kconfig"
8ac8321e 197source "drivers/net/can/peak_canfd/Kconfig"
dd3bd23e 198source "drivers/net/can/rcar/Kconfig"
83407c7f
MV
199source "drivers/net/can/sja1000/Kconfig"
200source "drivers/net/can/softing/Kconfig"
869ba1e6 201source "drivers/net/can/spi/Kconfig"
b93cf3f0
OH
202source "drivers/net/can/usb/Kconfig"
203
df6ad5dd 204endif #CAN_NETLINK
6586c5d7 205
ccb29637
OH
206config CAN_DEBUG_DEVICES
207 bool "CAN devices debugging messages"
a7f7f624 208 help
ccb29637
OH
209 Say Y here if you want the CAN device drivers to produce a bunch of
210 debug messages to the system log. Select this if you are having
211 a problem with CAN support and want to see more of what is going
212 on.
213
6a528644 214endif #CAN_DEV