aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mxs
diff options
context:
space:
mode:
authorDong Aisheng <dong.aisheng@linaro.org>2012-05-04 08:12:18 -0400
committerShawn Guo <shawn.guo@linaro.org>2012-05-12 01:32:18 -0400
commitcb1be3c73d273bfe74bd5a6fe80e6e84181283af (patch)
tree0e06a637b174b34eb581476bd902f031c48e80d4 /arch/arm/mach-mxs
parent90c9abc5b74d7f7d8226b5dd0d8b6da3a03fe860 (diff)
ARM: mxs: do not add dma device by default
This will cause conflict when dt is enabled. So let each platform add dma devices respectively. Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Huang Shijie <b32955@freescale.com> Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Marek Vasut <marex@denx.de> Acked-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'arch/arm/mach-mxs')
-rw-r--r--arch/arm/mach-mxs/devices/platform-dma.c23
-rw-r--r--arch/arm/mach-mxs/include/mach/common.h3
-rw-r--r--arch/arm/mach-mxs/mm.c6
3 files changed, 10 insertions, 22 deletions
diff --git a/arch/arm/mach-mxs/devices/platform-dma.c b/arch/arm/mach-mxs/devices/platform-dma.c
index aff481360212..46824501de00 100644
--- a/arch/arm/mach-mxs/devices/platform-dma.c
+++ b/arch/arm/mach-mxs/devices/platform-dma.c
@@ -14,7 +14,7 @@
14#include <mach/mx28.h> 14#include <mach/mx28.h>
15#include <mach/devices-common.h> 15#include <mach/devices-common.h>
16 16
17static struct platform_device *__init mxs_add_dma(const char *devid, 17struct platform_device *__init mxs_add_dma(const char *devid,
18 resource_size_t base) 18 resource_size_t base)
19{ 19{
20 struct resource res[] = { 20 struct resource res[] = {
@@ -29,24 +29,3 @@ static struct platform_device *__init mxs_add_dma(const char *devid,
29 res, ARRAY_SIZE(res), NULL, 0, 29 res, ARRAY_SIZE(res), NULL, 0,
30 DMA_BIT_MASK(32)); 30 DMA_BIT_MASK(32));
31} 31}
32
33static int __init mxs_add_mxs_dma(void)
34{
35 char *mx23_apbh = "imx23-dma-apbh";
36 char *mx23_apbx = "imx23-dma-apbx";
37 char *mx28_apbh = "imx28-dma-apbh";
38 char *mx28_apbx = "imx28-dma-apbx";
39
40 if (cpu_is_mx23()) {
41 mxs_add_dma(mx23_apbh, MX23_APBH_DMA_BASE_ADDR);
42 mxs_add_dma(mx23_apbx, MX23_APBX_DMA_BASE_ADDR);
43 }
44
45 if (cpu_is_mx28()) {
46 mxs_add_dma(mx28_apbh, MX28_APBH_DMA_BASE_ADDR);
47 mxs_add_dma(mx28_apbx, MX28_APBX_DMA_BASE_ADDR);
48 }
49
50 return 0;
51}
52arch_initcall(mxs_add_mxs_dma);
diff --git a/arch/arm/mach-mxs/include/mach/common.h b/arch/arm/mach-mxs/include/mach/common.h
index 84af61cf6a62..5f9a3583266c 100644
--- a/arch/arm/mach-mxs/include/mach/common.h
+++ b/arch/arm/mach-mxs/include/mach/common.h
@@ -31,4 +31,7 @@ extern void mx28_init_irq(void);
31 31
32extern void icoll_init_irq(void); 32extern void icoll_init_irq(void);
33 33
34extern struct platform_device *mxs_add_dma(const char *devid,
35 resource_size_t base);
36
34#endif /* __MACH_MXS_COMMON_H__ */ 37#endif /* __MACH_MXS_COMMON_H__ */
diff --git a/arch/arm/mach-mxs/mm.c b/arch/arm/mach-mxs/mm.c
index 67a384edcf5b..6af4371ec829 100644
--- a/arch/arm/mach-mxs/mm.c
+++ b/arch/arm/mach-mxs/mm.c
@@ -66,9 +66,15 @@ void __init mx28_init_irq(void)
66void __init mx23_soc_init(void) 66void __init mx23_soc_init(void)
67{ 67{
68 pinctrl_provide_dummies(); 68 pinctrl_provide_dummies();
69
70 mxs_add_dma("imx23-dma-apbh", MX23_APBH_DMA_BASE_ADDR);
71 mxs_add_dma("imx23-dma-apbx", MX23_APBX_DMA_BASE_ADDR);
69} 72}
70 73
71void __init mx28_soc_init(void) 74void __init mx28_soc_init(void)
72{ 75{
73 pinctrl_provide_dummies(); 76 pinctrl_provide_dummies();
77
78 mxs_add_dma("imx28-dma-apbh", MX23_APBH_DMA_BASE_ADDR);
79 mxs_add_dma("imx28-dma-apbx", MX23_APBX_DMA_BASE_ADDR);
74} 80}