mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 05:31:32 +00:00
tegra2: Move MMC clock initialization into MMC driver
This centralizes knowledge of MMC clocking into the MMC driver. This also removes clock setup from the board files, which will simplify later changes that modify the Harmony board to support the correct set of MMC controllers. Signed-off-by: Stephen Warren <swarren@nvidia.com> Cc: Andy Fleming <afleming@gmail.com> Acked-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
3e81c77240
commit
de71fbe468
2 changed files with 10 additions and 15 deletions
|
@ -101,16 +101,6 @@ static void pin_mux_uart(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_TEGRA2_MMC
|
#ifdef CONFIG_TEGRA2_MMC
|
||||||
/*
|
|
||||||
* Routine: clock_init_mmc
|
|
||||||
* Description: init the PLL and clocks for the SDMMC controllers
|
|
||||||
*/
|
|
||||||
static void clock_init_mmc(void)
|
|
||||||
{
|
|
||||||
clock_start_periph_pll(PERIPH_ID_SDMMC4, CLOCK_ID_PERIPH, 20000000);
|
|
||||||
clock_start_periph_pll(PERIPH_ID_SDMMC3, CLOCK_ID_PERIPH, 20000000);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Routine: pin_mux_mmc
|
* Routine: pin_mux_mmc
|
||||||
* Description: setup the pin muxes/tristate values for the SDMMC(s)
|
* Description: setup the pin muxes/tristate values for the SDMMC(s)
|
||||||
|
@ -157,8 +147,7 @@ int board_init(void)
|
||||||
int board_mmc_init(bd_t *bd)
|
int board_mmc_init(bd_t *bd)
|
||||||
{
|
{
|
||||||
debug("board_mmc_init called\n");
|
debug("board_mmc_init called\n");
|
||||||
/* Enable clocks, muxes, etc. for SDMMC controllers */
|
/* Enable muxes, etc. for SDMMC controllers */
|
||||||
clock_init_mmc();
|
|
||||||
pin_mux_mmc();
|
pin_mux_mmc();
|
||||||
gpio_config_mmc();
|
gpio_config_mmc();
|
||||||
|
|
||||||
|
|
|
@ -435,14 +435,22 @@ static int mmc_core_init(struct mmc *mmc)
|
||||||
|
|
||||||
static int tegra2_mmc_initialize(int dev_index, int bus_width)
|
static int tegra2_mmc_initialize(int dev_index, int bus_width)
|
||||||
{
|
{
|
||||||
|
struct mmc_host *host;
|
||||||
struct mmc *mmc;
|
struct mmc *mmc;
|
||||||
|
|
||||||
debug(" mmc_initialize called\n");
|
debug(" mmc_initialize called\n");
|
||||||
|
|
||||||
|
host = &mmc_host[dev_index];
|
||||||
|
|
||||||
|
host->clock = 0;
|
||||||
|
tegra2_get_setup(host, dev_index);
|
||||||
|
|
||||||
|
clock_start_periph_pll(host->mmc_id, CLOCK_ID_PERIPH, 20000000);
|
||||||
|
|
||||||
mmc = &mmc_dev[dev_index];
|
mmc = &mmc_dev[dev_index];
|
||||||
|
|
||||||
sprintf(mmc->name, "Tegra2 SD/MMC");
|
sprintf(mmc->name, "Tegra2 SD/MMC");
|
||||||
mmc->priv = &mmc_host[dev_index];
|
mmc->priv = host;
|
||||||
mmc->send_cmd = mmc_send_cmd;
|
mmc->send_cmd = mmc_send_cmd;
|
||||||
mmc->set_ios = mmc_set_ios;
|
mmc->set_ios = mmc_set_ios;
|
||||||
mmc->init = mmc_core_init;
|
mmc->init = mmc_core_init;
|
||||||
|
@ -465,8 +473,6 @@ static int tegra2_mmc_initialize(int dev_index, int bus_width)
|
||||||
mmc->f_min = 375000;
|
mmc->f_min = 375000;
|
||||||
mmc->f_max = 48000000;
|
mmc->f_max = 48000000;
|
||||||
|
|
||||||
mmc_host[dev_index].clock = 0;
|
|
||||||
tegra2_get_setup(&mmc_host[dev_index], dev_index);
|
|
||||||
mmc_register(mmc);
|
mmc_register(mmc);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue