forked from mirrors/linux
		
	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
					
				
					 4 changed files with 1403 additions and 0 deletions
				
			
		|  | @ -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 a new issue
	
	 Srinivas Kandagatla
						Srinivas Kandagatla