usb: musb dma: add cppi41 dma driver
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Thu, 20 Jun 2013 10:13:04 +0000 (12:13 +0200)
committerFelipe Balbi <balbi@ti.com>
Fri, 9 Aug 2013 14:40:16 +0000 (17:40 +0300)
commit9b3452d1fa3c017d3664ff9e6a601daa6e0576eb
treeac2fdd71c45975f2430d094ef138ccd0a2d835c0
parent97238b35d5bbb5d5312d83c30a429824b777619f
usb: musb dma: add cppi41 dma driver

This driver is currently used by musb' cppi41 couter part. I may merge
both dma engine user of musb at some point but not just yet.

The driver seems to work in RX/TX mode in host mode, tested on mass
storage. I increaed the size of the TX / RX transfers and waited for the
core code to cancel a transfers and it seems to recover.

v2..3:
- use mall transfers on RX side and check data toggle.
- use rndis mode on tx side so we haveon interrupt for 4096 transfers.
- remove custom "transferred" hack and use dmaengine_tx_status() to
  compute the total amount of data that has been transferred.
- cancel transfers and reclaim descriptors

v1..v2:
- RX path added
- dma mode 0 & 1 is working
- device tree nodes re-created.

Cc: Vinod Koul <vinod.koul@intel.com>
Cc: Dan Williams <djbw@fb.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
arch/arm/boot/dts/am335x-evm.dts
arch/arm/boot/dts/am33xx.dtsi
drivers/dma/Kconfig
drivers/dma/Makefile
drivers/dma/cppi41.c [new file with mode: 0644]
drivers/usb/musb/Kconfig
drivers/usb/musb/Makefile
drivers/usb/musb/musb_cppi41.c [new file with mode: 0644]
drivers/usb/musb/musb_dma.h