# SPDX-License-Identifier: GPL-2.0-only
menuconfig USB4
	tristate "Unified support for USB4 and Thunderbolt"
	depends on PCI
	select APPLE_PROPERTIES if EFI_STUB && X86
	select CRC32
	select CRYPTO
	select CRYPTO_HASH
	select NVMEM
	help
	  USB4 and Thunderbolt driver. USB4 is the public specification
	  based on the Thunderbolt 3 protocol. This driver is required if
	  you want to hotplug Thunderbolt and USB4 compliant devices on
	  Apple hardware or on PCs with Intel Falcon Ridge or newer.

	  To compile this driver a module, choose M here. The module will be
	  called thunderbolt.

if USB4

config USB4_DEBUGFS_WRITE
	bool "Enable write by debugfs to configuration spaces (DANGEROUS)"
	help
	  Enables writing to device configuration registers through
	  debugfs interface.

	  Only enable this if you know what you are doing! Never enable
	  this for production systems or distro kernels.

config USB4_KUNIT_TEST
	bool "KUnit tests"
	depends on KUNIT=y

config USB4_DMA_TEST
	tristate "DMA traffic test driver"
	depends on DEBUG_FS
	help
	  This allows sending and receiving DMA traffic through loopback
	  connection. Loopback connection can be done by either special
	  dongle that has TX/RX lines crossed, or by simply connecting a
	  cable back to the host. Only enable this if you know what you
	  are doing. Normal users and distro kernels should say N here.

	  To compile this driver a module, choose M here. The module will be
	  called thunderbolt_dma_test.

endif # USB4
