173f67d35SPeter UjfalusiTexas Instruments DMA Crossbar (DMA request router)
273f67d35SPeter Ujfalusi
373f67d35SPeter UjfalusiRequired properties:
473f67d35SPeter Ujfalusi- compatible:	"ti,dra7-dma-crossbar" for DRA7xx DMA crossbar
542dbdcc6SPeter Ujfalusi		"ti,am335x-edma-crossbar" for AM335x and AM437x
673f67d35SPeter Ujfalusi- reg:		Memory map for accessing module
7*19ea810eSDeming Wang- #dma-cells:	Should be set to match with the DMA controller's dma-cells
842dbdcc6SPeter Ujfalusi		for ti,dra7-dma-crossbar and <3> for ti,am335x-edma-crossbar.
973f67d35SPeter Ujfalusi- dma-requests:	Number of DMA requests the crossbar can receive
1073f67d35SPeter Ujfalusi- dma-masters:	phandle pointing to the DMA controller
1173f67d35SPeter Ujfalusi
1273f67d35SPeter UjfalusiThe DMA controller node need to have the following poroperties:
1373f67d35SPeter Ujfalusi- dma-requests:	Number of DMA requests the controller can handle
1473f67d35SPeter Ujfalusi
1573f67d35SPeter UjfalusiOptional properties:
1673f67d35SPeter Ujfalusi- ti,dma-safe-map: Safe routing value for unused request lines
170f73f3e8SPeter Ujfalusi- ti,reserved-dma-request-ranges: DMA request ranges which should not be used
180f73f3e8SPeter Ujfalusi		when mapping xbar input to DMA request, they are either
190f73f3e8SPeter Ujfalusi		allocated to be used by for example the DSP or they are used as
200f73f3e8SPeter Ujfalusi		memcpy channels in eDMA.
2173f67d35SPeter Ujfalusi
2242dbdcc6SPeter UjfalusiNotes:
2342dbdcc6SPeter UjfalusiWhen requesting channel via ti,dra7-dma-crossbar, the DMA clinet must request
2442dbdcc6SPeter Ujfalusithe DMA event number as crossbar ID (input to the DMA crossbar).
2542dbdcc6SPeter Ujfalusi
2642dbdcc6SPeter UjfalusiFor ti,am335x-edma-crossbar: the meaning of parameters of dmas for clients:
2742dbdcc6SPeter Ujfalusidmas = <&edma_xbar 12 0 1>; where <12> is the DMA request number, <0> is the TC
2842dbdcc6SPeter Ujfalusithe event should be assigned and <1> is the mux selection for in the crossbar.
2942dbdcc6SPeter UjfalusiWhen mux 0 is used the DMA channel can be requested directly from edma node.
3042dbdcc6SPeter Ujfalusi
3173f67d35SPeter UjfalusiExample:
3273f67d35SPeter Ujfalusi
3373f67d35SPeter Ujfalusi/* DMA controller */
3473f67d35SPeter Ujfalusisdma: dma-controller@4a056000 {
3573f67d35SPeter Ujfalusi	compatible = "ti,omap4430-sdma";
3673f67d35SPeter Ujfalusi	reg = <0x4a056000 0x1000>;
3773f67d35SPeter Ujfalusi	interrupts =	<GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
3873f67d35SPeter Ujfalusi			<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
3973f67d35SPeter Ujfalusi			<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
4073f67d35SPeter Ujfalusi			<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
4173f67d35SPeter Ujfalusi	#dma-cells = <1>;
4273f67d35SPeter Ujfalusi	dma-channels = <32>;
4373f67d35SPeter Ujfalusi	dma-requests = <127>;
4473f67d35SPeter Ujfalusi};
4573f67d35SPeter Ujfalusi
4673f67d35SPeter Ujfalusi/* DMA crossbar */
4773f67d35SPeter Ujfalusisdma_xbar: dma-router@4a002b78 {
4873f67d35SPeter Ujfalusi	compatible = "ti,dra7-dma-crossbar";
4973f67d35SPeter Ujfalusi	reg = <0x4a002b78 0xfc>;
5073f67d35SPeter Ujfalusi	#dma-cells = <1>;
5173f67d35SPeter Ujfalusi	dma-requests = <205>;
5273f67d35SPeter Ujfalusi	ti,dma-safe-map = <0>;
530f73f3e8SPeter Ujfalusi	/* Protect the sDMA request ranges: 10-14 and 100-126 */
540f73f3e8SPeter Ujfalusi	ti,reserved-dma-request-ranges = <10 5>, <100 27>;
5573f67d35SPeter Ujfalusi	dma-masters = <&sdma>;
5673f67d35SPeter Ujfalusi};
5773f67d35SPeter Ujfalusi
5873f67d35SPeter Ujfalusi/* DMA client */
5973f67d35SPeter Ujfalusiuart1: serial@4806a000 {
6073f67d35SPeter Ujfalusi	compatible = "ti,omap4-uart";
6173f67d35SPeter Ujfalusi	reg = <0x4806a000 0x100>;
6273f67d35SPeter Ujfalusi	interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
6373f67d35SPeter Ujfalusi	ti,hwmods = "uart1";
6473f67d35SPeter Ujfalusi	clock-frequency = <48000000>;
6542dbdcc6SPeter Ujfalusi	/* Requesting crossbar input 49 and 50 */
6673f67d35SPeter Ujfalusi	dmas = <&sdma_xbar 49>, <&sdma_xbar 50>;
6773f67d35SPeter Ujfalusi	dma-names = "tx", "rx";
6873f67d35SPeter Ujfalusi};
69