mmc: sdhci: add a voltage switch callback function
authorVincent Yang <vincent.yang.fujitsu@gmail.com>
Tue, 20 Jan 2015 08:05:15 +0000 (16:05 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 20 Jan 2015 08:29:16 +0000 (09:29 +0100)
This patch adds a callback function to do
controller-specific actions when switching voltages.
It is a preparation and will be used by Fujitsu
SDHCI controller f_sdh30 driver.

Signed-off-by: Vincent Yang <Vincent.Yang@tw.fujitsu.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci.c
drivers/mmc/host/sdhci.h

index 8b0c7d6ea04b92f9ff9738a2d166962ab8faa3f5..3e4fe967d7e53e1dafffbd0d9dcc44b7f97b8e3a 100644 (file)
@@ -1829,6 +1829,10 @@ static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
                ctrl |= SDHCI_CTRL_VDD_180;
                sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
 
+               /* Some controller need to do more when switching */
+               if (host->ops->voltage_switch)
+                       host->ops->voltage_switch(host);
+
                /* 1.8V regulator output should be stable within 5 ms */
                ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
                if (ctrl & SDHCI_CTRL_VDD_180)
index 41a2c34299ed8be98122439a30710cdf8504d76a..0315e1844330c4d0a70616c7525899eca57204a4 100644 (file)
@@ -339,6 +339,7 @@ struct sdhci_ops {
        void    (*adma_workaround)(struct sdhci_host *host, u32 intmask);
        void    (*platform_init)(struct sdhci_host *host);
        void    (*card_event)(struct sdhci_host *host);
+       void    (*voltage_switch)(struct sdhci_host *host);
 };
 
 #ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS