# 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