xref: /linux/drivers/thunderbolt/Kconfig (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2690ac0d2SMika Westerbergmenuconfig USB4
3690ac0d2SMika Westerberg	tristate "Unified support for USB4 and Thunderbolt"
40cb4e2beSArnd Bergmann	depends on PCI
55fbc89d3SLukas Wunner	select APPLE_PROPERTIES if EFI_STUB && X86
6f34323b6SAndreas Noever	select CRC32
7f67cf491SMika Westerberg	select CRYPTO
8f67cf491SMika Westerberg	select CRYPTO_HASH
9e6b245ccSMika Westerberg	select NVMEM
1016603153SAndreas Noever	help
11b7c408a5SGeert Uytterhoeven	  USB4 and Thunderbolt driver. USB4 is the public specification
12b7c408a5SGeert Uytterhoeven	  based on the Thunderbolt 3 protocol. This driver is required if
13690ac0d2SMika Westerberg	  you want to hotplug Thunderbolt and USB4 compliant devices on
14690ac0d2SMika Westerberg	  Apple hardware or on PCs with Intel Falcon Ridge or newer.
1516603153SAndreas Noever
1616603153SAndreas Noever	  To compile this driver a module, choose M here. The module will be
1716603153SAndreas Noever	  called thunderbolt.
1854509f50SMika Westerberg
198eabfca5SMika Westerbergif USB4
208eabfca5SMika Westerberg
2154e41810SGil Fineconfig USB4_DEBUGFS_WRITE
2254e41810SGil Fine	bool "Enable write by debugfs to configuration spaces (DANGEROUS)"
2354e41810SGil Fine	help
2454e41810SGil Fine	  Enables writing to device configuration registers through
252b435067SMika Westerberg	  debugfs interface. You can use tools such as Thunderbolt/USB4
262b435067SMika Westerberg	  debugging tools to access these registers. For more
272b435067SMika Westerberg	  information see:
282b435067SMika Westerberg
292b435067SMika Westerberg	    https://github.com/intel/tbtools
3054e41810SGil Fine
3154e41810SGil Fine	  Only enable this if you know what you are doing! Never enable
3254e41810SGil Fine	  this for production systems or distro kernels.
3354e41810SGil Fine
34d0f1e0c2SMika Westerbergconfig USB4_DEBUGFS_MARGINING
35*ff6ab055SMika Westerberg	bool "Expose receiver lane margining operations under USB4 ports and retimers (DANGEROUS)"
36d0f1e0c2SMika Westerberg	depends on DEBUG_FS
37d0f1e0c2SMika Westerberg	depends on USB4_DEBUGFS_WRITE
38d0f1e0c2SMika Westerberg	help
39*ff6ab055SMika Westerberg	  Enables hardware and software based receiver lane margining
40*ff6ab055SMika Westerberg	  support under each USB4 port and retimer, including retimers
41*ff6ab055SMika Westerberg	  on the other side of the cable. Used for electrical quality
42*ff6ab055SMika Westerberg	  and robustness validation during manufacturing. Should not be
43*ff6ab055SMika Westerberg	  enabled by distro kernels.
44d0f1e0c2SMika Westerberg
4554509f50SMika Westerbergconfig USB4_KUNIT_TEST
46635dcd16SDavid Gow	bool "KUnit tests" if !KUNIT_ALL_TESTS
47793f55b2SNico Pache	depends on USB4 && KUNIT=y
48635dcd16SDavid Gow	default KUNIT_ALL_TESTS
498eabfca5SMika Westerberg
50edc0f494SIsaac Hazanconfig USB4_DMA_TEST
51edc0f494SIsaac Hazan	tristate "DMA traffic test driver"
52edc0f494SIsaac Hazan	depends on DEBUG_FS
53edc0f494SIsaac Hazan	help
54edc0f494SIsaac Hazan	  This allows sending and receiving DMA traffic through loopback
55edc0f494SIsaac Hazan	  connection. Loopback connection can be done by either special
56edc0f494SIsaac Hazan	  dongle that has TX/RX lines crossed, or by simply connecting a
57edc0f494SIsaac Hazan	  cable back to the host. Only enable this if you know what you
58edc0f494SIsaac Hazan	  are doing. Normal users and distro kernels should say N here.
59edc0f494SIsaac Hazan
60edc0f494SIsaac Hazan	  To compile this driver a module, choose M here. The module will be
61edc0f494SIsaac Hazan	  called thunderbolt_dma_test.
62edc0f494SIsaac Hazan
638eabfca5SMika Westerbergendif # USB4
64