aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/host/tmio_mmc.h1
-rw-r--r--drivers/mmc/host/tmio_mmc_pio.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
index 39c2f45102c8..86fd21e00099 100644
--- a/drivers/mmc/host/tmio_mmc.h
+++ b/drivers/mmc/host/tmio_mmc.h
@@ -68,6 +68,7 @@ struct tmio_mmc_host {
68 enum tmio_mmc_power power; 68 enum tmio_mmc_power power;
69 69
70 /* Callbacks for clock / power control */ 70 /* Callbacks for clock / power control */
71 void (*set_pwr)(struct platform_device *host, int state);
71 void (*set_clk_div)(struct platform_device *host, int state); 72 void (*set_clk_div)(struct platform_device *host, int state);
72 73
73 /* pio related stuff */ 74 /* pio related stuff */
diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c
index 67a3bf1238cf..b3802256f954 100644
--- a/drivers/mmc/host/tmio_mmc_pio.c
+++ b/drivers/mmc/host/tmio_mmc_pio.c
@@ -777,6 +777,9 @@ static void tmio_mmc_power_on(struct tmio_mmc_host *host, unsigned short vdd)
777 777
778 /* .set_ios() is returning void, so, no chance to report an error */ 778 /* .set_ios() is returning void, so, no chance to report an error */
779 779
780 if (host->set_pwr)
781 host->set_pwr(host->pdev, 1);
782
780 if (!IS_ERR(mmc->supply.vmmc)) { 783 if (!IS_ERR(mmc->supply.vmmc)) {
781 ret = mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd); 784 ret = mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd);
782 /* 785 /*
@@ -810,6 +813,9 @@ static void tmio_mmc_power_off(struct tmio_mmc_host *host)
810 813
811 if (!IS_ERR(mmc->supply.vmmc)) 814 if (!IS_ERR(mmc->supply.vmmc))
812 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0); 815 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0);
816
817 if (host->set_pwr)
818 host->set_pwr(host->pdev, 0);
813} 819}
814 820
815/* Set MMC clock / power. 821/* Set MMC clock / power.
@@ -996,6 +1002,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host **host,
996 _host->pdev = pdev; 1002 _host->pdev = pdev;
997 platform_set_drvdata(pdev, mmc); 1003 platform_set_drvdata(pdev, mmc);
998 1004
1005 _host->set_pwr = pdata->set_pwr;
999 _host->set_clk_div = pdata->set_clk_div; 1006 _host->set_clk_div = pdata->set_clk_div;
1000 1007
1001 /* SD control register space size is 0x200, 0x400 for bus_shift=1 */ 1008 /* SD control register space size is 0x200, 0x400 for bus_shift=1 */