S3C: DMA: Add api driver for PL330
authorJassi Brar <jassi.brar@samsung.com>
Tue, 18 May 2010 02:59:06 +0000 (11:59 +0900)
committerBen Dooks <ben-linux@fluff.org>
Tue, 18 May 2010 09:00:12 +0000 (18:00 +0900)
commitd800edebe33cac300ab1ff3b95e8a74d53e842d2
tree58b34218288bae45714cbe4f0a7743b558f05e4a
parent7ebd467551ed6ae200d7835a84bbda0dcadaa511
S3C: DMA: Add api driver for PL330

Latest Samsung SoCs have one or more PL330 as their DMACs. This patch
implements the S3C DMA API for PL330 core driver.

The design has been kept as generic as possible while keeping effort to
add support for new SoCs to the minimum possible level.

Some of the salient features of this driver are:-
 o  Automatic scheduling of client requests onto DMAC if more than
    one DMAC can reach the peripheral. Factors, such as current load
    and number of exclusive but inactive peripherals that are
    supported by the DMAC, are used to decide suitability of a DMAC
    for a particular client.
 o  CIRCULAR buffer option is supported.
 o  The driver scales transparently with the number of DMACs and total
    peripherals in the platform, since all peripherals are added to
    the peripheral pool and DMACs to the controller pool.

For most conservative use of memory, smallest driver size and best
performance, we don't employ legacy data structures of the S3C DMA API.
That should not have any affect since those data structures are completely
invisible to the DMA clients.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/plat-samsung/Kconfig
arch/arm/plat-samsung/Makefile
arch/arm/plat-samsung/include/plat/s3c-dma-pl330.h [new file with mode: 0644]
arch/arm/plat-samsung/include/plat/s3c-pl330-pdata.h [new file with mode: 0644]
arch/arm/plat-samsung/s3c-pl330.c [new file with mode: 0644]