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

Commit cb1948a8 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: sps: add SPS driver snapshot" into msm-next

parents 012f785b 800917d4
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
SPS (Smart Peripheral Switch) may be used as a DMA engine to move data
in either the Peripheral-to-Peripheral (a.k.a. BAM-to-BAM) mode or the
Peripheral-to-Memory (a.k.a. BAM-System) mode. SPS includes BAM (Bus
Access Module) hardware block, BAM DMA peripheral, and pipe memory.

Required property:
  - compatible: should be "qcom,msm_sps" or "qcom,msm_sps_4k"

Optional properties:
  - reg: offset and size for the memory mapping, including maps for
    BAM DMA BAM, BAM DMA peripheral, pipe memory and reserved memory.
  - reg-names: indicates various resources passed to driver (via reg
    property) by name. "reg-names" examples are "bam_mem", "core_mem"
    , "pipe_mem" and "res_mem".
  - interrupts: IRQ line
  - qcom,device-type: specify the device configuration of BAM DMA and
    pipe memory. Can be one of
        1 - With BAM DMA and without pipe memory
        2 - With BAM DMA and with pipe memory
        3 - Without BAM DMA and without pipe memory
  - qcom,pipe-attr-ee: BAM pipes are attributed to a specific EE, with
    which we can know the pipes belong to apps side and can have the
    error interrupts at the pipe level.
  - clocks: This property shall provide a list of entries each of which
    contains a phandle to clock controller device and a macro that is
    the clock's name in hardware.These should be "clock_rpm" as clock
    controller phandle and "clk_pnoc_sps_clk" as macro for "dfab_clk"
    and "clock_gcc" as clock controller phandle and "clk_gcc_bam_dma_ahb_clk"
    as macro for "dma_bam_pclk".
  - clock-names: This property shall contain the clock input names used
    by driver in same order as the clocks property.These should be "dfab_clk"
    and "dma_bam_pclk".

Example:

	qcom,sps@f9980000 {
		compatible = "qcom,msm_sps";
		reg = <0xf9984000 0x15000>,
		      <0xf9999000 0xb000>,
		      <0xfe803000 0x4800>;
		interrupts = <0 94 0>;
		qcom,device-type = <2>;
		qcom,pipe-attr-ee;
		clocks = <&clock_rpm clk_pnoc_sps_clk>,
			 <&clock_gcc clk_gcc_bam_dma_ahb_clk>;
		clock-names = "dfab_clk", "dma_bam_pclk";
	};
+28 −0
Original line number Diff line number Diff line
@@ -18,4 +18,32 @@ config QCOM_GENI_SE
	  module is used to configure and read the configuration from the
	  Serial Engines.

config SPS
	bool "SPS support"
	select GENERIC_ALLOCATOR
	help
	  The SPS (Smart Peripheral Switch) is a DMA engine.
	  It can move data in the following modes:
		1. Peripheral-to-Peripheral.
		2. Peripheral-to-Memory.
		3. Memory-to-Memory.

config SPS_SUPPORT_BAMDMA
	bool "SPS support BAM DMA"
	depends on SPS
	default n
	help
	  The BAM-DMA is used for Memory-to-Memory transfers.
	  The main use cases is RPC between processors.
	  The BAM-DMA hardware has 2 registers sets:
		1. A BAM HW like all the peripherals.
		2. A DMA channel configuration (i.e. channel priority).

config SPS_SUPPORT_NDP_BAM
	bool "SPS support NDP BAM"
	depends on SPS
	default n
	help
	  No-Data-Path BAM is used to improve BAM performance.

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -3,3 +3,4 @@
#
obj-$(CONFIG_MSM_EXT_DISPLAY) += msm_ext_display.o
obj-$(CONFIG_QCOM_GENI_SE) += qcom-geni-se.o
obj-$(CONFIG_SPS) += sps/
+1 −0
Original line number Diff line number Diff line
obj-y += bam.o sps_bam.o sps.o sps_dma.o sps_map.o sps_mem.o sps_rm.o
+2346 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading