From 38610b88bf1cb8cb88f724c6bc510b3432298ffd Mon Sep 17 00:00:00 2001 From: Sahitya Tummala Date: Fri, 31 Oct 2014 15:33:04 +0530 Subject: [PATCH] host: sdhci-msm: implement get_current_limit() host op This is needed to get the current capabilities of vdd regulator that is not managed by SDHCI driver. Change-Id: Ib41f9892caca7f9d39675c6adf3b5eb8fdf88159 Signed-off-by: Sahitya Tummala Signed-off-by: Sayali Lokhande --- drivers/mmc/host/sdhci-msm.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c index 0568769fd94a..be3ccf2536d9 100644 --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c @@ -3707,6 +3707,19 @@ static void sdhci_msm_init(struct sdhci_host *host) msm_host->pdata->pm_qos_data.latency); } +static unsigned int sdhci_msm_get_current_limit(struct sdhci_host *host) +{ + struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); + struct sdhci_msm_host *msm_host = pltfm_host->priv; + struct sdhci_msm_slot_reg_data *curr_slot = msm_host->pdata->vreg_data; + u32 max_curr = 0; + + if (curr_slot && curr_slot->vdd_data) + max_curr = curr_slot->vdd_data->hpm_uA; + + return max_curr; +} + static struct sdhci_ops sdhci_msm_ops = { .crypto_engine_cfg = sdhci_msm_ice_cfg, .crypto_cfg_reset = sdhci_msm_ice_cfg_reset, @@ -3732,6 +3745,7 @@ static struct sdhci_ops sdhci_msm_ops = { .init = sdhci_msm_init, .pre_req = sdhci_msm_pre_req, .post_req = sdhci_msm_post_req, + .get_current_limit = sdhci_msm_get_current_limit, }; static void sdhci_set_default_hw_caps(struct sdhci_msm_host *msm_host,