mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-03-14 21:10:27 +01:00
ipq40xx: Added emmc clk reset during mmc deinit
1. Added emmc clk reset during mmc deinitialization to avoid the mmc init failure in kernal bootup. 2. Clock has been configured to 192 Mhz for SDHCI mode 3. Proper register is used for disabling emmc clock Change-Id: Id21e294380ee904027e5d6d2b2929acbd7bac672 Signed-off-by: Rajkumar Ayyasamy <arajkuma@codeaurora.org>
This commit is contained in:
parent
35992873a2
commit
5a2ad95d79
2 changed files with 15 additions and 3 deletions
|
|
@ -248,7 +248,7 @@ int board_eth_init(bd_t *bis)
|
|||
void emmc_clock_reset(void)
|
||||
{
|
||||
writel(0x1, GCC_SDCC1_BCR);
|
||||
udelay(10);
|
||||
udelay(100);
|
||||
writel(0x0, GCC_SDCC1_BCR);
|
||||
}
|
||||
|
||||
|
|
@ -315,6 +315,8 @@ int board_mmc_init(bd_t *bis)
|
|||
|
||||
void board_mmc_deinit(void)
|
||||
{
|
||||
emmc_clock_reset();
|
||||
udelay(10);
|
||||
emmc_clock_disable();
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -50,11 +50,21 @@ void emmc_clock_config(int mode)
|
|||
writel(0x1, GCC_SDCC1_APPS_CBCR);
|
||||
udelay(10);
|
||||
}
|
||||
if (mode == MMC_DATA_TRANSFER_SDHCI_MODE) {
|
||||
/* Set root clock generator to bypass mode */
|
||||
writel(0x0, GCC_SDCC1_APPS_CBCR);
|
||||
udelay(10);
|
||||
/* Choose divider for 192MHz */
|
||||
writel(0x0, GCC_SDCC1_MISC);
|
||||
/* Enable root clock generator */
|
||||
writel(0x1, GCC_SDCC1_APPS_CBCR);
|
||||
udelay(10);
|
||||
}
|
||||
}
|
||||
void emmc_clock_disable(void)
|
||||
{
|
||||
/* Clear divider */
|
||||
writel(0x0, GCC_SDCC1_MISC);
|
||||
writel(0x0, GCC_SDCC1_APPS_CBCR);
|
||||
udelay(10);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue