0001 Texas Instruments DMA Crossbar (DMA request router)
0002
0003 Required properties:
0004 - compatible: "ti,dra7-dma-crossbar" for DRA7xx DMA crossbar
0005 "ti,am335x-edma-crossbar" for AM335x and AM437x
0006 - reg: Memory map for accessing module
0007 - #dma-cells: Should be set to to match with the DMA controller's dma-cells
0008 for ti,dra7-dma-crossbar and <3> for ti,am335x-edma-crossbar.
0009 - dma-requests: Number of DMA requests the crossbar can receive
0010 - dma-masters: phandle pointing to the DMA controller
0011
0012 The DMA controller node need to have the following poroperties:
0013 - dma-requests: Number of DMA requests the controller can handle
0014
0015 Optional properties:
0016 - ti,dma-safe-map: Safe routing value for unused request lines
0017 - ti,reserved-dma-request-ranges: DMA request ranges which should not be used
0018 when mapping xbar input to DMA request, they are either
0019 allocated to be used by for example the DSP or they are used as
0020 memcpy channels in eDMA.
0021
0022 Notes:
0023 When requesting channel via ti,dra7-dma-crossbar, the DMA clinet must request
0024 the DMA event number as crossbar ID (input to the DMA crossbar).
0025
0026 For ti,am335x-edma-crossbar: the meaning of parameters of dmas for clients:
0027 dmas = <&edma_xbar 12 0 1>; where <12> is the DMA request number, <0> is the TC
0028 the event should be assigned and <1> is the mux selection for in the crossbar.
0029 When mux 0 is used the DMA channel can be requested directly from edma node.
0030
0031 Example:
0032
0033 /* DMA controller */
0034 sdma: dma-controller@4a056000 {
0035 compatible = "ti,omap4430-sdma";
0036 reg = <0x4a056000 0x1000>;
0037 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
0038 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
0039 <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
0040 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
0041 #dma-cells = <1>;
0042 dma-channels = <32>;
0043 dma-requests = <127>;
0044 };
0045
0046 /* DMA crossbar */
0047 sdma_xbar: dma-router@4a002b78 {
0048 compatible = "ti,dra7-dma-crossbar";
0049 reg = <0x4a002b78 0xfc>;
0050 #dma-cells = <1>;
0051 dma-requests = <205>;
0052 ti,dma-safe-map = <0>;
0053 /* Protect the sDMA request ranges: 10-14 and 100-126 */
0054 ti,reserved-dma-request-ranges = <10 5>, <100 27>;
0055 dma-masters = <&sdma>;
0056 };
0057
0058 /* DMA client */
0059 uart1: serial@4806a000 {
0060 compatible = "ti,omap4-uart";
0061 reg = <0x4806a000 0x100>;
0062 interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
0063 ti,hwmods = "uart1";
0064 clock-frequency = <48000000>;
0065 /* Requesting crossbar input 49 and 50 */
0066 dmas = <&sdma_xbar 49>, <&sdma_xbar 50>;
0067 dma-names = "tx", "rx";
0068 };