#include <plat/tc.h>
 #include <plat/board.h>
 #include <plat/mux.h>
+#include <plat/dma.h>
 #include <plat/mmc.h>
 #include <plat/omap7xx.h>
 
        }
 }
 
-#define OMAP_MMC_NR_RES                2
+#define OMAP_MMC_NR_RES                4
 
 /*
  * Register MMC devices.
  */
 static int __init omap_mmc_add(const char *name, int id, unsigned long base,
                                unsigned long size, unsigned int irq,
+                               unsigned rx_req, unsigned tx_req,
                                struct omap_mmc_platform_data *data)
 {
        struct platform_device *pdev;
        res[0].flags = IORESOURCE_MEM;
        res[1].start = res[1].end = irq;
        res[1].flags = IORESOURCE_IRQ;
+       res[2].start = rx_req;
+       res[2].name = "rx";
+       res[2].flags = IORESOURCE_DMA;
+       res[3].start = tx_req;
+       res[3].name = "tx";
+       res[3].flags = IORESOURCE_DMA;
 
        ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res));
        if (ret == 0)
 
        for (i = 0; i < nr_controllers; i++) {
                unsigned long base, size;
+               unsigned rx_req, tx_req;
                unsigned int irq = 0;
 
                if (!mmc_data[i])
                case 0:
                        base = OMAP1_MMC1_BASE;
                        irq = INT_MMC;
+                       rx_req = OMAP_DMA_MMC_RX;
+                       tx_req = OMAP_DMA_MMC_TX;
                        break;
                case 1:
                        if (!cpu_is_omap16xx())
                                return;
                        base = OMAP1_MMC2_BASE;
                        irq = INT_1610_MMC2;
+                       rx_req = OMAP_DMA_MMC2_RX;
+                       tx_req = OMAP_DMA_MMC2_TX;
                        break;
                default:
                        continue;
                }
                size = OMAP1_MMC_SIZE;
 
-               omap_mmc_add("mmci-omap", i, base, size, irq, mmc_data[i]);
+               omap_mmc_add("mmci-omap", i, base, size, irq,
+                               rx_req, tx_req, mmc_data[i]);
        };
 }