mmc: exynos_dw_mmc: Pull all init code into probe function
There is no logical sense to split the initialization code between multiple functions. Pull both do_dwmci_init() and exynos_dwmci_core_init() into exynos_dwmmc_probe() to make the code more simple and obvious. No functional change. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
This commit is contained in:
committed by
Minkyu Kang
parent
9780ca6539
commit
0d5e81717e
@@ -209,55 +209,6 @@ static void exynos_dwmci_board_init(struct dwmci_host *host)
|
||||
exynos_dwmci_clksel(host);
|
||||
}
|
||||
|
||||
static int exynos_dwmci_core_init(struct dwmci_host *host)
|
||||
{
|
||||
unsigned long freq;
|
||||
int err;
|
||||
|
||||
if (host->bus_hz)
|
||||
freq = host->bus_hz;
|
||||
else
|
||||
freq = DWMMC_MAX_FREQ;
|
||||
|
||||
err = exynos_dwmmc_set_sclk(host, freq);
|
||||
if (err) {
|
||||
printf("DWMMC%d: failed to set clock rate on probe (%d); "
|
||||
"continue anyway\n", host->dev_index, err);
|
||||
}
|
||||
|
||||
host->name = "EXYNOS DWMMC";
|
||||
host->board_init = exynos_dwmci_board_init;
|
||||
host->caps = MMC_MODE_DDR_52MHz;
|
||||
host->clksel = exynos_dwmci_clksel;
|
||||
host->get_mmc_clk = exynos_dwmci_get_clk;
|
||||
|
||||
#ifndef CONFIG_DM_MMC
|
||||
/* Add the mmc channel to be registered with mmc core */
|
||||
if (add_dwmci(host, DWMMC_MAX_FREQ, DWMMC_MIN_FREQ)) {
|
||||
printf("DWMMC%d registration failed\n", host->dev_index);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int do_dwmci_init(struct dwmci_host *host)
|
||||
{
|
||||
#ifdef CONFIG_CPU_V7A
|
||||
int flag, err;
|
||||
|
||||
flag = host->buswidth == 8 ? PINMUX_FLAG_8BIT_MODE : PINMUX_FLAG_NONE;
|
||||
err = exynos_pinmux_config(host->dev_id, flag);
|
||||
if (err) {
|
||||
printf("DWMMC%d not configure\n", host->dev_index);
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
|
||||
return exynos_dwmci_core_init(host);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DM_MMC
|
||||
static int exynos_dwmmc_of_to_plat(struct udevice *dev)
|
||||
{
|
||||
@@ -345,6 +296,7 @@ static int exynos_dwmmc_probe(struct udevice *dev)
|
||||
struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
|
||||
struct dwmci_exynos_priv_data *priv = dev_get_priv(dev);
|
||||
struct dwmci_host *host = &priv->host;
|
||||
unsigned long freq;
|
||||
int err;
|
||||
|
||||
#ifndef CONFIG_CPU_V7A
|
||||
@@ -353,9 +305,41 @@ static int exynos_dwmmc_probe(struct udevice *dev)
|
||||
return err;
|
||||
#endif
|
||||
|
||||
err = do_dwmci_init(host);
|
||||
if (err)
|
||||
#ifdef CONFIG_CPU_V7A
|
||||
int flag;
|
||||
|
||||
flag = host->buswidth == 8 ? PINMUX_FLAG_8BIT_MODE : PINMUX_FLAG_NONE;
|
||||
err = exynos_pinmux_config(host->dev_id, flag);
|
||||
if (err) {
|
||||
printf("DWMMC%d not configure\n", host->dev_index);
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (host->bus_hz)
|
||||
freq = host->bus_hz;
|
||||
else
|
||||
freq = DWMMC_MAX_FREQ;
|
||||
|
||||
err = exynos_dwmmc_set_sclk(host, freq);
|
||||
if (err) {
|
||||
printf("DWMMC%d: failed to set clock rate on probe (%d); "
|
||||
"continue anyway\n", host->dev_index, err);
|
||||
}
|
||||
|
||||
host->name = "EXYNOS DWMMC";
|
||||
host->board_init = exynos_dwmci_board_init;
|
||||
host->caps = MMC_MODE_DDR_52MHz;
|
||||
host->clksel = exynos_dwmci_clksel;
|
||||
host->get_mmc_clk = exynos_dwmci_get_clk;
|
||||
|
||||
#ifndef CONFIG_DM_MMC
|
||||
/* Add the mmc channel to be registered with mmc core */
|
||||
if (add_dwmci(host, DWMMC_MAX_FREQ, DWMMC_MIN_FREQ)) {
|
||||
printf("DWMMC%d registration failed\n", host->dev_index);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
dwmci_setup_cfg(&plat->cfg, host, DWMMC_MAX_FREQ, DWMMC_MIN_FREQ);
|
||||
host->mmc = &plat->mmc;
|
||||
|
||||
Reference in New Issue
Block a user