linux/arch/arm/plat-mxc
Sascha Hauer 1ec1e82f25 dmaengine: Add Freescale i.MX SDMA support
This patch adds support for the Freescale i.MX SDMA engine.

The SDMA engine is a scatter/gather DMA engine which is implemented
as a seperate coprocessor. SDMA needs its own firmware which is
requested using the standard request_firmware mechanism. The firmware
has different entry points for each peripheral type, so drivers
have to pass the peripheral type to the DMA engine which in turn
picks the correct firmware entry point from a table contained in
the firmware image itself.
The original Freescale code also supports support for transfering
data to the internal SRAM which needs different entry points to
the firmware. Support for this is currently not implemented. Also,
support for the ASRC (asymmetric sample rate converter) is skipped.

I took a very simple approach to implement dmaengine support. Only
a single descriptor is statically assigned to a each channel. This
means that transfers can't be queued up but only a single transfer
is in progress. This simplifies implementation a lot and is sufficient
for the usual device/memory transfers.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Linus Walleij <linus.ml.walleij@gmail.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2010-10-05 15:49:26 -07:00
..
devices imx: dynamically register flexcan devices for mx25 and mx35 2010-07-26 15:05:29 +02:00
include/mach dmaengine: Add Freescale i.MX SDMA support 2010-10-05 15:49:26 -07:00
3ds_debugboard.c mxc: add common debug board for 3-stack platforms 2010-07-26 14:29:19 +02:00
audmux-v1.c ARM: mxc: remove paragraphs with old address of the FSF 2010-06-30 09:00:28 +02:00
audmux-v2.c Merge branch 'imx/for-2.6.36' of git://git.pengutronix.de/git/ukl/linux-2.6 into HEAD 2010-07-26 14:27:25 +02:00
clock.c arm: mxc: utilise usecount field in clock operations 2010-07-26 14:17:57 +02:00
cpu.c [ARM] MXC: add cpu_is_ macros 2009-03-13 10:34:26 +01:00
devices.c ARM: imx: new helper function imx_add_platform_device 2010-06-30 09:00:03 +02:00
ehci.c Merge branch 'imx/for-2.6.36' of git://git.pengutronix.de/git/ukl/linux-2.6 into HEAD 2010-07-26 14:27:25 +02:00
gpio.c arm/imx/gpio: add spinlock protection 2010-07-28 09:22:51 +02:00
iomux-v1.c arm/imx/iomux-v1: check for invalid modes in mxc_gpio_mode 2010-02-24 10:07:16 +01:00
iomux-v3.c mxc: iomux v3: remove resource handling 2009-11-24 08:39:43 +01:00
irq.c ARM: imx: get rid of mxc_gpio_init 2010-06-24 15:40:40 +02:00
Kconfig ARM: imx: set cache line size to 64 bytes for i.MX5 2010-08-21 12:22:43 +02:00
Makefile mxc: add common debug board for 3-stack platforms 2010-07-26 14:29:19 +02:00
pwm.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ssi-fiq-ksym.c ASoC: Add a new imx-ssi sound driver 2010-01-17 11:09:46 +00:00
ssi-fiq.S ASoC: Add a new imx-ssi sound driver 2010-01-17 11:09:46 +00:00
system.c ARM: mxc: remove paragraphs with old address of the FSF 2010-06-30 09:00:28 +02:00
time.c arm/plat-mxc: Fix forgotten renaming in timer.c 2010-04-23 09:22:30 +02:00
tzic.c mxc/tzic: add base address when accessing TZIC registers 2010-08-21 12:22:43 +02:00
ulpi.c MXC: Add support for ULPI Viewports 2009-11-14 10:29:15 +01:00