aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra/common.c
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2010-04-05 13:16:42 -0700
committerColin Cross <ccross@android.com>2010-10-21 18:12:35 -0700
commit4de3a8fa334851e642d4889d6afa6e5d3daea10a (patch)
tree955a73509a5745ee4e7a71fa42f10c0c57632aa5 /arch/arm/mach-tegra/common.c
parent7056d423f16103f6700569f60ca842d91bfaabab (diff)
downloadkernel_samsung_smdk4412-4de3a8fa334851e642d4889d6afa6e5d3daea10a.zip
kernel_samsung_smdk4412-4de3a8fa334851e642d4889d6afa6e5d3daea10a.tar.gz
kernel_samsung_smdk4412-4de3a8fa334851e642d4889d6afa6e5d3daea10a.tar.bz2
[ARM] tegra: Add APB DMA support
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>
Diffstat (limited to 'arch/arm/mach-tegra/common.c')
-rw-r--r--arch/arm/mach-tegra/common.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 445104a..7c91e2b 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -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"
@@ -52,6 +55,7 @@ void __init tegra_init_cache(void)
l2x0_init(p, 0x6C080001, 0x8200c3fe);
#endif
+
}
void __init tegra_common_init(void)
@@ -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
}