diff options
author | Rob Herring <r.herring@freescale.com> | 2010-03-08 15:23:58 -0600 |
---|---|---|
committer | Alejandro Gonzalez <alex.gonzalez@digi.com> | 2010-05-25 10:57:50 +0200 |
commit | bf3fa686ebca341e65af73920792b5054508f381 (patch) | |
tree | 8586dff269323d50cfd59cef8b4dfd5913d96513 /arch/arm/mach-mx35 | |
parent | d07c4c722170a8ad6cbe2aef5e99f38f2f8a1886 (diff) |
ENGR00121388 imx: make sdma a platform device
Convert sdma to a platform device and driver.
Signed-off-by: Rob Herring <r.herring@freescale.com>
Signed-off-by: Alejandro Gonzalez <alex.gonzalez@digi.com>
Diffstat (limited to 'arch/arm/mach-mx35')
-rw-r--r-- | arch/arm/mach-mx35/devices.c | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/arch/arm/mach-mx35/devices.c b/arch/arm/mach-mx35/devices.c index cf01caad2eb9..7687d0e0b09d 100644 --- a/arch/arm/mach-mx35/devices.c +++ b/arch/arm/mach-mx35/devices.c @@ -14,6 +14,7 @@ #include <linux/kernel.h> #include <linux/init.h> #include <linux/io.h> +#include <linux/dma-mapping.h> #include <linux/platform_device.h> #include <linux/clk.h> #include <linux/spi/spi.h> @@ -138,6 +139,32 @@ void mxc_sdma_get_script_info(sdma_script_start_addrs * sdma_script_addr) } } +static struct resource sdma_resources[] = { + { + .start = SDMA_BASE_ADDR, + .end = SDMA_BASE_ADDR + SZ_4K - 1, + .flags = IORESOURCE_MEM, + }, + { + .start = MXC_INT_SDMA, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device mxc_dma_device = { + .name = "mxc_sdma", + .dev = { + .coherent_dma_mask = DMA_BIT_MASK(32), + }, + .num_resources = ARRAY_SIZE(sdma_resources), + .resource = sdma_resources, +}; + +static inline void mxc_init_dma(void) +{ + (void)platform_device_register(&mxc_dma_device); +} + static void mxc_nop_release(struct device *dev) { /* Nothing */ @@ -514,19 +541,6 @@ int __init mxc_register_gpios(void) return mxc_gpio_init(mxc_gpio_ports, ARRAY_SIZE(mxc_gpio_ports)); } -static struct platform_device mxc_dma_device = { - .name = "mxc_dma", - .id = 0, - .dev = { - .release = mxc_nop_release, - }, -}; - -static inline void mxc_init_dma(void) -{ - (void)platform_device_register(&mxc_dma_device); -} - static struct resource spdif_resources[] = { { .start = SPDIF_BASE_ADDR, |