# SPDX-License-Identifier: GPL-2.0-only
config INTEL_TH
	tristate "Intel(R) Trace Hub controller"
	depends on HAS_DMA && HAS_IOMEM
	help
	  Intel(R) Trace Hub (TH) is a set of hardware blocks (subdevices) that
	  produce, switch and output trace data from multiple hardware and
	  software sources over several types of trace output ports encoded
	  in System Trace Protocol (MIPI STPv2) and is intended to perform
	  full system debugging.

	  This option enables intel_th bus and common code used by TH
	  subdevices to interact with each other and hardware and for
	  platform glue layers to drive Intel TH devices.

	  Say Y here to enable Intel(R) Trace Hub controller support.

if INTEL_TH

config INTEL_TH_PCI
	tristate "Intel(R) Trace Hub PCI controller"
	depends on PCI
	help
	  Intel(R) Trace Hub may exist as a PCI device. This option enables
	  support glue layer for PCI-based Intel TH.

	  Say Y here to enable PCI Intel TH support.

config INTEL_TH_ACPI
	tristate "Intel(R) Trace Hub ACPI controller"
	depends on ACPI
	help
	  Intel(R) Trace Hub may exist as an ACPI device. This option enables
	  support glue layer for ACPI-based Intel TH. This typically implies
	  'host debugger' mode, that is, the trace configuration and capture
	  is handled by an external debug host and corresponding controls will
	  not be available on the target.

	  Say Y here to enable ACPI Intel TH support.

config INTEL_TH_GTH
	tristate "Intel(R) Trace Hub Global Trace Hub"
	help
	  Global Trace Hub (GTH) is the central component of the
	  Intel TH infrastructure and acts as a switch for source
	  and output devices. This driver is required for other
	  Intel TH subdevices to initialize.

	  Say Y here to enable GTH subdevice of Intel(R) Trace Hub.

config INTEL_TH_STH
	tristate "Intel(R) Trace Hub Software Trace Hub support"
	depends on STM
	help
	  Software Trace Hub (STH) enables trace data from software
	  trace sources to be sent out via Intel(R) Trace Hub. It
	  uses stm class device to interface with its sources.

	  Say Y here to enable STH subdevice of Intel(R) Trace Hub.

config INTEL_TH_MSU
	tristate "Intel(R) Trace Hub Memory Storage Unit"
	help
	  Memory Storage Unit (MSU) trace output device enables
	  storing STP traces to system memory. It supports single
	  and multiblock modes of operation and provides read()
	  and mmap() access to the collected data.

	  Say Y here to enable MSU output device for Intel TH.

config INTEL_TH_PTI
	tristate "Intel(R) Trace Hub PTI output"
	help
	  Parallel Trace Interface unit (PTI) is a trace output device
	  of Intel TH architecture that facilitates STP trace output via
	  a PTI port.

	  Say Y to enable PTI output of Intel TH data.

config INTEL_TH_DEBUG
	bool "Intel(R) Trace Hub debugging"
	depends on DEBUG_FS
	help
	  Say Y here to enable debugging.

endif
