...your main source of everything AVR32 Linux
Search: 

Navigation

This site is powered by the TWiki collaboration platform

_email0

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:

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 TWiki/Dakar Wed, 08 Feb 2006 build 8740
Syndicate this site RSSATOM