menuconfig CORESIGHT
	bool "CoreSight Tracing Support"
	help
	  CoreSight components are compliant with the ARM CoreSight
	  architecture specification and can be connected in various
	  topologies to suite a particular SoCs tracing needs. These trace
	  components can generally be classified as sources, links and
	  sinks. Trace data produced by one or more sources flows through
	  the intermediate links connecting the source to the currently
	  selected sink.

	  This framework provides an interface for the CoreSight debug and
	  trace drivers to register themselves with. It's intended to build
	  up a topological view of the CoreSight components and configure
	  the right series of components on user input via sysfs. It also
	  provides status information to user space applications through
	  sysfs interface.

	  If unsure, say 'N' here to avoid potential power, performance and
	  memory penalty.

if CORESIGHT

config HAVE_CORESIGHT_SINK
	bool

config CORESIGHT_FUSE
	bool "CoreSight Fuse driver"
	help
	  This driver provides support for CoreSight Fuse state checks that
	  other CoreSight drivers can query to determine existence of
	  Hardware functionality they support. Drivers can then take necessary
	  actions like failing the probe if the Hardware they manage is
	  functionally disabled.

config CORESIGHT_CTI
	bool "CoreSight Cross Trigger Interface driver"
	help
	  This driver provides support for Cross Trigger Interface that is
	  used to input or output i.e. pass cross trigger events from one
	  hardware component to another. It can also be used to pass
	  software generated events.

config CORESIGHT_CSR
	bool "CoreSight Slave Register driver"
	help
	  This driver provides support for CoreSight Slave Register block
	  that hosts miscellaneous configuration registers.

config CORESIGHT_TMC
	bool "CoreSight Trace Memory Controller driver"
	select CORESIGHT_CTI
	select CORESIGHT_CSR
	select HAVE_CORESIGHT_SINK
	help
	  This driver provides support for Trace Memory Controller which
	  can be configured as either an ETB (Embedded Trace Buffer),
	  ETR (Embedded Trace Router) or ETF (Embedded Trace Fifo). It acts
	  as sink when configured as ETB, ETR or ETF in circular buffer mode
	  whereas it is a link when configured as ETF in hardware fifo mode.

	  ETB collects trace data in a circular buffer whereas ETR can be
	  used to route trace data to memory allocated in RAM. ETF in
	  circular buffer mode is like an ETB whereas in hardware fifo mode
	  it is a fifo link.

config CORESIGHT_TPIU
	bool "CoreSight Trace Port Interface Unit driver"
	select HAVE_CORESIGHT_SINK
	help
	  This driver provides support for Trace Port Interface Unit which
	  acts as a conduit for offchip trace collection.

config CORESIGHT_ETB
	bool "CoreSight Embedded Trace Buffer driver"
	select HAVE_CORESIGHT_SINK
	help
	  This driver provides support for the legacy Embedded Trace Buffer
	  which is a circular buffer.

if HAVE_CORESIGHT_SINK

config CORESIGHT_FUNNEL
	bool "CoreSight Funnel driver"
	help
	  This driver provides support for Funnel which is a link that
	  typically has multiple input ports and a single output port. Input
	  trace data streams from the input ports are interleaved into a
	  single output trace data stream coming out of the output port.

config CORESIGHT_REPLICATOR
	bool "CoreSight Replicator driver"
	help
	  This driver provides support for Replicator that typically has
	  a single input port and two output ports. Single trace data
	  stream on the input port is replicated to produce two identical
	  trace data output streams coming out of the two output ports.

config CORESIGHT_STM
	bool "CoreSight System Trace Macrocell driver"
	help
	  This driver provides support for hardware assisted software
	  instrumentation based tracing. This is primarily useful for
	  logging useful software events or data.

config CORESIGHT_STM_DEFAULT_ENABLE
	bool "Turn on STM tracing by default"
	depends on CORESIGHT_STM
	help
	  Turns on CoreSight STM tracing (hardware assisted software
	  instrumentation based tracing) by default. Otherwise, tracing is
	  disabled by default but can be enabled via sysfs.

	  If unsure, say 'N' here to avoid potential power and performance
	  penalty.

config CORESIGHT_HWEVENT
	bool "CoreSight Hardware Event driver"
	depends on CORESIGHT_STM
	select CORESIGHT_CSR
	help
	  This driver provides support for monitoring and tracing CoreSight
	  Hardware Event across STM interface. It configures Coresight
	  Hardware Event mux control registers to select hardware events
	  based on user input.

config CORESIGHT_ETM
	bool "CoreSight Embedded Trace Macrocell driver"
	help
	  This driver provides support for processor tracing which allows
	  tracing the instructions that the processor is executing. This is
	  primarily useful for instruction level tracing.

config CORESIGHT_ETM_DEFAULT_ENABLE
	bool "Turn on ETM tracing by default"
	depends on CORESIGHT_ETM
	help
	  Turns on CoreSight ETM tracing (processor tracing) by default.
	  Otherwise, tracing is disabled by default but can be enabled via
	  sysfs.

	  If unsure, say 'N' here to avoid potential power and performance
	  penalty.

config CORESIGHT_ETM_PCSAVE_DEFAULT_ENABLE
	bool "Turn on PC saving by default"
	depends on CORESIGHT_ETM
	help
	  Turns on program counter saving on reset by default. Otherwise,
	  PC saving is disabled by default but can be enabled via sysfs.

	  If unsure, say 'N' here to avoid potential power penalty.

endif

config CORESIGHT_EVENT
	tristate "CoreSight Event driver"
	help
	  This driver provides support for registering with various events
	  and performing CoreSight actions like aborting trace on their
	  occurrence.

endif
