# 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_QCOM_GLINK_NATIVE
	tristate
	select RPMSG

config RPMSG_QCOM_GLINK_RPM
	tristate "Qualcomm RPM Glink driver"
        select RPMSG_QCOM_GLINK_NATIVE
	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_NATIVE
	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 VIRTIO

endmenu
