提交 e9cd3d70 编写于 作者: E Eugen Hristev 提交者: Tom Rini

clk: at91: utmi: add timeout for utmi lock

In case the slow clock is not properly configured, the UTMI clock
cannot lock the PLL, because UPLLCOUNT will "wait X slow clock cycles".
In this case U-boot will loop indefinitely.
Added a timeout in this case, to start U-boot even if UTMI clock is
not enabled, so the user can use different media if needed, or investigate.
Signed-off-by: NEugen Hristev <eugen.hristev@microchip.com>
上级 1246040c
......@@ -28,6 +28,7 @@ static int utmi_clk_enable(struct clk *clk)
u32 utmi_ref_clk_freq;
u32 tmp;
int err;
int timeout = 2000000;
if (readl(&pmc->sr) & AT91_PMC_LOCKU)
return 0;
......@@ -85,8 +86,12 @@ static int utmi_clk_enable(struct clk *clk)
AT91_PMC_BIASEN;
writel(tmp, &pmc->uckr);
while (!(readl(&pmc->sr) & AT91_PMC_LOCKU))
while ((--timeout) && !(readl(&pmc->sr) & AT91_PMC_LOCKU))
;
if (!timeout) {
printf("UTMICK: timeout waiting for UPLL lock\n");
return -ETIMEDOUT;
}
return 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册