[U-Boot] [PATCH v3 1/4] tegra2: Move MMC clock initialization into MMC driver
Simon Glass
sjg at chromium.org
Wed Oct 12 01:41:26 CEST 2011
On Fri, Oct 7, 2011 at 5:03 PM, Simon Glass <sjg at chromium.org> wrote:
> On Thu, Oct 6, 2011 at 10:53 AM, Stephen Warren <swarren at 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 <swarren at nvidia.com>
>> ---
>> Note: These patches build on various Tegra2-related patches recently posted
>> by Simon Glass; see v2 of the 6-entry patchset shown at:
>> http://patchwork.ozlabs.org/project/uboot/list/?submitter=6170&state=1&q=tegra2
>>
>> 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
>>
>>
>
> Acked-by: Simon Glass <sjg at chromium.org>
>
Tested on Seaboard T25
Tested-by: Simon Glass <sjg at chromium.org>
More information about the U-Boot
mailing list