Skip to content

Commit

Permalink
[ARM] tegra: Add APB DMA support
Browse files Browse the repository at this point in the history
The APB DMA block handles DMA transfers to and from some peripherals
in the Tegra SOC.  It reads from sequential addresses on the memory
bus, and writes repeatedly to the same address on the APB bus.

Two transfer modes are supported, oneshot for transferring a known
size to or from a peripheral, and continuous for streaming data.
In continuous mode, a callback occurs when the buffer is half full
to allow the existing data to be handled and a new request queued.x

v2 changes:
	dma API no longer uses PTR_ERR

Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Colin Cross <ccross@android.com>
  • Loading branch information
Colin Cross committed Oct 22, 2010
1 parent 7056d42 commit 4de3a8f
Show file tree
Hide file tree
Showing 5 changed files with 922 additions and 0 deletions.
7 changes: 7 additions & 0 deletions arch/arm/mach-tegra/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,11 @@ config TEGRA_DEBUG_UARTE

endchoice

config TEGRA_SYSTEM_DMA
bool "Enable system DMA driver for NVIDIA Tegra SoCs"
default y
help
Adds system DMA functionality for NVIDIA Tegra SoCs, used by
several Tegra device drivers

endif
1 change: 1 addition & 0 deletions arch/arm/mach-tegra/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra2_dvfs.o
obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += pinmux-t2-tables.o
obj-$(CONFIG_SMP) += platsmp.o localtimer.o headsmp.o
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
obj-$(CONFIG_TEGRA_SYSTEM_DMA) += dma.o
obj-$(CONFIG_CPU_FREQ) += cpu-tegra.o

obj-${CONFIG_MACH_HARMONY} += board-harmony.o
Expand Down
7 changes: 7 additions & 0 deletions arch/arm/mach-tegra/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@

#include <linux/init.h>
#include <linux/io.h>
#include <linux/clk.h>
#include <linux/delay.h>

#include <asm/hardware/cache-l2x0.h>

#include <mach/iomap.h>
#include <mach/dma.h>

#include "board.h"
#include "clock.h"
Expand Down Expand Up @@ -52,6 +55,7 @@ void __init tegra_init_cache(void)

l2x0_init(p, 0x6C080001, 0x8200c3fe);
#endif

}

void __init tegra_common_init(void)
Expand All @@ -60,4 +64,7 @@ void __init tegra_common_init(void)
tegra_init_clock();
tegra_clk_init_from_table(common_clk_init_table);
tegra_init_cache();
#ifdef CONFIG_TEGRA_SYSTEM_DMA
tegra_dma_init();
#endif
}
Loading

0 comments on commit 4de3a8f

Please sign in to comment.