48 lines
2.0 KiB
Plaintext
48 lines
2.0 KiB
Plaintext
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";
|
|
};
|