162306a36Sopenharmony_ciTexas Instruments DMA Crossbar (DMA request router) 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciRequired properties: 462306a36Sopenharmony_ci- compatible: "ti,dra7-dma-crossbar" for DRA7xx DMA crossbar 562306a36Sopenharmony_ci "ti,am335x-edma-crossbar" for AM335x and AM437x 662306a36Sopenharmony_ci- reg: Memory map for accessing module 762306a36Sopenharmony_ci- #dma-cells: Should be set to match with the DMA controller's dma-cells 862306a36Sopenharmony_ci for ti,dra7-dma-crossbar and <3> for ti,am335x-edma-crossbar. 962306a36Sopenharmony_ci- dma-requests: Number of DMA requests the crossbar can receive 1062306a36Sopenharmony_ci- dma-masters: phandle pointing to the DMA controller 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciThe DMA controller node need to have the following poroperties: 1362306a36Sopenharmony_ci- dma-requests: Number of DMA requests the controller can handle 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciOptional properties: 1662306a36Sopenharmony_ci- ti,dma-safe-map: Safe routing value for unused request lines 1762306a36Sopenharmony_ci- ti,reserved-dma-request-ranges: DMA request ranges which should not be used 1862306a36Sopenharmony_ci when mapping xbar input to DMA request, they are either 1962306a36Sopenharmony_ci allocated to be used by for example the DSP or they are used as 2062306a36Sopenharmony_ci memcpy channels in eDMA. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciNotes: 2362306a36Sopenharmony_ciWhen requesting channel via ti,dra7-dma-crossbar, the DMA clinet must request 2462306a36Sopenharmony_cithe DMA event number as crossbar ID (input to the DMA crossbar). 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciFor ti,am335x-edma-crossbar: the meaning of parameters of dmas for clients: 2762306a36Sopenharmony_cidmas = <&edma_xbar 12 0 1>; where <12> is the DMA request number, <0> is the TC 2862306a36Sopenharmony_cithe event should be assigned and <1> is the mux selection for in the crossbar. 2962306a36Sopenharmony_ciWhen mux 0 is used the DMA channel can be requested directly from edma node. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciExample: 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci/* DMA controller */ 3462306a36Sopenharmony_cisdma: dma-controller@4a056000 { 3562306a36Sopenharmony_ci compatible = "ti,omap4430-sdma"; 3662306a36Sopenharmony_ci reg = <0x4a056000 0x1000>; 3762306a36Sopenharmony_ci interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 3862306a36Sopenharmony_ci <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 3962306a36Sopenharmony_ci <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 4062306a36Sopenharmony_ci <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 4162306a36Sopenharmony_ci #dma-cells = <1>; 4262306a36Sopenharmony_ci dma-channels = <32>; 4362306a36Sopenharmony_ci dma-requests = <127>; 4462306a36Sopenharmony_ci}; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci/* DMA crossbar */ 4762306a36Sopenharmony_cisdma_xbar: dma-router@4a002b78 { 4862306a36Sopenharmony_ci compatible = "ti,dra7-dma-crossbar"; 4962306a36Sopenharmony_ci reg = <0x4a002b78 0xfc>; 5062306a36Sopenharmony_ci #dma-cells = <1>; 5162306a36Sopenharmony_ci dma-requests = <205>; 5262306a36Sopenharmony_ci ti,dma-safe-map = <0>; 5362306a36Sopenharmony_ci /* Protect the sDMA request ranges: 10-14 and 100-126 */ 5462306a36Sopenharmony_ci ti,reserved-dma-request-ranges = <10 5>, <100 27>; 5562306a36Sopenharmony_ci dma-masters = <&sdma>; 5662306a36Sopenharmony_ci}; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci/* DMA client */ 5962306a36Sopenharmony_ciuart1: serial@4806a000 { 6062306a36Sopenharmony_ci compatible = "ti,omap4-uart"; 6162306a36Sopenharmony_ci reg = <0x4806a000 0x100>; 6262306a36Sopenharmony_ci interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 6362306a36Sopenharmony_ci ti,hwmods = "uart1"; 6462306a36Sopenharmony_ci clock-frequency = <48000000>; 6562306a36Sopenharmony_ci /* Requesting crossbar input 49 and 50 */ 6662306a36Sopenharmony_ci dmas = <&sdma_xbar 49>, <&sdma_xbar 50>; 6762306a36Sopenharmony_ci dma-names = "tx", "rx"; 6862306a36Sopenharmony_ci}; 69