# 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 MA35D1_RPMSG
	tristate "MA35D1 Shared Memory Driver"
	depends on ARCH_MA35D1
	select MAILBOX
	select MA35D1_WORMHOLE
	select RPMSG
	select NET
	select RPMSG_CHAR
	help
	  Say y here to enable support for the MA35D1 Shared Memory Driver
	  providing communication channels to remote processors in MA35D1
	  platforms.

config MA35D1_AMPM
	tristate "MA35D1 AMP-M Driver"
	depends on ARCH_MA35D1
	select RPMSG
	select RPMSG_CHAR
	select HWSEM_MA35D1
	help
	  Say y here to enable support for MA35D1 AMP-M driver providing
	  communication channels between A35 core and CM4 core in
	  MA35D1 platforms for remote processor communication.

config MA35_AMP
	tristate "MA35 series AMP-A Driver"
	depends on (ARCH_MA35D1 || ARCH_MA35D0 || ARCH_MA35H0)
	select RPMSG
	select RPMSG_CHAR
    	select MA35D1_TIMER if ARCH_MA35D1
    	select MA35D0_TIMER if ARCH_MA35D0
    	select MA35H0_TIMER if ARCH_MA35H0
	help
	  Say y here to enable support for the MA35 series AMP-A driver
	  providing communication channels between dual A35 cores in
	  MA35 platforms for remote processor communication.

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 VIRTIO

endmenu
