...your main source of everything AVR32 Linux
Logon | Register | Print

Navigation

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:

  • Support for setting up hardware handshaking interfaces
  • Ability to force a particular transfer width. Since the DMA Engine API is only defined to operate on memory, the width of each load/store transaction on the bus does not matter. When dealing with peripherals, it very much does.
  • Support for other controller-specific bells and whistles.

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:

  • old-dma-controller.patch: The old dw_dmac driver usable with the AtmelMmcDriver

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.

r3 - 04 Feb 2008 - 21:17 - HaavardSkinnemoen
  Attachment Action Size Date Who Comment
else dma-test-client.patch props, move 7.0 K 21 Jun 2007 - 09:14 HaavardSkinnemoen Test client for the DMA Engine framework
else old-dma-controller.patch props, move 28.2 K 21 Jun 2007 - 09:02 HaavardSkinnemoen The old dw_dmac driver usable with the AtmelMmcDriver
else 0002-First-pass-at-a-DMA-Engine-framework-driver-for-th.patch props, move 25.1 K 21 Jun 2007 - 09:13 HaavardSkinnemoen New dw_dmac driver based on the DMA Engine framework
else 0001-AVR32-Wire-up-dw_dmac0-instead-of-dmaca0.patch props, move 3.0 K 21 Jun 2007 - 09:12 HaavardSkinnemoen Wire up the new DMA controller instead of the old one
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Atmel®, AVR® and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries.
All other trademarks are the property of their respective owners.
Powered by Wed, 08 Feb 2006 build 8740
Syndicate this site