# SPDX-License-Identifier: GPL-2.0

menu "Rpmsg drivers"

# RPMSG always gets selected by whoever wants it
config RPMSG
	tristate

config RPMSG_CHAR
	tristate "RPMSG device interface"
	depends on RPMSG
	depends on NET
	help
	  Say Y here to export rpmsg endpoints as device files, usually found
	  in /dev. They make it possible for user-space programs to send and
	  receive rpmsg packets.

config RPMSG_NS
	tristate "RPMSG name service announcement"
	depends on RPMSG
	help
	  Say Y here to enable the support of the name service announcement
	  channel that probes the associated RPMsg device on remote endpoint
	  service announcement.

config RPMSG_MTK_SCP
	tristate "MediaTek SCP"
	depends on MTK_SCP
	select RPMSG
	help
	  Say y here to enable support providing communication channels to
	  remote processors in MediaTek platforms.
	  This use IPI and IPC to communicate with remote processors.

config RPMSG_QCOM_GLINK
	tristate
	select RPMSG

config RPMSG_QCOM_GLINK_RPM
	tristate "Qualcomm RPM Glink driver"
	select RPMSG_QCOM_GLINK
	depends on HAS_IOMEM
	depends on MAILBOX
	help
	  Say y here to enable support for the GLINK RPM communication driver,
	  which serves as a channel for communication with the RPM in GLINK
	  enabled systems.

config RPMSG_QCOM_GLINK_SMEM
	tristate "Qualcomm SMEM Glink driver"
	select RPMSG_QCOM_GLINK
	depends on MAILBOX
	depends on QCOM_SMEM
	help
	  Say y here to enable support for the GLINK SMEM communication driver,
	  which provides support for using the GLINK communication protocol
	  over SMEM.

config RPMSG_QCOM_SMD
	tristate "Qualcomm Shared Memory Driver (SMD)"
	depends on MAILBOX
	depends on QCOM_SMEM
	select RPMSG
	help
	  Say y here to enable support for the Qualcomm Shared Memory Driver
	  providing communication channels to remote processors in Qualcomm
	  platforms.

config RPMSG_VIRTIO
	tristate "Virtio RPMSG bus driver"
	depends on HAS_DMA
	select RPMSG
	select RPMSG_NS
	select VIRTIO

endmenu
