mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-21 08:46:49 +07:00
538098281c
This patch for the DesignWare AHB Central Direct Memory Access Controller adds the dma protection control property: "snps,dma-protection-control" as well as the properties specific values defines into a new include file: include/dt-bindings/dma/dw-dmac.h Note: The protection control signals are one-to-one mapped to the AHB HPROT[1:3] signals for this controller. The HPROT0 (Data Access) is always hardwired to 1. Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> Signed-off-by: Vinod Koul <vkoul@kernel.org>
72 lines
2.3 KiB
Plaintext
72 lines
2.3 KiB
Plaintext
* Synopsys Designware DMA Controller
|
|
|
|
Required properties:
|
|
- compatible: "snps,dma-spear1340"
|
|
- reg: Address range of the DMAC registers
|
|
- interrupt: Should contain the DMAC interrupt number
|
|
- dma-channels: Number of channels supported by hardware
|
|
- dma-requests: Number of DMA request lines supported, up to 16
|
|
- dma-masters: Number of AHB masters supported by the controller
|
|
- #dma-cells: must be <3>
|
|
- chan_allocation_order: order of allocation of channel, 0 (default): ascending,
|
|
1: descending
|
|
- chan_priority: priority of channels. 0 (default): increase from chan 0->n, 1:
|
|
increase from chan n->0
|
|
- block_size: Maximum block size supported by the controller
|
|
- data-width: Maximum data width supported by hardware per AHB master
|
|
(in bytes, power of 2)
|
|
|
|
|
|
Deprecated properties:
|
|
- data_width: Maximum data width supported by hardware per AHB master
|
|
(0 - 8bits, 1 - 16bits, ..., 5 - 256bits)
|
|
|
|
|
|
Optional properties:
|
|
- is_private: The device channels should be marked as private and not for by the
|
|
general purpose DMA channel allocator. False if not passed.
|
|
- multi-block: Multi block transfers supported by hardware. Array property with
|
|
one cell per channel. 0: not supported, 1 (default): supported.
|
|
- snps,dma-protection-control: AHB HPROT[3:1] protection setting.
|
|
The default value is 0 (for non-cacheable, non-buffered,
|
|
unprivileged data access).
|
|
Refer to include/dt-bindings/dma/dw-dmac.h for possible values.
|
|
|
|
Example:
|
|
|
|
dmahost: dma@fc000000 {
|
|
compatible = "snps,dma-spear1340";
|
|
reg = <0xfc000000 0x1000>;
|
|
interrupt-parent = <&vic1>;
|
|
interrupts = <12>;
|
|
|
|
dma-channels = <8>;
|
|
dma-requests = <16>;
|
|
dma-masters = <2>;
|
|
#dma-cells = <3>;
|
|
chan_allocation_order = <1>;
|
|
chan_priority = <1>;
|
|
block_size = <0xfff>;
|
|
data-width = <8 8>;
|
|
};
|
|
|
|
DMA clients connected to the Designware DMA controller must use the format
|
|
described in the dma.txt file, using a four-cell specifier for each channel.
|
|
The four cells in order are:
|
|
|
|
1. A phandle pointing to the DMA controller
|
|
2. The DMA request line number
|
|
3. Memory master for transfers on allocated channel
|
|
4. Peripheral master for transfers on allocated channel
|
|
|
|
Example:
|
|
|
|
serial@e0000000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0xe0000000 0x1000>;
|
|
interrupts = <0 35 0x4>;
|
|
dmas = <&dmahost 12 0 1>,
|
|
<&dmahost 13 1 0>;
|
|
dma-names = "rx", "rx";
|
|
};
|