^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) * Freescale Direct Memory Access (DMA) Controller for i.MX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) This document will only describe differences to the generic DMA Controller and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) DMA request bindings as described in dma/dma.txt .
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * DMA controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) - compatible : Should be "fsl,<chip>-dma". chip can be imx1, imx21 or imx27
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - reg : Should contain DMA registers location and length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) - interrupts : First item should be DMA interrupt, second one is optional and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) should contain DMA Error interrupt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - #dma-cells : Has to be 1. imx-dma does not support anything else.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) Optional properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) - #dma-channels : Number of DMA channels supported. Should be 16.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) - #dma-requests : Number of DMA requests supported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) dma: dma@10001000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) compatible = "fsl,imx27-dma";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) reg = <0x10001000 0x1000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) interrupts = <32 33>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #dma-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #dma-channels = <16>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) * DMA client
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Clients have to specify the DMA requests with phandles in a list.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - dmas: List of one or more DMA request specifiers. One DMA request specifier
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) consists of a phandle to the DMA controller followed by the integer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) specifying the request line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) - dma-names: List of string identifiers for the DMA requests. For the correct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) names, have a look at the specific client driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) sdhci1: sdhci@10013000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) dmas = <&dma 7>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) dma-names = "rx-tx";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) };