imx: imx8mq: handle ESDHC in mxc_get_clock

fsl_esdhc_imx driver will call "mxc_get_clock(MXC_ESDHC_CLK +
dev->seq)", however mxc_get_clock wrongly handle MXC_ESDHC_CLK
as root clk and cause sd card could not be detected in U-Boot proper,
as below:
"Loading Environment from MMC... unable to select a mode"

Handle MXC_ESDHC_CLK in mxc_get_clock to fix the issue.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Baruch Siach <baruch@tkos.co.il>
Tested-by: Fabio Estevam <festevam@gmail.com>
This commit is contained in:
Peng Fan 2019-12-11 06:17:12 +00:00 committed by Stefano Babic
parent 279d0ab352
commit 392a4e6dd3

View file

@ -326,16 +326,20 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
{ {
u32 val; u32 val;
if (clk == MXC_ARM_CLK) switch(clk) {
case MXC_ARM_CLK:
return get_root_clk(ARM_A53_CLK_ROOT); return get_root_clk(ARM_A53_CLK_ROOT);
case MXC_IPG_CLK:
if (clk == MXC_IPG_CLK) {
clock_get_target_val(IPG_CLK_ROOT, &val); clock_get_target_val(IPG_CLK_ROOT, &val);
val = val & 0x3; val = val & 0x3;
return get_root_clk(AHB_CLK_ROOT) / (val + 1); return get_root_clk(AHB_CLK_ROOT) / (val + 1);
} case MXC_ESDHC_CLK:
return get_root_clk(USDHC1_CLK_ROOT);
case MXC_ESDHC2_CLK:
return get_root_clk(USDHC2_CLK_ROOT);
default:
return get_root_clk(clk); return get_root_clk(clk);
}
} }
u32 imx_get_uartclk(void) u32 imx_get_uartclk(void)