From 8969dda249661e5a8760b92af60542b78cea50fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Tue, 28 Apr 2015 19:24:30 +0200 Subject: BCM270x: Add memory and irq resources to dmaengine device and DT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prepare for merging of the legacy DMA API arch driver dma.c with bcm2708-dmaengine by adding memory and irq resources both to platform file device and Device Tree node. Don't use BCM_DMAMAN_DRIVER_NAME so we don't have to include mach/dma.h Signed-off-by: Noralf Trønnes --- arch/arm/boot/dts/bcm2708_common.dtsi | 16 +++++++++ arch/arm/mach-bcm2708/bcm2708.c | 65 +++++++++++++++++++++++++++++++++-- arch/arm/mach-bcm2709/bcm2709.c | 65 +++++++++++++++++++++++++++++++++-- 3 files changed, 142 insertions(+), 4 deletions(-) (limited to 'arch/arm') 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 #include -#include #include #include @@ -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 #include -#include #include #include @@ -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) -- cgit v1.2.1