mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-29 15:43:59 +08:00
mmc: sunxi: Move clock configuration to a function
In order to improve readibility and reusability, let's move the clock setup to a small function called by our .set_ios hook. Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
3f6c808e52
commit
ad04d9555d
@ -871,6 +871,23 @@ static void sunxi_mmc_set_bus_width(struct sunxi_mmc_host *host,
|
||||
}
|
||||
}
|
||||
|
||||
static void sunxi_mmc_set_clk(struct sunxi_mmc_host *host, struct mmc_ios *ios)
|
||||
{
|
||||
u32 rval;
|
||||
|
||||
/* set ddr mode */
|
||||
rval = mmc_readl(host, REG_GCTRL);
|
||||
if (ios->timing == MMC_TIMING_UHS_DDR50 ||
|
||||
ios->timing == MMC_TIMING_MMC_DDR52)
|
||||
rval |= SDXC_DDR_MODE;
|
||||
else
|
||||
rval &= ~SDXC_DDR_MODE;
|
||||
mmc_writel(host, REG_GCTRL, rval);
|
||||
|
||||
host->ferror = sunxi_mmc_clk_set_rate(host, ios);
|
||||
/* Android code had a usleep_range(50000, 55000); here */
|
||||
}
|
||||
|
||||
static void sunxi_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||
{
|
||||
struct sunxi_mmc_host *host = mmc_priv(mmc);
|
||||
@ -920,21 +937,7 @@ static void sunxi_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||
}
|
||||
|
||||
sunxi_mmc_set_bus_width(host, ios->bus_width);
|
||||
|
||||
/* set ddr mode */
|
||||
rval = mmc_readl(host, REG_GCTRL);
|
||||
if (ios->timing == MMC_TIMING_UHS_DDR50 ||
|
||||
ios->timing == MMC_TIMING_MMC_DDR52)
|
||||
rval |= SDXC_DDR_MODE;
|
||||
else
|
||||
rval &= ~SDXC_DDR_MODE;
|
||||
mmc_writel(host, REG_GCTRL, rval);
|
||||
|
||||
/* set up clock */
|
||||
if (ios->power_mode) {
|
||||
host->ferror = sunxi_mmc_clk_set_rate(host, ios);
|
||||
/* Android code had a usleep_range(50000, 55000); here */
|
||||
}
|
||||
sunxi_mmc_set_clk(host, ios);
|
||||
}
|
||||
|
||||
static int sunxi_mmc_volt_switch(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||
|
Loading…
Reference in New Issue
Block a user