Atmel DMACA Driver

There are currently two different drivers for the DMACA controller, neither of which is in mainline. The "old" dw_dmac driver supports peripheral-to-memory and memory-to-peripheral transfer and currently works with the AtmelMmcDriver and AtmelAc97cDriver, but it uses a non-standard and not particularly well-designed API. The "new" dw_dmac driver uses the standard DMA Engine API, but currently only supports memory-to-memory transfers and can therefore not be used with the AtmelMmcDriver and AtmelAc97cDriver.

The plan is to extend the DMA Engine API to make it suitable for peripheral-to-memory and memory-to-peripheral transfer. This requires the following new features:

Patches

Old driver

The old DMACA driver is part of the "atmel" patchsets found at the LinuxPatches page, but if you want it as a standalone patch, you can get it here.

Against 2.6.22-rc5:

New driver

The new DMACA driver can be found in the following git repository:

This also includes a version of the atmel-mci driver ported to the new DMA engine framework.

The following patches are against 2.6.22-rc5, but they do not support peripheral (slave) DMA, so they won't work with the MMC driver.

Attachment sort Action Size Date Who Comment
elsedma-test-client.patch manage 7.0 K 21 Jun 2007 - 09:14 HaavardSkinnemoen Test client for the DMA Engine framework
elseold-dma-controller.patch manage 28.2 K 21 Jun 2007 - 09:02 HaavardSkinnemoen The old dw_dmac driver usable with the AtmelMmcDriver
else0002-First-pass-at-a-DMA-Engine-framework-driver-for-th.patch manage 25.1 K 21 Jun 2007 - 09:13 HaavardSkinnemoen New dw_dmac driver based on the DMA Engine framework
else0001-AVR32-Wire-up-dw_dmac0-instead-of-dmaca0.patch manage 3.0 K 21 Jun 2007 - 09:12 HaavardSkinnemoen Wire up the new DMA controller instead of the old one