1 This file has been moved to dma-controller.yam !! 1 * Generic DMA Controller and DMA request bindings >> 2 >> 3 Generic binding to provide a way for a driver using DMA Engine to retrieve the >> 4 DMA request or channel information that goes from a hardware device to a DMA >> 5 controller. >> 6 >> 7 >> 8 * DMA controller >> 9 >> 10 Required property: >> 11 - #dma-cells: Must be at least 1. Used to provide DMA controller >> 12 specific information. See DMA client binding below for >> 13 more details. >> 14 >> 15 Optional properties: >> 16 - dma-channels: Number of DMA channels supported by the controller. >> 17 - dma-requests: Number of DMA request signals supported by the >> 18 controller. >> 19 - dma-channel-mask: Bitmask of available DMA channels in ascending order >> 20 that are not reserved by firmware and are available to >> 21 the kernel. i.e. first channel corresponds to LSB. >> 22 >> 23 Example: >> 24 >> 25 dma: dma@48000000 { >> 26 compatible = "ti,omap-sdma"; >> 27 reg = <0x48000000 0x1000>; >> 28 interrupts = <0 12 0x4 >> 29 0 13 0x4 >> 30 0 14 0x4 >> 31 0 15 0x4>; >> 32 #dma-cells = <1>; >> 33 dma-channels = <32>; >> 34 dma-requests = <127>; >> 35 dma-channel-mask = <0xfffe> >> 36 }; >> 37 >> 38 * DMA router >> 39 >> 40 DMA routers are transparent IP blocks used to route DMA request lines from >> 41 devices to the DMA controller. Some SoCs (like TI DRA7x) have more peripherals >> 42 integrated with DMA requests than what the DMA controller can handle directly. >> 43 >> 44 Required property: >> 45 - dma-masters: phandle of the DMA controller or list of phandles for >> 46 the DMA controllers the router can direct the signal to. >> 47 - #dma-cells: Must be at least 1. Used to provide DMA router specific >> 48 information. See DMA client binding below for more >> 49 details. >> 50 >> 51 Optional properties: >> 52 - dma-requests: Number of incoming request lines the router can handle. >> 53 - In the node pointed by the dma-masters: >> 54 - dma-requests: The router driver might need to look for this in order >> 55 to configure the routing. >> 56 >> 57 Example: >> 58 sdma_xbar: dma-router@4a002b78 { >> 59 compatible = "ti,dra7-dma-crossbar"; >> 60 reg = <0x4a002b78 0xfc>; >> 61 #dma-cells = <1>; >> 62 dma-requests = <205>; >> 63 ti,dma-safe-map = <0>; >> 64 dma-masters = <&sdma>; >> 65 }; >> 66 >> 67 * DMA client >> 68 >> 69 Client drivers should specify the DMA property using a phandle to the controller >> 70 followed by DMA controller specific data. >> 71 >> 72 Required property: >> 73 - dmas: List of one or more DMA specifiers, each consisting of >> 74 - A phandle pointing to DMA controller node >> 75 - A number of integer cells, as determined by the >> 76 #dma-cells property in the node referenced by phandle >> 77 containing DMA controller specific information. This >> 78 typically contains a DMA request line number or a >> 79 channel number, but can contain any data that is >> 80 required for configuring a channel. >> 81 - dma-names: Contains one identifier string for each DMA specifier in >> 82 the dmas property. The specific strings that can be used >> 83 are defined in the binding of the DMA client device. >> 84 Multiple DMA specifiers can be used to represent >> 85 alternatives and in this case the dma-names for those >> 86 DMA specifiers must be identical (see examples). >> 87 >> 88 Examples: >> 89 >> 90 1. A device with one DMA read channel, one DMA write channel: >> 91 >> 92 i2c1: i2c@1 { >> 93 ... >> 94 dmas = <&dma 2 /* read channel */ >> 95 &dma 3>; /* write channel */ >> 96 dma-names = "rx", "tx"; >> 97 ... >> 98 }; >> 99 >> 100 2. A single read-write channel with three alternative DMA controllers: >> 101 >> 102 dmas = <&dma1 5 >> 103 &dma2 7 >> 104 &dma3 2>; >> 105 dma-names = "rx-tx", "rx-tx", "rx-tx"; >> 106 >> 107 3. A device with three channels, one of which has two alternatives: >> 108 >> 109 dmas = <&dma1 2 /* read channel */ >> 110 &dma1 3 /* write channel */ >> 111 &dma2 0 /* error read */ >> 112 &dma3 0>; /* alternative error read */ >> 113 dma-names = "rx", "tx", "error", "error";
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.