OSDN Git Service

host: sdhci-msm: implement get_current_limit() host op
authorSahitya Tummala <stummala@codeaurora.org>
Fri, 31 Oct 2014 10:03:04 +0000 (15:33 +0530)
committerGerrit - the friendly Code Review server <code-review@localhost>
Thu, 25 Aug 2016 14:13:06 +0000 (07:13 -0700)
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 <stummala@codeaurora.org>
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
drivers/mmc/host/sdhci-msm.c

index 0568769..be3ccf2 100644 (file)
@@ -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,