2 * Copyright (C) ST-Ericsson SA 2010
4 * Author: Hanumath Prasad <ulf.hansson@stericsson.com>
5 * License terms: GNU General Public License (GPL) version 2
8 #include <linux/amba/mmci.h>
9 #include <linux/mmc/host.h>
11 #include <plat/pincfg.h>
12 #include <plat/gpio-nomadik.h>
13 #include <mach/db5500-regs.h>
14 #include <plat/ste_dma40.h>
16 #include "pins-db5500.h"
17 #include "devices-db5500.h"
18 #include "ste-dma40-db5500.h"
20 static pin_cfg_t u5500_sdi_pins
[] = {
22 GPIO5_MC0_DAT0
| PIN_DIR_INPUT
| PIN_PULL_UP
,
23 GPIO6_MC0_DAT1
| PIN_DIR_INPUT
| PIN_PULL_UP
,
24 GPIO7_MC0_DAT2
| PIN_DIR_INPUT
| PIN_PULL_UP
,
25 GPIO8_MC0_DAT3
| PIN_DIR_INPUT
| PIN_PULL_UP
,
26 GPIO9_MC0_DAT4
| PIN_DIR_INPUT
| PIN_PULL_UP
,
27 GPIO10_MC0_DAT5
| PIN_DIR_INPUT
| PIN_PULL_UP
,
28 GPIO11_MC0_DAT6
| PIN_DIR_INPUT
| PIN_PULL_UP
,
29 GPIO12_MC0_DAT7
| PIN_DIR_INPUT
| PIN_PULL_UP
,
30 GPIO13_MC0_CMD
| PIN_DIR_INPUT
| PIN_PULL_UP
,
31 GPIO14_MC0_CLK
| PIN_DIR_OUTPUT
| PIN_VAL_LOW
,
34 #ifdef CONFIG_STE_DMA40
35 struct stedma40_chan_cfg u5500_sdi0_dma_cfg_rx
= {
36 .mode
= STEDMA40_MODE_LOGICAL
,
37 .dir
= STEDMA40_PERIPH_TO_MEM
,
38 .src_dev_type
= DB5500_DMA_DEV24_SDMMC0_RX
,
39 .dst_dev_type
= STEDMA40_DEV_DST_MEMORY
,
40 .src_info
.data_width
= STEDMA40_WORD_WIDTH
,
41 .dst_info
.data_width
= STEDMA40_WORD_WIDTH
,
44 static struct stedma40_chan_cfg u5500_sdi0_dma_cfg_tx
= {
45 .mode
= STEDMA40_MODE_LOGICAL
,
46 .dir
= STEDMA40_MEM_TO_PERIPH
,
47 .src_dev_type
= STEDMA40_DEV_SRC_MEMORY
,
48 .dst_dev_type
= DB5500_DMA_DEV24_SDMMC0_TX
,
49 .src_info
.data_width
= STEDMA40_WORD_WIDTH
,
50 .dst_info
.data_width
= STEDMA40_WORD_WIDTH
,
54 static struct mmci_platform_data u5500_sdi0_data
= {
55 .ocr_mask
= MMC_VDD_165_195
,
57 .capabilities
= MMC_CAP_4_BIT_DATA
|
59 MMC_CAP_MMC_HIGHSPEED
,
62 #ifdef CONFIG_STE_DMA40
63 .dma_filter
= stedma40_filter
,
64 .dma_rx_param
= &u5500_sdi0_dma_cfg_rx
,
65 .dma_tx_param
= &u5500_sdi0_dma_cfg_tx
,
69 void __init
u5500_sdi_init(void)
71 nmk_config_pins(u5500_sdi_pins
, ARRAY_SIZE(u5500_sdi_pins
));
73 db5500_add_sdi0(&u5500_sdi0_data
);