37aef53f5c
In some configurations, the BAM DMA controller is set up by a remote processor and the local processor can simply start making use of it without setting up the BAM. This is already supported using the "qcom,controlled-remotely" property. However, for some reason another possible configuration is that the remote processor is responsible for powering up the BAM, but we are still responsible for initializing it (e.g. resetting it etc). Add a "qcom,powered-remotely" property to describe that configuration. Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Acked-by: Rob Herring <robh@kernel.org> Reviewed-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> Link: https://lore.kernel.org/r/20211018102421.19848-2-stephan@gerhold.net Signed-off-by: Vinod Koul <vkoul@kernel.org>
53 lines
1.7 KiB
Plaintext
53 lines
1.7 KiB
Plaintext
QCOM BAM DMA controller
|
|
|
|
Required properties:
|
|
- compatible: must be one of the following:
|
|
* "qcom,bam-v1.4.0" for MSM8974, APQ8074 and APQ8084
|
|
* "qcom,bam-v1.3.0" for APQ8064, IPQ8064 and MSM8960
|
|
* "qcom,bam-v1.7.0" for MSM8916
|
|
- reg: Address range for DMA registers
|
|
- interrupts: Should contain the one interrupt shared by all channels
|
|
- #dma-cells: must be <1>, the cell in the dmas property of the client device
|
|
represents the channel number
|
|
- clocks: required clock
|
|
- clock-names: must contain "bam_clk" entry
|
|
- qcom,ee : indicates the active Execution Environment identifier (0-7) used in
|
|
the secure world.
|
|
- qcom,controlled-remotely : optional, indicates that the bam is controlled by
|
|
remote proccessor i.e. execution environment.
|
|
- qcom,powered-remotely : optional, indicates that the bam is powered up by
|
|
a remote processor but must be initialized by the local processor.
|
|
- num-channels : optional, indicates supported number of DMA channels in a
|
|
remotely controlled bam.
|
|
- qcom,num-ees : optional, indicates supported number of Execution Environments
|
|
in a remotely controlled bam.
|
|
|
|
Example:
|
|
|
|
uart-bam: dma@f9984000 = {
|
|
compatible = "qcom,bam-v1.4.0";
|
|
reg = <0xf9984000 0x15000>;
|
|
interrupts = <0 94 0>;
|
|
clocks = <&gcc GCC_BAM_DMA_AHB_CLK>;
|
|
clock-names = "bam_clk";
|
|
#dma-cells = <1>;
|
|
qcom,ee = <0>;
|
|
};
|
|
|
|
DMA clients must use the format described in the dma.txt file, using a two cell
|
|
specifier for each channel.
|
|
|
|
Example:
|
|
serial@f991e000 {
|
|
compatible = "qcom,msm-uart";
|
|
reg = <0xf991e000 0x1000>
|
|
<0xf9944000 0x19000>;
|
|
interrupts = <0 108 0>;
|
|
clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
|
|
<&gcc GCC_BLSP1_AHB_CLK>;
|
|
clock-names = "core", "iface";
|
|
|
|
dmas = <&uart-bam 0>, <&uart-bam 1>;
|
|
dma-names = "rx", "tx";
|
|
};
|