diff options
author | Pavan Kunapuli <pkunapuli@nvidia.com> | 2011-09-30 17:19:47 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-11-07 13:41:49 -0800 |
commit | 7f370488221296aae33da5bdca408466aa2e4008 (patch) | |
tree | c84cbdc5345c78483065657a52da53f36a663c6f /drivers | |
parent | 7a04424fb0b8c1f36f28c99f73a313cd192360e9 (diff) |
sdhci: tegra: Use static strings for rail names
Using static strings and not platform data for the rail names.
Getting the appropriate regulators based on the generic name
and the device structure.
Bug 876282
Reviewed-on: http://git-master/r/53782
(cherry picked from commit dc8c38c814219971eee69e4b122cc06de6231439)
Change-Id: Iac034e76491ec7cb9bde10e2e11515a656a36f4a
Reviewed-on: http://git-master/r/62328
Reviewed-by: Naveen Kumar Arepalli <naveenk@nvidia.com>
Tested-by: Naveen Kumar Arepalli <naveenk@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/sdhci-tegra.c | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index 0dc64964d254..d667768765f4 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c @@ -75,7 +75,6 @@ struct tegra_sdhci_host { unsigned int tap_delay; unsigned int max_clk; unsigned int clk_limit; - struct regulator *vsd; unsigned int card_present; struct regulator *reg_vdd_slot; struct regulator *reg_vddio; @@ -334,41 +333,36 @@ static int __devinit tegra_sdhci_probe(struct platform_device *pdev) if (rc != 0) goto err_clkput; - if (plat->slot_rail_name) { + if (host->cd_gpio != -1) { /* Enabling the slot power rails */ dev_info(&pdev->dev, "get slot power rail regulator\n"); if (host->reg_vdd_slot == NULL) { - host->reg_vdd_slot = regulator_get(NULL, plat->slot_rail_name); - if (WARN_ON(IS_ERR_OR_NULL(host->reg_vdd_slot))) { - dev_err(&pdev->dev, "couldn't get regulator " - "%s: %ld\n", plat->slot_rail_name, - PTR_ERR(host->reg_vdd_slot)); + host->reg_vdd_slot = regulator_get(&pdev->dev, "vddio_sd_slot"); + if (IS_ERR_OR_NULL(host->reg_vdd_slot)) { + dev_warn(&pdev->dev, "vddio_sd_slot regulator_get()" + "failed: %ld\n", PTR_ERR(host->reg_vdd_slot)); host->reg_vdd_slot = NULL; } else { regulator_enable(host->reg_vdd_slot); } } - } else - host->reg_vdd_slot = NULL; - if (plat->vdd_rail_name) { /* Enable vdd power rail */ - dev_info(&pdev->dev, "Getting regulator for rail %s\n", plat->vdd_rail_name); + dev_info(&pdev->dev, "Getting regulator for rail %s\n", + plat->vdd_rail_name); if (host->reg_vddio == NULL) { - host->reg_vddio = regulator_get(NULL, plat->vdd_rail_name); - if (WARN_ON(IS_ERR_OR_NULL(host->reg_vddio))) { - dev_err(&pdev->dev, "couldn't get regulator " - "%s: %ld\n", plat->vdd_rail_name, - PTR_ERR(host->reg_vddio)); + host->reg_vddio = regulator_get(&pdev->dev, "vddio_sdmmc"); + if (IS_ERR_OR_NULL(host->reg_vddio)) { + dev_warn(&pdev->dev, "vddio_sdmmc regulator_get()" + "failed: %ld\n", PTR_ERR(host->reg_vddio)); host->reg_vddio = NULL; } else { rc = regulator_set_voltage(host->reg_vddio, plat->vdd_min_uv, plat->vdd_max_uv); if (rc != 0) { - dev_err(&pdev->dev, "regulator_set_" - "voltage() for rail %s " - "failed:i %d\n", - plat->vdd_rail_name, rc); + dev_err(&pdev->dev, "regulator_set_voltage()" + "failed for vddio_sdmmc %d\n", rc); + regulator_put(host->reg_vddio); host->reg_vddio = NULL; } else { regulator_enable(host->reg_vddio); @@ -376,12 +370,11 @@ static int __devinit tegra_sdhci_probe(struct platform_device *pdev) } } } + } - if (plat->is_voltage_switch_supported) - tegra_sdhci_ops.set_signalling_voltage = - tegra_sdhci_set_signalling_voltage; - } else - host->reg_vddio = NULL; + if (plat->is_voltage_switch_supported && host->reg_vddio) + tegra_sdhci_ops.set_signalling_voltage = + tegra_sdhci_set_signalling_voltage; host->clk_enabled = 1; sdhci->hw_name = "tegra"; |