summaryrefslogtreecommitdiff
path: root/arch/arm/plat-mxs/device.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-mxs/device.c')
-rw-r--r--arch/arm/plat-mxs/device.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/plat-mxs/device.c b/arch/arm/plat-mxs/device.c
index 9c9c6222127f..c0afc4a8e651 100644
--- a/arch/arm/plat-mxs/device.c
+++ b/arch/arm/plat-mxs/device.c
@@ -23,6 +23,7 @@
#include <linux/list.h>
#include <linux/bitops.h>
#include <linux/platform_device.h>
+#include <linux/dma-mapping.h>
#include <mach/device.h>
@@ -36,6 +37,8 @@ static struct list_head mxs_device_level[] = {
LIST_HEAD_INIT(mxs_device_level[3]),
};
+static u64 common_dmamask = DMA_BIT_MASK(32);
+
void mxs_nop_release(struct device *dev)
{
/* Nothing */
@@ -107,6 +110,30 @@ static struct platform_device mxs_dma[] = {
};
#endif
+#if defined(CONFIG_MMC_MXS) || \
+ defined(CONFIG_MMC_MXS_MODULE)
+static struct platform_device mxs_mmc[] = {
+ {
+ .name = "mxs-mmc",
+ .id = 0,
+ .dev = {
+ .dma_mask = &common_dmamask,
+ .coherent_dma_mask = DMA_BIT_MASK(32),
+ .release = mxs_nop_release,
+ },
+ },
+ {
+ .name = "mxs-mmc",
+ .id = 1,
+ .dev = {
+ .dma_mask = &common_dmamask,
+ .coherent_dma_mask = DMA_BIT_MASK(32),
+ .release = mxs_nop_release,
+ },
+ },
+};
+#endif
+
static struct mxs_dev_lookup dev_lookup[] = {
#if defined(CONFIG_SERIAL_MXS_DUART) || \
defined(CONFIG_SERIAL_MXS_DUART_MODULE)
@@ -123,6 +150,15 @@ static struct mxs_dev_lookup dev_lookup[] = {
.pdev = mxs_dma,
},
#endif
+
+#if defined(CONFIG_MMC_MXS) || \
+ defined(CONFIG_MMC_MXS_MODULE)
+ {
+ .name = "mxs-mmc",
+ .size = ARRAY_SIZE(mxs_mmc),
+ .pdev = mxs_mmc,
+ }
+#endif
};
struct platform_device *mxs_get_device(char *name, int id)