Perfoming an OR operation on the error is not a good approach. Return the error immediately for each ESDHC instance instead. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
@ -98,6 +98,7 @@ int board_mmc_getcd(struct mmc *mmc)
int board_mmc_init(bd_t *bis)
{
s32 status = 0;
int i;
usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
@ -107,10 +108,13 @@ int board_mmc_init(bd_t *bis)
imx_iomux_v3_setup_multiple_pads(
usdhc4_pads, ARRAY_SIZE(usdhc4_pads));
status = fsl_esdhc_initialize(bis, &usdhc_cfg[0]) |
for (i = 0; i < ARRAY_SIZE(usdhc_cfg); i++) {
fsl_esdhc_initialize(bis, &usdhc_cfg[1]);
status = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
if (status)
return status;
}
return 0;
#endif