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: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Tested-by: Craig Tatlor <ctatlor97@gmail.com> Reviewed-by: Vinod Koul <vkoul@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
992d36158a
commit
917809e228
|
@ -20,4 +20,15 @@ config SLIM_QCOM_CTRL
|
||||||
Select driver if Qualcomm's SLIMbus Manager Component is
|
Select driver if Qualcomm's SLIMbus Manager Component is
|
||||||
programmed using Linux kernel.
|
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
|
endif
|
||||||
|
|
|
@ -8,3 +8,6 @@ slimbus-y := core.o messaging.o sched.o
|
||||||
#Controllers
|
#Controllers
|
||||||
obj-$(CONFIG_SLIM_QCOM_CTRL) += slim-qcom-ctrl.o
|
obj-$(CONFIG_SLIM_QCOM_CTRL) += slim-qcom-ctrl.o
|
||||||
slim-qcom-ctrl-y := 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
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
/* SLIMbus message types. Related to interpretation of message code. */
|
/* SLIMbus message types. Related to interpretation of message code. */
|
||||||
#define SLIM_MSG_MT_CORE 0x0
|
#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
|
* SLIM Broadcast header format
|
||||||
|
@ -48,6 +50,12 @@
|
||||||
#define SLIM_MSG_MC_NEXT_PAUSE_CLOCK 0x4A
|
#define SLIM_MSG_MC_NEXT_PAUSE_CLOCK 0x4A
|
||||||
#define SLIM_MSG_MC_RECONFIGURE_NOW 0x5F
|
#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 */
|
/* Clock pause values per SLIMbus spec */
|
||||||
#define SLIM_CLK_FAST 0
|
#define SLIM_CLK_FAST 0
|
||||||
#define SLIM_CLK_CONST_PHASE 1
|
#define SLIM_CLK_CONST_PHASE 1
|
||||||
|
|
Loading…
Reference in New Issue