162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_cimenuconfig USB4 362306a36Sopenharmony_ci tristate "Unified support for USB4 and Thunderbolt" 462306a36Sopenharmony_ci depends on PCI 562306a36Sopenharmony_ci select APPLE_PROPERTIES if EFI_STUB && X86 662306a36Sopenharmony_ci select CRC32 762306a36Sopenharmony_ci select CRYPTO 862306a36Sopenharmony_ci select CRYPTO_HASH 962306a36Sopenharmony_ci select NVMEM 1062306a36Sopenharmony_ci help 1162306a36Sopenharmony_ci USB4 and Thunderbolt driver. USB4 is the public specification 1262306a36Sopenharmony_ci based on the Thunderbolt 3 protocol. This driver is required if 1362306a36Sopenharmony_ci you want to hotplug Thunderbolt and USB4 compliant devices on 1462306a36Sopenharmony_ci Apple hardware or on PCs with Intel Falcon Ridge or newer. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci To compile this driver a module, choose M here. The module will be 1762306a36Sopenharmony_ci called thunderbolt. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciif USB4 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciconfig USB4_DEBUGFS_WRITE 2262306a36Sopenharmony_ci bool "Enable write by debugfs to configuration spaces (DANGEROUS)" 2362306a36Sopenharmony_ci help 2462306a36Sopenharmony_ci Enables writing to device configuration registers through 2562306a36Sopenharmony_ci debugfs interface. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci Only enable this if you know what you are doing! Never enable 2862306a36Sopenharmony_ci this for production systems or distro kernels. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciconfig USB4_DEBUGFS_MARGINING 3162306a36Sopenharmony_ci bool "Expose receiver lane margining operations under USB4 ports (DANGEROUS)" 3262306a36Sopenharmony_ci depends on DEBUG_FS 3362306a36Sopenharmony_ci depends on USB4_DEBUGFS_WRITE 3462306a36Sopenharmony_ci help 3562306a36Sopenharmony_ci Enables hardware and software based receiver lane margining support 3662306a36Sopenharmony_ci under each USB4 port. Used for electrical quality and robustness 3762306a36Sopenharmony_ci validation during manufacturing. Should not be enabled by distro 3862306a36Sopenharmony_ci kernels. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciconfig USB4_KUNIT_TEST 4162306a36Sopenharmony_ci bool "KUnit tests" if !KUNIT_ALL_TESTS 4262306a36Sopenharmony_ci depends on USB4 && KUNIT=y 4362306a36Sopenharmony_ci default KUNIT_ALL_TESTS 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ciconfig USB4_DMA_TEST 4662306a36Sopenharmony_ci tristate "DMA traffic test driver" 4762306a36Sopenharmony_ci depends on DEBUG_FS 4862306a36Sopenharmony_ci help 4962306a36Sopenharmony_ci This allows sending and receiving DMA traffic through loopback 5062306a36Sopenharmony_ci connection. Loopback connection can be done by either special 5162306a36Sopenharmony_ci dongle that has TX/RX lines crossed, or by simply connecting a 5262306a36Sopenharmony_ci cable back to the host. Only enable this if you know what you 5362306a36Sopenharmony_ci are doing. Normal users and distro kernels should say N here. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci To compile this driver a module, choose M here. The module will be 5662306a36Sopenharmony_ci called thunderbolt_dma_test. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ciendif # USB4 59