Back to home page

OSCL-LXR

 
 

    


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 };