Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a63e37c authored by Chris Lew's avatar Chris Lew Committed by Gerrit - the friendly Code Review server
Browse files

rpmsg: Introduce GLINK SPI driver



Add support for the GLINK SPI driver to communicate to the codec
processor. This driver uses the wdsp spi interface to send and receive
messages on a SPI bus.

Change-Id: I50c0f0023d26e547afa9baf64d0715002ced7347
Signed-off-by: default avatarChris Lew <clew@codeaurora.org>
parent c9e61f28
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -50,6 +50,15 @@ config RPMSG_QCOM_GLINK_SPSS
	  region with the remote proc by writing the smem descriptor location
	  and size into shared registers.

config RPMSG_QCOM_GLINK_SPI
	tristate "Qualcomm SPI Glink driver"
	help
	  Say y here to enable support for the GLINK SPI communication driver,
	  which provides support for using the GLINK communication protocol
	  over SPI. This transport performs marshaling of GLINK commands and
	  data to the appropriate SPI bus wire format and allows for GLINK
	  communication with remote subsystems that are external to the SoC.

config RPMSG_QCOM_SMD
	tristate "Qualcomm Shared Memory Driver (SMD)"
	depends on QCOM_SMEM
+1 −0
Original line number Diff line number Diff line
@@ -5,5 +5,6 @@ obj-$(CONFIG_RPMSG_QCOM_GLINK_RPM) += qcom_glink_rpm.o
obj-$(CONFIG_RPMSG_QCOM_GLINK_NATIVE) += qcom_glink_native.o
obj-$(CONFIG_RPMSG_QCOM_GLINK_SMEM) += qcom_glink_smem.o
obj-$(CONFIG_RPMSG_QCOM_GLINK_SPSS) += qcom_glink_spss.o
obj-$(CONFIG_RPMSG_QCOM_GLINK_SPI) += qcom_glink_spi.o
obj-$(CONFIG_RPMSG_QCOM_SMD)	+= qcom_smd.o
obj-$(CONFIG_RPMSG_VIRTIO)	+= virtio_rpmsg_bus.o
+2473 −0

File added.

Preview size limit exceeded, changes collapsed.

+21 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
#include <linux/device.h>

struct qcom_glink;
struct glink_spi;

#if IS_ENABLED(CONFIG_RPMSG_QCOM_GLINK_SMEM)

@@ -44,4 +45,24 @@ static inline void qcom_glink_spss_unregister(struct qcom_glink *glink) {}

#endif


#if IS_ENABLED(CONFIG_RPMSG_QCOM_GLINK_SPI)

struct glink_spi *qcom_glink_spi_register(struct device *parent,
					       struct device_node *node);
void qcom_glink_spi_unregister(struct glink_spi *glink);

#else

static inline struct glink_spi *
qcom_glink_spi_register(struct device *parent, struct device_node *node)
{
	return NULL;
}

static inline void qcom_glink_spi_unregister(struct glink_spi *glink) {}

#endif


#endif