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

Commit 917809e2 authored by Srinivas Kandagatla's avatar Srinivas Kandagatla Committed by Greg Kroah-Hartman
Browse files

slimbus: ngd: Add qcom SLIMBus NGD driver



This patch adds suppor to Qualcomm SLIMBus Non-Generic Device (NGD)
controller driver.
This is light-weight SLIMBus controller driver responsible for
communicating with slave HW directly over the bus using messaging
interface, and communicating with master component residing on ADSP
for bandwidth and data-channel management

Based on intial work from
Karthikeyan Ramasubramanian <kramasub@codeaurora.org> and
Sagar Dharia <sdharia@codeaurora.org>

Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: default avatarCraig Tatlor <ctatlor97@gmail.com>
Reviewed-by: default avatarVinod Koul <vkoul@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 992d3615
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -20,4 +20,15 @@ config SLIM_QCOM_CTRL
	  Select driver if Qualcomm's SLIMbus Manager Component is
	  programmed using Linux kernel.

config SLIM_QCOM_NGD_CTRL
	tristate "Qualcomm SLIMbus Satellite Non-Generic Device Component"
	depends on QCOM_QMI_HELPERS
	depends on HAS_IOMEM && DMA_ENGINE
	help
	  Select driver if Qualcomm's SLIMbus Satellite Non-Generic Device
	  Component is programmed using Linux kernel.
	  This is light-weight slimbus controller driver responsible for
	  communicating with slave HW directly over the bus using messaging
	  interface, and communicating with master component residing on ADSP
	  for bandwidth and data-channel management.
endif
+3 −0
Original line number Diff line number Diff line
@@ -8,3 +8,6 @@ slimbus-y := core.o messaging.o sched.o
#Controllers
obj-$(CONFIG_SLIM_QCOM_CTRL)		+= slim-qcom-ctrl.o
slim-qcom-ctrl-y			:= qcom-ctrl.o

obj-$(CONFIG_SLIM_QCOM_NGD_CTRL)	+= slim-qcom-ngd-ctrl.o
slim-qcom-ngd-ctrl-y			:= qcom-ngd-ctrl.o
+1381 −0

File added.

Preview size limit exceeded, changes collapsed.

+8 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@

/* SLIMbus message types. Related to interpretation of message code. */
#define SLIM_MSG_MT_CORE			0x0
#define SLIM_MSG_MT_DEST_REFERRED_USER		0x2
#define SLIM_MSG_MT_SRC_REFERRED_USER		0x6

/*
 * SLIM Broadcast header format
@@ -48,6 +50,12 @@
#define SLIM_MSG_MC_NEXT_PAUSE_CLOCK             0x4A
#define SLIM_MSG_MC_RECONFIGURE_NOW              0x5F

/*
 * Clock pause flag to indicate that the reconfig message
 * corresponds to clock pause sequence
 */
#define SLIM_MSG_CLK_PAUSE_SEQ_FLG		(1U << 8)

/* Clock pause values per SLIMbus spec */
#define SLIM_CLK_FAST				0
#define SLIM_CLK_CONST_PHASE			1