Commit 40262b2b authored by Nicolas Ferre's avatar Nicolas Ferre Committed by Russell King

ARM: 5621/1: at91/dmaengine: integration of at_hdmac driver in at91sam9g45 series

This is the integration of DMA engine driver into at91sam9g45 series
device file.
The associated driver is at_hdmac.
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: default avatarAndrew Victor <linux@maxim.org.za>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 6ff89e9d
...@@ -24,10 +24,58 @@ ...@@ -24,10 +24,58 @@
#include <mach/at91sam9g45.h> #include <mach/at91sam9g45.h>
#include <mach/at91sam9g45_matrix.h> #include <mach/at91sam9g45_matrix.h>
#include <mach/at91sam9_smc.h> #include <mach/at91sam9_smc.h>
#include <mach/at_hdmac.h>
#include "generic.h" #include "generic.h"
/* --------------------------------------------------------------------
* HDMAC - AHB DMA Controller
* -------------------------------------------------------------------- */
#if defined(CONFIG_AT_HDMAC) || defined(CONFIG_AT_HDMAC_MODULE)
static u64 hdmac_dmamask = DMA_BIT_MASK(32);
static struct at_dma_platform_data atdma_pdata = {
.nr_channels = 8,
};
static struct resource hdmac_resources[] = {
[0] = {
.start = AT91_BASE_SYS + AT91_DMA,
.end = AT91_BASE_SYS + AT91_DMA + SZ_512 - 1,
.flags = IORESOURCE_MEM,
},
[2] = {
.start = AT91SAM9G45_ID_DMA,
.end = AT91SAM9G45_ID_DMA,
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device at_hdmac_device = {
.name = "at_hdmac",
.id = -1,
.dev = {
.dma_mask = &hdmac_dmamask,
.coherent_dma_mask = DMA_BIT_MASK(32),
.platform_data = &atdma_pdata,
},
.resource = hdmac_resources,
.num_resources = ARRAY_SIZE(hdmac_resources),
};
void __init at91_add_device_hdmac(void)
{
dma_cap_set(DMA_MEMCPY, atdma_pdata.cap_mask);
dma_cap_set(DMA_SLAVE, atdma_pdata.cap_mask);
platform_device_register(&at_hdmac_device);
}
#else
void __init at91_add_device_hdmac(void) {}
#endif
/* -------------------------------------------------------------------- /* --------------------------------------------------------------------
* USB Host (OHCI) * USB Host (OHCI)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
...@@ -1220,6 +1268,7 @@ void __init at91_add_device_serial(void) {} ...@@ -1220,6 +1268,7 @@ void __init at91_add_device_serial(void) {}
*/ */
static int __init at91_add_standard_devices(void) static int __init at91_add_standard_devices(void)
{ {
at91_add_device_hdmac();
at91_add_device_rtc(); at91_add_device_rtc();
at91_add_device_rtt(); at91_add_device_rtt();
at91_add_device_watchdog(); at91_add_device_watchdog();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment