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