Hi Stephen, On Mon, Oct 31, 2011 at 9:51 AM, Stephen Warren <swar...@nvidia.com> wrote: > 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 <swar...@nvidia.com> > Cc: Andy Fleming <aflem...@gmail.com> > Acked-by: Simon Glass <s...@chromium.org> > Tested-by: Simon Glass <s...@chromium.org>
I retested this new patch series with the latest master (mmc part, ext2ls and ext2load) and it is fine. Regards, Simon > --- > board/nvidia/common/board.c | 13 +------------ > drivers/mmc/tegra2_mmc.c | 12 +++++++++--- > 2 files changed, 10 insertions(+), 15 deletions(-) > > diff --git a/board/nvidia/common/board.c b/board/nvidia/common/board.c > index d13537d..370a259 100644 > --- a/board/nvidia/common/board.c > +++ b/board/nvidia/common/board.c > @@ -102,16 +102,6 @@ static void pin_mux_uart(void) > > #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 > * 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) > { > debug("board_mmc_init called\n"); > - /* Enable clocks, muxes, etc. for SDMMC controllers */ > - clock_init_mmc(); > + /* Enable muxes, etc. for SDMMC controllers */ > pin_mux_mmc(); > gpio_config_mmc(); > > diff --git a/drivers/mmc/tegra2_mmc.c b/drivers/mmc/tegra2_mmc.c > index 9e741f2..78b1190 100644 > --- a/drivers/mmc/tegra2_mmc.c > +++ b/drivers/mmc/tegra2_mmc.c > @@ -435,14 +435,22 @@ static int mmc_core_init(struct mmc *mmc) > > static int tegra2_mmc_initialize(int dev_index, int bus_width) > { > + struct mmc_host *host; > struct mmc *mmc; > > 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]; > > sprintf(mmc->name, "Tegra2 SD/MMC"); > - mmc->priv = &mmc_host[dev_index]; > + mmc->priv = host; > mmc->send_cmd = mmc_send_cmd; > mmc->set_ios = mmc_set_ios; > 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_max = 48000000; > > - mmc_host[dev_index].clock = 0; > - tegra2_get_setup(&mmc_host[dev_index], dev_index); > mmc_register(mmc); > > return 0; > -- > 1.7.0.4 > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot