dmaengine: vdma: Add 64 bit addressing support for the axi dma
authorKedareswara rao Appana <appana.durga.rao@xilinx.com>
Tue, 7 Jun 2016 13:51:15 +0000 (19:21 +0530)
committerVinod Koul <vinod.koul@intel.com>
Tue, 21 Jun 2016 05:35:23 +0000 (11:05 +0530)
commitf0cba685caa30927e3e5f35074c8f6a62aa628ac
tree03dfc78903e2c3f3ed4fed1dd39be65af66f5af2
parentf67c3bdabbab47555232f1b883d4758792dd2bc4
dmaengine: vdma: Add 64 bit addressing support for the axi dma

The AXI DMA is a soft ip, which can be programmed to support
32 bit addressing or greater than 32 bit addressing.

When the AXI DMA ip is configured for 32 bit address space
in simple dma mode the buffer address is specified by a single register
(18h for MM2S channel and 48h for S2MM channel). When configured in SG mode
The current descriptor and tail descriptor are specified by a single
Register(08h for curdesc 10h for tail desc for MM2S channel and 38h for
Curdesc and 40h for tail desc for S2MM).

When the  AXI DMA core is configured for an address space greater
than 32 then each buffer address or descriptor address is specified by
a combination of two registers.

The first register specifies the LSB 32 bits of address,
while the next register specifies the MSB 32 bits of address.

For example, 48h will specify the LSB 32 bits while 4Ch will
specify the MSB 32 bits of the first start address.
So we need to program two registers at a time.

This patch adds the 64 bit addressing support for the axidma
IP in the driver.

Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/xilinx/xilinx_vdma.c