dmaengine: of_dma: Support for DMA routers
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Thu, 9 Apr 2015 09:35:47 +0000 (12:35 +0300)
committerVinod Koul <vinod.koul@intel.com>
Sat, 9 May 2015 11:41:25 +0000 (17:11 +0530)
commit56f13c0d9524c5816f5dc9c91b9d766d6b1064ca
tree4cdec4de3dbde9fd36d757f50e900811506969c7
parentb787f68c36d49bb1d9236f403813641efa74a031
dmaengine: of_dma: Support for DMA routers

DMA routers are transparent devices used to mux DMA requests from
peripherals to DMA controllers. They are used when the SoC integrates more
devices with DMA requests then their controller can handle.
DRA7x is one example of such SoC, where the sDMA can hanlde 128 DMA request
lines, but in SoC level it has 205 DMA requests.

The of_dma_router will be registered as of_dma_controller with special
xlate function and additional parameters. The driver for the router is
responsible to craft the dma_spec (in the of_dma_route_allocate callback)
which can be used to requests a DMA channel from the real DMA controller.
This way the router can be transparent for the system while remaining generic
enough to be used in different environments.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Documentation/devicetree/bindings/dma/dma.txt
drivers/dma/dmaengine.c
drivers/dma/of-dma.c
include/linux/dmaengine.h
include/linux/of_dma.h