mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
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
|
||||
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
|
||||
|
@ -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
drivers/slimbus/qcom-ngd-ctrl.c
Normal file
1381
drivers/slimbus/qcom-ngd-ctrl.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user