summaryrefslogtreecommitdiff
path: root/arch/arm/mach-sa1100/generic.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-03-25 23:54:52 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-03-25 23:54:57 +0100
commit277dc7ae147e971cfdbf4aa3529477909852b780 (patch)
tree59fe6d5cb428e1a543f24cf0d4d16edebb247c5e /arch/arm/mach-sa1100/generic.c
parent374da9da22ebaad0524c77905b5e89ae4619bef3 (diff)
parentd138dacb4b8255c02e4380ce2aadab758a99d2c1 (diff)
Merge branch 'sa11x0-ir' into sa11x0
Diffstat (limited to 'arch/arm/mach-sa1100/generic.c')
-rw-r--r--arch/arm/mach-sa1100/generic.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index 2b33b4597468..1752686e9abc 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
+#include <linux/dma-mapping.h>
#include <linux/pm.h>
#include <linux/cpufreq.h>
#include <linux/ioport.h>
@@ -289,6 +290,29 @@ static struct platform_device sa11x0rtc_device = {
.id = -1,
};
+static struct resource sa11x0dma_resources[] = {
+ DEFINE_RES_MEM(__PREG(DDAR(0)), 6 * DMASp),
+ DEFINE_RES_IRQ(IRQ_DMA0),
+ DEFINE_RES_IRQ(IRQ_DMA1),
+ DEFINE_RES_IRQ(IRQ_DMA2),
+ DEFINE_RES_IRQ(IRQ_DMA3),
+ DEFINE_RES_IRQ(IRQ_DMA4),
+ DEFINE_RES_IRQ(IRQ_DMA5),
+};
+
+static u64 sa11x0dma_dma_mask = DMA_BIT_MASK(32);
+
+static struct platform_device sa11x0dma_device = {
+ .name = "sa11x0-dma",
+ .id = -1,
+ .dev = {
+ .dma_mask = &sa11x0dma_dma_mask,
+ .coherent_dma_mask = 0xffffffff,
+ },
+ .num_resources = ARRAY_SIZE(sa11x0dma_resources),
+ .resource = sa11x0dma_resources,
+};
+
static struct platform_device *sa11x0_devices[] __initdata = {
&sa11x0udc_device,
&sa11x0uart1_device,
@@ -297,6 +321,7 @@ static struct platform_device *sa11x0_devices[] __initdata = {
&sa11x0pcmcia_device,
&sa11x0fb_device,
&sa11x0rtc_device,
+ &sa11x0dma_device,
};
static int __init sa1100_init(void)