+// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2015 Freescale Semiconductor, Inc.
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
#include <asm/io.h>
#ifdef CONFIG_CMD_BMODE
void boot_mode_apply(unsigned cfg_val)
{
- unsigned reg;
+#ifdef CONFIG_MX6
+ const u32 bmode = IMX6_SRC_GPR10_BMODE;
+#elif CONFIG_MX7
+ const u32 bmode = IMX7_SRC_GPR10_BMODE;
+#endif
struct src *psrc = (struct src *)SRC_BASE_ADDR;
+ unsigned reg;
+
writel(cfg_val, &psrc->gpr9);
reg = readl(&psrc->gpr10);
if (cfg_val)
- reg |= 1 << 28;
+ reg |= bmode;
else
- reg &= ~(1 << 28);
+ reg &= ~bmode;
writel(reg, &psrc->gpr10);
}
#endif
#if defined(CONFIG_MX6)
u32 imx6_src_get_boot_mode(void)
{
- if (imx6_is_bmode_from_gpr9())
+ if (readl(&src_base->gpr10) & IMX6_SRC_GPR10_BMODE)
return readl(&src_base->gpr9);
else
return readl(&src_base->sbmr1);