xref: /linux/drivers/thunderbolt/Kconfig (revision 00599d4841790d05401820a96cf7edb193888b00)
1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig USB4
3	tristate "Unified support for USB4 and Thunderbolt"
4	depends on PCI
5	select APPLE_PROPERTIES if EFI_STUB && X86
6	select CRC32
7	select CRYPTO_LIB_SHA256
8	select CRYPTO_LIB_UTILS
9	select NVMEM
10	help
11	  USB4 and Thunderbolt driver. USB4 is the public specification
12	  based on the Thunderbolt 3 protocol. This driver is required if
13	  you want to hotplug Thunderbolt and USB4 compliant devices on
14	  Apple hardware or on PCs with Intel Falcon Ridge or newer.
15
16	  To compile this driver a module, choose M here. The module will be
17	  called thunderbolt.
18
19if USB4
20
21config USB4_CONFIGFS
22	def_tristate USB4
23	depends on CONFIGFS_FS && !(USB4=y && CONFIGFS_FS=m)
24
25config USB4_DEBUGFS_WRITE
26	bool "Enable write by debugfs to configuration spaces (DANGEROUS)"
27	help
28	  Enables writing to device configuration registers through
29	  debugfs interface. You can use tools such as Thunderbolt/USB4
30	  debugging tools to access these registers. For more
31	  information see:
32
33	    https://github.com/intel/tbtools
34
35	  Only enable this if you know what you are doing! Never enable
36	  this for production systems or distro kernels.
37
38config USB4_DEBUGFS_MARGINING
39	bool "Expose receiver lane margining operations under USB4 ports and retimers (DANGEROUS)"
40	depends on DEBUG_FS
41	depends on USB4_DEBUGFS_WRITE
42	help
43	  Enables hardware and software based receiver lane margining
44	  support under each USB4 port and retimer, including retimers
45	  on the other side of the cable. Used for electrical quality
46	  and robustness validation during manufacturing. Should not be
47	  enabled by distro kernels.
48
49config USB4_KUNIT_TEST
50	bool "KUnit tests" if !KUNIT_ALL_TESTS
51	depends on USB4 && KUNIT=y
52	default KUNIT_ALL_TESTS
53
54config USB4_DMA_TEST
55	tristate "DMA traffic test driver"
56	depends on DEBUG_FS
57	help
58	  This allows sending and receiving DMA traffic through loopback
59	  connection. Loopback connection can be done by either special
60	  dongle that has TX/RX lines crossed, or by simply connecting a
61	  cable back to the host. Only enable this if you know what you
62	  are doing. Normal users and distro kernels should say N here.
63
64	  To compile this driver a module, choose M here. The module will be
65	  called thunderbolt_dma_test.
66
67config USB4_STREAM
68	tristate "Stream data over Thunderbolt/USB4 cable"
69	depends on USB4_CONFIGFS
70	help
71	  This adds support for USB4STREAM protocol that allows two
72	  hosts to stream data directly over Thunderbolt/USB4 cable
73	  through /dev/tbstreamX devices.
74
75	  To compile this driver a module, choose M here. The module will be
76	  called thunderbolt_stream.
77
78endif # USB4
79