Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc
[pandora-kernel.git] / arch / arm / mach-shmobile / board-ag5evm.c
index ce5c251..475342b 100644 (file)
@@ -37,6 +37,7 @@
 #include <linux/mmc/sh_mobile_sdhi.h>
 #include <linux/mfd/tmio.h>
 #include <linux/sh_clk.h>
+#include <linux/dma-mapping.h>
 #include <video/sh_mobile_lcdc.h>
 #include <video/sh_mipi_dsi.h>
 #include <sound/sh_fsi.h>
@@ -341,6 +342,7 @@ static struct platform_device mipidsi0_device = {
 static struct sh_mobile_sdhi_info sdhi0_info = {
        .dma_slave_tx   = SHDMA_SLAVE_SDHI0_TX,
        .dma_slave_rx   = SHDMA_SLAVE_SDHI0_RX,
+       .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT,
        .tmio_caps      = MMC_CAP_SD_HIGHSPEED,
        .tmio_ocr_mask  = MMC_VDD_27_28 | MMC_VDD_28_29,
 };
@@ -353,14 +355,17 @@ static struct resource sdhi0_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
+               .name   = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
                .start  = gic_spi(83),
                .flags  = IORESOURCE_IRQ,
        },
        [2] = {
+               .name   = SH_MOBILE_SDHI_IRQ_SDCARD,
                .start  = gic_spi(84),
                .flags  = IORESOURCE_IRQ,
        },
        [3] = {
+               .name   = SH_MOBILE_SDHI_IRQ_SDIO,
                .start  = gic_spi(85),
                .flags  = IORESOURCE_IRQ,
        },
@@ -382,7 +387,7 @@ void ag5evm_sdhi1_set_pwr(struct platform_device *pdev, int state)
 }
 
 static struct sh_mobile_sdhi_info sh_sdhi1_info = {
-       .tmio_flags     = TMIO_MMC_WRPROTECT_DISABLE,
+       .tmio_flags     = TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_HAS_IDLE_WAIT,
        .tmio_caps      = MMC_CAP_NONREMOVABLE | MMC_CAP_SDIO_IRQ,
        .tmio_ocr_mask  = MMC_VDD_32_33 | MMC_VDD_33_34,
        .set_pwr        = ag5evm_sdhi1_set_pwr,
@@ -396,14 +401,17 @@ static struct resource sdhi1_resources[] = {
                .flags  = IORESOURCE_MEM,
        },
        [1] = {
+               .name   = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
                .start  = gic_spi(87),
                .flags  = IORESOURCE_IRQ,
        },
        [2] = {
+               .name   = SH_MOBILE_SDHI_IRQ_SDCARD,
                .start  = gic_spi(88),
                .flags  = IORESOURCE_IRQ,
        },
        [3] = {
+               .name   = SH_MOBILE_SDHI_IRQ_SDIO,
                .start  = gic_spi(89),
                .flags  = IORESOURCE_IRQ,
        },
@@ -446,6 +454,8 @@ static struct map_desc ag5evm_io_desc[] __initdata = {
 static void __init ag5evm_map_io(void)
 {
        iotable_init(ag5evm_io_desc, ARRAY_SIZE(ag5evm_io_desc));
+       /* DMA memory at 0xf6000000 - 0xffdfffff */
+       init_consistent_dma_size(158 << 20);
 
        /* setup early devices and console here as well */
        sh73a0_add_early_devices();