summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJagan Teki <jagan@openedev.com>2017-02-24 10:15:15 (GMT)
committerStefano Babic <sbabic@denx.de>2017-03-17 08:27:08 (GMT)
commit7b54f5a8bf13f64a019b0dd108c80c44023c98c8 (patch)
treedf6e15690d51a12cdfbf96e736f68e52023cec56 /arch
parent96aac843b68dfa900ede4eec224b2f7060812b45 (diff)
downloadu-boot-7b54f5a8bf13f64a019b0dd108c80c44023c98c8.tar.xz
imx6: Add src_base structure define macro
Instead of initializing 'struct src' to SRC_BASE_ADDR on every function better to have global define macro. Reviewed by: Stefano Babic <sbabic@denx.de> Signed-off-by: Jagan Teki <jagan@openedev.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/imx-common/init.c6
-rw-r--r--arch/arm/imx-common/spl.c3
-rw-r--r--arch/arm/include/asm/arch-mx6/imx-regs.h2
-rw-r--r--arch/arm/include/asm/imx-common/sys_proto.h4
4 files changed, 6 insertions, 9 deletions
diff --git a/arch/arm/imx-common/init.c b/arch/arm/imx-common/init.c
index 036ebb2..5b4f828 100644
--- a/arch/arm/imx-common/init.c
+++ b/arch/arm/imx-common/init.c
@@ -119,11 +119,9 @@ void boot_mode_apply(unsigned cfg_val)
#if defined(CONFIG_MX6)
u32 imx6_src_get_boot_mode(void)
{
- struct src *psrc = (struct src *)SRC_BASE_ADDR;
-
if (imx6_is_bmode_from_gpr9())
- return readl(&psrc->gpr9);
+ return readl(&src_base->gpr9);
else
- return readl(&psrc->sbmr1);
+ return readl(&src_base->sbmr1);
}
#endif
diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
index 614e05c..f392941 100644
--- a/arch/arm/imx-common/spl.c
+++ b/arch/arm/imx-common/spl.c
@@ -19,8 +19,7 @@
/* determine boot device from SRC_SBMR1 (BOOT_CFG[4:1]) or SRC_GPR9 register */
u32 spl_boot_device(void)
{
- struct src *psrc = (struct src *)SRC_BASE_ADDR;
- unsigned int bmode = readl(&psrc->sbmr2);
+ unsigned int bmode = readl(&src_base->sbmr2);
u32 reg = imx6_src_get_boot_mode();
/*
diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h b/arch/arm/include/asm/arch-mx6/imx-regs.h
index 6727c56..646013d 100644
--- a/arch/arm/include/asm/arch-mx6/imx-regs.h
+++ b/arch/arm/include/asm/arch-mx6/imx-regs.h
@@ -473,6 +473,8 @@ struct src {
u32 gpr10;
};
+#define src_base ((struct src *)SRC_BASE_ADDR)
+
#define SRC_SCR_M4_ENABLE_OFFSET 22
#define SRC_SCR_M4_ENABLE_MASK (1 << 22)
#define SRC_SCR_M4C_NON_SCLR_RST_OFFSET 4
diff --git a/arch/arm/include/asm/imx-common/sys_proto.h b/arch/arm/include/asm/imx-common/sys_proto.h
index 177bd91..a07061b 100644
--- a/arch/arm/include/asm/imx-common/sys_proto.h
+++ b/arch/arm/include/asm/imx-common/sys_proto.h
@@ -81,9 +81,7 @@ enum imx6_bmode {
static inline u8 imx6_is_bmode_from_gpr9(void)
{
- struct src *psrc = (struct src *)SRC_BASE_ADDR;
-
- return readl(&psrc->gpr10) & IMX6_SRC_GPR10_BMODE;
+ return readl(&src_base->gpr10) & IMX6_SRC_GPR10_BMODE;
}
u32 imx6_src_get_boot_mode(void);