Skip to content
Snippets Groups Projects
Commit b740e539 authored by Dave Gerlach's avatar Dave Gerlach Committed by Lokesh Vutla
Browse files

arm: mach-k3: am642: Use mmc start and stop callbacks


To avoid any glitches on MMC clock line, make use of pm per and post
callbacks when loading sysfw.

Signed-off-by: default avatarDave Gerlach <d-gerlach@ti.com>
parent 5fe5e6bf
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,7 @@
#include <dm.h>
#include <dm/uclass-internal.h>
#include <dm/pinctrl.h>
#include <mmc.h>
#if defined(CONFIG_SPL_BUILD)
......@@ -51,6 +52,36 @@ static void store_boot_info_from_rom(void)
sizeof(struct rom_extended_boot_data));
}
#if defined(CONFIG_K3_LOAD_SYSFW) && CONFIG_IS_ENABLED(DM_MMC)
void k3_mmc_stop_clock(void)
{
if (spl_boot_device() == BOOT_DEVICE_MMC1) {
struct mmc *mmc = find_mmc_device(0);
if (!mmc)
return;
mmc->saved_clock = mmc->clock;
mmc_set_clock(mmc, 0, true);
}
}
void k3_mmc_restart_clock(void)
{
if (spl_boot_device() == BOOT_DEVICE_MMC1) {
struct mmc *mmc = find_mmc_device(0);
if (!mmc)
return;
mmc_set_clock(mmc, mmc->saved_clock, false);
}
}
#else
void k3_mmc_stop_clock(void) {}
void k3_mmc_restart_clock(void) {}
#endif
void board_init_f(ulong dummy)
{
#if defined(CONFIG_K3_LOAD_SYSFW)
......@@ -94,7 +125,8 @@ void board_init_f(ulong dummy)
* system firmware and if so, will only perform needed config
* and not attempt to load firmware again.
*/
k3_sysfw_loader(is_rom_loaded_sysfw(&bootdata), NULL, NULL);
k3_sysfw_loader(is_rom_loaded_sysfw(&bootdata), k3_mmc_stop_clock,
k3_mmc_restart_clock);
#endif
/* Output System Firmware version info */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment