config STM
	tristate "System Trace Module devices"
	select CONFIGFS_FS
	select SRCU
	help
	  A System Trace Module (STM) is a device exporting data in System
	  Trace Protocol (STP) format as defined by MIPI STP standards.
	  Examples of such devices are Intel(R) Trace Hub and Coresight STM.

	  Say Y here to enable System Trace Module device support.

if STM

config STM_PROTO_BASIC
	tristate "Basic STM framing protocol driver"
	default CONFIG_STM
	help
	  This is a simple framing protocol for sending data over STM
	  devices. This was the protocol that the STM framework used
	  exclusively until the MIPI SyS-T support was added. Use this
	  driver for compatibility with your existing STM setup.

	  The receiving side only needs to be able to decode the MIPI
	  STP protocol in order to extract the data.

	  If you want to be able to use the basic protocol or want the
	  backwards compatibility for your existing setup, say Y.

config STM_PROTO_SYS_T
	tristate "MIPI SyS-T STM framing protocol driver"
	default CONFIG_STM
	help
	  This is an implementation of MIPI SyS-T protocol to be used
	  over the STP transport. In addition to the data payload, it
	  also carries additional metadata for time correlation, better
	  means of trace source identification, etc.

	  The receiving side must be able to decode this protocol in
	  addition to the MIPI STP, in order to extract the data.

	  If you don't know what this is, say N.

config STM_DUMMY
	tristate "Dummy STM driver"
	help
	  This is a simple dummy device that pretends to be an stm device
	  and discards your data. Use for stm class testing.

	  If you don't know what this is, say N.

config STM_SOURCE_CONSOLE
	tristate "Kernel console over STM devices"
	help
	  This is a kernel space trace source that sends kernel log
	  messages to trace hosts over STM devices.

	  If you want to send kernel console messages over STM devices,
	  say Y.

config STM_SOURCE_HEARTBEAT
	tristate "Heartbeat over STM devices"
	help
	  This is a kernel space trace source that sends periodic
	  heartbeat messages to trace hosts over STM devices. It is
	  also useful for testing stm class drivers and the stm class
	  framework itself.

	  If you want to send heartbeat messages over STM devices,
	  say Y.

config STM_SOURCE_FTRACE
	tristate "Copy the output from kernel Ftrace to STM engine"
	depends on FUNCTION_TRACER
	help
	  This option can be used to copy the output from kernel Ftrace
	  to STM engine. Enabling this option will introduce a slight
	  timing effect.

	  If you want to send kernel Ftrace messages over STM devices,
	  say Y.

endif
