# SPDX-License-Identifier: GPL-2.0+
#
# (C) Copyright 2015
# Texas Instruments Incorporated - http://www.ti.com/
#

menu "Remote Processor drivers"

# REMOTEPROC gets selected by drivers as needed
# All users should depend on DM
config REMOTEPROC
	bool
	depends on DM

# Please keep the configuration alphabetically sorted.
config K3_SYSTEM_CONTROLLER
	bool "Support for TI' K3 System Controller"
	select REMOTEPROC
	depends on DM
	depends on ARCH_K3
	depends on OF_CONTROL
	help
	  Say 'y' here to add support for TI' K3 System Controller.

config REMOTEPROC_K3
	bool "Support for TI's K3 based remoteproc driver"
	select REMOTEPROC
	depends on DM
	depends on ARCH_K3
	depends on OF_CONTROL
	help
	  Say 'y' here to add support for TI' K3 remoteproc driver.

config REMOTEPROC_SANDBOX
	bool "Support for Test processor for Sandbox"
	select REMOTEPROC
	depends on DM
	depends on SANDBOX
	help
	  Say 'y' here to add support for test processor which does dummy
	  operations for sandbox platform.

config REMOTEPROC_TI_POWER
	bool "Support for TI Power processor"
	select REMOTEPROC
	depends on DM
	depends on ARCH_KEYSTONE
	depends on OF_CONTROL
	help
	  Say 'y' here to add support for TI power processors such as those
	  found on certain TI keystone and OMAP generation SoCs.
endmenu
