From 67991892da0346802ae4d67499dfc46f67a9d181 Mon Sep 17 00:00:00 2001 From: xbw Date: Tue, 18 Mar 2014 13:40:08 +0800 Subject: [PATCH] SDMMC: add the capabilities and ocr_avail of RK-host --- drivers/mmc/host/rk_sdmmc.c | 20 ++++++++++++++++++-- drivers/mmc/host/rk_sdmmc_of.c | 4 ++-- drivers/mmc/host/rk_sdmmc_of.h | 1 - 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/host/rk_sdmmc.c b/drivers/mmc/host/rk_sdmmc.c index 4e27ed706398..803a0eafa053 100755 --- a/drivers/mmc/host/rk_sdmmc.c +++ b/drivers/mmc/host/rk_sdmmc.c @@ -2405,8 +2405,14 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id) if (host->pdata->get_ocr) mmc->ocr_avail = host->pdata->get_ocr(id); - else - mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; + else{ + //mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; + mmc->ocr_avail = MMC_VDD_27_28|MMC_VDD_28_29|MMC_VDD_29_30|MMC_VDD_30_31 + | MMC_VDD_31_32|MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_34_35| MMC_VDD_35_36; + + mmc->ocr_avail |= MMC_VDD_26_27 |MMC_VDD_25_26 |MMC_VDD_24_25 |MMC_VDD_23_24 + |MMC_VDD_22_23 |MMC_VDD_21_22 |MMC_VDD_20_21 |MMC_VDD_165_195; + } /* * Start with slot power disabled, it will be enabled when a card @@ -2449,6 +2455,16 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id) case 4: mmc->caps |= MMC_CAP_4_BIT_DATA; } + if (of_find_property(host->dev->of_node, "cap-power-off-card", NULL)) + mmc->caps |= MMC_CAP_POWER_OFF_CARD; + if (of_find_property(host->dev->of_node, "cap-sdio-irq", NULL)) + mmc->caps |= MMC_CAP_SDIO_IRQ; + if (of_find_property(host->dev->of_node, "full-pwr-cycle", NULL)) + mmc->caps2 |= MMC_CAP2_FULL_PWR_CYCLE; + if (of_find_property(host->dev->of_node, "keep-power-in-suspend", NULL)) + mmc->pm_caps |= MMC_PM_KEEP_POWER; + if (of_find_property(host->dev->of_node, "enable-sdio-wakeup", NULL)) + mmc->pm_caps |= MMC_PM_WAKE_SDIO_IRQ; if (host->pdata->blk_settings) { mmc->max_segs = host->pdata->blk_settings->max_segs; diff --git a/drivers/mmc/host/rk_sdmmc_of.c b/drivers/mmc/host/rk_sdmmc_of.c index d4990a3a5fd3..7340352e0cdc 100755 --- a/drivers/mmc/host/rk_sdmmc_of.c +++ b/drivers/mmc/host/rk_sdmmc_of.c @@ -34,7 +34,7 @@ void rockchip_mmc_of_probe(struct device_node *np,struct rk_sdmmc_of *rk_mmc_pro of_property_read_u32(np, "mmc,int", &rk_mmc_property->mmc_int_type); of_property_read_u32(np, "mmc,emmc_is_selected", &rk_mmc_property->emmc_is_selected); of_property_read_u32_array(np, "mmc,use_dma", rk_mmc_property->mmc_dma_is_used,2); - +/* if((&rk_mmc_property->mmc_dma_is_used[0] == MMC_USE_DMA)) { if(rk_mmc_property->mmc_dma_is_used[1] == 0) @@ -50,7 +50,7 @@ void rockchip_mmc_of_probe(struct device_node *np,struct rk_sdmmc_of *rk_mmc_pro }else{ mmc_debug(MMC_DBG_WARN,"Device Tree configure mmc drivers to use pio!\n"); } - + */ rockchip_mmc_of_dump(rk_mmc_property); return ; diff --git a/drivers/mmc/host/rk_sdmmc_of.h b/drivers/mmc/host/rk_sdmmc_of.h index da8b51471856..1c88d560da13 100755 --- a/drivers/mmc/host/rk_sdmmc_of.h +++ b/drivers/mmc/host/rk_sdmmc_of.h @@ -12,7 +12,6 @@ #ifndef __RK_SDMMC_OF_H #define __RK_SDMMC_OF_H -#include #include #include #include -- 2.34.1