summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/boot/dts/bcm2708_common.dtsi16
-rw-r--r--arch/arm/mach-bcm2708/bcm2708.c65
-rw-r--r--arch/arm/mach-bcm2709/bcm2709.c65
3 files changed, 142 insertions, 4 deletions
diff --git a/arch/arm/boot/dts/bcm2708_common.dtsi b/arch/arm/boot/dts/bcm2708_common.dtsi
index ff70c5849f29..065a4244bc78 100644
--- a/arch/arm/boot/dts/bcm2708_common.dtsi
+++ b/arch/arm/boot/dts/bcm2708_common.dtsi
@@ -10,7 +10,23 @@
dma: dma@7e007000 {
compatible = "brcm,bcm2835-dma";
+ reg = <0x7e007000 0xf00>;
+ interrupts = <1 16>,
+ <1 17>,
+ <1 18>,
+ <1 19>,
+ <1 20>,
+ <1 21>,
+ <1 22>,
+ <1 23>,
+ <1 24>,
+ <1 25>,
+ <1 26>,
+ <1 27>,
+ <1 28>;
+
#dma-cells = <1>;
+ brcm,dma-channel-mask = <0x7f35>;
};
intc: interrupt-controller {
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
index b848e4a1aa67..703215dea73c 100644
--- a/arch/arm/mach-bcm2708/bcm2708.c
+++ b/arch/arm/mach-bcm2708/bcm2708.c
@@ -55,7 +55,6 @@
#include <asm/mach/map.h>
#include <mach/timex.h>
-#include <mach/dma.h>
#include <mach/vcio.h>
#include <mach/system.h>
@@ -257,15 +256,77 @@ static struct resource bcm2708_dmaman_resources[] = {
};
static struct platform_device bcm2708_dmaman_device = {
- .name = BCM_DMAMAN_DRIVER_NAME,
+ .name = "bcm2708_dma",
.id = 0, /* first bcm2708_dma */
.resource = bcm2708_dmaman_resources,
.num_resources = ARRAY_SIZE(bcm2708_dmaman_resources),
};
+static struct resource bcm2708_dmaengine_resources[] = {
+ {
+ .start = DMA_BASE,
+ .end = DMA_BASE + SZ_4K - 1,
+ .flags = IORESOURCE_MEM,
+ }, {
+ .start = IRQ_DMA0,
+ .end = IRQ_DMA0,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA1,
+ .end = IRQ_DMA1,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA2,
+ .end = IRQ_DMA2,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA3,
+ .end = IRQ_DMA3,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA4,
+ .end = IRQ_DMA4,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA5,
+ .end = IRQ_DMA5,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA6,
+ .end = IRQ_DMA6,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA7,
+ .end = IRQ_DMA7,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA8,
+ .end = IRQ_DMA8,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA9,
+ .end = IRQ_DMA9,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA10,
+ .end = IRQ_DMA10,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA11,
+ .end = IRQ_DMA11,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA12,
+ .end = IRQ_DMA12,
+ .flags = IORESOURCE_IRQ,
+ }
+};
+
static struct platform_device bcm2708_dmaengine_device = {
.name = "bcm2708-dmaengine",
.id = -1,
+ .resource = bcm2708_dmaengine_resources,
+ .num_resources = ARRAY_SIZE(bcm2708_dmaengine_resources),
};
#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
diff --git a/arch/arm/mach-bcm2709/bcm2709.c b/arch/arm/mach-bcm2709/bcm2709.c
index dcad0087dfe2..97116c3a45ee 100644
--- a/arch/arm/mach-bcm2709/bcm2709.c
+++ b/arch/arm/mach-bcm2709/bcm2709.c
@@ -56,7 +56,6 @@
#include <asm/mach/map.h>
#include <mach/timex.h>
-#include <mach/dma.h>
#include <mach/vcio.h>
#include <mach/system.h>
@@ -267,15 +266,77 @@ static struct resource bcm2708_dmaman_resources[] = {
};
static struct platform_device bcm2708_dmaman_device = {
- .name = BCM_DMAMAN_DRIVER_NAME,
+ .name = "bcm2708_dma",
.id = 0, /* first bcm2708_dma */
.resource = bcm2708_dmaman_resources,
.num_resources = ARRAY_SIZE(bcm2708_dmaman_resources),
};
+static struct resource bcm2708_dmaengine_resources[] = {
+ {
+ .start = DMA_BASE,
+ .end = DMA_BASE + SZ_4K - 1,
+ .flags = IORESOURCE_MEM,
+ }, {
+ .start = IRQ_DMA0,
+ .end = IRQ_DMA0,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA1,
+ .end = IRQ_DMA1,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA2,
+ .end = IRQ_DMA2,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA3,
+ .end = IRQ_DMA3,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA4,
+ .end = IRQ_DMA4,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA5,
+ .end = IRQ_DMA5,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA6,
+ .end = IRQ_DMA6,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA7,
+ .end = IRQ_DMA7,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA8,
+ .end = IRQ_DMA8,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA9,
+ .end = IRQ_DMA9,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA10,
+ .end = IRQ_DMA10,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA11,
+ .end = IRQ_DMA11,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .start = IRQ_DMA12,
+ .end = IRQ_DMA12,
+ .flags = IORESOURCE_IRQ,
+ }
+};
+
static struct platform_device bcm2708_dmaengine_device = {
.name = "bcm2708-dmaengine",
.id = -1,
+ .resource = bcm2708_dmaengine_resources,
+ .num_resources = ARRAY_SIZE(bcm2708_dmaengine_resources),
};
#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)