summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDong Aisheng <dong.aisheng@linaro.org>2012-05-04 14:12:18 +0200
committerShawn Guo <shawn.guo@linaro.org>2012-05-12 07:32:18 +0200
commitcb1be3c73d273bfe74bd5a6fe80e6e84181283af (patch)
tree0e06a637b174b34eb581476bd902f031c48e80d4 /arch
parentdma: mxs-dma: add device tree probe support (diff)
downloadlinux-cb1be3c73d273bfe74bd5a6fe80e6e84181283af.tar.xz
linux-cb1be3c73d273bfe74bd5a6fe80e6e84181283af.zip
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')
-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 @@
#include <mach/mx28.h>
#include <mach/devices-common.h>
-static struct platform_device *__init mxs_add_dma(const char *devid,
+struct platform_device *__init mxs_add_dma(const char *devid,
resource_size_t base)
{
struct resource res[] = {
@@ -29,24 +29,3 @@ static struct platform_device *__init mxs_add_dma(const char *devid,
res, ARRAY_SIZE(res), NULL, 0,
DMA_BIT_MASK(32));
}
-
-static int __init mxs_add_mxs_dma(void)
-{
- char *mx23_apbh = "imx23-dma-apbh";
- char *mx23_apbx = "imx23-dma-apbx";
- char *mx28_apbh = "imx28-dma-apbh";
- char *mx28_apbx = "imx28-dma-apbx";
-
- if (cpu_is_mx23()) {
- mxs_add_dma(mx23_apbh, MX23_APBH_DMA_BASE_ADDR);
- mxs_add_dma(mx23_apbx, MX23_APBX_DMA_BASE_ADDR);
- }
-
- if (cpu_is_mx28()) {
- mxs_add_dma(mx28_apbh, MX28_APBH_DMA_BASE_ADDR);
- mxs_add_dma(mx28_apbx, MX28_APBX_DMA_BASE_ADDR);
- }
-
- return 0;
-}
-arch_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);
extern void icoll_init_irq(void);
+extern struct platform_device *mxs_add_dma(const char *devid,
+ resource_size_t base);
+
#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)
void __init mx23_soc_init(void)
{
pinctrl_provide_dummies();
+
+ mxs_add_dma("imx23-dma-apbh", MX23_APBH_DMA_BASE_ADDR);
+ mxs_add_dma("imx23-dma-apbx", MX23_APBX_DMA_BASE_ADDR);
}
void __init mx28_soc_init(void)
{
pinctrl_provide_dummies();
+
+ mxs_add_dma("imx28-dma-apbh", MX23_APBH_DMA_BASE_ADDR);
+ mxs_add_dma("imx28-dma-apbx", MX23_APBX_DMA_BASE_ADDR);
}