mirror of https://gitee.com/openkylin/linux.git
mmc: sdhci: Factor out sdhci_enable_clk
Factor out sdhci_enable_clk from sdhci_set_clock and make it EXPORT_SYMBOL so that it can be called. Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
a0e3142869
commit
fec7967397
|
@ -1344,20 +1344,10 @@ u16 sdhci_calc_clk(struct sdhci_host *host, unsigned int clock,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(sdhci_calc_clk);
|
EXPORT_SYMBOL_GPL(sdhci_calc_clk);
|
||||||
|
|
||||||
void sdhci_set_clock(struct sdhci_host *host, unsigned int clock)
|
void sdhci_enable_clk(struct sdhci_host *host, u16 clk)
|
||||||
{
|
{
|
||||||
u16 clk;
|
|
||||||
unsigned long timeout;
|
unsigned long timeout;
|
||||||
|
|
||||||
host->mmc->actual_clock = 0;
|
|
||||||
|
|
||||||
sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL);
|
|
||||||
|
|
||||||
if (clock == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock);
|
|
||||||
|
|
||||||
clk |= SDHCI_CLOCK_INT_EN;
|
clk |= SDHCI_CLOCK_INT_EN;
|
||||||
sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
|
sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
|
||||||
|
|
||||||
|
@ -1378,6 +1368,22 @@ void sdhci_set_clock(struct sdhci_host *host, unsigned int clock)
|
||||||
clk |= SDHCI_CLOCK_CARD_EN;
|
clk |= SDHCI_CLOCK_CARD_EN;
|
||||||
sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
|
sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(sdhci_enable_clk);
|
||||||
|
|
||||||
|
void sdhci_set_clock(struct sdhci_host *host, unsigned int clock)
|
||||||
|
{
|
||||||
|
u16 clk;
|
||||||
|
|
||||||
|
host->mmc->actual_clock = 0;
|
||||||
|
|
||||||
|
sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL);
|
||||||
|
|
||||||
|
if (clock == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock);
|
||||||
|
sdhci_enable_clk(host, clk);
|
||||||
|
}
|
||||||
EXPORT_SYMBOL_GPL(sdhci_set_clock);
|
EXPORT_SYMBOL_GPL(sdhci_set_clock);
|
||||||
|
|
||||||
static void sdhci_set_power_reg(struct sdhci_host *host, unsigned char mode,
|
static void sdhci_set_power_reg(struct sdhci_host *host, unsigned char mode,
|
||||||
|
|
|
@ -682,6 +682,7 @@ static inline bool sdhci_sdio_irq_enabled(struct sdhci_host *host)
|
||||||
u16 sdhci_calc_clk(struct sdhci_host *host, unsigned int clock,
|
u16 sdhci_calc_clk(struct sdhci_host *host, unsigned int clock,
|
||||||
unsigned int *actual_clock);
|
unsigned int *actual_clock);
|
||||||
void sdhci_set_clock(struct sdhci_host *host, unsigned int clock);
|
void sdhci_set_clock(struct sdhci_host *host, unsigned int clock);
|
||||||
|
void sdhci_enable_clk(struct sdhci_host *host, u16 clk);
|
||||||
void sdhci_set_power(struct sdhci_host *host, unsigned char mode,
|
void sdhci_set_power(struct sdhci_host *host, unsigned char mode,
|
||||||
unsigned short vdd);
|
unsigned short vdd);
|
||||||
void sdhci_set_power_noreg(struct sdhci_host *host, unsigned char mode,
|
void sdhci_set_power_noreg(struct sdhci_host *host, unsigned char mode,
|
||||||
|
|
Loading…
Reference in New Issue