ARM: ux500: add device sdi1 for SDIO
authorStefan Nilsson XK <stefan.xk.nilsson@stericsson.com>
Wed, 26 Oct 2011 08:50:42 +0000 (10:50 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 12 Dec 2011 08:48:31 +0000 (09:48 +0100)
Adds device sdi1 for ST-Ericsson HREFv60 and later to enable
the possiblity of using the onboard CW1200 chip for WLAN.

Signed-off-by: Stefan Nilsson XK <stefan.xk.nilsson@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
arch/arm/mach-ux500/board-mop500-sdi.c

index 6826faeecc6877b118fdb8f7469f261dce7e775a..cf93dca97b9a688d24be908e58e32af951626496 100644 (file)
@@ -131,6 +131,42 @@ void mop500_sdi_tc35892_init(void)
        sdi0_configure();
 }
 
+/*
+ * SDI1 (SDIO WLAN)
+ */
+#ifdef CONFIG_STE_DMA40
+static struct stedma40_chan_cfg sdi1_dma_cfg_rx = {
+       .mode = STEDMA40_MODE_LOGICAL,
+       .dir = STEDMA40_PERIPH_TO_MEM,
+       .src_dev_type = DB8500_DMA_DEV32_SD_MM1_RX,
+       .dst_dev_type = STEDMA40_DEV_DST_MEMORY,
+       .src_info.data_width = STEDMA40_WORD_WIDTH,
+       .dst_info.data_width = STEDMA40_WORD_WIDTH,
+};
+
+static struct stedma40_chan_cfg sdi1_dma_cfg_tx = {
+       .mode = STEDMA40_MODE_LOGICAL,
+       .dir = STEDMA40_MEM_TO_PERIPH,
+       .src_dev_type = STEDMA40_DEV_SRC_MEMORY,
+       .dst_dev_type = DB8500_DMA_DEV32_SD_MM1_TX,
+       .src_info.data_width = STEDMA40_WORD_WIDTH,
+       .dst_info.data_width = STEDMA40_WORD_WIDTH,
+};
+#endif
+
+static struct mmci_platform_data mop500_sdi1_data = {
+       .ocr_mask       = MMC_VDD_29_30,
+       .f_max          = 50000000,
+       .capabilities   = MMC_CAP_4_BIT_DATA,
+       .gpio_cd        = -1,
+       .gpio_wp        = -1,
+#ifdef CONFIG_STE_DMA40
+       .dma_filter     = stedma40_filter,
+       .dma_rx_param   = &sdi1_dma_cfg_rx,
+       .dma_tx_param   = &sdi1_dma_cfg_tx,
+#endif
+};
+
 /*
  * SDI 2 (POP eMMC, not on DB8500ed)
  */
@@ -260,4 +296,6 @@ void __init hrefv60_sdi_init(void)
        sdi0_en = HREFV60_SDMMC_EN_GPIO;
        sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO;
        sdi0_configure();
+
+       db8500_add_sdi1(&mop500_sdi1_data, periphid);
 }