aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/dma.c
diff options
context:
space:
mode:
authorBoojin Kim <boojin.kim@samsung.com>2012-02-14 23:15:12 -0500
committerKukjin Kim <kgene.kim@samsung.com>2012-03-11 01:51:07 -0500
commit9ed76e0336988ecc9e7234e0bd49be4fd98f6c35 (patch)
tree6556d1e1765e7cd4886dc66ba0f2fa50d2332225 /arch/arm/mach-exynos/dma.c
parent44b2cef5ae6da48523fa634230ca66107110a7dd (diff)
ARM: EXYNOS: Enable MDMA driver
This patch adds MDMA platform data and enables MDMA for DMA memcpy operation for EXYNOS SoCs. Signed-off-by: Boojin Kim <boojin.kim@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-exynos/dma.c')
-rw-r--r--arch/arm/mach-exynos/dma.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/dma.c b/arch/arm/mach-exynos/dma.c
index 25f3ef2c36e5..17a2f9086310 100644
--- a/arch/arm/mach-exynos/dma.c
+++ b/arch/arm/mach-exynos/dma.c
@@ -113,6 +113,25 @@ static struct dma_pl330_platdata exynos4_pdma1_pdata = {
113static AMBA_AHB_DEVICE(exynos4_pdma1, "dma-pl330.1", 0x00041330, 113static AMBA_AHB_DEVICE(exynos4_pdma1, "dma-pl330.1", 0x00041330,
114 EXYNOS4_PA_PDMA1, {IRQ_PDMA1}, &exynos4_pdma1_pdata); 114 EXYNOS4_PA_PDMA1, {IRQ_PDMA1}, &exynos4_pdma1_pdata);
115 115
116static u8 mdma_peri[] = {
117 DMACH_MTOM_0,
118 DMACH_MTOM_1,
119 DMACH_MTOM_2,
120 DMACH_MTOM_3,
121 DMACH_MTOM_4,
122 DMACH_MTOM_5,
123 DMACH_MTOM_6,
124 DMACH_MTOM_7,
125};
126
127static struct dma_pl330_platdata exynos4_mdma1_pdata = {
128 .nr_valid_peri = ARRAY_SIZE(mdma_peri),
129 .peri_id = mdma_peri,
130};
131
132static AMBA_AHB_DEVICE(exynos4_mdma1, "dma-pl330.2", 0x00041330,
133 EXYNOS4_PA_MDMA1, {IRQ_MDMA1}, &exynos4_mdma1_pdata);
134
116static int __init exynos4_dma_init(void) 135static int __init exynos4_dma_init(void)
117{ 136{
118 if (of_have_populated_dt()) 137 if (of_have_populated_dt())
@@ -126,6 +145,9 @@ static int __init exynos4_dma_init(void)
126 dma_cap_set(DMA_CYCLIC, exynos4_pdma1_pdata.cap_mask); 145 dma_cap_set(DMA_CYCLIC, exynos4_pdma1_pdata.cap_mask);
127 amba_device_register(&exynos4_pdma1_device, &iomem_resource); 146 amba_device_register(&exynos4_pdma1_device, &iomem_resource);
128 147
148 dma_cap_set(DMA_MEMCPY, exynos4_mdma1_pdata.cap_mask);
149 amba_device_register(&exynos4_mdma1_device, &iomem_resource);
150
129 return 0; 151 return 0;
130} 152}
131arch_initcall(exynos4_dma_init); 153arch_initcall(exynos4_dma_init);